{config, pkgs, lib, ...}: with lib; let cfg = config.aviallon.desktop; optimizeCfg = config.aviallon.optimizations; in { config = mkIf (cfg.enable && (cfg.environment == "plasma")) { # Enable the Plasma 5 Desktop Environment. services.xserver.desktopManager.plasma5 = { enable = true; runUsingSystemd = true; useQtScaling = true; supportDDC = true; }; systemd.tmpfiles.rules = mkAfter [ "e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0" "x ${config.users.users.sddm.home}/.cache" ]; environment.etc = { "chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = "${pkgs.plasma-browser-integration}/etc/chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json"; }; programs.chromium.extensions = [ "cimiefiiaegbelhefglklhhakcgmhkai" # Plasma Browser Integration ]; # Prevents blinking cursor services.xserver.displayManager.sddm = { enable = true; settings = { Theme = { CursorTheme = "breeze_cursors"; }; X11 = { MinimumVT = mkOverride 50 1; }; General = { DisplayServer = "wayland"; }; }; }; services.xserver.displayManager.job = let sddmOptimized = optimizeCfg.optimizePkg { recursive = 0; } pkgs.sddm; sddmPackage = if optimizeCfg.enable then sddmOptimized else pkgs.sddm; in { execCmd = mkForce "exec ${sddmPackage}/bin/sddm"; }; environment.systemPackages = with pkgs; with libsForQt5; [ skanpage packagekit-qt discover akonadi kmail kdepim-addons kdepim-runtime korganizer dolphin kio-fuse konsole kate yakuake pinentry-qt plasma-pa ark kolourpaint krdc libreoffice-qt myFirefox ]; aviallon.desktop.browser.firefox.overrides.enablePlasmaBrowserIntegration = true; environment.profileRelativeSessionVariables = { QT_PLUGIN_PATH = mkForce []; # Remove as it causes many issues when pulling one package from nixos-unstable }; xdg.portal = { enable = mkDefault true; }; }; }