summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aux/kbdfs
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-07-16 23:36:40 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2021-07-16 23:36:40 +0000
commitfad1b3f7f77f08764f0e32f8ce18bee16da3aa69 (patch)
tree543c0a5d21211149fa420fb58c2cb6808de76d07 /sys/src/cmd/aux/kbdfs
parente85aa1089d1d4954aa949cd05c5b6b9c3fca596c (diff)
kbdfs: allow to escape ctlr-alt-del with shift for vmx and vnc.
Diffstat (limited to 'sys/src/cmd/aux/kbdfs')
-rw-r--r--sys/src/cmd/aux/kbdfs/kbdfs.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/src/cmd/aux/kbdfs/kbdfs.c b/sys/src/cmd/aux/kbdfs/kbdfs.c
index d23152034..3d64e1564 100644
--- a/sys/src/cmd/aux/kbdfs/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs/kbdfs.c
@@ -371,6 +371,13 @@ shutdown(void)
threadexitsall(nil);
}
+void
+shiftup(void)
+{
+ Key key = { .down = 0, .r = Kshift, .b = Kshift };
+ send(keychan, &key);
+}
+
/*
* Scan code processing
*/
@@ -433,8 +440,12 @@ kbdputsc(Scan *scan, int c)
if(scan->caps && key.r<='z' && key.r>='a')
key.r += 'A' - 'a';
- if(scan->ctl && scan->alt && key.r == Kdel)
- reboot();
+ if(scan->ctl && scan->alt && key.r == Kdel){
+ if(scan->shift)
+ shiftup();
+ else
+ reboot();
+ }
if(key.b)
send(keychan, &key);