# Minimal niri desktop for enzo — deliberately separate from ../../profiles/desktop.nix # so the laptop can grow on its own terms. Add to it (or switch to the shared # profile) whenever you want more. { pkgs, ... }: { # --- Session / login --- programs.niri.enable = true; programs.dconf.enable = true; services.greetd = { enable = true; settings.default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd niri-session"; user = "greeter"; }; }; # Let tuigreet write its cache (for --remember). systemd.services.greetd.serviceConfig = { Type = "idle"; StandardInput = "tty"; StandardOutput = "tty"; StandardError = "journal"; TTYReset = true; TTYVHangup = true; TTYVTDisallocate = true; }; # --- Graphics --- hardware.graphics.enable = true; # --- Audio (playback only; no rtkit/jack — enzo isn't for recording). # If you ever hear dropouts under load, add: security.rtkit.enable = true; services.pulseaudio.enable = false; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; }; # --- Fonts (minimal) --- fonts.enableDefaultPackages = true; fonts.packages = with pkgs; [ noto-fonts nerd-fonts.symbols-only adwaita-fonts ]; environment.sessionVariables = { XCURSOR_THEME = "Adwaita"; XCURSOR_SIZE = "24"; }; # --- User: groups + niri essentials --- users.users.hwebs.extraGroups = [ "audio" "input" ]; programs.firefox.enable = true; users.users.hwebs.packages = with pkgs; [ ghostty # terminal fuzzel # launcher swaybg # wallpaper xwayland-satellite # run X11 apps under niri mako # notifications libnotify # notify-send yambar # text status bar gnupg # gpg pinentry-gnome3 # passphrase prompt for the gpg agent ]; # --- GPG --- # Agent + a GTK pinentry (works under niri). enableSSHSupport is left off so # gpg-agent doesn't hijack the ssh-agent socket for your existing SSH key; # turn it on only if you sign in via a GPG auth subkey. programs.gnupg.agent.enable = true; # --- Console / greeter font (HiDPI panel) --- # The eDP panel is high-density, so the kernel VT and tuigreet render with a # tiny 8x16 font. A large Terminus bitmap font makes the TTY and the greeter # legible; earlySetup applies it from initrd so it's big from the first frame. # Sizes: ter-v{16,18,20,22,24,28,32}n — bump/drop to taste. console = { earlySetup = true; packages = [ pkgs.terminus_font ]; font = "ter-v32n"; }; }