diff --git a/pkgs/default.nix b/pkgs/default.nix index 75c62b8a..853cd307 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -6,6 +6,8 @@ pkgs.callPackage ./gnome-shell-extension-pop-shell.nix { }; libcs50 = pkgs.callPackage ./libcs50.nix { }; pop-launcher = pkgs.callPackage ./pop-launcher.nix { }; + gnome-shell-extension-fly-pie = + callPackage ./gnome-shell-extension-fly-pie.nix { }; pop-launcher-plugin-duckduckgo-bangs = pkgs.callPackage ./pop-launcher-plugin-duckduckgo-bangs.nix { }; tic-80 = pkgs.callPackage ./tic-80.nix { }; diff --git a/pkgs/gnome-shell-extension-fly-pie.nix b/pkgs/gnome-shell-extension-fly-pie.nix new file mode 100644 index 00000000..ac69f371 --- /dev/null +++ b/pkgs/gnome-shell-extension-fly-pie.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, bash, fetchFromGitHub, glib, gettext, zip, unzip }: + +# TODO: Deprecate this package once it is successfully packaged in nixpkgs. +# This is done automatically from the following PR: +# https://github.com/NixOS/nixpkgs/pull/118232 +# +# It is yet to be fixed as of the latest commit at the time of this writing (i.e., e09a539ccbb). +# Please refer to the `pkgs/desktops/gnome/extensions/{extensions.json,extensionRenames.nix}` in the future to check. +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-fly-pie"; + version = "12"; + + src = fetchFromGitHub { + owner = "Schneegans"; + repo = "Fly-Pie"; + rev = "v${version}"; + sha256 = "sha256-z56emJCnf9hXtY9C5czXRRXzzBgoK7683sH+D70v7J4="; + }; + + nativeBuildInputs = [ glib gettext ]; + buildInputs = [ zip ]; + skipConfigure = true; + + buildPhase = '' + # This will create the necessary files to be exported. + # And we'll use the generated zip file as a foundation for the output. + make SHELL=${bash}/bin/bash ${passthru.extensionUuid}.zip + ''; + + installPhase = let + extensionDir = + "$out/share/gnome-shell/extensions/${passthru.extensionUuid}"; + in '' + # Install the required extensions file. + mkdir -p ${extensionDir} + ${unzip}/bin/unzip ${passthru.extensionUuid}.zip -d ${extensionDir} + + # Install the GSchema. + install -Dm644 schemas/* -t "${ + glib.makeSchemaPath "$out" "${pname}-${version}" + }" + ''; + + passthru.extensionUuid = "flypie@schneegans.github.com"; + + meta = with lib; { + description = "A marking menu for GNOME shell"; + license = licenses.mit; + homepage = "https://github.com/Schneegans/Fly-Pie"; + platforms = platforms.linux; + }; +}