# ========================================== # DESKTOP ENVIRONMENT — Hyprland + Waybar + Walker # ========================================== # Omarchy-inspired: keyboard-first tiling Wayland compositor # with a clean status bar and fast application launcher. # ========================================== { config, pkgs, ... }: { # Hyprland compositor programs.hyprland = { enable = true; xwayland.enable = true; }; # greetd + tuigreet (minimal TUI login — no bloated DMs) services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --cmd Hyprland"; user = "greeter"; }; }; }; # Disable other display managers services.xserver.enable = false; # Polkit for privilege escalation prompts security.polkit.enable = true; # GNOME Keyring for secrets/passwords services.gnome.gnome-keyring.enable = true; security.pam.services.greetd.enableGnomeKeyring = true; # Screen locking programs.hyprlock.enable = true; # Idle management services.hypridle.enable = true; # XDG Desktop Portal (screen sharing, file pickers) xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk ]; }; # Keyboard — caps lock as escape (omarchy default) services.xserver.xkb = { layout = "us"; variant = ""; options = "caps:escape"; }; # Desktop packages available system-wide environment.systemPackages = with pkgs; [ waybar # Status bar walker # Application launcher mako # Notification daemon wl-clipboard # Wayland clipboard cliphist # Clipboard history brightnessctl # Backlight control playerctl # Media key control swayosd # On-screen display for volume/brightness grim # Screenshot slurp # Region selection swappy # Screenshot editor wdisplays # Display configurator networkmanagerapplet # Tray network widget blueman # Bluetooth manager polkit_gnome # Polkit GUI agent ]; }