Вопрос или проблема
Недавно я обновился с 12.04 до 14.04 LTS, но обнаружил, что iBus стал работать некорректно.
В 12.04 в списке методов ввода не было английского, потому что при запуске приложения iBus находился в состоянии “Метод ввода выключен”; затем я мог включить метод ввода, нажав Ctl+Sp, и вводить китайский или что-то другое.
Но в 14.04 английский (США) также стал одним из методов ввода. Кроме этого, у меня активированы китайский (pinyin) и японский (mozc). В результате при запуске приложения по умолчанию используется китайский как метод ввода. Я пытался удалить и снова добавить методы ввода, но список методов ввода фиксирован в порядке на следующем изображении, и pinyin, кажется, является методом по умолчанию.
Как я могу настроить последовательность и сделать английский методом ввода по умолчанию? Большое спасибо!
ИЗМЕНЕНИЕ
На самом деле начальный метод ввода для каждого вновь запущенного приложения, похоже, случайный, и Mozc также может быть методом по умолчанию.
Я также нашел решение, хотя это лишь способ установить метод ввода по умолчанию для текущей сессии входа. Это выглядит следующим образом:
- перейдите в рабочую область без окон приложений (или просто не фокусируйтесь на каком-либо приложении)
- нажмите горячую клавишу, чтобы переключить метод ввода на английский (или любой другой по вашему выбору)
- в результате начальный метод ввода в новом запущенном приложении или новой вкладке xterm будет английским
Вывод команды gsettings list-recursively org.freedesktop.ibus
следующий:
org.freedesktop.ibus.general dconf-preserve-name-prefixes ['/desktop/ibus/engine/pinyin', '/desktop/ibus/engine/bopomofo', '/desktop/ibus/engine/hangul']
org.freedesktop.ibus.general preload-engines-inited true
org.freedesktop.ibus.general use-system-keyboard-layout true
org.freedesktop.ibus.general embed-preedit-text true
org.freedesktop.ibus.general enable-by-default false
org.freedesktop.ibus.general use-global-engine false
org.freedesktop.ibus.general preload-engine-mode 0
org.freedesktop.ibus.general use-xmodmap true
org.freedesktop.ibus.general switcher-delay-time 400
org.freedesktop.ibus.general version '1.5.5'
org.freedesktop.ibus.general load-xkb-layouts ['us', 'us(chr)', 'us(dvorak)', 'ad', 'al', 'am', 'ara', 'az', 'ba', 'bd', 'be', 'bg', 'br', 'bt', 'by', 'de', 'dk', 'ca', 'ch', 'cn(tib)', 'cz', 'ee', 'epo', 'es', 'et', 'fi', 'fo', 'fr', 'gb', 'ge', 'ge(dsb)', 'ge(ru)', 'ge(os)', 'gh', 'gh(akan)', 'gh(ewe)', 'gh(fula)', 'gh(ga)', 'gh(hausa)', 'gn', 'gr', 'hu', 'hr', 'ie', 'ie(CloGaelach)', 'il', 'in', 'in(tel)', 'in(bolnagri)', 'iq', 'iq(ku)', 'ir', 'ir(ku)', 'is', 'it', 'jp', 'kg', 'kh', 'kz', 'la', 'latam', 'lk', 'lk(tam_unicode)', 'lt', 'lv', 'ma', 'ma(tifinagh)', 'mal', 'mao', 'me', 'mk', 'mm', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng', 'ng(igbo)', 'ng(yoruba)', 'nl', 'no', 'no(smi)', 'np', 'pk', 'pl', 'pl(csb)', 'pt', 'ro', 'rs', 'ru', 'ru(cv)', 'ru(kom)', 'ru(sah)', 'ru(tt)', 'ru(xal)', 'se', 'si', 'sk', 'sy', 'sy(ku)', 'th', 'tj', 'tr', 'ua', 'uz', 'vn']
org.freedesktop.ibus.general engines-order ['xkb:us::eng', 'pinyin', 'mozc-jp']
org.freedesktop.ibus.general preload-engines ['pinyin', 'xkb:us::eng', 'mozc-jp']
org.freedesktop.ibus.general xkb-latin-layouts ['ara', 'bg', 'cz', 'dev', 'gr', 'gur', 'in', 'jp(kana)', 'mal', 'mkd', 'ru', 'ua']
org.freedesktop.ibus.general.xkblayoutconfig east-asia ['dz', 'km', 'lo', 'my', 'th', 'vi']
org.freedesktop.ibus.general.xkblayoutconfig center-asia ['bo', 'zh']
org.freedesktop.ibus.general.xkblayoutconfig north-europe ['da', 'fi', 'fo', 'is', 'no', 'se', 'sv']
org.freedesktop.ibus.general.xkblayoutconfig west-europe ['ca', 'cs', 'de', 'en', 'es', 'fr', 'gd', 'hu', 'it', 'nl', 'pt', 'sk', 'sl']
org.freedesktop.ibus.general.xkblayoutconfig group-list ['west_europe', 'south_europe', 'east_europe', 'north_europe', 'west_asia', 'center_asia', 'east_asia', 'india', 'australia']
org.freedesktop.ibus.general.xkblayoutconfig south-europe ['bg', 'bs', 'el', 'mk', 'mt', 'ro', 'sq', 'sr']
org.freedesktop.ibus.general.xkblayoutconfig west-asia ['am', 'ar', 'az', 'ber', 'fa', 'ha', 'he', 'hy', 'ig', 'ku', 'tg', 'tr', 'yo']
org.freedesktop.ibus.general.xkblayoutconfig india ['bn', 'dv', 'gu', 'hi', 'kn', 'ml', 'ne', 'or', 'pa', 'si', 'ta', 'te', 'ur']
org.freedesktop.ibus.general.xkblayoutconfig east-europe ['be', 'csb', 'cv', 'et', 'ka', 'kk', 'ky', 'lt', 'lv', 'pl', 'ru', 'tt', 'uk', 'uz']
org.freedesktop.ibus.general.xkblayoutconfig australia ['mi']
org.freedesktop.ibus.general.hotkey next-engine ['Alt+Shift_L']
org.freedesktop.ibus.general.hotkey disable-unconditional @as []
org.freedesktop.ibus.general.hotkey enable-unconditional @as []
org.freedesktop.ibus.general.hotkey triggers-no-modifiers @as []
org.freedesktop.ibus.general.hotkey trigger ['Control+space', 'Zenkaku_Hankaku', 'Alt+Kanji', 'Alt+grave', 'Hangul', 'Alt+Release+Alt_R']
org.freedesktop.ibus.general.hotkey previous-engine @as []
org.freedesktop.ibus.general.hotkey prev-engine @as []
org.freedesktop.ibus.general.hotkey next-engine-in-menu ['Alt+Shift_L']
org.freedesktop.ibus.general.hotkey triggers ['<Alt><Shift>', '<Control>space']
org.freedesktop.ibus.panel x -1
org.freedesktop.ibus.panel y -1
org.freedesktop.ibus.panel lookup-table-orientation 1
org.freedesktop.ibus.panel show 1
org.freedesktop.ibus.panel auto-hide-timeout 10000
org.freedesktop.ibus.panel show-im-name false
org.freedesktop.ibus.panel custom-font 'Sans 10'
org.freedesktop.ibus.panel show-icon-on-systray true
org.freedesktop.ibus.panel use-custom-font false
Просто используйте setxkbmap, когда хотите переключиться на американскую клавиатуру. Например:
setxkbmap us
Я создал ярлык на рабочем столе, чтобы помочь мне переключать раскладки клавиатуры из-за проблем с языком Ibus. Просто отредактируйте файл под названием layout.desktop в $HOME/Desktop и сделайте его исполняемым. Вот пример для возврата к раскладке клавиатуры США:
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Keymap US
Comment=
Exec=setxkbmap us
StartupNotify=false
Terminal=false
Hidden=false
Попробуйте установить язык по умолчанию в настройках клавиатуры. Я нашел это решение здесь.
Ответ или решение
Чтобы установить метод ввода iBus по умолчанию в Ubuntu 14.04 и избежать проблем с случайным выбором языка ввода при запуске приложений, выполните следующие шаги:
-
Откройте настройки iBus:
- Поскольку вы уже используете iBus, чтобы открыть настройки, откройте терминал и выполните команду:
ibus-setup
- Поскольку вы уже используете iBus, чтобы открыть настройки, откройте терминал и выполните команду:
-
Настройте порядок методов ввода:
- В открывшемся окне перейдите на вкладку "Input Method".
- Убедитесь, что ваш английский метод ввода (например,
xkb:us::eng
) находится на первом месте в списке. Для этого используйте кнопки "Up" и "Down", чтобы переместить нужный метод вверх списка.
-
Сохраните изменения:
- После настройки порядка методов ввода закройте окно настроек.
-
Перезагрузите iBus:
- Выполните следующие команды в терминале для перезагрузки iBus:
ibus restart
- Либо вы можете перезагрузить систему, чтобы изменения вступили в силу.
- Выполните следующие команды в терминале для перезагрузки iBus:
-
Настройки настроек клавиатуры:
- Перейдите в "Системные настройки" и выберите "Клавиатура".
- Вкладка "Раскладки" должна отображать все доступные раскладки. Убедитесь, что английская раскладка установлена как основная.
-
Горячие клавиши для переключения методов ввода:
- В настройках iBus вы можете также установить горячие клавиши для переключения между методами ввода. Откройте вкладку "Hotkeys" в
ibus-setup
. - Убедитесь, что для переключения между языками установлены удобные для вас сочетания клавиш, например
Ctrl + Space
.
- В настройках iBus вы можете также установить горячие клавиши для переключения между методами ввода. Откройте вкладку "Hotkeys" в
-
Использование setxkbmap:
- Как временное решение, вы можете использовать команду
setxkbmap
для смены раскладки клавиатуры на английскую. В терминале выполните:setxkbmap us
- Как временное решение, вы можете использовать команду
-
Создайте ярлык для быстрого переключения раскладок:
- Если вы часто меняете раскладки, создайте десктопный ярлык, который позволит вам быстро переключаться:
- Создайте файл на рабочем столе с именем
layout.desktop
. - Вставьте в него следующий код:
[Desktop Entry] Encoding=UTF-8 Version=0.9.4 Type=Application Name=Keymap US Comment= Exec=setxkbmap us StartupNotify=false Terminal=false Hidden=false
- Сделайте файл исполняемым:
chmod +x ~/Desktop/layout.desktop
- Создайте файл на рабочем столе с именем
- Если вы часто меняете раскладки, создайте десктопный ярлык, который позволит вам быстро переключаться:
После выполнения этих шагов ваш английский метод ввода должен стать методом по умолчанию при запуске новых приложений в Ubuntu 14.04. Если у вас возникнут дополнительные вопросы или проблемы, пожалуйста, не стесняйтесь задавать их.