diff --git a/pkgs/by-name/lu/luminance/package.nix b/pkgs/by-name/lu/luminance/package.nix new file mode 100644 index 000000000000..cad11f55d30e --- /dev/null +++ b/pkgs/by-name/lu/luminance/package.nix @@ -0,0 +1,83 @@ +{ + lib, + stdenv, + ddcutil, + fetchFromGitHub, + gtk4, + installShellFiles, + libadwaita, + nix-update-script, + pkg-config, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "luminance"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "sidevesh"; + repo = "Luminance"; + rev = "refs/tags/${finalAttrs.version}"; + hash = "sha256-1xDRs+OBzcrB75pILA3ZxIrZEleWVBROBNZz0MsCWnA="; + }; + + # Use our own ddcbc-api source + # + # Patch build.sh with the stdenv agnostic `$CC` variable + postPatch = '' + rmdir ddcbc-api + ln -sf ${finalAttrs.passthru.ddcbc-api} ddcbc-api + + patchShebangs build.sh + substituteInPlace build.sh \ + --replace-fail 'gcc' '"$CC"' + ''; + + strictDeps = true; + + nativeBuildInputs = [ + installShellFiles + pkg-config + ]; + + buildInputs = [ + ddcutil + gtk4 + libadwaita + ]; + + postBuild = "./build.sh"; + + postInstall = '' + mv build/app com.sidevesh.Luminance + installBin com.sidevesh.Luminance + + install -Dm644 install_files/44-backlight-permissions.rules -t $out/lib/udev/rules.d + install -Dm644 install_files/com.sidevesh.Luminance.desktop -t $out/share/applications + install -Dm644 install_files/com.sidevesh.Luminance.gschema.xml -t $out/share/glib-2.0/schemas + + mv icons $out/share/icons + rm $out/share/icons/com.sidevesh.luminance.Source.svg + ''; + + passthru = { + ddcbc-api = fetchFromGitHub { + owner = "ahshabbir"; + repo = "ddcbc-api"; + rev = "f54500284fcfc2f140d5ae01df779f3f47c9b563"; + hash = "sha256-ViKik3468AHjE7NxdfrKicDNA0ENG6DmIplYtKVqduw="; + }; + + updateScript = nix-update-script { }; + }; + + meta = { + description = "Simple GTK application to control brightness of displays including external displays supporting DDC/CI"; + homepage = "https://github.com/sidevesh/Luminance"; + changelog = "https://github.com/sidevesh/Luminance/releases/tag/${finalAttrs.version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ getchoo ]; + inherit (ddcutil.meta) platforms; + mainProgram = "com.sidevesh.Luminance"; + }; +})