nixos/desktop/plasma.nix
Julian Sutter 6a4fa7dcef Implement modular Plasma application pinning system
- Add comprehensive Plasma taskbar configuration to users/jsutter.nix
- Configure pinned applications based on active desktop modules:
  * Base (plasma): konsole, dolphin, firefox, tigervnc, tor, kleopatra
  * Development (dev.nix): windsurf
  * Office (office.nix): slack, signal, libreoffice-writer, libreoffice-calc
  * Gaming (gaming.nix): discord, steam
- Add required packages to plasma.nix: firefox, tor-browser, kleopatra
- Use static list approach - Plasma ignores missing .desktop files
- Applications only appear when their corresponding module is active
- Maintains modularity while providing consistent desktop experience

Result: Clean, adaptive taskbar that automatically adjusts based on
which desktop modules are included in the system configuration.
2025-07-30 23:44:27 -07:00

54 lines
1.4 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
firefox # Web browser
tor-browser-bundle-bin # Tor browser
kleopatra # GPG key manager
];
# 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
];
}