diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-06-27 16:15:56 +0200 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-06-27 16:16:01 +0200 |
commit | d50a1e97b19a647110fcc834f816c80c1a6b0e12 (patch) | |
tree | bbbef799eadf1bfc6aab6d3670811287f76ebdb9 /pkgs/desktops | |
parent | 442c0e86836a1c087782798b9a27548d42507fdf (diff) | |
parent | 8b6ea8ebd854c18c17e2a03e429c1b187ab0c1c2 (diff) |
Merge remote-tracking branch 'origin/master' into staging-next
Diffstat (limited to 'pkgs/desktops')
3 files changed, 69 insertions, 2 deletions
diff --git a/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix index febfa41711e06..82c183ca00d58 100644 --- a/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix +++ b/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix @@ -9,7 +9,6 @@ , dde-polkit-agent , qt5integration , libsecret -, libgnome-keyring }: stdenv.mkDerivation rec { @@ -39,7 +38,6 @@ stdenv.mkDerivation rec { dtkwidget dde-polkit-agent qt5integration - libgnome-keyring libsecret ]; diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix index 376a4a09bad8e..fa5d72cb1c49b 100644 --- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix +++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix @@ -11,6 +11,7 @@ "pidgin@muffinmad" = callPackage ./pidgin-im-integration { }; "pop-shell@system76.com" = callPackage ./pop-shell { }; "sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { }; + "systemd-manager@hardpixel.eu" = callPackage ./systemd-manager { }; "taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { }; "tilingnome@rliang.github.com" = callPackage ./tilingnome { }; "TopIcons@phocean.net" = callPackage ./topicons-plus { }; diff --git a/pkgs/desktops/gnome/extensions/systemd-manager/default.nix b/pkgs/desktops/gnome/extensions/systemd-manager/default.nix new file mode 100644 index 0000000000000..0b8e52af802b1 --- /dev/null +++ b/pkgs/desktops/gnome/extensions/systemd-manager/default.nix @@ -0,0 +1,68 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + glib, + # These loosen security a bit, so we don't install them by default. See also: + # https://github.com/hardpixel/systemd-manager?tab=readme-ov-file#without-password-prompt + allowPolkitPolicy ? "none", + config, + systemd ? config.systemd.package, +}: + +assert lib.elem allowPolkitPolicy [ + "none" + "pkexec" + "systemctl" +]; + +stdenvNoCC.mkDerivation rec { + pname = "gnome-shell-extension-systemd-manager"; + version = "16"; + + # Upstream doesn't post new versions in extensions.gnome.org anymore, see also: + # https://github.com/hardpixel/systemd-manager/issues/19 + src = fetchFromGitHub { + owner = "hardpixel"; + repo = "systemd-manager"; + rev = "v${version}"; + hash = "sha256-JecSIRj582jJWdrCQYBWFRkIhosxRhD3BxSAy8/0nVw="; + }; + + nativeBuildInputs = [ glib ]; + + postInstall = + '' + rm systemd-manager@hardpixel.eu/schemas/gschemas.compiled + glib-compile-schemas systemd-manager@hardpixel.eu/schemas + + mkdir -p $out/share/gnome-shell/extensions + mv systemd-manager@hardpixel.eu $out/share/gnome-shell/extensions + '' + + lib.optionalString (allowPolkitPolicy == "pkexec") '' + local bn=org.freedesktop.policykit.pkexec.systemctl.policy + mkdir -p $out/share/polkit-1/actions + substitute systemd-policies/$bn $out/share/polkit-1/actions/$bn \ + --replace-fail /usr/bin/systemctl ${lib.getBin systemd}/bin/systemctl + '' + + lib.optionalString (allowPolkitPolicy == "systemctl") '' + install -Dm0644 \ + systemd-policies/10-service_status.rules \ + $out/share/polkit-1/rules.d/10-gnome-extension-systemd-manager.rules + ''; + + passthru = { + extensionUuid = "systemd-manager@hardpixel.eu"; + extensionPortalSlug = "systemd-manager"; + }; + + meta = with lib; { + description = "GNOME Shell extension to manage systemd services"; + homepage = "https://github.com/hardpixel/systemd-manager"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ + linsui + doronbehar + ]; + }; +} |