Bagaimana cara membuat Compose berfungsi di aplikasi GTK dan Qt?

15

Saya menggunakan Gnome untuk waktu yang lama, tetapi lebih suka metode input vanilla X ( xim) daripada perilaku GTK default. Saya hanya mengatur GTK_IM_MODULEdan QT_IM_MODULEvariabel lingkungan ke xim, dan tidak punya masalah dengan konfigurasi multi-tata letak, Composekunci, ekstensi kustom ~/.XComposedan misc:typotipografi.

Gnome 3.6 baru-baru ini benar-benar mengacaukan input keyboard dengan mengirimkan setengah matang dan buggy ibus dan memaksanya pada pengguna . Saya hanya tidak bisa mengaktifkan keyboard sebaik sebelumnya (bahkan dengan ibuscacat), dan harus meninggalkan Gnome sepenuhnya.

Sekarang saya menggunakan window manager sederhana, dan mengkonfigurasi keyboard saya dengan setxkbmap. Sementara keyboard berfungsi dengan baik lagi, saya tidak bisa membuat tombol Tulis berfungsi di mana-mana. Menulis karya di aplikasi X11 biasa ( xterm), tetapi tidak berfungsi di aplikasi GTK2, GTK3, atau Qt.

Saya menggunakan versi Archlinux saat ini:

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

dan aktifkan Composekunci seperti ini:

setxkbmap ... -option 'compose:menu'

dan ekspor GTK_IM_MODULE, QT_IM_MODULEvariabel:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose kunci dikenali dengan benar oleh X11:

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

Ini berfungsi dengan baik xterm, urutan dari saya ~/.XComposetermasuk. Itu tidak bekerja di aplikasi GTK atau Qt. Katakanlah, jika saya masuk Compose ', maka aplikasi 'segera menggema , tanpa menunggu kunci ketiga dalam urutan.

Sekarang saya kira ada sesuatu yang berubah di Xorg (karena Composetidak bekerja di aplikasi Qt), atau di GTK dan Qt. *_IM_MODULEvariabel tidak cukup sekarang. Apa lagi yang diperlukan untuk membuat GTK dan Qt modern mengenali ximdan menyusun urutannya?

PS Ada pertanyaan serupa (dan belum dijawab) tentang kunci Tulis tidak bekerja di GTK . Berbeda dengan penanya, saya belum ibusmenginstal.

sastanin
sumber

Jawaban:

7

Menemukan solusi yang berfungsi untuk aplikasi GTK (tetapi tidak untuk Qt). Kita perlu mengatur

XMODIFIERS="@im=none"

untuk membiarkan X11 menangani kunci mati. Terima kasih kepada @PabloSaratxaga atas jawabannya .

sastanin
sumber
2

Saya punya masalah serupa di openSUSE. ~/.XComposeakan diabaikan oleh aplikasi GTK +, jadi urutan Tulisan saya sendiri tidak berfungsi di Firefox, Gimp, dan lainnya.

Saya menemukan bahwa gtk-query-immodules-2.0daftar beberapa metode input, tetapi tidak xim; jadi, terlepas dari GTK_IM_MODULEvariabelnya,xim tidak tersedia. Menginstal paket gtk2-immodule-xim(dan teman-teman) menyelesaikan masalah.

Mungkin komentar ini terbukti bermanfaat bagi orang yang menderita kutukan yang sama.

ahli bahasa
sumber
1

Ini adalah cara konfigurasi yang persisten. Ini dijelaskan misalnya di sini https://wiki.edubuntu.org/ComposeKey#line-66 . Saya mengkonfigurasi kunci penulisan dengan ~ / .XCompose dengan cara ini. Saya telah memeriksa ini di sistem ubuntu dan debian.

ASten
sumber
Masalahnya adalah bahwa bahkan metode sekali saja telah berhenti bekerja. Instruksi untuk perubahan persisten adalah khusus untuk Debian / Ubuntu.
sastanin