2024-09-24 13:36:57 -05:00
|
|
|
{ lib, config, pkgs, ... }:
|
|
|
|
let
|
|
|
|
cfg = config.mySystem.de.kde;
|
2024-09-25 17:18:50 -05:00
|
|
|
flameshotOverride = pkgs.unstable.flameshot.override { enableWlrSupport = true; };
|
2024-09-24 13:36:57 -05:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options = {
|
|
|
|
mySystem.de.kde = {
|
2024-10-28 14:06:14 -05:00
|
|
|
enable = lib.mkEnableOption "KDE" // { default = false; };
|
2024-09-24 13:36:57 -05:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-10-28 14:06:14 -05:00
|
|
|
config = lib.mkIf cfg.enable {
|
2024-09-24 13:36:57 -05:00
|
|
|
# Ref: https://wiki.nixos.org/wiki/KDE
|
|
|
|
|
2024-11-07 17:01:21 -06:00
|
|
|
|
2024-09-24 13:36:57 -05:00
|
|
|
# KDE
|
|
|
|
services = {
|
|
|
|
displayManager = {
|
|
|
|
sddm = {
|
|
|
|
enable = true;
|
|
|
|
wayland = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
desktopManager.plasma6.enable = true;
|
|
|
|
};
|
2024-11-07 17:01:21 -06:00
|
|
|
|
|
|
|
security = {
|
|
|
|
# realtime process priority
|
|
|
|
rtkit.enable = true;
|
|
|
|
# KDE Wallet PAM integration for unlocking the default wallet on login
|
|
|
|
pam.services."sddm".kwallet.enable = true;
|
|
|
|
};
|
2024-09-25 19:09:22 -05:00
|
|
|
|
|
|
|
# enable pipewire for sound
|
|
|
|
services.pipewire = {
|
|
|
|
enable = true;
|
|
|
|
alsa.enable = true;
|
|
|
|
alsa.support32Bit = true;
|
|
|
|
pulse.enable = true;
|
|
|
|
jack.enable = true;
|
|
|
|
};
|
|
|
|
|
2024-09-24 13:36:57 -05:00
|
|
|
|
|
|
|
# extra pkgs and extensions
|
|
|
|
environment = {
|
|
|
|
systemPackages = with pkgs; [
|
|
|
|
wl-clipboard # ls ~/Downloads | wl-copy or wl-paste > clipboard.txt
|
|
|
|
playerctl # gsconnect play/pause command
|
2024-10-28 16:33:27 -05:00
|
|
|
vorta # Borg backup tool
|
2024-09-25 18:08:20 -05:00
|
|
|
flameshotOverride # screenshot tool
|
|
|
|
libsForQt5.qt5.qtbase # for vivaldi compatibility
|
2024-09-30 13:35:02 -05:00
|
|
|
kdePackages.discover # KDE software center -- mainly for flatpak updates
|
2024-09-24 13:36:57 -05:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
# enable kdeconnect
|
|
|
|
# this method also opens the firewall ports required when enable = true
|
|
|
|
programs.kdeconnect = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|