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>
155 lines
3.0 KiB
Markdown
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
|
|
```
|