far2l
far2l copied to clipboard
make hotkeys independent of current keyboard layout
С tg-чата:
Можно ли сделать так, чтобы хоткеи не зависели от текущего языка? В частности, ctrl-`, который возвращает в домашний каталог.
У меня, например, при русской раскладке Ctrl-` не срабатывает, в командную строку "ё" пишет (far2l GUI, Arch, x11, KDE Plasma).
Добавлю, как автор из tg-чата.
У меня Ctrl-` букву "ё" не пишет, но и не срабатывает, пока включена русская раскладка.
Ubuntu 20.04, GNOME 3.36, Wayland, far2l GUI.
Данный эффект не зависит от того, был ли запуск чистый или через env GDK_BACKEND=x11.
У меня в Ubuntu 22.04 GNOME x11 GUI Ctrl+` и Ctrl+ё дают одинаковый эффект как и надо. Так, что тут особенность реализации клавиатуры+языков Wayland, возможно конкретной реализации Wayland.
Напомню, что под Wayland ещё и проблема буфера обмена https://github.com/elfmz/far2l/issues/1350#issuecomment-1443347317 , но этот глюк который по отзывам в тг-чате проявляется не на всех Wayland, т.е. тут странная привязка к конкретной реализации Wayland.
@spnethw и @sharpMouse а какой у Вас язык первый в системе? У меня En, а Ru как второй и проблем с хоткеями при любой включенной раскладке нет. Может от порядка языков зависит? :exploding_head:
какой у Вас язык первый в системе?
Тоже EN. Вообще непонятно, от чего зависит. Кстати, RCtrl + ё срабатывает. А в терминале работает и LCtrl + ё.
какой у Вас язык первый в системе? 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>
С уважением, Василий Старостин.
Кстати, теперь работает )) Версия 2.6.0, GUI.
Т.е. можно тикет закрывать?
Есть похожий баг, проявляющийся до сих пор. Но здесь же не о нём речь шла? https://github.com/elfmz/far2l/issues/2124
Кстати, теперь работает )) Версия 2.6.0, GUI.
Т.е. можно тикет закрывать?
Ну, у меня баг не ушёл. И откуда у него уши растут, непонятно.
Интересно как. У вас графическая версия же? Проверил ща на Mint 21.3, не воспроизводится.
У вас, кстати, иксы или вейленд?
Ещё может быть дело в версии wx. Там правили это
Arch / x11 / KDE Plasma 6.0.3, wxwidgets-gtk3 3.2.4
А другие шорткаты с Ctrl+буквами срабатывают в русской раскладке? Или это только с ё
такое
Вроде бы только с ё
.
Поскольку у меня KDE под рукой нету, проблема рискует отложиться до никогда. Поэтому такое предложение: соберите у себя wxWidgets (это несложно) и их демо keyboard (это тоже), запустите, нажмите Ctrl
+ё
в русской раскладке, и скиньте скрин (и ещё скрин окна где установленные в системе языки, чтоб их порядок видеть).
Потому что есть у меня предположение, что баг — в апстриме.
Нажимается 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, та же, что и в системе, собиралось вручную по инструкции с офсайта.
Ой как интересно! Будто бы far2l хватает Char вместо KeyDown тут. Но да, проблема на нашей стороне. Дальше надо в код смотреть, это я прям ща не готов, но позже можно.