Arch Linux development environment managed with GNU Stow. Catppuccin Mocha theme with TokyoNight background across all tools.
git clone https://github.com/wildduck2/dotfiles ~/dotfiles
cd ~/dotfiles
./setup.shInstall a single module:
./setup.sh nvim # just neovim
./setup.sh kitty tmux # multiple modules
./setup.sh --verify # check all tools without installing
./setup.sh --dry-run # preview what would be installed
./setup.sh --help # show module descriptionsThe base setup installs these tools automatically:
| Tool | Method | More Info |
|---|---|---|
| yay | Built from AUR | AUR helper for Arch Linux |
| Rust | rustup.rs | Systems programming language |
| Go | pacman | Backend/systems programming |
| Bun | curl installer | Fast JavaScript runtime & bundler |
| Claude Code | curl installer | AI-powered CLI assistant |
| Module | Description | Key Config | More Info |
|---|---|---|---|
| bash | Bash fallback shell | .bashrc, .bash_profile |
GNU Bash |
| zsh | Primary shell (Oh My Zsh + Zinit + fzf + zoxide) | .zshrc, .zshenv |
Zsh |
| tmux | Terminal multiplexer (TPM, vim-tmux-navigator, Tokyo Night) | tmux.conf |
tmux |
| kitty | GPU terminal (JetBrainsMono Bold Italic, Catppuccin colors) | kitty.conf |
Kitty |
| terminator | GTK terminal (Berkeley Mono, Catppuccin colors) | config |
Terminator |
| nvim | Neovim IDE (74 plugins, 16 LSPs, lazy.nvim) | lua/ |
Neovim |
| i3 | Window manager (Catppuccin, gaps, i3lock, picom) | config |
i3wm |
| picom | Compositor (GLX, dual_kawase blur, glass opacity) | picom.conf |
Picom |
| htop | Process viewer | htoprc |
htop |
| neofetch | System info display | config.conf |
Neofetch |
| duck-bash | Utility scripts (cleanup, git, fzf-tmux, QR, yt-dlp) | *.sh |
See duck-bash/README.md |
| App | Source | More Info |
|---|---|---|
| Google Chrome | AUR | Primary browser |
| Firefox | pacman | Secondary browser |
| Discord | pacman | Chat & voice |
| OBS Studio | AUR (obs-studio-tytan652) | Screen recording & streaming |
| Yaak | AUR | API client (HTTP, GraphQL, WebSocket, gRPC) |
~/dotfiles/
setup.sh # Main installer (orchestrates all modules)
scripts/helpers.sh # Shared functions (pkg_install, stow, etc.)
{module}/
setup.sh # Module installer (deps + stow)
README.md # Module documentation
.config/{app}/ # Config files (symlinked by stow)
Each module is self-contained. stow {module} symlinks its contents into $HOME.
Catppuccin Mocha palette on a TokyoNight Storm background (#1a1b26) shared across:
| App | Colors | Font |
|---|---|---|
| kitty | Catppuccin Mocha | JetBrainsMono Nerd Font Bold Italic 14 |
| terminator | Catppuccin Mocha | Berkeley Mono Trial Bold 14 |
| i3 bar | Catppuccin Mocha | Berkeley Mono Trial 16 |
| i3lock | Catppuccin Mocha | Berkeley Mono Trial / JetBrainsMono |
| nvim | Multiple (TokyoNight, Catppuccin, Rose Pine, etc.) | Terminal font |
| tmux | Tokyo Night + Catppuccin | Terminal font |
74 plugins organized in lua/plugins/ with the spec-per-directory pattern. Highlights:
- LSP: 16 servers auto-installed via Mason (Lua, Rust, TypeScript, Go, C/C++, etc.)
- Completion: nvim-cmp + LuaSnip + friendly-snippets
- Formatting: conform.nvim with format-on-save (stylua, prettier, biome, rustfmt, etc.)
- Navigation: Telescope, Harpoon, nvim-tree
- Git: Fugitive + Gitsigns
- Treesitter: 34 parsers with text objects
See nvim/README.md for the full plugin list and keybinding reference.
- Arch Linux (pacman)
- Nerd Font -- JetBrainsMono Nerd Font installed by setup.sh
- Berkeley Mono Trial (optional) -- proprietary font for i3/terminator, falls back to JetBrainsMono
i3 (Mod = Alt) -- i3 User Guide
| Key | Action |
|---|---|
Mod+Return |
Open terminal |
Mod+q |
Kill window |
Mod+d |
App launcher (dmenu) |
Mod+h/j/k/l |
Focus left/down/up/right |
Mod+1-0 |
Switch workspace |
Mod+x |
Lock screen (i3lock-color) |
Mod+f |
Fullscreen |
Mod+Shift+r |
Restart i3 |
tmux (Prefix = Ctrl+d) -- tmux Wiki
| Key | Action |
|---|---|
prefix+r |
Reload config |
prefix+h/j/k/l |
Navigate panes |
prefix+" |
Horizontal split |
prefix+| |
Vertical split |
Ctrl+h/j/k/l |
Navigate panes (seamless with nvim via vim-tmux-navigator) |
Shift+Left/Right |
Switch windows |
Neovim (Leader = Space) -- Neovim Docs
| Key | Action |
|---|---|
<leader>sf |
Search files (Telescope) |
<leader>sg |
Search by grep |
<leader>pv |
Toggle file tree (nvim-tree) |
<leader>a |
Add to Harpoon |
gd |
Go to definition |
<leader>ca |
Code action |
<leader>f |
Format buffer (conform.nvim) |
See nvim/README.md for the complete list.