Dotfile configuration for archlinux.
# 1. Install prerequisites
sudo pacman -S --needed base-devel git stow
# 2. Install paru (AUR helper)
git clone https://aur.archlinux.org/paru.git /tmp/paru
cd /tmp/paru && makepkg -si
# 3. Install core packages
paru -S mise zsh neovim ghostty tmux starship
# 4. Clone dotfiles
cd ~/
git clone --recurse-submodules -j8 git@github.com:phcurado/dotfiles.git
cd dotfiles
# 5. Restore secrets from 1Password (optional, for SOPS encryption)
make secrets.setup
# 6. Create symlinks
stow .
# 7. Install tool versions
mise install
# 8. Set zsh as default shell
chsh -s /usr/bin/zshReboot or log out/in to apply shell changes.
This dotfiles setup uses SOPS with AGE for encrypting secrets in projects. The AGE private key is stored in 1Password and restored locally.
On a new machine:
make secrets.setup # Restores key from 1Password to .config/sops/age/keys.txtBackup your key (if generating a new one):
mkdir -p .config/sops/age
age-keygen -o .config/sops/age/keys.txt
make secrets.backup # Shows key to copy to 1PasswordThe keys.txt file is gitignored and never committed.
Paru is an AUR helper for installing packages from the Arch User Repository.
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -siNeovim is my preferred text editor.
paru neovimGhostty is a modern terminal emulator.
Important
Ghostty is configured to use the font 0xProto Nerd Font. Install it or change the font in .config/ghostty/config. List available fonts with ghostty +list-fonts.
paru ghosttytmux is a terminal multiplexer.
paru tmuxTo install plugins, open a tmux session and press prefix + I (prefix is Ctrl + a).
Mise manages versions of programming languages and tools.
paru mise
mise install # Install versions from mise.tomlZsh is my preferred shell.
paru zsh
chsh -s /usr/bin/zshReboot or log out/in to apply.
Starship is a cross-shell prompt.
paru starshipGNU Stow manages symlinks for dotfiles.
paru stow
stow .If files conflict, use --adopt to override:
stow --adopt .Install packages from the saved list:
make install
# or: paru -S - < arch-pkgs/pkgs.txtSave current packages to file:
make tofile
# or: paru -Qqen > arch-pkgs/pkgs.txtReview arch-pkgs/pkgs.txt before installing - some packages may be system-specific.
| Command | Description |
|---|---|
make install |
Install packages from arch-pkgs/pkgs.txt |
make show |
List installed packages |
make tofile |
Save installed packages to pkgs.txt |
make cleanCache |
Clean paru cache |
make secrets.setup |
Restore AGE key from 1Password |
make secrets.backup |
Show AGE key for backup to 1Password |
Enable bluetooth service:
sudo systemctl enable --now bluetooth.serviceMacropad configuration is in macropad/macropad.ron. Upload using:
ansible-playbook --ask-become-pass ansible-scripts/macropad.yml