summary refs log tree commit diff
path: root/nixos/modules/services/x11/desktop-managers/lxqt.nix
diff options
context:
space:
mode:
authorromildo <malaquias@gmail.com>2016-11-17 09:52:12 -0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2016-12-15 22:45:06 +0100
commit2e7105467b22292eca1fc37c2c8019e6aacc7051 (patch)
treead2cac11f1efc9e2c3c65e16075c376be2b2107b /nixos/modules/services/x11/desktop-managers/lxqt.nix
parent63d930878b721f5775399209e8a3e78b4237c324 (diff)
downloadnixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar.gz
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar.bz2
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar.lz
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar.xz
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.tar.zst
nixpkgs-2e7105467b22292eca1fc37c2c8019e6aacc7051.zip
lxqt: better organize system packages
Split packages in three categories, all of them going into the system
package list:
- pre-requisite packages
- core packages
- optional packages

Add a new configuration option 'environment.lxqt.excludePackages' to
specify optional LXQt packages that should be excluded from system
packages.

Add 'gvfs' as a pre-requisite package, needed by 'pcmanfm-qt' to
handle virtual places, like "Computer" and "Network".
Diffstat (limited to 'nixos/modules/services/x11/desktop-managers/lxqt.nix')
-rw-r--r--nixos/modules/services/x11/desktop-managers/lxqt.nix66
1 files changed, 24 insertions, 42 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix
index c385e74dbb2..89ad2882363 100644
--- a/nixos/modules/services/x11/desktop-managers/lxqt.nix
+++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix
@@ -4,6 +4,14 @@ with lib;
 
 let
 
+  # Remove packages of ys from xs, based on their names
+  removePackagesByName = xs: ys:
+    let
+      pkgName = drv: (builtins.parseDrvName drv.name).name;
+      ysNames = map pkgName ys;
+    in
+      filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
+
   xcfg = config.services.xserver;
   cfg = xcfg.desktopManager.lxqt;
 
@@ -18,8 +26,14 @@ in
       description = "Enable the LXQt desktop manager";
     };
 
-  };
+    environment.lxqt.excludePackages = mkOption {
+      default = [];
+      example = literalExample "[ pkgs.lxqt.qterminal ]";
+      type = types.listOf types.package;
+      description = "Which LXQt packages to exclude from the default environment";
+    };
 
+  };
 
   config = mkIf (xcfg.enable && cfg.enable) {
 
@@ -31,47 +45,12 @@ in
       '';
     };
 
-    environment.systemPackages = [
-      pkgs.kde5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
-      pkgs.kde5.libkscreen # provides plugins for screen management software
-      pkgs.kde5.oxygen-icons5 # default icon theme
-      pkgs.libfm
-      pkgs.libfm-extra
-      pkgs.lxmenu-data
-      pkgs.lxqt.compton-conf
-      pkgs.lxqt.libfm-qt
-      pkgs.lxqt.liblxqt
-      pkgs.lxqt.libqtxdg
-      pkgs.lxqt.libsysstat
-      pkgs.lxqt.lximage-qt
-      pkgs.lxqt.lxqt-about
-      pkgs.lxqt.lxqt-admin
-      pkgs.lxqt.lxqt-common
-      pkgs.lxqt.lxqt-config
-      pkgs.lxqt.lxqt-globalkeys
-      pkgs.lxqt.lxqt-l10n
-      pkgs.lxqt.lxqt-notificationd
-      pkgs.lxqt.lxqt-openssh-askpass
-      pkgs.lxqt.lxqt-panel
-      pkgs.lxqt.lxqt-policykit
-      pkgs.lxqt.lxqt-powermanagement
-      pkgs.lxqt.lxqt-qtplugin
-      pkgs.lxqt.lxqt-runner
-      pkgs.lxqt.lxqt-session
-      pkgs.lxqt.lxqt-sudo
-      pkgs.lxqt.obconf-qt
-      pkgs.lxqt.pavucontrol-qt
-      pkgs.lxqt.pcmanfm-qt
-      pkgs.lxqt.qlipper
-      pkgs.lxqt.qps
-      pkgs.lxqt.qterminal
-      pkgs.lxqt.qtermwidget
-      pkgs.lxqt.screengrab
-      pkgs.menu-cache
-      pkgs.openbox # default window manager
-      pkgs.qt5.qtsvg # provides QT5 plugins for svg icons
-      pkgs.xscreensaver
-    ];
+    environment.systemPackages =
+      pkgs.lxqt.preRequisitePackages ++
+      pkgs.lxqt.corePackages ++
+      (removePackagesByName
+        pkgs.lxqt.optionalPackages
+        config.environment.lxqt.excludePackages);
 
     # Link some extra directories in /run/current-system/software/share
     environment.pathsToLink = [
@@ -80,5 +59,8 @@ in
       "/share/lxqt"
     ];
 
+    environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.gvfs}/lib/gio/modules" ];
+
   };
+
 }