{ config, pkgs, lib, ... }: with lib; let cfg = config.modules.system.desktop.plasma; in { options.modules.system.desktop.plasma = { enable = mkEnableOption '' Enable plasma with my custom configurations ''; enableWallpaperEngine = mkEnableOption '' Enable wallpaper engine plugin for plasma ''; enableSddm = mkOption { type = types.bool; description = "Enable sddm with custom plasma"; default = true; }; }; config = mkIf cfg.enable { # Enable the X11 windowing system. services.xserver.enable = true; # Enable the KDE Plasma Desktop Environment. services.displayManager.sddm.enable = cfg.enableSddm; services.desktopManager.plasma6.enable = true; programs.kdeconnect.enable = true; environment.systemPackages = with pkgs; with kdePackages; [ krfb # Use by kdeconnect for virtualmonitorplugin "krfb-virtualmonitor" discover kgpg yakuake ] ++ lib.optionals cfg.enableWallpaperEngine [ wallpaper-engine-plugin ]; }; }