diff --git a/pkgs/by-name/wl/wlr-layout-ui/package.nix b/pkgs/by-name/wl/wlr-layout-ui/package.nix new file mode 100644 index 000000000000..f115bf12159b --- /dev/null +++ b/pkgs/by-name/wl/wlr-layout-ui/package.nix @@ -0,0 +1,48 @@ +{ lib +, python3 +, fetchFromGitHub +}: + +python3.pkgs.buildPythonApplication rec { + pname = "wlr-layout-ui"; + version = "1.4.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "fdev31"; + repo = "wlr-layout-ui"; + rev = "${version}"; + hash = "sha256-3NV02/Lk43h3r17jwmSAqx7wofaHFJKDh+vaWwU17Gw="; + }; + + postPatch = '' + # The hyprland default.nix patches the version.h of hyprland so that the + # version info moves to the commit key. + substituteInPlace src/wlr_layout_ui/screens.py \ + --replace 'json.loads(subprocess.getoutput("hyprctl -j version"))["tag"]'\ + 'json.loads(subprocess.getoutput("hyprctl -j version"))["commit"]' + ''; + + nativeBuildInputs = [ + python3.pkgs.poetry-core + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pyglet + tomli + tomli-w + ]; + + postInstall = '' + install -Dm644 files/wlr-layout-ui.desktop $out/share/applications/wlr-layout-ui.desktop + ''; + + meta = with lib; { + description = "A simple GUI to setup the screens layout on wlroots based systems"; + homepage = "https://github.com/fdev31/wlr-layout-ui/"; + maintainers = with maintainers; [ bnlrnz ]; + license = licenses.mit; + mainProgram = "wlrlui"; + platforms = subtractLists platforms.darwin platforms.unix; + }; +}