Files
quincy/docs/CUSTOMIZATION.md
Brandon Lucas 58e4232f2f Initial commit: Nomarchy NixOS configuration
An opinionated NixOS configuration with Hyprland, featuring:

- Modular flake-based architecture
- Parameterized user configuration (username, timezone, locale, etc.)
- Classical/antiquity theme with Thomas Cole wallpapers
- Full Hyprland setup with waybar, rofi, swaync
- Custom utility scripts (screenshots, screen recording, WiFi QR)
- Neovim with LSP support
- Interactive installer for existing NixOS systems
- ISO builder for fresh installations

Flake outputs:
- nixosConfigurations.example - Test configuration
- nixosConfigurations.installer - ISO installer
- packages.iso - Bootable ISO image
- apps.default - Interactive installer
- lib.mkHost - Host builder function
- templates.default - Starter template

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 02:44:33 -05:00

3.0 KiB

Customization Guide

Configuration File

Your configuration lives in ~/.config/nomarchy/config.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/:

# ~/.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:

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):

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:

# 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:

cd ~/.config/nomarchy
sudo nixos-rebuild switch --flake .#yourhostname

Or use the alias:

update