This repository contains personal dotfiles for macOS development environment with terraform-like management interface.
The dotfiles are organized in macos/.config/ directory and can be managed using the ./dotfiles script which provides a terraform-like interface for applying configuration changes.
- Fish Shell - Primary shell with extensive customization
- Neovim - Modern Lua-based editor configuration
- Zellij - Terminal multiplexer with tmux-like keybindings
- WezTerm - Terminal emulator with Gruvbox theme
- Starship - Cross-shell prompt (managed by nix)
All applications use the Gruvbox Dark theme for visual consistency.
# Show current status
./dotfiles status
# Plan changes (dry-run)
./dotfiles plan
# Apply configuration
./dotfiles apply
# Remove symlinks
./dotfiles destroy-
Check Status: See what's currently managed
./dotfiles status
-
Plan Changes: Preview what will be changed
./dotfiles plan
-
Apply Changes: Create symlinks and backup existing files
./dotfiles apply
- Existing configuration files are automatically backed up to
~/.config.backup/TIMESTAMP/ - Timestamps ensure multiple backups don't overwrite each other
- Detects and skips files managed by nix/home-manager
- Prevents conflicts with existing nix-managed configurations
- Non-destructive operations by default
- Backup creation before any changes
- Symlink verification to prevent accidental overwrites
- Tracks applied configurations in
.dotfiles_state - Records backup locations and timestamps
macos/.config/
├── fish/ # Fish shell configuration
├── nvim/ # Neovim configuration
├── zellij/ # Zellij terminal multiplexer
├── wezterm/ # WezTerm terminal emulator
├── starship.toml # Starship prompt (managed by nix)
└── ... # Other application configs
- Backup Creation: All existing files are backed up before changes
- Nix Detection: Automatically skips nix-managed files
- Symlink Verification: Ensures symlinks point to correct locations
- State Tracking: Maintains state file for rollback capabilities
If you need to restore from backup:
# Find your backup directory
ls ~/.config.backup/
# Restore specific config
cp ~/.config.backup/TIMESTAMP/nvim ~/.config/nvim
# Or restore everything
rm -rf ~/.config
mv ~/.config.backup/TIMESTAMP ~/.configWhen adding new configurations:
- Place them in
macos/.config/ - Maintain Gruvbox Dark theme consistency
- Test with
./dotfiles planbefore committing - Update this README if needed
- This is a personal dotfiles repository
- No automatic installation scripts are provided
- Manual setup of applications is required
- Symlinks are created to this repository location