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>
This commit is contained in:
2026-02-15 02:44:33 -05:00
commit 58e4232f2f
50 changed files with 3853 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
# System services
{
config,
lib,
pkgs,
nomarchyConfig,
...
}: {
# Printing service
services.printing = lib.mkIf (nomarchyConfig.enablePrinting or true) {
enable = true;
browsed.enable = true;
drivers = with pkgs; [brlaser gutenprint];
};
# Avahi for mDNS discovery (network printers)
services.avahi = lib.mkIf (nomarchyConfig.enablePrinting or true) {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# Mullvad VPN
services.mullvad-vpn.enable = nomarchyConfig.enableMullvad or false;
# Syncthing - parameterized user
services.syncthing = lib.mkIf (nomarchyConfig.enableSyncthing or true) {
enable = true;
user = nomarchyConfig.username;
dataDir = "/home/${nomarchyConfig.username}/.config/syncthing";
configDir = "/home/${nomarchyConfig.username}/.config/syncthing";
openDefaultPorts = true;
guiAddress = "127.0.0.1:8384";
};
# Auto-cpufreq for automatic CPU power management
services.auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
scaling_min_freq = 800000;
scaling_max_freq = 2000000;
};
charger = {
governor = "performance";
turbo = "auto";
scaling_min_freq = 800000;
scaling_max_freq = 4500000;
};
};
};
# Disable power-profiles-daemon (conflicts with auto-cpufreq)
services.power-profiles-daemon.enable = false;
}