80 lines
1.6 KiB
Nix
80 lines
1.6 KiB
Nix
# 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
|
|
];
|
|
}
|