diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 0b81a3f2d9b..40787968e03 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -94,6 +94,9 @@ in { # Let gnome-control-center find gnome-shell search providers export GNOME_SEARCH_PROVIDERS_DIR=${config.system.path}/share/gnome-shell/search-providers/ + # Let nautilus find extensions + export NAUTILUS_EXTENSION_DIR=${config.system.path}/lib/nautilus/extensions-3.0/ + # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update diff --git a/pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix index 888f622ef33..dceb7c817bd 100644 --- a/pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation rec { --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share:$GSETTINGS_SCHEMAS_PATH" ''; + patches = [ ./extension_dir.patch ]; + meta = with stdenv.lib; { platforms = platforms.linux; }; diff --git a/pkgs/desktops/gnome-3/3.12/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/3.12/core/nautilus/extension_dir.patch new file mode 100644 index 00000000000..317b8257992 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.12/core/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/libnautilus-private/nautilus-module.c b/libnautilus-private/nautilus-module.c +index 6273a76..4adcc8a 100644 +--- a/libnautilus-private/nautilus-module.c ++++ b/libnautilus-private/nautilus-module.c +@@ -242,11 +242,17 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + + if (!initialized) { + initialized = TRUE; +- +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ ++ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + + eel_debug_call_at_shutdown (free_module_objects); + }