A comprehensive, Nix-powered development environment that streamlines system configuration and enhances productivity across multiple platforms. This repository provides a unified approach to managing dotfiles, system configurations, and development tools through Nix and Home Manager.
- NixOS/Darwin Integration: Full system configuration management for both Linux and macOS
- Home Manager: Declarative user environment configuration
- Flake-based Setup: Reproducible and version-locked configurations
- Multi-platform Support: Unified configurations for x86_64 and aarch64 architectures
- Neovim with LazyVim: Modern Lua-based configuration with LSP support
- Nixd LSP Integration: Advanced Nix language server support
- Copilot Integration: AI-powered coding assistance with custom commit generation
- Custom Plugins: Including smear-cursor, opencode.nvim, and enhanced debugging tools
- Tmux with Advanced Features: FZF-powered search for URL, Base64, File Paths, Docker IDs, IP,... etc, improved buffer management, and regex
- WezTerm Configuration: Modern terminal emulator with dynamic theming
- Starship Prompt: Customizable shell prompt with Catppuccin theme variants
- ZSH with Oh-My-Zsh: Enhanced shell with custom aliases and functions
- AppearanceWatcher: Swift-based utility for macOS appearance detection
- GnomeWatcher: C-based utility for GNOME theme monitoring
- Automatic Theme Switching: Seamless light/dark mode transitions across applications
- Catppuccin Integration: Consistent theming across all applications
- FZF Enhanced: Advanced fuzzy finding with custom preview commands
- Bat: Syntax highlighting with theme synchronization
- Btop: System monitoring with dynamic theme updates
- Git Integration: Enhanced aliases and workflow improvements
βββ nixos-config/ # Nix configuration management
β βββ hosts/ # Host-specific configurations
β β βββ darwin/ # macOS system configurations
β β βββ nixos/ # NixOS system configurations
β βββ modules/ # Modular configuration components
β β βββ darwin/ # macOS-specific modules
β β βββ nixos/ # NixOS-specific modules
β β βββ shared/ # Cross-platform modules
β βββ overlays/ # Nix package overlays
βββ editor/ # Editor configurations
β βββ nvim/ # Neovim configuration
β β βββ lua/ # Lua configuration files
β β βββ lsp/ # Language server configurations
β βββ nvim-plugins/ # Custom Neovim plugins
βββ scripts/ # System utilities
β βββ AppearanceWatcher/ # macOS appearance monitoring
β βββ GnomeWatcher/ # GNOME theme detection
βββ shell/ # Shell configurations
βββ terminal/ # Terminal configurations
βββ apps/ # Platform-specific build scripts
- Nix: Install Nix package manager with flakes enabled
- Git: For repository management
- Clone the repository:
git clone https://github.com/vkwhm/whm_shell.git ~/.whm_shell
cd ~/.whm_shell- Choose your platform and run the appropriate build script:
For macOS:
nix run .#build-switchFor Linux:
install home-manager if not exist.
home-manager switch --flake .#x86_64-linux # For x86_64 only shell
home-manager switch --flake .#aarch64-linux # For aarch64 only shell
home-manager switch --flake .#x86_64-linux-desktop # For x86_64 with GUI tools
home-manager switch --flake .#aarch64-linux-desktop # For aarch64 with GUI tools
- Complete migration from traditional dotfiles to Nix/Home Manager
- Multi-platform support for Darwin and NixOS systems
- Flake-based configuration with reproducible builds
- Modular architecture for easy customization
- Dynamic appearance detection for both macOS and Linux
- Automatic theme switching across all applications
- Catppuccin theme integration with Latte/Mocha variants
- Custom utilities for system appearance monitoring
- FZF-powered search and navigation
- Enhanced buffer management and copy functionality
- PCRE regex support for advanced pattern matching
- LazyVim configuration with extensive plugin ecosystem
- Copilot integration with custom commit message generation
- LSP support for Nix development
- Custom plugins for improved development workflow
- Enhanced FZF integration with customizable preview commands
- Improved Git workflow with advanced aliases
- Dynamic environment configuration based on system state
- Performance optimizations for shell startup
The configuration uses a modular approach. Key toggles include:
# In your host configuration
whmconfig = {
enable = true;
linkConfigs = {
nvim = true;
tmux = true;
starship = true;
wezterm = true;
};
};Each platform has its own configuration module:
modules/darwin/- macOS system and application settingsmodules/nixos/- NixOS system configurationmodules/shared/- Cross-platform user configurations
AppearanceWatcher: Monitors macOS system appearance changesGnomeWatcher: Tracks GNOME theme modifications- Automatic configuration updates across all applications
- Platform-specific build and deployment scripts
- Automated rollback capabilities
- Key management for secure deployments
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test across platforms
- Commit using conventional commits:
git commit -m "feat: add amazing feature" - Push and create a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- NixOS Community: For the powerful package management system
- LazyVim: For the excellent Neovim configuration framework
- Catppuccin: For the beautiful and consistent color scheme
- Open Source Community: For the countless tools that make this possible
Note: This configuration has evolved significantly from a simple dotfiles collection to a comprehensive, Nix-powered development environment. The 82+ commits since the main branch represent a complete architectural overhaul focused on reproducibility, modularity, and cross-platform consistency.