Jak sprawić, by Compose działał w aplikacjach GTK i Qt?


16

Używałem Gnome przez długi czas, ale wolałem metodę wprowadzania Vanilla X ( xim) niż domyślne zachowanie GTK. Ja po prostu ustawić GTK_IM_MODULEi QT_IM_MODULEzmienne środowiskowe do xim, i nie ma żadnego problemu z wielokrotnym układ konfiguracyjny Composekluczowych, niestandardowych ~/.XComposei misc:typotypografii rozszerzeń.

Ostatnie Gnome 3.6 całkowicie wkręciło klawiaturę, wysyłając częściowo wypalony i błędny ibus i zmuszając go do użytkowników . Po prostu nie mogłem sprawić, aby klawiatura działała tak dobrze jak wcześniej (nawet z ibuswyłączonym) i musiałem całkowicie porzucić Gnome.

Teraz używam prostego menedżera okien i konfiguruję klawiaturę setxkbmap. Chociaż klawiatura znów działa dobrze, nie mogłem uruchomić klawisza Compose wszędzie. Komponuj działa w zwykłych aplikacjach X11 ( xterm), ale nie działa ani w GTK2, ani w GTK3, ani w aplikacjach Qt.

Używam aktualnych wersji 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

i włącz Composeklucz w ten sposób:

setxkbmap ... -option 'compose:menu'

i eksport GTK_IM_MODULE, QT_IM_MODULEzmienne:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose klawisz jest poprawnie rozpoznawany przez X11:

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

Działa poprawnie w xtermsekwencjach z mojego ~/.XComposedołączonego. Nie działa w aplikacjach GTK ani Qt. Powiedzmy, że jeśli wejdę Compose ', aplikacje 'natychmiast rozbrzmiewają , nie czekając na trzeci klawisz w sekwencji.

Teraz przypuszczam, że coś się zmieniło w Xorg (ponieważ Composenie działa również w aplikacjach Qt) lub w GTK i Qt. *_IM_MODULEzmienne nie są teraz wystarczające. Co jeszcze jest wymagane, aby współczesne GTK i Qt rozpoznawały ximi jego sekwencje tworzenia?

PS Istnieje podobne (i bez odpowiedzi) pytanie o to, że klawisz Compose nie działa w GTK . W przeciwieństwie do pytającego, nie ibuszainstalowałem.

Odpowiedzi:


8

Znaleziono rozwiązanie, które działa dla aplikacji GTK (ale nie Qt). Trzeba ustawić

XMODIFIERS="@im=none"

aby X11 mógł obsługiwać martwe klucze. Dzięki @PabloSaratxaga za odpowiedź .


3

Miałem podobny problem w openSUSE. ~/.XComposebyłyby ignorowane przez aplikacje GTK +, więc moje własne sekwencje tworzenia nie działały w Firefox, Gimp i innych.

Dowiedziałem się, że gtk-query-immodules-2.0wymieniono kilka metod wprowadzania danych, ale nie xim; więc bez względu na GTK_IM_MODULEzmienną ximbył niedostępny. Zainstalowanie pakietów gtk2-immodule-xim(i znajomych) rozwiązało problem.

Być może ta uwaga okaże się przydatna dla osób cierpiących na tę samą klątwę.


1

Jest to sposób na trwałą konfigurację. Jest to opisane na przykład tutaj https://wiki.edubuntu.org/ComposeKey#line-66 . Skonfigurowałem klucze komponowania za pomocą ~ / .XCompose w ten sposób. Sprawdziłem to zarówno w systemach Ubuntu, jak i Debian.


Problem polega na tym, że nawet metoda jednorazowa przestała działać. Instrukcje dotyczące trwałych zmian są specyficzne dla Debiana / Ubuntu.
sastanin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.