Wie sendet man Strg + Alt + F1 (und andere spezielle Tastatureingaben) an das X-Fenster?

4

Wenn ich drücke Ctrl + Alt + F {1..12} wechselt es zu einem anderen virtuellen Terminal.

Sogar xte "keydown Control_L" "keydown Alt_L" "key F1" "keyup Alt_L" "keyup Control_L" führt dazu, dass Sie zu vt wechseln, anstatt diese Tasten an ein fokussiertes Fenster zu senden.

Zu den Anwendungsfällen gehören (jedoch nicht beschränkt auf) das Senden spezieller Tastatureingaben an VNC- oder Virtualisierungsclients, die von einem Clinet / Gast-System statt vom Host-Client gehandhabt werden. Manchmal ordnen Anwendungen (wie in VirtualBox) bestimmte spezielle Tastenanschläge explizit diesen speziellen zu (z. B. Ctrl + Alt + Del oder Ctrl + Alt + Rücktaste in VirtualBox), aber ich möchte eine saubere und universelle Lösung.

Vi.
quelle
Die Antwort hängt davon ab, welchen VNC-Client Sie verwenden. Jeder hat einen anderen Weg, dies zu tun. Welchen VNC-Client verwenden Sie?
Michael Hampton
Ich möchte eine universelle Lösung für alle X-Programme, keine VNC- oder VM-Clients.
Vi.
Ich denke, du musst einfach rennen xte auf dem Remote-Computer und nicht auf dem lokalen Computer.
Michael Hampton
Es geht überhaupt nicht um lokale oder entfernte Dinge (dies ist nur ein Anwendungsfall). Es geht im Allgemeinen darum, beliebige Tastendrücke für X-Anwendungen bereitzustellen.
Vi.
Vielleicht sollten Sie dann Ihre Frage klären?
Michael Hampton

Antworten:

3

Lass uns anrufen Ctrl + Alt + Fx (woher Fx ist eine der Funktionstasten: F1 . F2 . F3 ...) srvr keys.
Es gibt eine Möglichkeit, die srvr-Tasten im laufenden Betrieb zu aktivieren / deaktivieren. Mit Deaktivierung meine ich, dass X11 sie nicht verschluckt, sondern an den Fenstermanager (kwin in kde) weiterleitet.

Zum Deaktivieren von Serverschlüsseln werden Sie ausgeführt setxkbmap -option srvrkeys:none
Um srvr-Schlüssel zu aktivieren, müssen Sie ausführen setxkbmap -option
Um zu überprüfen, ob srvr_ctrl (no_srvr_keys) Flag ist aktiviert, ausführen setxkbmap -print | grep xkb_symbols

In kde gibt es die Möglichkeit, Fensteraktionen auszuführen (z. B. einen Befehl ausführen, wenn das Fenster den Fokus erhält oder verliert). So können Sie srvr-Schlüssel automatisch deaktivieren, wenn Ihr Spezialanwendungsfenster fokussiert ist, und sie automatisch wieder aktivieren, wenn sie den Fokus verlieren. Es ist eine universelle Lösung. Nützlich für Anwendungen wie TeamViewer, VirtualBox, Chrome Remote Desktop, ipkvm viewer, krdc usw.
Wenn Sie interessiert sind, hier ist mein Skript, das ich für dieses Ding verwende: https://github.com/Ashark/aten-ip8000/blob/master/srvrkeys

Ashark
quelle
1

Versuchen Sie für VirtualBox die Tastenkombination REL + F1. Hier, REL ist die Taste, die zum Freigeben des Mausgriffs im VirtualBox-Fenster verwendet wird, normalerweise die rechte Strg- oder die Alt-Taste.

maxelost
quelle
@diago jetzt besser?
maxelost
Die Frage bezieht sich nicht auf VirtualBox oder VMWare (das VMWare-Analogon von REL + F1 wäre interessant) oder sogar auf VNC-Clients, es geht um "Im Allgemeinen". / * versuche es mit xte * /
Vi.
In Virtualbox heißt es Host-Schlüssel
phuclv
0

Das Senden von Strg + Alt + F [1..12] ist nicht möglich, da die virtuellen Terminals vom Desktop getrennt sind, mit dem der VNC verbunden ist.

TheDoctor
quelle
Unklar. Ich erwarte, wenn das Ereignis "Strg + Alt + Fx" in einen VNC-Client übergeht, bewirkt der Client, dass der VNC-Server "Strg + Alt + Fx" ausgibt. Der problematische Teil "Strg + Alt + Fx" erreicht den Client nicht, da er von Xorg interpretiert wird.
Vi.