[Fix] Ubuntu 14.04. Не работают горячие клавиши в русской раскладке (non latin)
[Костыль] Исправляем работоспособность горячих клавиш в русской раскладке под Ubuntu 14.04. Решение костыльное, но это лучше чем ничего...
ibus-m17n
Пока сработало следующее решение, с недостатками которого можно мириться (спасибо bushart). Используем метод ввода iBus с дополнительными языками из пакета ibus-m17n
.
Выбираем метод ввода: iBus (Параметры системы » Язык системы » Метод ввода с клавиатуры).
Установка пакета ibus-m17n
:
sudo apt-get install ibus-m17n
Перезапускаем Unity (завершение сеанса).
Идем в настройки iBus (иконка клавиатуры на верхней панели Unity или запустите ibus-setup) и выбираем метод ввода как "русский - kbd (m17n)". Выберите эту же раскладку в настройках: Параметры » Ввод текста.
Отключить надоедливую панель при вставке текста можно здесь же:
Исправляем проблемы с Sublime Text и Skype!
При использовании iBus, не работает ввод русского текста в Sublime Text и, при переключении между окном Skype (Chrome), тоже отваливается ввод кириллицы. В качестве решения я добавил стандартную русскую раскладку и повесил переключение раскладки на кастомный хоткей Alt_R, который запускает скрипт switch_layout.sh
.
#!/bin/bash
# Require: xdotool
active_app=$(ps -p $(xdotool getwindowfocus getwindowpid) -o comm=)
if [[ $(ibus engine) == 'xkb:us::eng' ]]; then
if [[ $active_app == 'sublime_text' ]]; then
ibus engine xkb:ru::rus
gsettings set org.gnome.desktop.input-sources current 2
else
ibus engine m17n:ru:kbd
gsettings set org.gnome.desktop.input-sources current 1
fi
else
ibus engine xkb:us::eng # xkb:gb:dvorak:eng
gsettings set org.gnome.desktop.input-sources current 0
fi
if [[ $active_app == 'skype' || $active_app == 'chrome' ]]; then
ibus restart
fi
Скрипт определяет текущее активное окно и устанавливает для Sublime Text стандартную русскую раскладку вместо "русский - kbd (m17n)". Для скайпа и хрома - перезагружает iBus. Смена раскладки подтормаживает на этих окнах, но ничего лучше я пока не нашел и не придумал.
Примечание
Если вы удаляли ibus и обнаружили, что пропали параметры системы - установите:
sudo apt-get install ubuntu-desktop
java-non-latin-shortcuts
Это решение проблему не решает, а лишь инвертирует поведение - хоткеи работают в русской раскладке но не работают в английской. Хотя, после повторного использования этого патча у меня не заработали горячие клавиши в RU раскладке ни в PhpStorm, ни в Krusader. В MySQL Workbench хоткеи работали частично. В SublimeText, Skype и браузерах работали..
sudo add-apt-repository ppa:attente/java-non-latin-shortcuts
sudo apt-get update
sudo apt-get dist-upgrade
# И перезагрузка Unity
restart unity-settings-daemon
Для отката:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:attente/java-non-latin-shortcuts
LinuxJavaFixes для PhpStorm (Intellij)
Это решение исправляет проблему с hotkeys в русской раскладке лишь в некоторых Java приложениях: Intellij (PhpStorm, etc), Eclipse.
Клонируем исходники в каталог, где они будут жить:
git clone https://github.com/zheludkovm/LinuxJavaFixes.git ~/apps/linux-java-fixes
Добавляем следующую опцию/строку в файл настроек PhpStorm-171.4330.2/bin/phpstorm64.vmoptions:
-javaagent:/home/stas/apps/linux-java-fixes/build/LinuxJavaFixes-1.0.0-SNAPSHOT.jar
Спасибо @zheludkovm!
#keyboard, #hotkeys, #fix