From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: * X-Spam-Status: No, score=1.3 required=5.0 tests=RDNS_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 28032 invoked from network); 9 Apr 2022 10:48:59 -0000 Received: from unknown (HELO 9front.inri.net) (168.235.81.73) by inbox.vuxu.org with ESMTPUTF8; 9 Apr 2022 10:48:59 -0000 Received: from mail.blazebone.com ([45.32.235.173]) by 9front; Sat Apr 9 06:47:36 -0400 2022 Received: from valley.home (236.155.169.85.rev.sfr.net [85.169.155.236]) by aries.vpn (OpenSMTPD) with ESMTPSA id d63c8a0b (TLSv1.2:ECDHE-RSA-CHACHA20-POLY1305:256:NO) for <9front@9front.org>; Sat, 9 Apr 2022 12:47:30 +0200 (CEST) Message-ID: From: nature Date: Sat, 09 Apr 2022 10:29:11 +0000 To: 9front@9front.org MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: secure SVG over ACPI content-driven GPU property locator Subject: [9front] [PATCH] vncv: allow the use of the Mod4 (Super) key Reply-To: 9front@9front.org Precedence: bulk --- diff 909205036de4762628fdcdd295e209309817a604 791504479da68d9de858d83d336d3cd7a9c3e1bb --- a/sys/src/cmd/vnc/kbdv.c Tue Apr 5 01:09:49 2022 +++ b/sys/src/cmd/vnc/kbdv.c Sat Apr 9 12:29:11 2022 @@ -6,7 +6,8 @@ Xshift = 0xFFE1, Xctl = 0xFFE3, Xmeta = 0xFFE7, - Xalt = 0xFFE9 + Xalt = 0xFFE9, + Xsuper = 0xFFEB, }; static struct { @@ -45,6 +46,7 @@ {Kshift, Xshift}, {Kalt, Xalt}, {Kaltgr, Xmeta}, + {Kmod4, Xsuper}, {Kctl, Xctl}, }; @@ -95,7 +97,7 @@ { char buf[256], k[10]; ulong ks; - int ctlfd, fd, kr, kn, w, shift, ctl, alt; + int ctlfd, fd, kr, kn, w, shift, ctl, alt, super; Rune r; snprint(buf, sizeof buf, "%s/cons", display->devdir); @@ -108,7 +110,7 @@ write(ctlfd, "rawon", 5); kn = 0; - shift = alt = ctl = 0; + shift = alt = ctl = super = 0; for(;;){ while(!fullrune(k, kn)){ kr = read(fd, k+kn, sizeof k - kn); @@ -134,6 +136,10 @@ shift = !shift; keyevent(v, Xshift, shift); break; + case Kmod4: + super = !super; + keyevent(v, Xsuper, super); + break; default: if(r == ks && r < 0x1A){ /* control key */ keyevent(v, Xctl, 1); @@ -176,6 +182,10 @@ keyevent(v, Xshift, 0); shift = 0; } + if(super){ + keyevent(v, Xsuper, 0); + super = 0; + } break; } } @@ -228,6 +238,7 @@ if((r == Kshift) || utfrune(buf+1, Kctl) || utfrune(buf+1, Kalt) || + utfrune(buf+1, Kmod4) || utfrune(buf+1, Kaltgr)) keyevent(v, runetovnc(r), 1); } @@ -241,7 +252,10 @@ } break; case 'c': - if(utfrune(buf2+1, Kctl) || utfrune(buf2+1, Kalt) || utfrune(buf2+1, Kaltgr)) + if(utfrune(buf2+1, Kctl) || + utfrune(buf2+1, Kalt) || + utfrune(buf2+1, Kmod4) || + utfrune(buf2+1, Kaltgr)) continue; chartorune(&r, buf+1); keyevent(v, runetovnc(r), 1);