mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 04:12:44 +03:00
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".
This commit is contained in:
parent
63d930878b
commit
2e7105467b
@ -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" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -63,6 +63,68 @@ let
|
||||
screengrab = callPackage ./optional/screengrab { };
|
||||
qlipper = callPackage ./optional/qlipper { };
|
||||
|
||||
preRequisitePackages = [
|
||||
pkgs.gvfs # virtual file systems support for PCManFM-QT
|
||||
pkgs.kde5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
|
||||
pkgs.kde5.libkscreen # provides plugins for screen management software
|
||||
pkgs.libfm
|
||||
pkgs.libfm-extra
|
||||
pkgs.lxmenu-data
|
||||
pkgs.menu-cache
|
||||
pkgs.openbox # default window manager
|
||||
pkgs.qt5.qtsvg # provides QT5 plugins for svg icons
|
||||
];
|
||||
|
||||
corePackages = [
|
||||
### BASE
|
||||
libqtxdg
|
||||
libsysstat
|
||||
liblxqt
|
||||
|
||||
### CORE 1
|
||||
libfm-qt
|
||||
lxqt-about
|
||||
lxqt-admin
|
||||
lxqt-common
|
||||
lxqt-config
|
||||
lxqt-globalkeys
|
||||
lxqt-l10n
|
||||
lxqt-notificationd
|
||||
lxqt-openssh-askpass
|
||||
lxqt-policykit
|
||||
lxqt-powermanagement
|
||||
lxqt-qtplugin
|
||||
lxqt-session
|
||||
lxqt-sudo
|
||||
pavucontrol-qt
|
||||
|
||||
### CORE 2
|
||||
lxqt-panel
|
||||
lxqt-runner
|
||||
pcmanfm-qt
|
||||
];
|
||||
|
||||
optionalPackages = [
|
||||
### LXQt project
|
||||
qterminal
|
||||
compton-conf
|
||||
obconf-qt
|
||||
lximage-qt
|
||||
|
||||
### QtDesktop project
|
||||
qps
|
||||
screengrab
|
||||
|
||||
### Qlipper
|
||||
qlipper
|
||||
|
||||
### Default icon theme
|
||||
pkgs.kde5.oxygen-icons5
|
||||
|
||||
### Screen saver
|
||||
pkgs.xscreensaver
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
in self
|
||||
|
Loading…
Reference in New Issue
Block a user