diff --git a/pkgs/pano/default.nix b/pkgs/pano/default.nix new file mode 100644 index 0000000..b0000ef --- /dev/null +++ b/pkgs/pano/default.nix @@ -0,0 +1,51 @@ +{ + stdenv, + gsound, + libgda6, + lib, + fetchzip, + substituteAll, + buildPackages, +}: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-pano"; + version = "23-alpha3"; + src = fetchzip { + url = "https://github.com/oae/gnome-shell-pano/releases/download/v${version}/pano@elhan.io.zip"; + hash = "sha256-LYpxsl/PC8hwz0ZdH5cDdSZPRmkniBPUCqHQxB4KNhc="; + stripRoot = false; + }; + patches = [ + (substituteAll { + src = ./pano_at_elhan.io.patch; + inherit gsound libgda6; + }) + ]; + + nativeBuildInputs = [ buildPackages.glib ]; + + buildPhase = '' + runHook preBuild + if [ -d schemas ]; then + glib-compile-schemas --strict schemas + fi + runHook postBuild + ''; + installPhase = '' + runHook preInstall + mkdir -p $out/share/gnome-shell/extensions/ + cp -r -T . $out/share/gnome-shell/extensions/pano@elhan.io + runHook postInstall + ''; + meta = { + description = "Next-gen Clipboard manager for Gnome Shell"; + homepage = "https://github.com/oae/gnome-shell-pano"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + }; + passthru = { + extensionPortalSlug = "pano"; + extensionUuid = "pano@elhan.io"; + }; +} diff --git a/pkgs/pano/pano_at_elhan.io.patch b/pkgs/pano/pano_at_elhan.io.patch new file mode 100644 index 0000000..3c47da1 --- /dev/null +++ b/pkgs/pano/pano_at_elhan.io.patch @@ -0,0 +1,30 @@ +diff --git a/__nix-prepend-search-paths.js b/__nix-prepend-search-paths.js +new file mode 100644 +index 0000000..bf3071b +--- /dev/null ++++ b/__nix-prepend-search-paths.js +@@ -0,0 +1,3 @@ ++import GIRepository from 'gi://GIRepository'; ++GIRepository.Repository.prepend_search_path('@gsound@/lib/girepository-1.0'); ++GIRepository.Repository.prepend_search_path('@libgda6@/lib/girepository-1.0'); +diff --git a/extension.js b/extension.js +index a3d6741..6a38850 100644 +--- a/extension.js ++++ b/extension.js +@@ -1,3 +1,4 @@ ++import './__nix-prepend-search-paths.js'; + import Gio from 'gi://Gio'; + import GLib from 'gi://GLib'; + import Shell from 'gi://Shell'; +diff --git a/prefs.js b/prefs.js +index 5dd94eb..634b2ef 100644 +--- a/prefs.js ++++ b/prefs.js +@@ -2,6 +2,7 @@ + import Gdk from 'gi://Gdk'; + import Gtk from 'gi://Gtk'; + import Adw from 'gi://Adw'; ++import './__nix-prepend-search-paths.js'; + import Gio from 'gi://Gio'; + import Pango from 'gi://Pango'; + import GObject from 'gi://GObject';