A declarative NixOS configuration featuring a Hyprland desktop, modern development environments, and encrypted secrets management.
- Features - Detailed feature list
- Keybindings - Complete keyboard shortcut reference
- Neovim - LSP, Treesitter, Telescope, and Fugitive setup
- Secrets Management - sops-nix and Age encryption
nixos-config
├── hosts/ # Machine-specific configurations
│ └── weepinbell/ # Primary NixOS workstation
├── home/ # User-specific Home Manager configs
├── modules/ # Reusable configuration modules
│ ├── nixos/ # System-level NixOS modules
│ └── home-manager/ # User-space configurations
├── docs/ # Documentation
├── justfile # Build commands
└── flake.nix # Main flake configuration
- nixpkgs: Latest packages from nixos-unstable
- home-manager: User environment management
- sops-nix: Encrypted secrets with Age encryption
- catppuccin: Beautiful pastel theme system-wide
- Hyprland Wayland compositor with smooth animations
- Noctalia Shell desktop shell (bar, notifications, lock screen)
- Ghostty modern terminal with tmux integration
- NVIDIA Prime hybrid graphics support
- Screenshots with Hyprshot + Satty annotation
- Neovim with LSP, Treesitter, Telescope, Fugitive, GitHub Copilot AI (see full docs)
- Tmux with vim-aware navigation
- Catppuccin theme across all applications
- Modern CLI tools (zoxide, fzf, ripgrep, bat, eza)
# Clone repository
git clone https://github.com/Danielbook/nixos-config.git
cd nixos-config
# Build and switch
just nixos-rebuild
just home-manager-switch# Show all available commands
just --list
# Update all packages
just flake-update
# NixOS system rebuild
just nixos-rebuild
# Home Manager switch
just home-manager-switch
# Garbage collection
just nix-gc
# Validate configuration
just flake-checkAll secrets are encrypted with sops-nix and Age encryption:
- Encrypted at rest in version control
- Runtime decryption by NixOS
- Fine-grained permissions per service
See Secrets Management Guide for details.
nixosConfigurations = {
newmachine = mkNixosConfiguration "newmachine" "newuser";
};
homeConfigurations = {
"newuser@newmachine" = mkHomeConfiguration "x86_64-linux" "newuser" "newmachine";
};mkdir -p hosts/newmachine
sudo nixos-generate-config --show-hardware-config > hosts/newmachine/hardware-configuration.nixmkdir -p home/newuser/newmachinegit add .
just nixos-rebuild
just home-manager-switchNixOS system packages:
# modules/nixos/common/default.nix
environment.systemPackages = with pkgs; [
your-package
];User packages:
# modules/home-manager/common/default.nix
home.packages = with pkgs; [
your-package
];# Validate configuration
just flake-check
# Show detailed error trace
nixos-rebuild switch --show-trace# Check home-manager logs
journalctl --user -u home-manager-${USER}.service
# Rebuild with verbose output
home-manager switch --show-traceThis project is licensed under the MIT License - see the LICENSE file for details.