78 lines
2.2 KiB
Nix
78 lines
2.2 KiB
Nix
# ==========================================
|
|
# 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
|
|
];
|
|
}
|