Como fazer o Compose funcionar em aplicativos GTK e Qt?

14

Eu usei o Gnome por um longo tempo, mas preferi o método de entrada do vanilla X ( xim ) sobre o comportamento padrão do GTK. Acabei de definir as variáveis de ambiente GTK_IM_MODULE e QT_IM_MODULE como xim e não tive nenhum problema com a configuração de layout múltiplo, a tecla Compor , as extensões ~/.XCompose e misc:typo tipografia personalizadas .

O recente Gnome 3.6 atarraxou completamente a entrada do teclado enviando um meio-cozido e com bugs ibus . Eu simplesmente não conseguia fazer o teclado funcionar tão bem quanto antes (mesmo com ibus desativado) e tive que abandonar completamente o Gnome.

Agora eu uso um gerenciador de janelas simples e configuro meu teclado com setxkbmap . Enquanto o teclado funciona bem novamente, não consegui fazer com que a tecla Compose funcionasse em todos os lugares. Compose funciona em aplicativos simples do X11 ( xterm ), mas não funciona nem no GTK2 nem no GTK3, nem no Qt.

Eu uso as versões atuais do Archlinux:

xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4

e ative a tecla Compor assim:

setxkbmap ... -option 'compose:menu'

e exportar GTK_IM_MODULE , QT_IM_MODULE variables:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim
A chave

Compose é corretamente reconhecida pelo X11:

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/ /p'
135 Multi_key

Funciona corretamente em xterm , sequências do meu ~/.XCompose incluído. Não funciona em aplicativos GTK ou Qt. Vamos dizer, se eu inserir Compor ', então os aplicativos echo ' imediatamente, sem esperar pela terceira chave na sequência.

Agora eu suponho que algo tenha mudado no Xorg (porque Compose não funciona nos aplicativos do Qt), ou no GTK e Qt. As variáveis *_IM_MODULE não são suficientes agora. O que mais é necessário para fazer o GTK e o Qt modernos reconhecerem xim e suas sequências Compose?

P.S. Há uma pergunta semelhante (e não respondida) sobre Chave de composição não funciona no GTK . Ao contrário do autor da pergunta, não tenho ibus instalado.

    
por sastanin 10.01.2013 / 14:02

3 respostas

7

Encontrou uma solução que funciona para aplicativos GTK (mas não para o Qt). É preciso definir

XMODIFIERS="@im=none"

para permitir que o X11 manipule chaves inativas. Obrigado a @PabloSaratxaga por sua resposta .

    
por 29.05.2013 / 10:02
2

Eu tive um problema semelhante no openSUSE. ~/.XCompose seria ignorado pelos aplicativos GTK +, então minhas próprias sequências Compose não funcionavam no Firefox, no Gimp e em outros.

Descobri que gtk-query-immodules-2.0 listou alguns métodos de entrada, mas não xim ; Portanto, independentemente da variável GTK_IM_MODULE , xim estava indisponível. A instalação dos pacotes gtk2-immodule-xim (e amigos) resolveu o problema.

Talvez este comentário seja útil para pessoas que sofrem da mesma maldição.

    
por 30.12.2013 / 15:51
1

Esta é uma maneira de configuração persistente. É descrito, por exemplo, aqui link . Eu configurei compor chaves com ~ / .XCompose dessa maneira. Eu verifiquei isso tanto no Ubuntu quanto no Debian.

    
por 13.01.2013 / 00:10