diff --git a/nixos/modules/programs/feedbackd.nix b/nixos/modules/programs/feedbackd.nix index dbace6c4fdaa..021ce805d376 100644 --- a/nixos/modules/programs/feedbackd.nix +++ b/nixos/modules/programs/feedbackd.nix @@ -17,10 +17,15 @@ in Your user needs to be in the `feedbackd` group to trigger effects ''; package = lib.mkPackageOption pkgs "feedbackd" { }; + theme-package = lib.mkPackageOption pkgs "feedbackd-device-themes" { + nullable = true; + }; }; }; config = lib.mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ + cfg.package + ] ++ (if cfg.theme-package != null then [ cfg.theme-package ] else [ ]); services.dbus.packages = [ cfg.package ]; services.udev.packages = [ cfg.package ]; diff --git a/pkgs/by-name/fe/feedbackd-device-themes/package.nix b/pkgs/by-name/fe/feedbackd-device-themes/package.nix new file mode 100644 index 000000000000..711e77962b09 --- /dev/null +++ b/pkgs/by-name/fe/feedbackd-device-themes/package.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + fetchFromGitLab, + meson, + ninja, + json-glib, + feedbackd, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "feedbackd-device-themes"; + version = "0.8.3"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "agx"; + repo = "feedbackd-device-themes"; + rev = "v${finalAttrs.version}"; + hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY="; + }; + + nativeBuildInputs = [ + meson + ninja + json-glib # Provides json-glib-validate + ]; + + nativeCheckInputs = [ + feedbackd # Provides fbd-theme-validate + ]; + + mesonFlags = [ + (lib.mesonOption "validate" (if finalAttrs.doCheck then "enabled" else "disabled")) + ]; + + doCheck = true; + + passthru = { + updateScript = nix-update-script { }; + }; + + strictDeps = true; + + meta = with lib; { + description = "Device specific feedback themes for Feedbackd"; + homepage = "https://gitlab.freedesktop.org/agx/feedbackd-device-themes"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + pacman99 + Luflosi + ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/fe/feedbackd/package.nix b/pkgs/by-name/fe/feedbackd/package.nix index 8ff14f82a79e..5092424b39e9 100644 --- a/pkgs/by-name/fe/feedbackd/package.nix +++ b/pkgs/by-name/fe/feedbackd/package.nix @@ -20,18 +20,10 @@ dbus, gmobile, umockdev, + feedbackd-device-themes, nix-update-script, }: -let - themes = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "agx"; - repo = "feedbackd-device-themes"; - rev = "v0.8.3"; - hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY="; - }; -in stdenv.mkDerivation (finalAttrs: { pname = "feedbackd"; version = "0.8.2"; @@ -93,7 +85,6 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' mkdir -p $out/lib/udev/rules.d sed "s|/usr/libexec/|$out/libexec/|" < $src/data/90-feedbackd.rules > $out/lib/udev/rules.d/90-feedbackd.rules - cp ${themes}/data/* $out/share/feedbackd/themes/ ''; postFixup = ''