web-dev-qa-db-fra.com

ibus outrepasse mon xmodmap

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?

3
Nick
  • 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

    1. 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

    2. 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

      ibus_keymap_get ()

      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.
      
1
user.dz

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

1
Rmano

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/

0
f01

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:

  • Envoyer Alt + Shift frappe sur le système (cette combinaison de touches changera la source d'entrée d'IBUS)
  • Charger mon profil xmodmap dans le clavier système

Jetez un œil à mon article pour des informations plus détaillées sur cette solution: http://blog.z1k.pw/?p=6

0
GiapLv