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>
55 lines
1.2 KiB
Nix
55 lines
1.2 KiB
Nix
# Theme module - provides colors and styling to all nomarchy components
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
nomarchyConfig,
|
|
...
|
|
}: let
|
|
# Load the selected theme
|
|
themeName = nomarchyConfig.theme or "classical";
|
|
|
|
# Available themes
|
|
themes = {
|
|
classical = import ./classical/colors.nix;
|
|
# Future themes can be added here:
|
|
# nord = import ./nord/colors.nix;
|
|
# catppuccin = import ./catppuccin/colors.nix;
|
|
};
|
|
|
|
# Get the active theme, falling back to classical
|
|
theme = themes.${themeName} or themes.classical;
|
|
in {
|
|
# Export theme as a module option for other modules to consume
|
|
options.nomarchy.theme = lib.mkOption {
|
|
type = lib.types.attrs;
|
|
default = theme;
|
|
description = "The active nomarchy theme configuration";
|
|
};
|
|
|
|
config = {
|
|
# Set the theme in config
|
|
nomarchy.theme = theme;
|
|
|
|
# Install theme fonts
|
|
fonts.packages = with pkgs; [
|
|
font-awesome
|
|
nerd-fonts.jetbrains-mono
|
|
nerd-fonts.iosevka
|
|
nerd-fonts.victor-mono
|
|
nerd-fonts.fantasque-sans-mono
|
|
nerd-fonts.fira-code
|
|
nerd-fonts.monaspace
|
|
inter
|
|
];
|
|
|
|
fonts.fontconfig = {
|
|
enable = true;
|
|
defaultFonts = {
|
|
monospace = [theme.fonts.mono];
|
|
sansSerif = [theme.fonts.sans];
|
|
};
|
|
};
|
|
};
|
|
}
|