Розуміння та налаштування різних методів введення


21

Я використовую Trisquel GNU / Linux 7.0 LTS із середовищем Flashback GNOME 3 .

Я чув про три різні методи введення, а саме. ibus, ximі uim. Здається, ibusвін попередньо встановлений у моїй системі.

$ 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

Стикаючись цієї проблемою , я дізнався про встановлення uimі налаштування з GTK_IM_MODULE="uim"в ~/.profile. Нещодавно я видалив uimі видалив GTK_IM_MODULE="uim"рядок із ~/.profile. Але щоб подолати цю помилку, я зараз планую позбутися ibus.

Не встановлюючи жодного додаткового методу введення (скажімо, нова установка Trisquel), echo $GTK_IM_MODULEвиводить ximОтже, я плутаюся, тому що, враховуючи метод введення за замовчуванням ibus, то чому тоді це $GTK_IM_MODULEговорити xim?

Також я можу apt-get remove ibus? або я повинен uimспочатку встановити, а потім видалити ibus? Також я хочу знати, який метод введення зараз працює ibusабо xim? І Що таке правильний спосіб задати метод введення (тобто він GTK_IM_MODULE="uim"в ~/.profile)?

Крім того, я знайшов одну схему геттінга:

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

Коротко / Широко мені потрібна допомога, щоб зрозуміти встановлення / видалення та налаштування різних методів введення:

  • Як я можу знати, який метод введення активний на даний момент?
  • Як встановити та налаштувати різні способи введення? (я повинен видалити іншу?)

Відповіді:


45

Весь стек входу X11 - це безлад. Перш за все, вам не потрібна якась спеціальна рамка методу введення, якщо ви просто набираєте латинські символи або багатосимвольні композиційні послідовності, як визначено вашою розкладкою клавіатури XKB. Строго кажучи, будь-які послідовності з декількома клавішами, такі як мертві ключі, вимагають дуже простого способу введення. Але вони забезпечуються libx11 / XKB і працюють без будь-яких додаткових фреймворків IM. Тож цілком добре видалити всі ibus, uim, fcitx або будь-який інший спосіб введення, якщо вам не потрібно вводити такі мови, як китайська чи японська.

Як ви вже говорили, Gnome зробив ibus методом введення за замовчуванням, рішенням якого не всі були задоволені. Є багато людей, які віддають перевагу fcitx (який, мабуть, є за замовчуванням для більшості дистрибутивів KDE) через ibus з кількох причин: будь то правильна підтримка мови (переважно японська проти спрощеної порівняно з традиційною китайською) або проблеми з продуктивністю. Оскільки я не розмовляю ні однією східною мовою, для якої потрібна спеціальна система IM, я не можу нічого додати до цієї дискусії. Але якщо вас цікавить докладніша інформація про fcitx vs ibus, ви, можливо, захочете прочитати цю трохи датовану (2012 р.), Але, ймовірно, все-таки точну статтю про LWN .

Однак той факт, що ibus є типовим IM для Gnome, не робить його обов'язковим. Ви можете використовувати будь-який інший спосіб введення, який вам подобається, або взагалі його немає. Конфігурація чату здійснюється за допомогою змінних середовища. Але за винятком випадків, коли ви використовуєте виключно програми GTK + (у чому я сумніваюся), вам слід встановити більше, ніж просто GTK_IM_MODULE. Правильний спосіб встановлення способу введення:

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

у випадку fcitx або

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

у разі ibus. uim працює так само. Якщо ви хочете явно відключити будь-який спосіб введення, скористайтеся цими налаштуваннями:

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

Працює і порожня рядок.

Ви можете встановити ці змінні або загальносистемним /etc/profile(або виділеним файлом всередині /etc/profile.dвідповідно) або всередині вашого локального ~/.xprofile. Якщо встановити його ~/.bashrcабо ~/.profileне забезпечить виконання рядків під час входу в систему за допомогою графічного менеджера входу, такого як GDM, SDDM, KDM або LightDM. Якщо ви починаєте свій X сеанс за допомогою XDM, Slim або startx, вам потрібно вставити ці рядки ~/.xinitrc.

Якщо ви налаштували метод введення, відмінний від ibus, перейдіть до налаштувань Gnome після цього і переконайтесь, що будь-які налаштування, пов’язані з ibus, відключені, особливо будь-які комбінації клавіш. Крім того, скажіть Gnome не торкатися налаштувань клавіатури, використовуючи:

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

або видалити ibus взагалі.

А що з XIM? XIM - це досить застарілий протокол методу введення, який і ibus, і fcitx реалізують лише для застарілих причин підтримки. Немає жодної реальної причини, чому ви хочете використовувати XIM в даний час над будь-яким із цих двох. Єдина причина, чому ви хочете встановити, GTK_IM_MODULE="xim"- це перекриття жорстко закодованих налаштувань ComposeKey GTK .

Щоб відповісти на ваше інше запитання: я не думаю, що дійсно існує спосіб визначити, який метод введення активний на даний момент, за винятком перегляду змінних оточуючих середовищ або знань, які ІМ встановлені у вашій системі. Якщо GTK_IM_MODULEне встановлено, GTK вибирає вбудований чат на основі конфігурацій в /etc/gtk-2.0/gtk.immodules. GTK 3.0 виглядає, в /usr/lib/gtk-3.0/3.0.0/immodules.cacheякому генерується gtk-query-immodules-3.0.

Причина , по якій GTK_IM_MODULEвстановлено на ximце , ймовірно , який - то шалений де - то визначення змінної в /etc/profile, /etc/profile.d/*або будь-який інший з ваших локальних або глобальних оболонки RC файлів. Ви можете скасувати або змінити цю змінну, якщо відчуваєте потребу в цьому.

Однак, згідно з цим коментарем звіту про помилку Gnome, я припускаю, що значення, налаштоване за допомогою gsettingsпереопределення значення, встановленого GTK_IM_MODULEдля застосованих DBus програм. Тож принаймні ваші додатки Gnome, ймовірно, використовують gtk-im-context-simpleу даний момент, що фактично означає стандартну поведінку (тобто немає ibus чи будь-якого іншого виділеного чату).


Чудове пояснення та передумови. Тепер, якщо б тільки gsettingsна мене не було segfault будь-коли, коли я намагаюся зробити що-небудь xD (навіть --version segfaults !!)
sqweek

Тож у мене на моїй Ubuntu 18.04 є ibus та xim. Чи можу я безпечно їх видалити, якщо я не маю наміру вводити мови CJK?
Suncatcher

Так, але я б не видалив XIM, якщо не знадобиться. Він дуже датовий, але іноді використовується як база для інших функціональних можливостей. Тому, якщо вам дійсно не потрібно кілька кБ, я не видаляв би її.
Янек Бевендорф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.