This repository manages system packages with Ansible and dotfiles with GNU Stow.
- Debian 13+ (Trixie)
- Ubuntu 25.10+
- Arch Linux
Bootstrap the environment (installs stow, make and ansible):
# Debian/Ubuntu
sudo scripts/bootstrap_debian.sh
# Arch
sudo scripts/bootstrap_arch.sh# Debian/Ubuntu
make debian
# Arch
make archOn Ubuntu 25.10 where sudo-rs has replaced traditional sudo, use this workaround until ansible/ansible#85837 is fixed.
ANSIBLE_BECOME_EXE=sudo.ws make debiancp ~/.config/git/config.local.example ~/.config/git/config.local
nvim ~/.config/git/config.local # Add name and emailmake stow
make install-debian
make install-arch- ZSH: Create
~/.zshrc.localfor machine-specific shell settings - Git: Edit
~/.config/git/config.localfor identity and other local settings - SSH: Copy
.ssh/config.exampleto.ssh/configand customize
- NeoVim as default editor
- ZSH as shell
- Machine specific configuration should be put to
~/.zshrc.local- other config files are overwritten CTRL+X s- prepend current command line with sudoCTRL+X d- insert current date (YYYY-MM-DD) at current position
- Machine specific configuration should be put to
- FZF (
fzf)- Fast fuzzy searching
CTRL+R- search command historyCTRL+T- pick a file to the command line, for examplenvim <CTRL+T>ALT+C- cd to a subdirectory
- RipGrep (
rg)- Extremely fast grep
- TMUX (
tmux)- Terminal multiplexing
- Local config at
~/.config/tmux/tmux.conf.local ALT+[1-9]- switch windowCTRL+B C- create windowCTRL+B "- split verticallyCTRL+B %- split horizontallyCTRL+B G- open Lazygit popover in current dirCTRL+B s- switch sessions
- Zoxide (
z)- Directory switcher with frecency search
z <substring>- change to a recent dirz <substring><SPACE><TAB>- fzf pick matcheszi <substring>- fzf pick matches
- GPG with smartcard support
- Optionally use GPG agent in place of SSH agent, so PGP keys on a Yubikey can
be used for SSH authentication. Add
export USE_GPG_AGENT=1to~/.zshrc.localto enable.
- Optionally use GPG agent in place of SSH agent, so PGP keys on a Yubikey can
be used for SSH authentication. Add
- Languages
uvto manage Pythonrustupto manage Rust (latest stable toolchain installed by default)