diff --git a/nixos/modules/services/x11/desktop-managers/lumina.nix b/nixos/modules/services/x11/desktop-managers/lumina.nix index 2224bcd5a2a5..419f5055d8be 100644 --- a/nixos/modules/services/x11/desktop-managers/lumina.nix +++ b/nixos/modules/services/x11/desktop-managers/lumina.nix @@ -23,12 +23,9 @@ in config = mkIf cfg.enable { - services.xserver.desktopManager.session = singleton { - name = "lumina"; - start = '' - exec ${pkgs.lumina.lumina}/bin/start-lumina-desktop - ''; - }; + services.xserver.displayManager.sessionPackages = [ + pkgs.lumina.lumina + ]; environment.systemPackages = pkgs.lumina.preRequisitePackages ++ diff --git a/pkgs/desktops/lumina/lumina/default.nix b/pkgs/desktops/lumina/lumina/default.nix index fb5a0cbea5c1..1b30b8cdb107 100644 --- a/pkgs/desktops/lumina/lumina/default.nix +++ b/pkgs/desktops/lumina/lumina/default.nix @@ -1,18 +1,17 @@ -{ stdenv, - mkDerivation, - fetchFromGitHub, - desktop-file-utils, - fluxbox, - numlockx, - qmake, - qtbase, - qtmultimedia, - qtsvg, - qttools, - qtx11extras, - xorg, - xscreensaver, - wrapGAppsHook +{ stdenv +, mkDerivation +, fetchFromGitHub +, fluxbox +, numlockx +, qmake +, qtbase +, qtmultimedia +, qtsvg +, qttools +, qtx11extras +, xorg +, xscreensaver +, wrapGAppsHook }: mkDerivation rec { @@ -33,19 +32,18 @@ mkDerivation rec { ]; buildInputs = [ - xorg.libxcb + fluxbox # window manager for Lumina DE + numlockx # required for changing state of numlock at login + qtbase + qtmultimedia + qtsvg + qtx11extras xorg.libXcursor xorg.libXdamage - xorg.xcbutilwm + xorg.libxcb xorg.xcbutilimage - qtbase - qtsvg - qtmultimedia - qtx11extras - fluxbox + xorg.xcbutilwm xscreensaver - desktop-file-utils - numlockx ]; patches = [ @@ -67,6 +65,12 @@ mkDerivation rec { # Fix location of fluxbox styles substituteInPlace src-qt5/core-utils/lumina-config/pages/page_fluxbox_settings.cpp \ --replace 'LOS::AppPrefix()+"share/fluxbox' "\"${fluxbox}/share/fluxbox" + + # Fix desktop files + for i in $(grep -lir 'OnlyShowIn=Lumina' src-qt5); do + echo ===== $i + substituteInPlace $i --replace 'OnlyShowIn=Lumina' 'OnlyShowIn=X-Lumina' + done ''; qmakeFlags = [ @@ -75,6 +79,8 @@ mkDerivation rec { "LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease" ]; + passthru.providedSessions = [ "Lumina-DE" ]; + meta = with stdenv.lib; { description = "A lightweight, portable desktop environment"; longDescription = ''