Memahami & mengatur metode input yang berbeda

21

Saya menggunakan Trisquel GNU / Linux 7.0 LTS dengan Lingkungan Flashback GNOME 3 .

Saya mendengar tentang tiga metode input yang berbeda yaitu. ibus, ximdan uim. Dan sepertinya ibussudah diinstal pada sistem saya.

$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2

Saat menghadapi masalah ini saya belajar tentang menginstal uimdan mengatur dengan GTK_IM_MODULE="uim"di ~/.profile. Baru-baru ini saya menghapus uimdan menghapus GTK_IM_MODULE="uim"baris dari ~/.profile. Tetapi untuk mengatasi bug ini , saya berencana untuk menyingkirkannya ibussekarang.

Tanpa menginstal metode input tambahan, (katakanlah fresh-install Trisquel), echo $GTK_IM_MODULEoutput ximJadi, saya bingung karena mempertimbangkan metode input default ibus, lalu mengapa $GTK_IM_MODULEmengatakan xim?

Bisakah saya apt-get remove ibus? atau saya harus menginstal uimdulu dan kemudian menghapus ibus? Saya juga ingin tahu metode input mana yang saat ini berfungsi ibusatau xim? Dan Apa cara yang tepat untuk mengatur metode input (yaitu GTK_IM_MODULE="uim"ke ~/.profile)?

Selain itu, saya menemukan satu skema pengaturan:

$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'

Secara singkat / Luas Saya perlu bantuan untuk memahami menginstal / menghapus dan mengatur metode input yang berbeda:

  • Bagaimana saya tahu metode input mana yang saat ini aktif?
  • Bagaimana cara saya menginstal dan mengatur metode input yang berbeda? (haruskah saya menghapus yang lain?)
Pandya
sumber

Jawaban:

45

Seluruh tumpukan input X11 berantakan. Pertama-tama, Anda tidak memerlukan kerangka metode input khusus jika Anda hanya mengetik karakter latin atau urutan penulisan beberapa karakter seperti yang ditentukan oleh tata letak keyboard XKB Anda. Sebenarnya, setiap urutan multi-kunci, seperti dead-key, memerlukan metode input yang sangat sederhana. Tetapi mereka disediakan oleh libx11 / XKB dan bekerja tanpa kerangka IM tambahan. Jadi sangat baik untuk menghapus semua ibus, uim, fcitx atau metode input apa pun yang Anda miliki jika Anda tidak perlu mengetikkan bahasa seperti Cina atau Jepang.

Seperti yang sudah Anda katakan, Gnome menjadikan ibus metode input default, keputusan yang tidak disukai semua orang. Ada banyak orang yang lebih memilih fcitx (yang tampaknya merupakan standar untuk sebagian besar distribusi KDE) daripada ibus karena beberapa alasan: apakah itu dukungan bahasa yang tepat (kebanyakan Jepang vs. yang disederhanakan vs tradisional Cina) atau masalah kinerja. Karena saya tidak berbicara bahasa Timur yang membutuhkan kerangka kerja IM khusus, saya tidak bisa menambahkan apa pun ke dalam perdebatan itu. Tetapi jika Anda tertarik pada detail lebih lanjut tentang fcitx vs ibus, Anda mungkin ingin membaca ini sedikit tanggal (2012), tetapi mungkin artikel LWN masih akurat .

Namun, fakta bahwa ibus adalah IM default untuk Gnome tidak membuatnya wajib. Anda dapat menggunakan metode input lain yang Anda suka atau tidak sama sekali. Konfigurasi IM dilakukan melalui variabel lingkungan. Tetapi kecuali ketika Anda hanya menggunakan aplikasi GTK + (yang saya ragu), Anda harus mengatur lebih dari sekadar GTK_IM_MODULE. Cara yang tepat untuk mengatur metode input adalah:

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

dalam kasus fcitx atau

export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

dalam kasus ibus. uim bekerja dengan cara yang sama. Jika Anda ingin secara eksplisit menonaktifkan metode input apa pun, gunakan pengaturan ini:

export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"

String kosong juga berfungsi.

Anda dapat mengatur variabel-variabel ini di sistem /etc/profile(atau file khusus /etc/profile.dmasing-masing) atau di dalam lokal Anda ~/.xprofile. Menyetelnya ~/.bashrcatau ~/.profiletidak akan memastikan bahwa garis akan dieksekusi ketika masuk ke sistem Anda menggunakan manajer login grafis seperti GDM, SDDM, KDM atau LightDM. Jika Anda memulai sesi X Anda menggunakan XDM, Slim atau startx, Anda harus memasukkan garis-garis tersebut ~/.xinitrc.

Jika Anda mengonfigurasi metode input selain ibus, buka Pengaturan Gnome sesudahnya dan pastikan pengaturan terkait ibus dinonaktifkan, terutama pintasan keyboard. Atau, beri tahu Gnome untuk tidak menyentuh pengaturan keyboard Anda menggunakan:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

atau uninstall ibus sama sekali.

Sekarang bagaimana dengan XIM? XIM adalah protokol metode input yang cukup usang yang diimplementasikan ibus dan fcitx hanya untuk alasan dukungan legacy. Tidak ada alasan nyata mengapa Anda ingin menggunakan XIM saat ini di antara keduanya. Satu-satunya alasan mengapa Anda ingin mengatur GTK_IM_MODULE="xim"adalah untuk mengesampingkan pengaturan ComposeKey hardcoded GTK .

Untuk menjawab pertanyaan Anda yang lain: Saya kira tidak ada cara untuk mendeteksi metode input mana yang aktif saat ini kecuali untuk melihat variabel lingkungan atau mengetahui IM mana yang diinstal pada sistem Anda. Jika GTK_IM_MODULEtidak disetel, GTK memilih IM bawaan berdasarkan konfigurasi di /etc/gtk-2.0/gtk.immodules. GTK 3.0 terlihat di /usr/lib/gtk-3.0/3.0.0/immodules.cachemana dihasilkan oleh gtk-query-immodules-3.0.

Alasan mengapa GTK_IM_MODULEdiatur ke ximmungkin beberapa definisi variabel liar di suatu tempat di /etc/profile, /etc/profile.d/*atau yang lain dari file RC shell lokal atau global Anda. Jangan ragu untuk membatalkan atau menimpa variabel ini jika Anda merasa perlu melakukannya.

Namun, menurut komentar laporan bug Gnome ini saya berasumsi bahwa nilai yang dikonfigurasi melalui gsettingsmengabaikan nilai yang ditetapkan GTK_IM_MODULEuntuk aplikasi yang diaktifkan-DBus. Jadi setidaknya aplikasi Gnome Anda mungkin menggunakan gtk-im-context-simplesaat ini yang secara efektif berarti perilaku standar (yaitu tidak ada ibus atau IM khusus lainnya).

Janek Bevendorff
sumber
Penjelasan dan latar belakang yang bagus. Sekarang jika saja gsettingstidak segfault pada saya setiap kali saya mencoba melakukan apa pun xD (bahkan - segfaultsversi !!)
sqweek
Jadi saya punya ibus dan xim di Ubuntu 18.04 saya. Dapatkah saya menghapus keduanya dengan aman jika saya tidak memiliki niat untuk mengetikkan bahasa CJK?
Suncatcher
Ya, tapi saya tidak akan menghapus XIM kecuali jika diperlukan. Ini sangat tanggal, tetapi kadang-kadang digunakan sebagai dasar untuk fungsi lainnya. Jadi, kecuali Anda benar-benar membutuhkan beberapa kB, saya tidak akan menghapusnya.
Janek Bevendorff