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:
54
themes/theme.nix
Normal file
54
themes/theme.nix
Normal file
@@ -0,0 +1,54 @@
|
||||
# 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];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user