diff --git a/desktop/default.nix b/desktop/default.nix index 93ded8f..fce3e93 100644 --- a/desktop/default.nix +++ b/desktop/default.nix @@ -11,5 +11,6 @@ with lib; ./gnome.nix ./printing.nix ./flatpak.nix + ./sddm.nix ]; } diff --git a/desktop/plasma.nix b/desktop/plasma.nix index 33fc012..460a274 100644 --- a/desktop/plasma.nix +++ b/desktop/plasma.nix @@ -1,13 +1,9 @@ -{config, pkgs, lib, sddm-unstable, ...}: +{config, pkgs, nixpkgs-unstable, lib, ...}: with lib; let cfg = config.aviallon.desktop; optimizeCfg = config.aviallon.optimizations; - _sddm = if cfg.sddm.unstable then pkgs.unstable.sddm else pkgs.sddm; - sddmOptimized = optimizeCfg.optimizePkg { recursive = 0; } _sddm; - sddmPackage = if optimizeCfg.enable then sddmOptimized else _sddm; in { - options.aviallon.desktop.sddm.unstable = mkEnableOption (mdDoc "bleeding-edge SDDM"); config = mkIf (cfg.enable && (cfg.environment == "plasma")) { # Enable the Plasma 5 Desktop Environment. @@ -22,10 +18,6 @@ in { # supportDDC = true; }; - systemd.tmpfiles.rules = mkAfter [ - "e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0" - "x ${config.users.users.sddm.home}/.cache" - ]; programs.firefox.enable = true; # Already brought in by ${nixpkgs}/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -35,48 +27,15 @@ in { 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"; + "${pkgs.libsForQt5.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; - wayland.enable = mkDefault true; - settings = { - Theme = { - CursorTheme = "breeze_cursors"; - }; - X11 = { - MinimumVT = mkOverride 50 1; - }; - }; - }; - - systemd.services.display-manager = { - serviceConfig = { - Restart = mkOverride 50 "on-failure"; - TimeoutStopSec = 10; - SendSIGHUP = true; - }; - after = [ - "getty@tty1.service" - ]; - conflicts = [ - "getty@tty1.service" - ]; - }; - - nixpkgs.overlays = [(final: prev: { mySddm = sddmPackage; } )]; - - services.xserver.displayManager.job = { - execCmd = mkOverride 2 "exec ${sddmPackage}/bin/sddm"; - }; - - + aviallon.desktop.sddm.enable = true; + environment.systemPackages = with pkgs; with libsForQt5; [ skanpage packagekit-qt diff --git a/desktop/sddm-unstable.nix b/desktop/sddm-unstable.nix new file mode 100644 index 0000000..726be63 --- /dev/null +++ b/desktop/sddm-unstable.nix @@ -0,0 +1,25 @@ +{ config, nixpkgs-unstable, lib, pkgs, ... }: +with lib; +let + cfg = config.aviallon.desktop; +in { + disabledModules = [ "services/x11/display-managers/sddm.nix" ]; + + imports = [ + (import (nixpkgs-unstable + /nixos/modules/services/x11/display-managers/sddm.nix)) + ]; + + config = { + services.xserver.displayManager.sddm.wayland.compositor = "kwin"; + + nixpkgs.overlays = [ + (final: prev: { + sddm = final.libsForQt5.sddm; + libsForQt5 = prev.libsForQt5.overrideScope (f: p: { + sddm = f.callPackage (import (nixpkgs-unstable + /pkgs/applications/display-managers/sddm)) {}; + }); + kdePackages = final.libsForQt5; + }) + ]; + }; +} diff --git a/desktop/sddm.nix b/desktop/sddm.nix new file mode 100644 index 0000000..14ff319 --- /dev/null +++ b/desktop/sddm.nix @@ -0,0 +1,55 @@ +{ config, pkgs, lib, ... }: +with lib; +let + cfg = config.aviallon.desktop; + sddmCfg = config.services.xserver.displayManager.sddm; +in { + options.aviallon.desktop.sddm.unstable = mkEnableOption "bleeding-edge SDDM"; + options.aviallon.desktop.sddm.enable = mkEnableOption "custom SDDM configuration"; + + imports = [ ./sddm-unstable.nix ]; + + config = mkIf cfg.sddm.enable { + + # Delete SDDM QMLCache + systemd.tmpfiles.rules = mkAfter [ + "e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0" + ]; + + # Prevents blinking cursor + services.xserver.displayManager.sddm = { + enable = true; + wayland.enable = mkDefault true; + settings = { + /*General.GreeterEnvironment = mkIf sddmCfg.wayland.enable (concatStringsSep "," [ + "QT_WAYLAND_SHELL_INTEGRATION=layer-shell" + "QT_QPA_PLATFORM=wayland" + ]);*/ + Theme = { + CursorTheme = "breeze_cursors"; + }; + /*Wayland = mkIf sddmCfg.wayland.enable { + CompositorCommand = mkOverride 60 "${pkgs.libsForQt5.kwin}/bin/kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1"; + };*/ + }; + }; + + systemd.services.display-manager = { + serviceConfig = { + Restart = mkOverride 50 "on-failure"; + TimeoutStopSec = 10; + SendSIGHUP = true; + }; + after = [ + "getty@tty1.service" + ]; + conflicts = [ + "getty@tty1.service" + ]; + }; + + #services.xserver.displayManager.job = mkIf config.services.xserver.displayManager.sddm.enable { + # execCmd = mkOverride 2 "exec ${sddmPackage}/bin/sddm"; + #}; + }; +}