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>
79 lines
1.4 KiB
Nix
79 lines
1.4 KiB
Nix
# 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";
|
|
};
|
|
}
|