# Customization Guide ## Configuration File Your configuration lives in `~/.config/nomarchy/config.nix`: ```nix { # User settings username = "yourname"; hostname = "yourhostname"; timezone = "America/New_York"; locale = "en_US.UTF-8"; # Keyboard (supports multiple layouts) keyboardLayouts = ["us" "gr"]; keyboardVariants = ["" "polytonic"]; # Location for night light location = { lat = 40.7; lon = -74.0; }; # Features enableSyncthing = true; enableMullvad = false; enablePrinting = true; enableBluetooth = true; # Performance (security tradeoff!) enableMitigationsOff = false; # Theme theme = "classical"; } ``` ## Adding Custom Modules Create a module in `~/.config/nomarchy/`: ```nix # ~/.config/nomarchy/custom.nix { config, pkgs, ... }: { # System packages environment.systemPackages = with pkgs; [ discord spotify ]; # Services services.docker.enable = true; # User groups users.users.${config.nomarchy.username}.extraGroups = ["docker"]; } ``` Add it to your flake: ```nix extraModules = [ ./custom.nix ]; ``` ## Wallpapers 1. Copy images to `~/.config/nomarchy/wallpapers/` 2. Supported formats: `.jpg`, `.png` 3. Wallpapers rotate every 5 minutes automatically 4. Use Quick Actions (`Super + /`) → "Change Wallpaper" for immediate change ## Theme Colors The classical theme colors are defined in the theme module. To override colors in your waybar or rofi, you can create custom CSS files. ### Color Palette | Name | Hex | Usage | |------|-----|-------| | bg.primary | `#1a1611` | Main background | | bg.secondary | `#2d2620` | Panels, inputs | | fg.primary | `#d4c4a8` | Main text | | accent.gold | `#d4a857` | Primary accent | | accent.terracotta | `#c67b5c` | Secondary accent | | status.success | `#8a9a5b` | Success states | | status.error | `#a63d40` | Error states | ## Shell Aliases Default aliases (in `~/.zshrc` via home-manager): ```bash ls → eza --icons ll → eza -l --icons la → eza -la --icons update → sudo nixos-rebuild switch --flake ~/.config/nomarchy# gc → sudo nix-collect-garbage -d du → dust ``` ## Neovim The default Neovim configuration includes: - LSP support for Nix, Lua, TypeScript, Rust, Go, Python, Markdown - Telescope for fuzzy finding - Treesitter for syntax highlighting - Git integration with gitsigns To customize, create `~/.config/nvim/lua/custom/init.lua` (loaded after main config). ## Terminal (Ghostty) Customize in `~/.config/ghostty/config`: ``` font-size = 16 background-opacity = 0.9 ``` ## Hyprland For advanced Hyprland customization, you can add settings via home-manager: ```nix # In your custom module { config, ... }: { home-manager.users.${config.nomarchy.username} = { wayland.windowManager.hyprland.settings = { # Add your custom settings here windowrulev2 = [ "float,class:^(pavucontrol)$" ]; }; }; } ``` ## Rebuilding After making changes: ```bash cd ~/.config/nomarchy sudo nixos-rebuild switch --flake .#yourhostname ``` Or use the alias: ```bash update ```