ibus substitui meu xmodmap

3

Eu uso o xmodmap para usar as teclas Ctrl e 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

Isso funciona bem; no entanto, quando inicio o ibus, os mapeamentos de teclas são ultrapassados pelo ibus. Existe uma maneira de evitar isso?

    
por Nick 02.12.2014 / 04:42

4 respostas

1

Não é exatamente um problema do IBus (o IBus tem problemas, muito (1), mas eu não acho esse problema).

O Ubuntu, como qualquer Linux moderno, usa a extensão xkb para definir o teclado. xmodmap é uma espécie de legado que é não garantido para trabalhar com ele .

A documentação é bastante carente. Arch Linux (como sempre) tem uma boa página . Eu consegui adaptar meu teclado para evitar a comutação, que é atormentada por erros no Ubuntu Gnome (2).

O sistema é complexo --- encontrei alguma ajuda aqui e aqui . Mas entender como mudar os modificadores ainda está fora do meu conjunto de habilidades ... e suspeito que poucas pessoas o entendem (assustador).

Notas de rodapé:

(1) O teclado mantém o padrão no layout errado , link , muito mais ...

(2) link , link

    
por Rmano 02.12.2014 / 10:11
1
  • Na verdade, existe uma opção ibus escondida de sua GUI de configuração para recarregar .xmodmap na alteração do método.

    dconf write /desktop/ibus/general/use-xmodmap true
    

    Ainda não consegui experimentar, mas você pode verificar /etc/dconf/db/ibus.d/00-upstream-settings para ver as opções disponíveis.

    Estou usando o Xubuntu 16.04, pode ser diferente de 14.04.

  • Outra maneira

    1. Pare o ibus de usar os principais mapas de sistema

      dconf write /desktop/ibus/general/use-system-keyboard-layout false
      

      ou usando ibus-setup

    2. Altere seus próprios mapeamentos de teclas

      $ 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
      

      Referência: para o caminho de configuração

        

      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.
      
por user.dz 30.06.2016 / 18:08
0

Você já tentou o seguinte?

  

... ative a opção "Usar layout do teclado do sistema" sob o   Guia “Avançado” nas Preferências do IBus.

Dica de link

    
por f01 02.12.2014 / 04:47
0

Eu já enfrentei esse problema antes e finalmente descobri uma solução para isso fazendo um atalho de teclado executando um comando que tem duas tarefas:

  • Enviar pressionamentos de tecla Alt + Shift ao sistema (essa combinação de teclas alterará a origem de entrada do IBUS)
  • Carregar meu perfil xmodmap no mapa de teclado do sistema

Dê uma olhada na minha postagem para obter informações mais detalhadas sobre essa solução: link

    
por GiapLv 11.10.2016 / 17:11

Tags