[Fix] Ubuntu 14.04. Не работают горячие клавиши в русской раскладке (non latin)

Категория: GUI

[Костыль] Исправляем работоспособность горячих клавиш в русской раскладке под 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

категория: GUI