about summary refs log tree commit diff
path: root/pkgs/sternenseemann/acme/neo-modifier-fix.patch
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-03-23 21:26:43 +0100
committersternenseemann <sternenseemann@systemli.org>2022-03-23 21:36:28 +0100
commitf5f600e3908b4b00714a9658c2708b825322a137 (patch)
treed25056e42c7bff3d96e5c545cdc9ee30d58f1149 /pkgs/sternenseemann/acme/neo-modifier-fix.patch
parent146474e922f654655392f457af3c57b6856ff877 (diff)
pkgs/sternenseemann/acme: init at 2021-10-19
* Patch plan9port most notably including a patch that fixes the
  interpretation of X11 key events. This resolves the problem that using
  the shift key of the neo layout would cause acme to start interpreting
  left mouse button as right mouse button.

* Add a wrapper derivation that puts acme and all executables it
  absolutely requires in PATH. The full Plan 9 userland can still be
  accessed via the 9 executable, but this allows executing just acme and
  access e.g. the GNU coreutils from inside of it — in case you do want
  to use cat -v.

machines/sternenseemann/wolfgang: install acme
Diffstat (limited to 'pkgs/sternenseemann/acme/neo-modifier-fix.patch')
-rw-r--r--pkgs/sternenseemann/acme/neo-modifier-fix.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/pkgs/sternenseemann/acme/neo-modifier-fix.patch b/pkgs/sternenseemann/acme/neo-modifier-fix.patch
new file mode 100644
index 00000000..f5e587d5
--- /dev/null
+++ b/pkgs/sternenseemann/acme/neo-modifier-fix.patch
@@ -0,0 +1,24 @@
+commit 139924014d126578e5a008f1df7a55831e668287
+Author: sternenseemann <sternenseemann@systemli.org>
+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: