From 9630fbb8463784953d4c2e9457b9052cc9b15c4a Mon Sep 17 00:00:00 2001 From: 4JX <79868816+4JX@users.noreply.github.com> Date: Thu, 25 May 2023 01:27:23 +0200 Subject: gnomeExtensions.gtk4-desktop-icons-ng-ding: add patches to make it work --- .../gnome/extensions/extensionOverrides.nix | 14 +++ .../gtk4-ding_at_smedius.gitlab.com.patch | 109 +++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch (limited to 'pkgs/desktops') diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix index aba6bf6b3fc..394abf3577e 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix +++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix @@ -19,8 +19,10 @@ , smartmontools , substituteAll , touchegg +, util-linux , vte , wrapGAppsHook +, xdg-utils , xprop }: let @@ -94,6 +96,18 @@ super: lib.trivial.pipe super [ ''; })) + (patchExtension "gtk4-ding@smedius.gitlab.com" (old: { + patches = [ + (substituteAll { + inherit gjs util-linux xdg-utils; + util_linux = util-linux; + xdg_utils = xdg-utils; + src = ./extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch; + nautilus_gsettings_path = "${glib.getSchemaPath gnome.nautilus}"; + }) + ]; + })) + (patchExtension "pano@elhan.io" (old: { patches = [ (substituteAll { diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch new file mode 100644 index 00000000000..a0877b1461d --- /dev/null +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch @@ -0,0 +1,109 @@ +diff --git a/app/createThumbnail.js b/app/createThumbnail.js +index ebe5213..9f67873 100755 +--- a/app/createThumbnail.js ++++ b/app/createThumbnail.js +@@ -1,4 +1,4 @@ +-#!/usr/bin/gjs ++#!@gjs@/bin/gjs + + /* DING: Desktop Icons New Generation for GNOME Shell + * +diff --git a/app/ding.js b/app/ding.js +index b200be4..3ce05ef 100755 +--- a/app/ding.js ++++ b/app/ding.js +@@ -1,4 +1,4 @@ +-#!/usr/bin/env gjs ++#!@gjs@/bin/gjs + + /* DING: Desktop Icons New Generation for GNOME Shell + * +diff --git a/app/fileItemMenu.js b/app/fileItemMenu.js +index cadca48..9632ecc 100644 +--- a/app/fileItemMenu.js ++++ b/app/fileItemMenu.js +@@ -683,7 +683,7 @@ var FileItemMenu = class { + return; + } + let xdgEmailCommand = []; +- xdgEmailCommand.push('xdg-email'); ++ xdgEmailCommand.push('@xdg_utils@/bin/xdg-email'); + for (let fileItem of this._desktopManager.getCurrentSelection(false)) { + fileItem.unsetSelected(); + xdgEmailCommand.push('--attach'); +diff --git a/app/preferences.js b/app/preferences.js +index c89271c..29f0db8 100644 +--- a/app/preferences.js ++++ b/app/preferences.js +@@ -31,6 +31,7 @@ var Preferences = class { + this._extensionPath = Data.codePath; + this._Enums = Data.Enums; + let schemaSource = GioSSS.get_default(); ++ const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true); + this._desktopManager = null; + + // Gtk +@@ -38,7 +39,7 @@ var Preferences = class { + this.gtkSettings = new Gio.Settings({ settings_schema: schemaGtk }); + + // Gnome Files +- let schemaObj = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS, true); ++ let schemaObj = schemaSourceNautilus.lookup(this._Enums.SCHEMA_NAUTILUS, true); + if (!schemaObj) { + this.nautilusSettings = null; + this.CLICK_POLICY_SINGLE = false; +@@ -47,7 +48,7 @@ var Preferences = class { + } + + // Compression +- const compressionSchema = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS_COMPRESSION, true); ++ const compressionSchema = schemaSourceNautilus.lookup(this._Enums.SCHEMA_NAUTILUS_COMPRESSION, true); + if (!compressionSchema) + this.nautilusCompression = null; + else +diff --git a/app/thumbnailapp.js b/app/thumbnailapp.js +index b22bbe0..c5c7711 100755 +--- a/app/thumbnailapp.js ++++ b/app/thumbnailapp.js +@@ -1,4 +1,4 @@ +-#!/usr/bin/env gjs ++#!@gjs@/bin/gjs + + /* DING: Desktop Icons New Generation for GNOME Shell + * +diff --git a/extension.js b/extension.js +index 2e5bcaa..4eaa108 100644 +--- a/extension.js ++++ b/extension.js +@@ -373,7 +373,7 @@ function getDesktopGeometry() { + async function doKillAllOldDesktopProcesses() { + const procFolder = Gio.File.new_for_path('/proc'); + const processes = await FileUtils.enumerateDir(procFolder); +- const thisPath = `gjs ${GLib.build_filenamev([ ++ const thisPath = `@gjs@/bin/gjs ${GLib.build_filenamev([ + ExtensionUtils.getCurrentExtension().path, + 'app', + 'ding.js', +@@ -397,7 +397,7 @@ async function doKillAllOldDesktopProcesses() { + } + + if (contents.startsWith(thisPath)) { +- let proc = new Gio.Subprocess({ argv: ['/bin/kill', filename] }); ++ let proc = new Gio.Subprocess({ argv: ['@util_linux@/bin/kill', filename] }); + proc.init(null); + print(`Killing old DING process ${filename}`); + await proc.wait_async_promise(null); +diff --git a/prefs.js b/prefs.js +index 1ad0cad..d830f11 100644 +--- a/prefs.js ++++ b/prefs.js +@@ -46,7 +46,8 @@ function fillPreferencesWindow(window) { + let schemaSource = GioSSS.get_default(); + let schemaGtk = schemaSource.lookup(Enums.SCHEMA_GTK, true); + let gtkSettings = new Gio.Settings({ settings_schema: schemaGtk }); +- let schemaNautilus = schemaSource.lookup(Enums.SCHEMA_NAUTILUS, true); ++ const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true); ++ let schemaNautilus = schemaSourceNautilus.lookup(Enums.SCHEMA_NAUTILUS, true); + let nautilusSettings; + if (!schemaNautilus) + nautilusSettings = null; -- cgit 1.4.1