2021-11-15 22:28:01 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
cfg = config.ptw.programs.plasma;
|
|
|
|
in {
|
|
|
|
options.ptw.programs.plasma = {
|
|
|
|
enable = lib.mkEnableOption "Enable KDE Plasma";
|
2022-03-21 14:24:57 +00:00
|
|
|
mobile = {
|
|
|
|
enable = lib.mkEnableOption "Enable Plasma Mobile";
|
|
|
|
};
|
|
|
|
wayland = {
|
|
|
|
enable = lib.mkOption {
|
|
|
|
default = true;
|
|
|
|
description = "Ignore NixOS 'recommendations' and use the Wayland session by default";
|
|
|
|
};
|
|
|
|
};
|
2021-11-15 22:28:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
2022-03-21 14:24:57 +00:00
|
|
|
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";
|
2021-11-15 22:28:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
xdg.portal = {
|
|
|
|
enable = true;
|
|
|
|
extraPortals = [ pkgs.xdg-desktop-portal-kde ];
|
|
|
|
};
|
|
|
|
|
2022-06-17 08:11:31 +00:00
|
|
|
environment.systemPackages = let
|
|
|
|
kdePackages = with pkgs.libsForQt5; [
|
|
|
|
okular
|
|
|
|
kdeconnect-kde
|
|
|
|
breeze-gtk
|
|
|
|
bismuth
|
|
|
|
gwenview
|
|
|
|
yakuake
|
|
|
|
];
|
|
|
|
packages = with pkgs; [
|
|
|
|
kde-rounded-corners
|
|
|
|
index-fm
|
|
|
|
rsibreak
|
|
|
|
kalendar
|
|
|
|
kate
|
|
|
|
|
|
|
|
# Some Gnome software
|
|
|
|
gnome.totem
|
|
|
|
];
|
|
|
|
in kdePackages ++ packages;
|
2021-11-15 22:28:01 +00:00
|
|
|
};
|
|
|
|
}
|