{ stdenv, lib, fetchFromGitHub, glib, gjs, typescript, unstableGitUpdater }: stdenv.mkDerivation rec { pname = "gnome-shell-extension-pop-shell"; version = "unstable-2024-04-04"; src = fetchFromGitHub { owner = "pop-os"; repo = "shell"; rev = "cfa0c55e84b7ce339e5ce83832f76fee17e99d51"; hash = "sha256-IQJtTMYCkKyjqDKoR35qsgQkvXIrGLq+qtMDOTkvy08="; }; nativeBuildInputs = [ glib gjs typescript ]; buildInputs = [ gjs ]; patches = [ ./fix-gjs.patch ]; makeFlags = [ "XDG_DATA_HOME=$(out)/share" ]; passthru = { extensionUuid = "pop-shell@system76.com"; extensionPortalSlug = "pop-shell"; updateScript = unstableGitUpdater { }; }; postPatch = '' for file in */main.js; do substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs" done ''; preFixup = '' chmod +x $out/share/gnome-shell/extensions/pop-shell@system76.com/*/main.js ''; meta = with lib; { description = "Keyboard-driven layer for GNOME Shell"; license = licenses.gpl3Only; platforms = platforms.linux; maintainers = [ maintainers.genofire ]; homepage = "https://github.com/pop-os/shell"; }; }