🏠 ctr26's Dotfiles
A modern dotfiles repository with dual management systems for maximum flexibility and reproducibility.
🚀 Quick Install
One-Line Install (Recommended)
Works on any system with Nix:
NIX_CONFIG="experimental-features = nix-command flakes" nix run --refresh --no-write-lock-file github:ctr26/dotfiles#deploy-home
With Backup (Existing Systems)
If you have existing dotfiles:
NIX_CONFIG="experimental-features = nix-command flakes" nix run --refresh --no-write-lock-file github:ctr26/dotfiles#deploy-home -- --backup-extension backup
Traditional Install (NixOS)
If you prefer the traditional approach:
# Install git, chezmoi, python3, and make temporarily
nix-shell -p git chezmoi python3 gnumake
# Then proceed with chezmoi
chezmoi init --apply ctr26/dotfiles
All Other Systems
One command to rule them all:
curl -sSL https://raw.githubusercontent.com/ctr26/dotfiles/main/install.sh | bash
This script automatically detects your system and chooses the best installation method.
📋 What You Get
- Shell: ZSH with oh-my-zsh, pure prompt, and intelligent completions
- Terminal: Kitty with catppuccin theme and transparency
- Multiplexer: tmux with sensible defaults and theme integration
- Editor: Vim/Neovim with carefully selected plugins
- Window Manager: i3 with polybar status bar (NixOS)
- Development: Git, Docker, and essential dev tools
- Themes: Consistent catppuccin theming across all applications
🎯 Deployment Options
🐧 NixOS (Recommended)
User environment with Home Manager:
# One-line deployment (works anywhere with Nix)
NIX_CONFIG="experimental-features = nix-command flakes" nix run --refresh --no-write-lock-file github:ctr26/dotfiles#deploy-home
With backup of existing files:
NIX_CONFIG="experimental-features = nix-command flakes" nix run --refresh --no-write-lock-file github:ctr26/dotfiles#deploy-home -- --backup-extension backup
Add Docker to existing NixOS system:
# Add to your /etc/nixos/configuration.nix:
virtualisation.docker.enable = true;
users.users.yourusername.extraGroups = [ "docker" ];
environment.systemPackages = with pkgs; [ docker-compose ];
Or use our services deployment:
sudo NIX_CONFIG="experimental-features = nix-command flakes" nix run --refresh --no-write-lock-file github:ctr26/dotfiles#deploy-services
Full system configuration (optional, for advanced users):
git clone https://github.com/ctr26/dotfiles.git ~/dotfiles
cd ~/dotfiles
sudo nixos-rebuild switch --flake .#nixos
🏠 Home Manager (Any Linux)
User environment only with Nix package manager:
# Install Nix if not present
sh <(curl -L https://nixos.org/nix/install) --daemon
# Deploy configuration
nix run github:ctr26/dotfiles#deploy-home
# If you have existing dotfiles, backup automatically:
nix run github:ctr26/dotfiles#deploy-home -- --backup-extension backup
🔧 Traditional (Cross-platform)
Using chezmoi for maximum compatibility:
# Install chezmoi
sh -c "$(curl -fsLS get.chezmoi.io)"
# Deploy dotfiles
chezmoi init --apply ctr26/dotfiles
🛠️ Management Commands
NixOS/Home Manager
cd ~/dotfiles
# Interactive deployment menu
nix run .
# Deploy specific configurations
nix run .#deploy-home # Home Manager only
nix run .#deploy-system # Full NixOS system
# Update dependencies
nix run .#update
# Development shell
nix develop
Chezmoi
# Apply changes
chezmoi apply
# Preview changes
chezmoi diff
# Edit configuration
chezmoi edit ~/.zshrc
# Update from repository
chezmoi update
📁 Repository Structure
dotfiles/
├── 📁 nix/ # NixOS configurations
│ ├── home.nix # Home Manager config
│ └── configuration.nix # NixOS system config
├── 📁 dot_config/ # XDG config files
│ ├── i3/ # Window manager
│ ├── kitty/ # Terminal emulator
│ ├── polybar/ # Status bar
│ └── ranger/ # File manager
├── 🎯 flake.nix # Nix flake definition
├── 🚀 install.sh # One-command installer
├── 📋 CLAUDE.md # Development guide
├── ⚙️ dot_zshrc.tmpl # ZSH configuration
├── ⚙️ dot_vimrc # Vim configuration
├── ⚙️ dot_tmux.conf # tmux configuration
└── 📦 .chezmoiexternal.toml # External dependencies
🎨 Customization
Changing Themes
The dotfiles use consistent catppuccin theming. To switch variants:
NixOS/Home Manager: Edit nix/home.nix
programs.kitty.theme = "Catppuccin-Frappe"; # or Latte, Macchiato, Mocha
Chezmoi: Update theme files in dot_config/kitty/
Adding Packages
NixOS: Edit nix/configuration.nix or nix/home.nix
home.packages = with pkgs; [
your-package-here
];