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>
63 lines
1.3 KiB
Nix
63 lines
1.3 KiB
Nix
# Home-manager configuration
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
nomarchyConfig,
|
|
...
|
|
}: let
|
|
username = nomarchyConfig.username;
|
|
homeDir = "/home/${username}";
|
|
|
|
# Keyboard layout formatting
|
|
kbLayouts = builtins.concatStringsSep "," nomarchyConfig.keyboardLayouts;
|
|
kbVariants = builtins.concatStringsSep "," nomarchyConfig.keyboardVariants;
|
|
in {
|
|
imports = [
|
|
./hyprland.nix
|
|
./waybar.nix
|
|
./rofi.nix
|
|
./scripts.nix
|
|
./shell.nix
|
|
./notifications.nix
|
|
./neovim.nix
|
|
];
|
|
|
|
home = {
|
|
inherit username;
|
|
homeDirectory = homeDir;
|
|
stateVersion = "24.11";
|
|
|
|
packages = with pkgs; [
|
|
# Fonts
|
|
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
|
|
];
|
|
|
|
sessionVariables = {
|
|
PATH = "$HOME/.cargo/bin:$HOME/.local/bin:$PATH";
|
|
EDITOR = "nvim";
|
|
VISUAL = "nvim";
|
|
};
|
|
};
|
|
|
|
fonts.fontconfig.enable = true;
|
|
|
|
# Pass keyboard config to hyprland module
|
|
_module.args.keyboardConfig = {
|
|
layouts = kbLayouts;
|
|
variants = kbVariants;
|
|
};
|
|
|
|
# Enable programs
|
|
programs.nix-init.enable = true;
|
|
programs.cmus.enable = true;
|
|
programs.satty.enable = true;
|
|
programs.yazi.enable = true;
|
|
}
|