diff options
author | Tor Hedin Brønner <torhedinbronner@gmail.com> | 2018-07-31 11:01:38 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2018-08-01 19:14:33 +0200 |
commit | ee34f2537a9e969ca0f4066db6a859ff210bebdd (patch) | |
tree | 821d160ddfe9744846caaa77cba0ecc87932034e /nixos/modules | |
parent | e8e0edd95ce05d2317c18f9054e7b9ba4b76ec6f (diff) | |
download | nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar.gz nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar.bz2 nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar.lz nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar.xz nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.tar.zst nixlib-ee34f2537a9e969ca0f4066db6a859ff210bebdd.zip |
nixos/gnome3: Add back `sessionPath`
Implement through `services.xserver.displayManager.sessionCommands`.
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/services/desktops/gnome3/gpaste.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/gnome3.nix | 26 |
2 files changed, 26 insertions, 1 deletions
diff --git a/nixos/modules/services/desktops/gnome3/gpaste.nix b/nixos/modules/services/desktops/gnome3/gpaste.nix index 512aac35a17a..5a8258775e0a 100644 --- a/nixos/modules/services/desktops/gnome3/gpaste.nix +++ b/nixos/modules/services/desktops/gnome3/gpaste.nix @@ -21,6 +21,7 @@ with lib; config = mkIf config.services.gnome3.gpaste.enable { environment.systemPackages = [ pkgs.gnome3.gpaste ]; services.dbus.packages = [ pkgs.gnome3.gpaste ]; + services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ]; systemd.packages = [ pkgs.gnome3.gpaste ]; }; } diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index b1c7e5a7aac0..f27d8886187e 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -54,6 +54,14 @@ in { description = "Enable Gnome 3 desktop manager."; }; + sessionPath = mkOption { + default = []; + example = literalExample "[ pkgs.gnome3.gpaste ]"; + description = "Additional list of packages to be added to the session search path. + Useful for gnome shell extensions or gsettings-conditionated autostart."; + apply = list: list ++ [ pkgs.gnome3.gnome-shell pkgs.gnome3.gnome-shell-extensions ]; + }; + extraGSettingsOverrides = mkOption { default = ""; type = types.lines; @@ -120,6 +128,22 @@ in { services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ]; + services.xserver.displayManager.sessionCommands = '' + if test "$XDG_CURRENT_DESKTOP" = "GNOME"; then + ${concatMapStrings (p: '' + if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} + fi + + if [ -d "${p}/lib/girepository-1.0" ]; then + export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib + fi + '') cfg.sessionPath} + fi + ''; + + # Override default mimeapps environment.variables.XDG_DATA_DIRS = [ "${mimeAppsList}/share" ]; @@ -133,7 +157,7 @@ in { environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules" "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" "${pkgs.gnome3.gvfs}/lib/gio/modules" ]; - environment.systemPackages = pkgs.gnome3.corePackages + environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath ++ (removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [ pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ ]; |