I care about not having to think too much about my setup between machines. Especially when I want to get right to work.
For that reason, it is very comfortable for me to have the same base configuration on each machine (look, feel, keyboard shortcuts, core software, etc.).
- I found a cool bash script on the internet (I didn't understand most of it) π€·
- I modified cool bash script for my needs and it worked! π
- I learned about Makefiles. π
- I proceeded to do everything with Makefiles. π€©π€©π€©
- I got tired of running successive Make targets over and again π.
- I used Ansible at work and decided to take a course to learn more about it. π€
- I put off actually taking the plunge to use Ansible. ππππ
- I finally took the plunge and decided to use Ansible for my configuration. βοΈ
This project adheres to Calendar Versioning, YY.0M.MICRO. This is similar to Ubuntu.
Note that I've iterated to this and it wasn't always calver.
I will support the LTS versions I use. There are no plans to support non-LTS versions.
LTS | Last Supported Branch/Tag |
---|---|
Ubuntu 20.04 | main |
Ubuntu 18.04 | 2020.1.0 |
There is broader LTS and Distribution support in the following roles:
Role | Description |
---|---|
iancleary.docker | Installs Docker and Docker-compose |
iancleary.zsh | Installs Zsh, oh-my-zsh plugin manager, and addes ~/.zshrc_aliases |
This isn't exactly the list of Ansible roles, but below is a list of what the repo helps install.
Flatpak
,Snap
,
- AppImageLauncher, see the Integrate any AppImage into the Ubuntu Desktop article.
- ULauncher, A ctrl + spacebar productivity bar, Ulauncher is inspired by Alfred for macOS and similar semantic search tools that followed in its wake.
Timeshift
https://github.com/teejee2008/timeshift,
Signal Desktop
,Slack
,Telegram
,
ansible
,docker
,docker-compose
,gh
GitHub CLInodejs
,python3.8
,yarn
terraform
linode
CLI- VSCode,
If you prefer a fully open source option, checkout VSCodium! Set "code_executable" to "/snap/bin/codium".
- Postman for API testing,
- yadm dotfile manager
- HEY Mail, by Basecamp, hey-main snap
Tresorit
,
Steam
,
The GNOME Ansible roles configure my GNOME personal preferences.
- Extensions: gnome-extensions
- Keybindings: gnome-keybindings
- Preferences: gnome-preferences
Spotify
,
cherrytree
,Standard Notes
,
- Hyper Terminal, with "pane:splitHorizontal": "ctrl+shift+f", // changed from "ctrl+shift+e" because vercel/hyper #3660
zsh
andoh-my-zsh
- powerlevel10k theme with needed fonts, installs fonts automatically!
- carbon-cli for beautiful images of my code - right inside my terminal,
- Flameshot,
Flameshot keybinding to the Print Screen key using
gsettings
- Peek animated GIF screen recorder,
Sublime Text
,
- Caffeine,
- Breaktimer,
Nordvpn
,- PDFSlicer
Chromium
,Firefox
,
Detailed documentation is hosted by Vercel at https://ansible-desktop.iancleary.me/.
For a walk through of my process on existing machine, please visit https://ansible-desktop.iancleary.me/makefile.
For a new machine, I run the following command to set up my computer:
Please make sure you adjust your hostname as Ansible keys off this variable. I like to do this during the initial configuration of the machine.
wget -qO- \
https://github.com/iancleary/ansible-desktop/raw/main/run.sh | \
bash
This will prompt you for your sudo
password
for the bash script and then once later for
ansible
's "BECOME PASSWORD" prompt.
Voila! πππ
If you want to edit the variables, hit CTRL + C
at ansible
's "BECOME PASSWORD" prompt.
The script created two extra files that ensure that the ansible-playbook
will on your host name.
Note: Both files are intentionally not version controlled. This allows hostname specific group_vars relative to the playbook.
- a private
.inventory
file
#.inventory
[$(hostname)]
127.0.0.1
- a group_vars file
# group_vars/$(hostname)/all.yml
---
# You can copy and modify variables over from group_vars/all/*.yml
Then run make all
Voila (with your edits)! πππ
See CHANGELOG for history.
I benefited from the source work of others, see AUTHORS.md.
My choice to open source my work here is to share back with you.