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. โ๏ธ
- Ubuntu 18.04
- Ubuntu 20.04
There are no plans to support non-LTS versions. Software support is LTS version dependent.
This isn't exactly the list of Ansible roles, but below is a list of what the software installs.
Note: the
crossed outout items haven't been ported over from the previous Makefiles.
ansible
,cherrytree
,- Breaktimer,
Visual Studio Code
,- kite AI Autocompletion and Docs for Python, runs locally
- VSCodium,
- carbon-cli for beautiful images of my code - right inside my terminal,
Chromium
,docker
,docker-compose
,- Flameshot,
- Flameshot keybinding to the Print Screen key using
gsettings
, Firefox
,Flatpak
,gh
GitHub CLINordvpn
,nodejs
,- Peek animated GIF screen recorder,
- Postman for API testing,
Protonmail-bridge
https://protonmail.com/bridge/install,python3.6
,python3.7
,python3.8
,Signal Desktop
,Slack
,Snap
,Spotify
,Stacer
https://github.com/oguzhaninan/Stacer,Standard Notes
,Steam
,Sublime Text
,Telegram
,TickTick
using nativefier,Timeshift
https://github.com/teejee2008/timeshift,Tresorit
,yarn
,zsh
See the archive folder for not used targets.
The GNOME Ansible roles configure my GNOME personal preferences.
- Extensions: gnome-extensions
- Keybindings: gnome-keybindings
- Preferences: gnome-preferences
- Themes (18.04 only): gnome-themes
Detailed documentation is hosted by Netlify 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/master/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 ../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.