{ config, lib, pkgs, ... }: let cfg = config.ptw.programs.plasma; in { options.ptw.programs.plasma = { enable = lib.mkEnableOption "Enable KDE Plasma"; mobile = { enable = lib.mkEnableOption "Enable Plasma Mobile"; }; wayland = { enable = lib.mkOption { default = true; description = "Ignore NixOS 'recommendations' and use the Wayland session by default"; }; }; }; config = lib.mkIf cfg.enable { services.xserver = { desktopManager.plasma5 = { enable = true; runUsingSystemd = true; supportDDC = true; mobile.enable = cfg.mobile.enable; }; # See https://github.com/NixOS/nixpkgs/commit/a506f9c79700255c215dddb53455d5e2bed6c1af displayManager.defaultSession = lib.mkIf cfg.wayland.enable "plasmawayland"; }; xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-kde ]; }; environment.systemPackages = with pkgs; [ #yakuake libsForQt5.okular libsForQt5.kdeconnect-kde libsForQt5.breeze-gtk libsForQt5.bismuth #kde-rounded-corners index-fm #kasts-git rsibreak kalendar kate ]; }; }