J'utilise xmodmap pour changer les touches Ctrl et Alt:
~ $> cat .Xmodmap
!
! based on: http://www.emacswiki.org/emacs/SwapControlAltAndCapsLock#toc8
!
!----------------------------------------------------------
! Swap Control and Alt keys, both sides
!----------------------------------------------------------
! First clear all modifiers & control
clear control
clear mod1
clear mod4
! Swap Control_L and Alt_L
keycode 64 = Control_L
keycode 37 = Alt_L Meta_L
! Menu becomes Alt_R Meta_R (AltGr)
! keycode 135 = Alt_R Meta_R
! Define Control_R and Alt_R similar to Control_L and Alt_L
keycode 108 = Control_L
keycode 105 = Alt_L Meta_L
! We need to set keycodes first, as some programs (emacs!) read
! the key names and seem to ignore what's below.
add mod1 = Alt_L Alt_R Meta_L Meta_R
add mod4 = Super_L Super_R
add control = Control_L Control_R
!------------------------------------------
! Caps_Lock becomes an additional BackSpace
!------------------------------------------
! remove lock = Caps_Lock
! keysym Caps_Lock = BackSpaceclear control
! clear mod1
! keycode 37 = Alt_L Meta_L
! keycode 64 = Control_L
! keycode 105 = Alt_R Meta_R
! keycode 108 = Control_R
! add control = Control_L Control_R
! add mod1 = Alt_L Meta_L Alt_R Meta_R
Cela fonctionne bien; cependant, lorsque je démarre ibus, les mappages clés sont dépassés par ibus. Y a-t-il un moyen d'éviter cela?
En fait, il y a une option ibus cachée dans son interface graphique de configuration pour recharger .xmodmap
lors du changement de méthode.
dconf write /desktop/ibus/general/use-xmodmap true
Je n'ai pas encore pu l'essayer, mais vous pouvez vérifier /etc/dconf/db/ibus.d/00-upstream-settings
pour les options disponibles.
J'utilise Xubuntu 16.04, cela pourrait être différent de 14.04.
Autrement
Empêcher ibus d'utiliser des cartes-clés du système
dconf write /desktop/ibus/general/use-system-keyboard-layout false
ou en utilisant ibus-setup
Modifier ses propres mappages de touches
$ cat /usr/share/ibus/keymaps/modifiers
keycode 29 = Control_L
keycode 42 = Shift_L
keycode 54 = Shift_R
keycode 56 = Alt_L
keycode 97 = Control_R
keycode 100 = Alt_R
keycode 125 = Super_L
keycode 126 = Super_R
keycode 127 = Menu
Référence: pour le chemin de configuration
IBusKeymap * ibus_keymap_get (const gchar *name); Get an IBusKeymap associated with the giving name. This function loads the keymap file specified in name in the IBUS_DATA_DIR/keymaps directory. name : The keymap file to be loaded, such as 'us', 'jp'. Returns : An IBusKeymap associated with the giving name; or NULL if failed.
Ce n'est pas exactement un problème IBus (IBus a beaucoup de problèmes (1), mais je ne pense pas que celui-ci).
Ubuntu, comme tout Linux moderne, utilise l'extension xkb
pour définir le clavier. xmodmap
est une sorte d'héritage qui est pas garanti de fonctionner avec .
La documentation fait assez défaut. Arch Linux (comme toujours) a une bonne page . J'ai réussi à adapter mon clavier pour éviter la commutation, qui est en proie à des bugs dans Ubuntu Gnome (2).
Le système est complexe --- j'ai trouvé de l'aide ici , et ici . Mais comprendre comment changer les modificateurs ne fait toujours pas partie de mes compétences ... et je soupçonne que très peu de gens le comprennent (effrayant).
Notes de bas de page:
(1) le clavier continue de se mettre par défaut sur une mauvaise disposition , https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1246272 , beaucoup plus...
(2) https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1218322 , https://bugs.launchpad.net/ gnome-settings-daemon/+ bug/124409
Avez-vous déjà essayé ce qui suit.
... essayez d'activer l'option "Utiliser la disposition du clavier système" sous l'onglet "Avancé" dans les Préférences IBus.
Astuce de http://tots.1o24.org/how-to-stop-ibus-from-removing-your-xmodmap-mappings/
J'ai déjà rencontré ce problème auparavant et j'ai finalement trouvé une solution à cela en créant un raccourci clavier exécutant une commande qui a deux tâches:
Jetez un œil à mon article pour des informations plus détaillées sur cette solution: http://blog.z1k.pw/?p=6