# ABOUTME: NixOS desktop environment module for Hyprland # ABOUTME: Configures greetd, audio, bluetooth, fonts, and system services { config, pkgs, lib, ... }: { imports = [ ../workstation-node.nix ]; # Force NetworkManager off - we use useDHCP globally networking.networkmanager.enable = lib.mkForce false; # Hyprland window manager programs.hyprland = { enable = true; xwayland.enable = true; }; # greetd display manager with tuigreet services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; user = "greeter"; }; }; }; # Essential desktop services services.dbus.enable = true; # polkit for privilege escalation security.polkit.enable = true; # DNS resolution services.resolved.enable = true; # Bluetooth support hardware.bluetooth = { enable = true; powerOnBoot = true; }; services.blueman.enable = true; # Audio with PipeWire security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; # direnv support programs.direnv.enable = true; # Fonts fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-color-emoji liberation_ttf fira-code fira-code-symbols nerd-fonts.caskaydia-mono ]; # Environment variables for Wayland environment.sessionVariables = { NIXOS_OZONE_WL = "1"; }; # Additional desktop packages environment.systemPackages = with pkgs; [ prusa-slicer ]; }