Oracle DB, Oracle APEX, Linux etc.

среда, 18 января 2012 г.

Oracle SQL Developer: проблема с горячими клавишами

Предыстория: Не так давно обновил Debian на домашней машине до testing, из-за чего встретился с Gnome 3. Если бы у меня был планшет, наверно, всё было по-другому, однако для настольных ПК это DE недружелюбно. Итогом встречи стал переход на XFCE 4.8, который устроил практически всем. Но...

Проблема: Oracle SQL Developer отказался распознавать текстовые символы с включёнными модификаторами Alt, Ctrl и любыми их комбинациями. То есть, о горячих клавишах можно было забыть.

Причина: Разброд и шатание в настройках клавиатуры.

Ход мыслей: Поначалу я подумал на баги очередного EA, как раз обновил Oracle SQL Developer. Но откат на стабильную версию и удаление настроек (с созданием резервной копии, конечно) ситуацию не изменили. Пришлось внимательнее почитать Сеть. Несколько тем с похожими проблемами натолкнули на мысль, что что-то не так с настройками клавиатуры. И я начал читать про раскладки, X.org, XFCE, udev, evdev и грабли, на которые уже наткнулось прогрессивное человечество.

Развитие X.org server, вначале отказавшегося от хранения настроек в xorg.conf в пользу HAL, а затем — и от HAL в пользу udev, evdev и задания настроек несколькими файлами через /etc/X11/xorg.conf.d, вынудило меня убрать развёвшийся в xorg.conf бардак. Я убрал секции InputDevice для мышки и клавиатуры, убрал ссылки на них в секции ServerLayout. Cоздал файл /etc/X11/xorg.conf.d/99-keyboard.conf, который задаёт для класса устройств типа Keyboard со строкой keyboard в названии драйвер, модель, раскладки и опции:

Section "InputClass"
  Identifier "evdev keyboard catchall"
  MatchIsKeyboard "on"
  MatchDevicePath "/dev/input/event*"
  MatchProduct "keyboard"
  Driver "evdev"
  Option "XkbModel" "logicd"
  Option "XkbRules" "xorg"
  Option "XkbLayout" "us,ru"
  Option "XkbVariant" ",winkeys"
  Option "XkbOptions" "grp:caps_toggle,compose:rwin,terminate:ctrl_alt_bksp"
EndSection

Также, перезагружая иксы и проглядывая раз за разом /var/log/Xorg.0.log, я удалил не поддерживаемые расширения и модули, ненужные видеорежимы и прочий мусор. В /etc/default/keyboard были внесены те же правила для клавиатуры. Однако setxkbmap -print -verbose 10 показывал совсем не то. Оказалось, что xfce4-xkb-plugin отчего-то переопределяет системные настройки, не смотря на соответствующую опцию. За что и был заменён на xxkb.

Итог: Oracle SQL Developer снова работает с горячими клавишами, в настройке устройств ввода наведён небольшой порядок, место индикатора раскладок занял xxkb.

Читать далее