diff options
author | Felix Buehler <account@buehler.rocks> | 2021-03-21 22:59:00 +0100 |
---|---|---|
committer | Felix Buehler <account@buehler.rocks> | 2022-02-03 00:07:58 +0100 |
commit | 4b259a5334b4bfe35c87ca86c12edea048da04d0 (patch) | |
tree | 206a5004b1ad61aaa99b5f0d0975f5fc09895f46 /pkgs/tools/misc/nautilus-open-any-terminal | |
parent | c1d884944e08c8e9b49de6037394f0ac1847bf71 (diff) | |
download | nixpkgs-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.nix | 64 | ||||
-rw-r--r-- | pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch | 32 |
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: |