diff --git a/users/sterni/acme/plan9port/default.nix b/users/sterni/acme/plan9port/default.nix new file mode 100644 index 000000000..a456690dd --- /dev/null +++ b/users/sterni/acme/plan9port/default.nix @@ -0,0 +1,26 @@ +{ pkgs, lib, ... }: + +let + patchesFromDir = dir: + lib.filter + (lib.hasSuffix ".patch") + (lib.mapAttrsToList + (name: _: dir + "/${name}") + (builtins.readDir dir)); +in + +pkgs.plan9port.overrideAttrs (old: { + patches = old.patches or [ ] ++ patchesFromDir ./.; + + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ + pkgs.buildPackages.makeWrapper + ]; + + # Make some tools (that don't clash) available in PATH directly + postInstall = old.postInstall or "" + '' + for cmd in 9p 9pfuse; do + makeWrapper "$out/plan9/bin/$cmd" "$out/bin/$cmd" \ + --set PLAN9 "$out/plan9" + done + ''; +}) diff --git a/users/sterni/acme/plan9port/neo-modifier-fix.patch b/users/sterni/acme/plan9port/neo-modifier-fix.patch new file mode 100644 index 000000000..f5e587d53 --- /dev/null +++ b/users/sterni/acme/plan9port/neo-modifier-fix.patch @@ -0,0 +1,24 @@ +commit 139924014d126578e5a008f1df7a55831e668287 +Author: sternenseemann +Date: Sat Mar 19 15:52:59 2022 +0100 + + cmd/devdraw: Don't use X11 standard interpretation for modifiers + + This patch is based on a similar one [1] for drawterm by Sören Tempel. + + [1]: https://github.com/nmeum/aports/blob/master/8pit/drawterm/modifier-fix.patch + +diff --git a/src/cmd/devdraw/x11-screen.c b/src/cmd/devdraw/x11-screen.c +index 0bbc25d6..511fc093 100644 +--- a/src/cmd/devdraw/x11-screen.c ++++ b/src/cmd/devdraw/x11-screen.c +@@ -408,6 +408,9 @@ runxevent(XEvent *xev) + case KeyPress: + ke = (XKeyEvent*)xev; + XLookupString(ke, NULL, 0, &k, NULL); ++ /* dont use standard interpretation for modifiers */ ++ if(IsModifierKey(k)) ++ k = XLookupKeysym(ke, 0); + c = ke->state; + switch(k) { + case XK_Alt_L: