Skip to content

[MIRROR FROM GITLAB] My dotfiles, managed by Chezmoi and Ansible

Notifications You must be signed in to change notification settings

tmeijn/dotfiles

Repository files navigation

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.10 is supported, In particular Ubuntu Asahi (arm64).

Playbook

  1. In a terminal, execute:

    sh -c "$(wget -qO- get.chezmoi.io) -- init --apply --exclude scripts tmeijn"
  2. Close the current terminal!

  3. Open a new terminal and execute:

     export ANSIBLE_PASSWORD="<YOUR_SUDO_PASSWORD>"
    sh -c "$(wget -qO- get.chezmoi.io) -- init --apply tmeijn"

    note: this might crash during installation. In that case open a new terminal and keep running chezmoi apply.

  4. After reboot, open a terminal and unlock Bitwarden using our reco alias

  5. Login to Atuin:

    atuin login -u zero-mass92 -p $(rbw get "Atuin Sync") -k "$(rbw get "Atuin Sync" -f Key)" && atuin sync
  6. Navigate to the chezmoi dir by executing chezmoi cd

  7. Update the git remote url:

    git remote set-url origin git@gitlab.com:el-capitano/dotfiles.git
  8. 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
  9. 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 a new Firefox window 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 OneDrive sync with RClone 🔄

Configure rclone by creating a configuration for the onedrive remote. This remote must have onedrive as the name to automatically mount on startup:

rclone config create onedrive onedrive

Then run the following command to enable the systemd user service:

systemctl --user enable --now rclone

Speedrun record 🏃

I try and re-install my system about every month while measuring how long it takes to set back up again. I measure this from the point the OS is installed, a new user with my name has been set up and Bluetooth peripherals are connected.

Current record: 20:38:32 (- ~12 minutes), set at 28-01-2024.

See RUN_RECORDS.md for historical runs and more.

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 a lot of single binary, zero dependency tools. See aqua.yaml for more.
  • Mise: mise manages our more involved tools like Python, Node, Go, Rust, etc. See the config.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

About

[MIRROR FROM GITLAB] My dotfiles, managed by Chezmoi and Ansible

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published