diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index fafa4299cf82..f314272a18dd 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -273,6 +273,13 @@ services.touchegg. + + + pantheon-tweaks, + an unofficial system settings panel for Pantheon. Available as + programs.pantheon-tweaks. + +
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 1c0f043337ce..0b0ffc4b03b6 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -86,6 +86,8 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable - [touchegg](https://github.com/JoseExposito/touchegg), a multi-touch gesture recognizer. Available as [services.touchegg](#opt-services.touchegg.enable). +- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable). + ## Backward Incompatibilities {#sec-release-21.11-incompatibilities} - The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index b556afae653a..3a0fd65d3b3f 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -171,6 +171,7 @@ ./programs/npm.nix ./programs/noisetorch.nix ./programs/oblogout.nix + ./programs/pantheon-tweaks.nix ./programs/partition-manager.nix ./programs/plotinus.nix ./programs/proxychains.nix diff --git a/nixos/modules/programs/pantheon-tweaks.nix b/nixos/modules/programs/pantheon-tweaks.nix new file mode 100644 index 000000000000..0b8a19ea22c0 --- /dev/null +++ b/nixos/modules/programs/pantheon-tweaks.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + meta = { + maintainers = teams.pantheon.members; + }; + + ###### interface + options = { + programs.pantheon-tweaks.enable = mkEnableOption "Pantheon Tweaks, an unofficial system settings panel for Pantheon"; + }; + + ###### implementation + config = mkIf config.programs.pantheon-tweaks.enable { + services.xserver.desktopManager.pantheon.extraSwitchboardPlugs = [ pkgs.pantheon-tweaks ]; + }; +} diff --git a/pkgs/applications/system/pantheon-tweaks/default.nix b/pkgs/applications/system/pantheon-tweaks/default.nix new file mode 100644 index 000000000000..5834e8d96308 --- /dev/null +++ b/pkgs/applications/system/pantheon-tweaks/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchFromGitHub +, nix-update-script +, meson +, ninja +, pkg-config +, python3 +, vala +, gtk3 +, libgee +, pantheon +}: + +stdenv.mkDerivation rec { + pname = "pantheon-tweaks"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "pantheon-tweaks"; + repo = pname; + rev = version; + sha256 = "sha256-tAfDxX/RD7pO5PN/LaZ92Cj/iZtBI/EHb0+pORfYnPM="; + }; + + patches = [ + ./fix-paths.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + vala + ]; + + buildInputs = [ + gtk3 + libgee + pantheon.granite + pantheon.switchboard + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Unofficial system settings panel for Pantheon"; + longDescription = '' + Unofficial system settings panel for Pantheon + that lets you easily and safely customise your desktop's appearance. + Use programs.pantheon-tweaks.enable to add this to your switchboard. + ''; + homepage = "https://github.com/pantheon-tweaks/pantheon-tweaks"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.pantheon.members; + }; +} diff --git a/pkgs/applications/system/pantheon-tweaks/fix-paths.patch b/pkgs/applications/system/pantheon-tweaks/fix-paths.patch new file mode 100644 index 000000000000..b2e0e0a7b4c8 --- /dev/null +++ b/pkgs/applications/system/pantheon-tweaks/fix-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/Settings/ThemeSettings.vala b/src/Settings/ThemeSettings.vala +index 589121b..8e9c81e 100644 +--- a/src/Settings/ThemeSettings.vala ++++ b/src/Settings/ThemeSettings.vala +@@ -29,7 +29,7 @@ public class PantheonTweaks.ThemeSettings { + var themes = new Gee.ArrayList (); + + string[] dirs = { +- "/usr/share/" + path + "/", ++ "/run/current-system/sw/share/" + path + "/", + Environment.get_home_dir () + "/." + path + "/", + Environment.get_home_dir () + "/.local/share/" + path + "/"}; + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9ec3a9706fb4..323c830dc243 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8023,6 +8023,8 @@ with pkgs; pamtester = callPackage ../tools/security/pamtester { }; + pantheon-tweaks = callPackage ../applications/system/pantheon-tweaks { }; + paperless-ng = callPackage ../applications/office/paperless-ng { }; paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };