Comment envoyer Ctrl + Alt + F1 (et d'autres frappes spéciales) à la fenêtre X?

4

Lorsque j'appuie sur Ctrl+ Alt+ F{1..12}, il me fait passer à un autre terminal virtuel.

Même xte "keydown Control_L" "keydown Alt_L" "key F1" "keyup Alt_L" "keyup Control_L"conduit à basculer vers vt au lieu d’envoyer ces clés à la fenêtre ciblée.

Les cas d'utilisation de cela incluent (sans toutefois s'y limiter) l'envoi de frappes de touche spéciales à des clients VNC ou de virtualisation à gérer par le système clinet / invité au lieu du système hôte. Parfois (comme dans VirtualBox), les applications associent explicitement une frappe spéciale alternative à une frappe spéciale (comme Ctrl+ Alt+ Delou Ctrl+ Alt+ Backspacedans VirtualBox), mais je veux une solution propre et universelle.

Vi.
la source
La réponse dépend du client VNC que vous utilisez. chacun a une manière différente de le faire. Quel client VNC utilisez-vous?
Michael Hampton
Je souhaite une solution universelle pour tous les programmes X, pas pour les programmes spécifiques à VNC ou aux clients de machines virtuelles.
Vi.
Je pense que vous devez juste exécuter xtesur la machine distante, plutôt que la machine locale.
Michael Hampton
Il ne s'agit pas du tout de choses locales ou distantes (ce n'est qu'un cas d'utilisation). Il s'agit de fournir des appuis arbitraires aux applications X en général.
Vi.
Peut-être devriez-vous clarifier votre question, alors?
Michael Hampton

Réponses:

3

Appelons Ctrl+ Alt+ Fx(où Fxest l' une des touches de fonction: F1, F2, F3...) touches de SERV.
Il existe un moyen de désactiver / activer les clés srvr à la volée. En désactivant, je veux dire que X11 ne les avale pas, mais passe au gestionnaire de fenêtres (kwin en kde).

Pour activer les clés setxkbmap -option srvrkeys:none
srvr, vous exécutez. setxkbmap -option
Pour vérifier si l' indicateur srvr_ctrl (no_srvr_keys) est activé, exécutezsetxkbmap -print | grep xkb_symbols

Dans kde, il est possible d’effectuer des actions de fenêtre (par exemple, exécuter une commande lorsque window obtient ou perd le focus). Ainsi, vous pouvez désactiver automatiquement les clés srvr lorsque la fenêtre de votre application spéciale est active et les réactiver automatiquement dès qu’elle perd la mise au point. C'est une solution universelle. Utile pour des applications telles que TeamViewer, VirtualBox, Chrome Remote Desktop, la visionneuse ipkvm, krdc, etc.
Si cela vous intéresse, voici le script que j'utilise pour cette chose: https://github.com/Ashark/aten-ip8000/blob/master/srvrkeys

Un requin
la source
1

Pour VirtualBox, essayez la combinaison de touches REL + F1. Ici, REL est la clé utilisée pour libérer la souris dans la fenêtre de VirtualBox, généralement la touche Ctrl ou Alt droite.

maxelost
la source
@ Diago mieux maintenant?
maxelost
La question ne concerne pas VirtualBox ou VMWare (toutefois, l'analogue VMWare de REL + F1 serait intéressant) ou même sur les clients VNC, il s'agit de "En général". / * essayer de le faire avec xte* /
Vi.
dans la virtualbox ça s'appelle Host key
phuclv
0

Il n’est pas possible d’envoyer Ctrl + Alt + F [1..12] car les terminaux virtuels sont séparés du bureau auquel le VNC est connecté.

Le docteur
la source
Pas clair. Je suppose que si l'événement "Ctrl + Alt + Fx" entre dans un client VNC, le client fera en sorte que le serveur VNC émette "Ctrl + Alt + Fx". La partie problématique que "Ctrl + Alt + Fx" n'atteint pas le client, étant interprétée par Xorg.
Vi.