My dotfiles: zsh, kitty, vim, ssh + bootstrap for Arch / Debian 13
Find a file
vratk0529-arch-desktop cd748ac7a2 Switch to antidote, add CLI tools and generated git identity
- zsh: replace antigen with antidote (plugins in ~/.zsh_plugins.txt);
  keep oh-my-zsh lib + git plugin, zsh-completions and
  syntax-highlighting; drop heroku, lein, pip and command-not-found;
  enable fzf key bindings
- bootstrap: install fzf, btop, ripgrep and fd (fdfind -> fd on
  Debian), install antidote to ~/.local/share/antidote, write the git
  identity from the hostname and email
- remove lazygit config

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 00:12:20 +02:00
bash Restructure into per-app packages with symlink installer 2026-10-03 23:44:57 +02:00
fonts/.fonts Restructure into per-app packages with symlink installer 2026-10-03 23:44:57 +02:00
kitty/.config/kitty Restructure into per-app packages with symlink installer 2026-10-03 23:44:57 +02:00
ssh/.ssh Add bootstrap.sh for new Arch / Debian 13 machines 2026-10-03 23:59:17 +02:00
zsh Switch to antidote, add CLI tools and generated git identity 2026-10-04 00:12:20 +02:00
bootstrap.sh Switch to antidote, add CLI tools and generated git identity 2026-10-04 00:12:20 +02:00
install.sh Restructure into per-app packages with symlink installer 2026-10-03 23:44:57 +02:00
README.md Switch to antidote, add CLI tools and generated git identity 2026-10-04 00:12:20 +02:00

dotfiles

New machine (Arch or Debian 13)

# Debian: sudo apt install git    Arch: sudo pacman -S git
git clone https://forgejo.vratk0529.com/vratk0529/dotfiles.git ~/dotfiles
~/dotfiles/bootstrap.sh

bootstrap.sh then:

  1. installs kitty, vim, zsh, git, curl, keychain, uv, fzf, btop, ripgrep and fd
  2. links the dotfiles (install.sh)
  3. installs antidote to ~/.local/share/antidote
  4. writes the git identity: the machine's hostname as name, plus my email
  5. makes zsh the login shell
  6. sets key repeat to 250 ms / 50 per second (Plasma, GNOME, or plain X11)
  7. creates ~/.ssh/id_ed25519 if there's no SSH key yet
  8. installs the skmod keyboard layout to ~/.local/src/custom-keyboard-layout, pausing for you to add the new key to Forgejo if needed, then switches this repo's remote to SSH
  9. prints the public key

Re-running it is safe. Log out and back in afterwards.

zsh plugins are listed in zsh/.zsh_plugins.txt; antidote fetches them on the first shell start.

Python: use uv instead of pyenv, e.g. uv python install 3.12, uv venv, uv tool install ruff.

Linking only

~/dotfiles/install.sh            # link everything
~/dotfiles/install.sh zsh kitty  # or only some packages

Each top-level directory is a package that mirrors $HOME:

Package Links
bash ~/.bashrc
zsh ~/.zshrc, ~/.zsh_plugins.txt
kitty ~/.config/kitty/kitty.conf
fonts ~/.fonts/*.ttf
ssh ~/.ssh/config

install.sh symlinks individual files (not directories), so apps that write state next to their config don't dirty the repo. Anything it would replace is moved to ~/.dotfiles-backup/<timestamp>/. Re-running it is safe.

To add a file, move it into a package at the same path relative to $HOME and re-run the script, e.g.:

mkdir -p ~/dotfiles/vim
mv ~/.vimrc ~/dotfiles/vim/
~/dotfiles/install.sh vim

The layout is also compatible with GNU Stow (cd ~/dotfiles && stow zsh).