nixos/desktop/plasma.nix
Julian Sutter 61c3722f5a Refactor NixOS configuration: Move GUI apps to desktop modules and create headless config
- Move GUI applications from users/jsutter.nix to appropriate desktop modules:
  * office.nix: slack, signal-desktop
  * gaming.nix: discord, stremio
  * plasma.nix: arc-theme, pinentry, tigervnc
  * dev.nix: putty
  * media.nix (new): vlc, deluge

- Create systems/common-headless.nix for server configurations:
  * Remove GUI dependencies (Flatpak, XDG portals, fonts, graphics drivers)
  * Include only essential CLI tools and server packages
  * Disable X server completely

- Simplify skip01 configuration:
  * Remove Intel graphics drivers and OpenGL support
  * Use headless common configuration
  * Keep unified users/jsutter.nix (no split files)

- Update flake.nix to include new media.nix module in desktop systems

Result: Clean separation between desktop and headless configurations
with improved modularity and maintainability.
2025-07-30 23:17:55 -07:00

51 lines
1.3 KiB
Nix

{ config, pkgs, home-manager, ... }:
{
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.xserver.displayManager.lightdm.enable = false;
services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = with pkgs.kdePackages; [
khelpcenter
];
programs.dconf.enable = true;
programs.kdeconnect.enable = true;
hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [
kdePackages.spectacle
arc-theme # Desktop theme
pinentry # GUI pinentry for GPG
tigervnc # VNC client/server
];
# GNUPG Stuff
services.pcscd.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# RDP
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "startplasma-x11";
networking.firewall.allowedTCPPorts = [ 3389 ];
services.xrdp.openFirewall = true;
# Custom Keyboard Shortcuts for Plasma 6
environment.etc."kglobalshortcutsrc".text = ''
[khotkeys]
Ctrl+Alt+Delete=Lock Session,none,Lock the session
'';
# stop PackageKit polling
services.packagekit.enable = false;
# remove the Discover GUI + tray notifier
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
discover
discover-notifier
];
}