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

155 lines
3.0 KiB
Markdown

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