Re-liaison / désactivation de la commutation CTRL + ALT + F # du terminal virtuel / de la console


21

J'ai une application qui lie CTRL+ ALT+ F7, mais ma machine Linux semble attraper la frappe.

Existe-t-il un moyen de relier / désactiver cette clé? Une recompilation du noyau est une réponse acceptable.

Les distributions en question sont Fedora 16 et Ubuntu 11.10.


Je n'ai pas de conseil spécifique, mais je pense, comme CTRL + ALT + Fn n'est lié que sous le système X-Windows, que le noyau ne sera pas lié de quelque façon que ce soit, et que vous aurez probablement plus de chance essayer de modifier la configuration X11.
njsg

@njsg Vous pouvez utiliser les mêmes touches pour passer de X11 à un vt, et pour revenir en arrière (également entre les vt) - elles doivent donc être liées de la même manière sur un vt.
Volker Siegel

Réponses:


10

Placez ceci dans votre /etc/X11/xorg.conffichier pour désactiver la commutation VT avec Ctrl+ Alt+ Fn:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Vous aurez également besoin des éléments suivants pour que les événements soient transmis aux clients connectés à l'écran:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

(Ce dernier bit n'est pas testé, reportez-vous à sa source .)


Cela ne transmet pas la combinaison à la fenêtre, X l'attrape toujours.
Jes

2
Après quelques mois d'avoir à exécuter Windows, j'ai finalement testé cela sur Lubuntu 12.04, où la fenêtre IntelliJ IDEA ne capte toujours pas la frappe.
Jes

2
L'utilisation des deux paramètres était à la fois nécessaire pour moi et fonctionnait pour moi. (sur centos). ctrl-alt-f7 montre maintenant les utilisations en ligne dans intellij :).
Rob Dawson

3
Si vous utilisez Intellij et que vous souhaitez l'utiliser CTL+ALT+F7pour "Afficher l'utilisation", sur Lubuntu 15.04, le raccourci par défaut est acutally CTL+ALT+7. Vous devrez le rétablir CTL+ALT+F7si vous souhaitez rester cohérent avec les autres systèmes d'exploitation.
Xiao Peng - ZenUML.com

1
Juste pour confirmer que cela fonctionne aussi sur FreeBSD 11.
gsl

15

L'invocation suivante de la setxkbmapcommande X11 désactive la commutation de console / terminal virtuel Ctrl-Alt-Fn:

setxkbmap -option srvrkeys:none

Pour revenir au comportement précédent des touches ctrl-alt-Fn et supprimer également toutes les autres options, telles que caps:ctrl_modifier:

setxkbmap -option ''

Pour imprimer les paramètres actuels, appelez setxkbmap -print.

Pour appeler par utilisateur, placez la commande dans le fichier ~ / .xinitrc.

Pour appeler au démarrage d'une session X, créez un fichier dans

/etc/X11/Xsession.d

tel que

/etc/X11/Xsession.d/65srvrkeys-none

contenant la setxkbmapcommande ci-dessus , et rendez-la exécutable avec sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

Pour plus d'informations, tapez man setxkbmapà l'invite de votre shell ou consultez la page de manuel Xorg setxkbmap .

J'ai testé cela avec KDE sur Ubuntu 14.04 LTS (Trusty). Ces paramètres sont également disponibles dans Paramètres système> Périphériques d'entrée> Clavier> Avancé. Si vous modifiez srvrkeysles paramètres de l'interface graphique, il apparaît immédiatement dans setxkbmapet vice versa.

Je préfère modifier le système X window via les interfaces de ligne de commande X11. Si cela ne fonctionne pas, j'essaie l'environnement de bureau. En dernier recours, je modifierais les fichiers de configuration du système. Les implémentations et les formats de fichiers changent, mais les interfaces de ligne de commande vivent presque toujours dans la tradition Unix / Linux.


Merci, @RobertL. Mes espoirs étaient élevés, mais non, cela ne semble pas avoir d'effet sur mes installations Debian Jessie et Ubuntu 14.04. Ctrl-Alt-F7 et Ctrl-Alt-F8 commutent toujours d'avant en arrière vers et depuis un terminal virtuel. Je n'ai pas non plus cette entrée de menu Paramètres système> Périphériques d'entrée> ... Peut-être que c'est une chose KDE? J'utilise GNOME ou quelle que soit la valeur par défaut d'Ubuntu.
glts

J'ai essayé plusieurs façons et celle-ci était la seule qui fonctionne dans Lubuntu 16.04, elle fonctionne lorsque je suis connecté. Savez-vous comment le faire fonctionner dans l'écran d'accueil de lxdm? (en ubuntu avec lightdm fonctionne).
J.Serra

1
Cela fonctionne sur Linux Mint 18. Merci.
Hoang Tran

1
Cela fonctionne pour moi sur Debian 8 (Jessie). REMARQUE: je n'ai testé que la ligne de commande setxkbmap -option srvrkeys:none. J'ai mis l'entrée dans un fichier /etc/X11/Xsession.d/65srvrkeys-none. Et même si je ne me suis pas encore déconnecté et reconnecté, je suppose que cela fonctionnera très bien.
MikeyE

1
A très bien fonctionné pour moi sur Debian Buster; comme @MikeyE Je ne me suis pas encore déconnecté (et ne le ferai probablement pas dans quelques semaines / mois ;-) mais l' setxkbmapapproche a fait l'affaire. Très appréciée!
Per Lundberg

1

Vous pouvez désactiver cela en allant dans Paramètres système -> disposition du clavier -> option. sous diverses options de compatibilité, cochez "touches spéciales Ctrl+ Alt+ <key>gérées sur le serveur".

J'ai vérifié cela et Ubuntu ne détecte aucune combinaison de Ctrl+ Alt+ .... mais toujours l'idée n'attrape pas Ctrl+ Alt+ F7et le problème persiste !!!.


Vous avez raison, Ubuntu ne l'attrape pas, mais je soupçonne que le serveur X le fait.
Jes

3
Yay! J'ai découvert que par défaut dans Ubuntu IDEA gère Ctrl + Alt + 7 au lieu de F7 !
o_nix

0

Dans Ubuntu 18.04, vous devez créer le fichier suivant:

/usr/share/X11/xorg.conf.d/65-setxkbmap

avec ce contenu:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

puis redémarrez votre système.


À l'exception du nom de fichier, cela a été suggéré dans la réponse acceptée.
RalfFriedl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.