summary refs log tree commit diff
path: root/pkgs/tools/misc/nautilus-open-any-terminal
diff options
context:
space:
mode:
authorFelix Buehler <account@buehler.rocks>2021-03-21 22:59:00 +0100
committerFelix Buehler <account@buehler.rocks>2022-02-03 00:07:58 +0100
commit4b259a5334b4bfe35c87ca86c12edea048da04d0 (patch)
tree206a5004b1ad61aaa99b5f0d0975f5fc09895f46 /pkgs/tools/misc/nautilus-open-any-terminal
parentc1d884944e08c8e9b49de6037394f0ac1847bf71 (diff)
downloadnixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar.gz
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar.bz2
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar.lz
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar.xz
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.tar.zst
nixpkgs-4b259a5334b4bfe35c87ca86c12edea048da04d0.zip
nautilus-open-any-terminal: init at 0.2.15
Diffstat (limited to 'pkgs/tools/misc/nautilus-open-any-terminal')
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/default.nix64
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch32
2 files changed, 96 insertions, 0 deletions
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/default.nix b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
new file mode 100644
index 00000000000..321b139ca15
--- /dev/null
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, pkg-config
+, dbus
+, dconf
+, fetchFromGitHub
+, glib
+, gnome
+, gobject-introspection
+, gsettings-desktop-schemas
+, gtk3
+, python3
+, substituteAll
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonPackage rec {
+  pname = "nautilus-open-any-terminal";
+  version = "0.2.15";
+
+  src = fetchFromGitHub {
+    owner = "Stunkymonkey";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-cc6Lh5XeAuU5Os4eJ0QcL6XJYB6DqxeUGaOf6m1OnpY=";
+  };
+
+  patches = [ ./hardcode-gsettings.patch ];
+
+  nativeBuildInputs = [
+    glib
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    dbus
+    dconf
+    gnome.nautilus
+    gnome.nautilus-python
+    gobject-introspection
+    gsettings-desktop-schemas
+    gtk3
+    python3.pkgs.pygobject3
+  ];
+
+  postPatch = ''
+    substituteInPlace nautilus_open_any_terminal/open_any_terminal_extension.py \
+      --subst-var-by gsettings_path ${glib.makeSchemaPath "$out" "$name"}
+  '';
+
+  postInstall = ''
+    glib-compile-schemas "$out/share/glib-2.0/schemas"
+  '';
+
+  PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
+
+  meta = with lib; {
+    description = "Extension for nautilus, which adds an context-entry for opening other terminal-emulators then `gnome-terminal`";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ stunkymonkey ];
+    homepage = "https://github.com/Stunkymonkey/nautilus-open-any-terminal";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
new file mode 100644
index 00000000000..402f78ed04b
--- /dev/null
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
@@ -0,0 +1,32 @@
+diff --git a/nautilus_open_any_terminal/open_any_terminal_extension.py b/nautilus_open_any_terminal/open_any_terminal_extension.py
+index b02a995..a616399 100644
+--- a/nautilus_open_any_terminal/open_any_terminal_extension.py
++++ b/nautilus_open_any_terminal/open_any_terminal_extension.py
+@@ -125,9 +125,10 @@ def set_terminal_args(*args):
+ 
+ class OpenAnyTerminalShortcutProvider(GObject.GObject, Nautilus.LocationWidgetProvider):
+     def __init__(self):
+-        source = Gio.SettingsSchemaSource.get_default()
+-        if source.lookup(GSETTINGS_PATH, True):
+-            self._gsettings = Gio.Settings.new(GSETTINGS_PATH)
++        source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
++        if True:
++            _schema = source.lookup(GSETTINGS_PATH, False)
++            self._gsettings = Gio.Settings.new_full(_schema, None, None);
+             self._gsettings.connect("changed", self._bind_shortcut)
+             self._create_accel_group()
+         self._window = None
+@@ -232,9 +233,10 @@ class OpenAnyTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
+         return items
+ 
+ 
+-source = Gio.SettingsSchemaSource.get_default()
+-if source is not None and source.lookup(GSETTINGS_PATH, True):
+-    _gsettings = Gio.Settings.new(GSETTINGS_PATH)
++source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
++if True:
++    _schema = source.lookup(GSETTINGS_PATH, False)
++    _gsettings = Gio.Settings.new_full(_schema, None, None);
+     _gsettings.connect("changed", set_terminal_args)
+     value = _gsettings.get_string(GSETTINGS_TERMINAL)
+     if value in TERM_PARAMS: