LINUX.ORG.RU

Горячие клавиши на не английской раскладке.


0

1

Тема измучена, поиском пользовался (и тут и гугла). Но максимум что нахожу по теме, так это проблему с Firefox. Но данная проблема в основном напрягает при работе с Eclipse.

И проблема номер 2. Как временный (не хотелось, что бы стал постоянным) костыль - забиндил смену раскладки на Shift + Alt (вместо привычного Ctrl + Shift). Ибо горячие клавиши не работали и в английской раскладке.

Есть ли спасение? :)


Ответ на: Ъ от madgnu

hardware keyCode думаю один будет на всех клавах. Можно написать программку и затестить. И да, кроме как хаком это не назовешь.

В данном случае мне важно, что бы работало :)

Opik ()

> Но максимум что нахожу по теме, так это проблему с Firefox

Ну конечно, начинающие убунтоиды ничем другим и не пользуются, поэтому наличие этой же проблемы в других программах и не замечают. Оттуда и обилие тем на форумах в результатах поиска.

Я читал несколько тем и узнал, что проблема, оказывается, не в FireFox а в GTK - недоработка там. Странно: запустил FireFox 3.6.10 в старом SuSE 10.1, где ошибка была в стандартном FireFox была, и увидел, что в новом её нет. GTK остался прежним. Значит или неправда, или FireFox тащит с собой системную библиотеку GTK! Скорее всего второе.

Но если первое (неправда), то вносить изменения надо в сами программы. Если второе (недоработка в библиотеке), то это очень странно. Eclipse, он вообще на Java, а его используют в огромных масштабах в разных ОС. Я заметил что SuperTuxKart начиная с версии 0.7 тоже стал подвержен проблеме (на русской раскладке клавиша Нитро закрывает гонку). В версии 0.6 он был на SDL и не сбоил, теперь он на Irrlicht и сбоит.

Вывод: надо патчить Java.

Zenithar ()
Ответ на: комментарий от Zenithar

Пытаясь разобраться в проблеме, пока думается что проблема не в самой Java, а в способе написания, ибо в том же NetBeans данной проблемы нет. Если же проблема не в написании, ибо по ссылке выше проблему выдает GDK. Ибо при равных условиях на винде выдает одинаковый код на разных раскладках, в линуксе - разный (но последнее вообще не аргумент :)) В том же Eclipse горячие клавиши идут через keyCode, который в свою очередь разный в разных раскладках, что по идее верно, а так же есть hardware keyCode, который одинаковый везде, осталось лишь разобраться зависит ли оно от конкретной модели клавиатуры или нет.

Opik ()
Ответ на: комментарий от Opik

В моей патченной версии ошибочка, неправильный код вписал, поправлю - перелью.

Opik ()
Ответ на: комментарий от Opik

Мда уж, проблема. Непонятно в каком компоненте ошибка... Ну раз баг в багзилле Eclipse то у них. Раз не решается кучу лет то может быть баг частично у них, частично у Java.

Zenithar ()
Ответ на: комментарий от Zenithar

Или просто разработчики все англоязычные и им наплевать

Zenithar ()
Ответ на: комментарий от Zenithar

Ну прокомментирую разработчика:
Eclipse implements shortcuts differently. It doesn't use native menu
accelerators. It uses the key down event to implement their shortcut strategy.
The applets in Linux to change the keyboard layout don't use layout support
from XKB, instead they change the x keymap entirely every time the layout
changes. That makes impossible for us (SWT) to map the hardware key to the same
keycode/character every time (it will depend on the keymap currently set in x).
Thus, the shortcut implementation of Eclipse that relies always getting the
same keycode/character during key down fails.

Но в то же время есть способ замапить hardware key. Не вижу другой проблемы, но в трекере может укажут, посмотрим :)

Opik ()

Перезалил новую версию, проблемку поправил, у меня все горячие клавиши работают и в русской раскладке и в английской. Замапил пока только самое необходимое.

Opik ()

Горячие клавиши на не английской раскладке.

enjoy your gtk

x0r ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.