initial config
This commit is contained in:
77
modules/system/desktop.nix
Normal file
77
modules/system/desktop.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
# ==========================================
|
||||
# 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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user