far2l icon indicating copy to clipboard operation
far2l copied to clipboard

make hotkeys independent of current keyboard layout

Open spnethw opened this issue 11 months ago • 3 comments

С tg-чата:

Можно ли сделать так, чтобы хоткеи не зависели от текущего языка? В частности, ctrl-`, который возвращает в домашний каталог.

У меня, например, при русской раскладке Ctrl-` не срабатывает, в командную строку "ё" пишет (far2l GUI, Arch, x11, KDE Plasma).

spnethw avatar Feb 28 '24 11:02 spnethw

Добавлю, как автор из tg-чата.

У меня Ctrl-` букву "ё" не пишет, но и не срабатывает, пока включена русская раскладка.

Ubuntu 20.04, GNOME 3.36, Wayland, far2l GUI.

sharpMouse avatar Feb 28 '24 11:02 sharpMouse

Данный эффект не зависит от того, был ли запуск чистый или через env GDK_BACKEND=x11.

sharpMouse avatar Feb 28 '24 12:02 sharpMouse

У меня в Ubuntu 22.04 GNOME x11 GUI Ctrl+` и Ctrl+ё дают одинаковый эффект как и надо. Так, что тут особенность реализации клавиатуры+языков Wayland, возможно конкретной реализации Wayland.

Напомню, что под Wayland ещё и проблема буфера обмена https://github.com/elfmz/far2l/issues/1350#issuecomment-1443347317 , но этот глюк который по отзывам в тг-чате проявляется не на всех Wayland, т.е. тут странная привязка к конкретной реализации Wayland.

akruphi avatar Feb 28 '24 12:02 akruphi

@spnethw и @sharpMouse а какой у Вас язык первый в системе? У меня En, а Ru как второй и проблем с хоткеями при любой включенной раскладке нет. Может от порядка языков зависит? :exploding_head:

akruphi avatar Mar 17 '24 07:03 akruphi

какой у Вас язык первый в системе?

Тоже EN. Вообще непонятно, от чего зависит. Кстати, RCtrl + ё срабатывает. А в терминале работает и LCtrl + ё.

spnethw avatar Mar 18 '24 17:03 spnethw

какой у Вас язык первый в системе? English.   Кстати, теперь работает )) Версия 2.6.0, GUI.     — Reply to this email directly, view it on GitHub , or unsubscribe . You are receiving this because you were mentioned. Message ID: <elfmz/far2l/issues/2028/2004517691 @ github . com>    

С уважением, Василий Старостин.  

sharpMouse avatar Mar 22 '24 13:03 sharpMouse

Кстати, теперь работает )) Версия 2.6.0, GUI.

Т.е. можно тикет закрывать?

unxed avatar Apr 03 '24 13:04 unxed

Есть похожий баг, проявляющийся до сих пор. Но здесь же не о нём речь шла? https://github.com/elfmz/far2l/issues/2124

unxed avatar Apr 03 '24 13:04 unxed

Кстати, теперь работает )) Версия 2.6.0, GUI.

Т.е. можно тикет закрывать?

Ну, у меня баг не ушёл. И откуда у него уши растут, непонятно.

spnethw avatar Apr 05 '24 13:04 spnethw

Интересно как. У вас графическая версия же? Проверил ща на Mint 21.3, не воспроизводится.

У вас, кстати, иксы или вейленд?

unxed avatar Apr 05 '24 13:04 unxed

Ещё может быть дело в версии wx. Там правили это

unxed avatar Apr 05 '24 13:04 unxed

Arch / x11 / KDE Plasma 6.0.3, wxwidgets-gtk3 3.2.4

spnethw avatar Apr 05 '24 14:04 spnethw

А другие шорткаты с Ctrl+буквами срабатывают в русской раскладке? Или это только с ё такое

unxed avatar Apr 14 '24 18:04 unxed

Вроде бы только с ё.

spnethw avatar Apr 14 '24 18:04 spnethw

Поскольку у меня KDE под рукой нету, проблема рискует отложиться до никогда. Поэтому такое предложение: соберите у себя wxWidgets (это несложно) и их демо keyboard (это тоже), запустите, нажмите Ctrl+ё в русской раскладке, и скиньте скрин (и ещё скрин окна где установленные в системе языки, чтоб их порядок видеть).

Потому что есть у меня предположение, что баг — в апстриме.

unxed avatar Apr 14 '24 20:04 unxed

Нажимается Ctrl-`, включена английская раскладка:

event          key     KeyCode mod   UnicodeKey    RawKeyCode RawKeyFlags
   Hook         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
   Hook             '`'    96   C---   96 (U+0060)       96    0x00000031
  KeyUp             '`'    96   C---   96 (U+0060)       96    0x00000031
  KeyUp         CONTROL   308   ----    0 (U+0000)    65507    0x00000025

Нажимается Ctrl-`, включена русская раскладка:

event          key     KeyCode mod   UnicodeKey    RawKeyCode RawKeyFlags
   Hook         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
   Hook             '`'    96   C---   96 (U+0060)     1699    0x00000031
  KeyUp             '`'    96   C---   96 (U+0060)     1699    0x00000031
  KeyUp         CONTROL   308   ----    0 (U+0000)    65507    0x00000025

Если в меню File приложения Keyboard выставить галочки "Skip CHAR_HOOK event" и "Skip KEY_DOWN event", вывод дополняется ещё несколькими строками. При включенной английской раскладке:

event          key     KeyCode mod   UnicodeKey    RawKeyCode RawKeyFlags
   Hook         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
KeyDown         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
   Hook             '`'    96   C---   96 (U+0060)       96    0x00000031
KeyDown             '`'    96   C---   96 (U+0060)       96    0x00000031
   Char             '`'    96   C---   96 (U+0060)       96    0x00000031
  KeyUp             '`'    96   C---   96 (U+0060)       96    0x00000031
  KeyUp         CONTROL   308   ----    0 (U+0000)    65507    0x00000025

При включенной русской раскладке:

event          key     KeyCode mod   UnicodeKey    RawKeyCode RawKeyFlags
   Hook         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
KeyDown         CONTROL   308   C---    0 (U+0000)    65507    0x00000025
   Hook             '`'    96   C---   96 (U+0060)     1699    0x00000031
KeyDown             '`'    96   C---   96 (U+0060)     1699    0x00000031
   Char             'ё'     0   C--- 1105 (U+0451)     1699    0x00000031
  KeyUp             '`'    96   C---   96 (U+0060)     1699    0x00000031
  KeyUp         CONTROL   308   ----    0 (U+0000)    65507    0x00000025

wxWidgets-3.2.4, та же, что и в системе, собиралось вручную по инструкции с офсайта.

изображение

spnethw avatar Apr 14 '24 21:04 spnethw

Ой как интересно! Будто бы far2l хватает Char вместо KeyDown тут. Но да, проблема на нашей стороне. Дальше надо в код смотреть, это я прям ща не готов, но позже можно.

unxed avatar Apr 14 '24 22:04 unxed