summary refs log tree commit diff
path: root/pkgs/desktops/gnome/extensions
diff options
context:
space:
mode:
author4JX <79868816+4JX@users.noreply.github.com>2023-05-25 01:27:23 +0200
committer4JX <79868816+4JX@users.noreply.github.com>2023-05-25 16:09:45 +0200
commit9630fbb8463784953d4c2e9457b9052cc9b15c4a (patch)
tree95dbae88345df654c3b86ee95ce8dd6aec78f225 /pkgs/desktops/gnome/extensions
parent4170a9ac9857867aa1e38ce99aab8cc71dae52e4 (diff)
downloadnixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar.gz
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar.bz2
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar.lz
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar.xz
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.tar.zst
nixpkgs-9630fbb8463784953d4c2e9457b9052cc9b15c4a.zip
gnomeExtensions.gtk4-desktop-icons-ng-ding: add patches to make it work
Diffstat (limited to 'pkgs/desktops/gnome/extensions')
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix14
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch109
2 files changed, 123 insertions, 0 deletions
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;