packages: Add hyprgrass

Could be useful for making Hyprland more viable on the PinePhone, which
would help avoid all the issues with Phosh.
This commit is contained in:
Donovan Glover 2024-07-07 20:11:44 -04:00
parent 19fd97003c
commit 72c8cd6b96
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
2 changed files with 95 additions and 0 deletions

43
packages/hyprgrass.nix Normal file
View File

@ -0,0 +1,43 @@
{ lib
, stdenv
, hyprland
, fetchFromGitHub
, callPackage
, doctest
}:
let
wf-touch = callPackage ./wf-touch.nix { };
in
stdenv.mkDerivation (finalAttrs: {
pname = "hyprgrass";
version = "0.7.0";
src = fetchFromGitHub {
owner = "horriblename";
repo = "hyprgrass";
rev = "v${finalAttrs.version}";
hash = "sha256-DfM2BqnFW48NlHkBfC7ErHgK7WHlOgiiE+aFetN/yJ4=";
};
nativeBuildInputs = [
doctest
] ++ hyprland.nativeBuildInputs;
buildInputs = [
hyprland
wf-touch
] ++ hyprland.buildInputs;
dontUseCmakeConfigure = true;
doCheck = true;
meta = {
description = "Hyprland plugin for touch gestures";
homepage = "https://github.com/horriblename/hyprgrass";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ donovanglover ];
platforms = lib.platforms.linux;
};
})

52
packages/wf-touch.nix Normal file
View File

@ -0,0 +1,52 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, pkg-config
, meson
, cmake
, ninja
, glm
, doctest
}:
stdenv.mkDerivation {
pname = "wf-touch";
version = "0-unstable-2021-03-19";
src = fetchFromGitHub {
owner = "WayfireWM";
repo = "wf-touch";
rev = "8974eb0f6a65464b63dd03b842795cb441fb6403";
hash = "sha256-MjsYeKWL16vMKETtKM5xWXszlYUOEk3ghwYI85Lv4SE=";
};
nativeBuildInputs = [
meson
pkg-config
cmake
ninja
];
buildInputs = [ doctest ];
propagatedBuildInputs = [ glm ];
mesonBuildType = "release";
# Patch wf-touch to generate pkgconfig
patches = fetchpatch {
url = "https://raw.githubusercontent.com/horriblename/hyprgrass/736119f828eecaed2deaae1d6ff1f50d6dabaaba/nix/wf-touch.patch";
hash = "sha256-3YK5YnO0NCwshs1reJFjJ9tIEhTNSS0fPWUDFo3XA3s=";
};
outputs = [ "out" "dev" ];
meta = {
description = "Touchscreen gesture library";
homepage = "https://github.com/WayfireWM/wf-touch";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ donovanglover ];
platforms = lib.platforms.all;
};
}