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,78 @@
# Hyprland window manager configuration
{
config,
lib,
pkgs,
inputs,
nomarchyConfig,
...
}: {
# Enable Hyprland as a session option
services.displayManager.sessionPackages = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
];
# Enable polkit for privilege escalation
security.polkit.enable = true;
# XDG portal for screen sharing and file dialogs
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-hyprland];
};
# Hyprland ecosystem packages
environment.systemPackages = with pkgs; [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
# Core utilities
waybar
swaynotificationcenter
rofi-wayland
hyprpaper
hyprlock
hypridle
hyprpicker
# Screenshot tools
grim
slurp
swappy
satty
# Screen recording
wf-recorder
ffmpeg
# Clipboard
wl-clipboard
cliphist
# Brightness and audio control
brightnessctl
playerctl
# System utilities
pavucontrol
wdisplays
networkmanagerapplet
# Night light
gammastep
# QR code generation (for WiFi sharing)
qrencode
imv
# Debugging
wev
];
# Wayland environment variables
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "Hyprland";
};
}