]> git.lizzy.rs Git - plan9front.git/commitdiff
kbdfs: allow to escape ctlr-alt-del with shift for vmx and vnc.
authorcinap_lenrek <cinap_lenrek@felloff.net>
Fri, 16 Jul 2021 23:36:40 +0000 (23:36 +0000)
committercinap_lenrek <cinap_lenrek@felloff.net>
Fri, 16 Jul 2021 23:36:40 +0000 (23:36 +0000)
sys/man/8/kbdfs
sys/src/cmd/aux/kbdfs/kbdfs.c

index 20619dfa72af3d6cf3d6db71c6cf9aec12da66ef..93e0a2e61cc42a9630f151946008fb30586f176d 100644 (file)
@@ -179,6 +179,32 @@ This is used to provide a serial console when
 .B $console
 environment variable is set. (see
 .IR plan9.ini (8)).
+.PP
+Holding
+.LR Ctrl
++
+.LR Alt
+and then pressing the
+.LR Del
+key will
+trigger a reboot of the terminal.
+To forward this sequence downstream,
+.LR Shift
++
+.LR Ctrl
++
+.LR Alt
+and then pressing
+.LR Del
+will cause to send a
+.LR Shift
+up before the
+.LR Del
+key.
+This is usefull for programs like
+.IR vnc (1)
+and
+.IR vmx (1).
 .SS Keyboard
 A read on the
 .BR kbd
index d231520342ae27d8b7577382cb4c3d9b0cf25363..3d64e1564cfc79dfde1fc6b1464a1bc5c4062292 100644 (file)
@@ -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);