diff --git a/pkgs/desktops/gnome/extensions/collisions.json b/pkgs/desktops/gnome/extensions/collisions.json index 7aa61aa30e1d4..f54e3852aeed6 100644 --- a/pkgs/desktops/gnome/extensions/collisions.json +++ b/pkgs/desktops/gnome/extensions/collisions.json @@ -3,42 +3,41 @@ "Applications_Menu@rmy.pobox.com", "apps-menu@gnome-shell-extensions.gcampax.github.com" ], - "persian-calendar": [ - "PersianCalendar@oxygenws.com", - "persian-calendar@iamrezamousavi.gmail.com" + "battery-time": [ + "batime@martin.zurowietz.de", + "battery-time@eetumos.github.com", + "batterytime@typeof.pw" ], - "system-monitor": [ - "System_Monitor@bghome.gmail.com", - "system-monitor@gnome-shell-extensions.gcampax.github.com" + "eur-usd": [ + "eur-usd-gshell@vezza.github.com", + "usd-mxn-gshell@kinduff.github.com" + ], + "fullscreen-to-empty-workspace": [ + "fullscreen-to-empty-workspace2@corgijan.dev", + "fullscreen-to-empty-workspace@aiono.dev" ], "fuzzy-clock": [ "FuzzyClock@fire-man-x", - "FuzzyClock@johngoetz", - "fuzzy-clock@keepawayfromfire.co.uk" + "FuzzyClock@johngoetz" ], - "battery-time": [ - "batime@martin.zurowietz.de", - "battery-time@eetumos.github.com", - "batterytime@typeof.pw" + "mouse-follows-focus": [ + "mouse-follows-focus@crisidev.org", + "mousefollowsfocus@matthes.biz" ], "nepali-calendar": [ "nepali-calendar-gs-extension@subashghimire.info.np", "nepali-date@biplab" ], - "mouse-follows-focus": [ - "mouse-follows-focus@crisidev.org", - "mousefollowsfocus@matthes.biz" + "persian-calendar": [ + "PersianCalendar@oxygenws.com", + "persian-calendar@iamrezamousavi.gmail.com" ], "power-profile-indicator": [ "power-profile-indicator@laux.wtf", "power-profile@fthx" ], - "fullscreen-to-empty-workspace": [ - "fullscreen-to-empty-workspace2@corgijan.dev", - "fullscreen-to-empty-workspace@aiono.dev" - ], - "eur-usd": [ - "eur-usd-gshell@vezza.github.com", - "usd-mxn-gshell@kinduff.github.com" + "system-monitor": [ + "System_Monitor@bghome.gmail.com", + "system-monitor@gnome-shell-extensions.gcampax.github.com" ] } diff --git a/pkgs/desktops/gnome/extensions/default.nix b/pkgs/desktops/gnome/extensions/default.nix index a8bb071473a30..db47ad5da68a3 100644 --- a/pkgs/desktops/gnome/extensions/default.nix +++ b/pkgs/desktops/gnome/extensions/default.nix @@ -79,7 +79,7 @@ rec { gnome48Extensions = mapUuidNames (produceExtensionsList "48"); # Keep the last three versions in here - gnomeExtensions = lib.trivial.pipe (gnome45Extensions // gnome46Extensions // gnome47Extensions) [ + gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [ (v: builtins.removeAttrs v [ "__attrsFailEvaluation" ]) # Apply some custom patches for automatically packaged extensions (callPackage ./extensionOverrides.nix { }) diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix index 681adcf192a16..6e180edce1870 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix +++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix @@ -1,7 +1,6 @@ { lib, fetchFromGitLab, - fetchzip, cpio, ddcutil, easyeffects, @@ -9,9 +8,7 @@ glib, nautilus, gobject-introspection, - gsound, hddtemp, - libgda6, libgtop, libhandy, liquidctl, @@ -171,22 +168,6 @@ lib.trivial.pipe super [ } )) - (patchExtension "pano@elhan.io" ( - final: prev: { - version = "23-alpha3"; - src = fetchzip { - url = "https://github.com/oae/gnome-shell-pano/releases/download/v${final.version}/pano@elhan.io.zip"; - hash = "sha256-LYpxsl/PC8hwz0ZdH5cDdSZPRmkniBPUCqHQxB4KNhc="; - stripRoot = false; - }; - preInstall = '' - substituteInPlace extension.js \ - --replace-fail "import Gda from 'gi://Gda?version>=5.0'" "imports.gi.GIRepository.Repository.prepend_search_path('${libgda6}/lib/girepository-1.0'); const Gda = (await import('gi://Gda')).default" \ - --replace-fail "import GSound from 'gi://GSound'" "imports.gi.GIRepository.Repository.prepend_search_path('${gsound}/lib/girepository-1.0'); const GSound = (await import('gi://GSound')).default" - ''; - } - )) - (patchExtension "system-monitor@gnome-shell-extensions.gcampax.github.com" (old: { patches = [ (replaceVars diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix index e8494f6631da8..6758dcace5593 100644 --- a/pkgs/desktops/gnome/extensions/extensionRenames.nix +++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix @@ -14,7 +14,6 @@ "System_Monitor@bghome.gmail.com" = "system-monitor-2"; "FuzzyClock@fire-man-x" = "fuzzy-clock-3"; - "fuzzy-clock@keepawayfromfire.co.uk" = "fuzzy-clock-2"; "FuzzyClock@johngoetz" = "fuzzy-clock"; "battery-time@eetumos.github.com" = "battery-time-3"; diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix index b1b6e0695b2f5..0ed4252b48f4a 100644 --- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix +++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix @@ -20,4 +20,6 @@ "unite@hardpixel.eu" = callPackage ./unite { }; "valent@andyholmes.ca" = callPackage ./valent { }; "window-corner-preview@fabiomereu.it" = callPackage ./window-corner-preview { }; + # Can be removed when https://github.com/oae/gnome-shell-pano/issues/271 resolved + "pano@elhan.io" = callPackage ./pano { }; } diff --git a/pkgs/desktops/gnome/extensions/pano/default.nix b/pkgs/desktops/gnome/extensions/pano/default.nix new file mode 100644 index 0000000000000..906b31727b409 --- /dev/null +++ b/pkgs/desktops/gnome/extensions/pano/default.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenv, + fetchzip, + glib, + libgda6, + gsound, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gnome-shell-extension-pano"; + version = "23-alpha5"; + + src = fetchzip { + url = "https://github.com/oae/gnome-shell-pano/releases/download/v${finalAttrs.version}/pano@elhan.io.zip"; + hash = "sha256-kTaJOSyFtBa/fl3Mot8Q8qyhwJwhcbBY4FvdztqUP4w="; + stripRoot = false; + }; + + nativeBuildInputs = [ + glib + ]; + + buildPhase = '' + runHook preBuild + glib-compile-schemas --strict schemas + runHook postBuild + ''; + + preInstall = '' + substituteInPlace extension.js \ + --replace-fail "import Gda from 'gi://Gda?version>=5.0'" "imports.gi.GIRepository.Repository.prepend_search_path('${libgda6}/lib/girepository-1.0'); const Gda = (await import('gi://Gda')).default" \ + --replace-fail "import GSound from 'gi://GSound'" "imports.gi.GIRepository.Repository.prepend_search_path('${gsound}/lib/girepository-1.0'); const GSound = (await import('gi://GSound')).default" + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/gnome-shell/extensions + cp -r -T . $out/share/gnome-shell/extensions/pano@elhan.io + runHook postInstall + ''; + + passthru = { + extensionPortalSlug = "pano"; + extensionUuid = "pano@elhan.io"; + }; + + meta = with lib; { + description = "Next-gen Clipboard Manager for Gnome Shell"; + homepage = "https://github.com/oae/gnome-shell-pano"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ honnip ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/desktops/gnome/extensions/update-extensions.py b/pkgs/desktops/gnome/extensions/update-extensions.py index 222d9b77c8f3e..9faf6a574b1c5 100755 --- a/pkgs/desktops/gnome/extensions/update-extensions.py +++ b/pkgs/desktops/gnome/extensions/update-extensions.py @@ -35,7 +35,7 @@ } # shell versions that we want to put into the gnomeExtensions attr set -versions_to_merge = ["45", "46", "47"] +versions_to_merge = ["46", "47", "48"] # Some type alias to increase readability of complex compound types PackageName = str @@ -351,7 +351,7 @@ def find_collisions( package_name_registry.setdefault(pname, set()).add(uuid) return { pname: sorted(uuids) - for pname, uuids in package_name_registry.items() + for pname, uuids in sorted(package_name_registry.items()) if len(uuids) > 1 }