Awesome
Dotfiles managed by Chezmoi and Ansible ๐ ๏ธ
[toc]
Welcome to my collection of dotfiles! These configurations help personalize and streamline my development environment across various tools and applications.
Note: Only Ubuntu 24.04 is supported, In particular Ubuntu Asahi (arm64).
TL;DR
Prerequisites
Make sure you have the following installed:
wget
- A terminal
Run Chezmoi
sh -c "$(wget -qO- get.chezmoi.io) -- init --apply --verbose tmeijn"
Playbook
-
In a terminal, execute:
sh -c "$(wget -qO- get.chezmoi.io) -- init --apply --verbose --exclude scripts tmeijn"
-
Close the terminal and open a new terminal and execute:
sh -c "$(wget -qO- get.chezmoi.io) -- init --apply --verbose tmeijn"
note: this might crash during installation. In that case open a new terminal and keep running
chezmoi apply
. -
After reboot unlock Bitwarden using
rbw unlock
-
Login to
Atuin
:atuin login -u zero-mass92 -p $(rbw get "Atuin Sync") -k "$(rbw get "Atuin Sync" -f Key)"
-
Navigate to the chezmoi dir by executing
chezmoi cd
-
Update the git remote url:
git remote set-url origin git@gitlab.com:el-capitano/dotfiles.git
-
Run the script that will generate an SSH key and uploads the public key both to gitlab.com and github.com:
bash gen_ssh_key_and_add_to_scms.sh
-
Run the script that will clone all repositories defined by
ghorg reclone
:bash clone_repositories.sh
Configure Firefox ๐ฆ
In a terminal, get the Firefox Account Password by running:
rbw get "Firefox Account" | pbcopy
Open Firefox and open the top-right menu to enable sync. You will be required to login, use your email and the password you just copied to your clipboard. After logging in, all the Add-ons will be synced to the machine.
When the Bitwarden Add-on is installed, login to your vault.
Login to following sites:
Configure VS Code ๐น
In the left sidebar, down left, login using your GitHub account. Everything should be synced afterwards.
Configure Microsoft Account
Open Settings -> Online Accounts
. Click the Microsoft 365 account and add the following ID as tenant ID: 8ef61e06-9fd5-49af-9b63-6983aede4213
. Source. Note that this should no longer be needed once we run Gnome 47, which has this pre-configured.
NOTE: this does not work correctly with syncing back so we started using rclone. Document this before pushing this readme again. summary steps:
https://itsfoss.com/use-onedrive-linux-rclone/ Followed this guide.
Speedrun record ๐
I try and re-install my system about every month while measuring how long it takes to set back up again. Since this is on Ubuntu Asahi, I measure this from the point the OS is installed and a new user with my name has been set up.
Current record: 20:38:32 (- ~12min), set at 28-01-2024.
Tools Used ๐งฐ
Everything is managed by chezmoi
.
The run_once_
Bash scripts install all the tools we depend upon and actually manage the machine, namely:
- Aqua:
aqua
is our entrypoint and actually installs Mise and a lot of other single-binary, zero dependency tools. - Mise:
mise
manages our more involved tools like Python, Node, Go, Rust, etc. See theconfig.toml
for all dependencies managed. - Ansible: Ansible manages our installed Applications using Flatpak, APT and sometimes a plain
.deb
file. See the Ansible Playbook for more detailed information.
References ๐
Feel free to explore and modify these dotfiles according to your preferences. Happy coding! ๐
Inspiration for Chezmoi dotfiles
(Legacy) - References accumulated when trying out Nix
- paholg/dotfiles: Some of my config files and scripts I find useful.
- GitHub - gvolpe/nix-config: NixOS configuration
- breuerfelix/dotfiles: macOS + nix + home-manager + yabai + zsh + tmux + neovim
- nix-home/home.nix at master ยท yrashk/nix-home
- nixos-config/default.nix at master ยท bobvanderlinden/nixos-config
- https://github.com/schickling/dotfiles
- https://sr.ht/~misterio/nix-config/
- https://github.com/Mic92/dotfiles/blob/master/flake.nix
- https://www.bekk.christmas/post/2021/16/dotfiles-with-nix-and-home-manager?utm_source=pocket_mylist
- https://gitlab.light.kow.is/dkowis/dotfiles/-/blob/master/.config/fish/config.fish