On 12/02/2022 23:00, Maksim Dmitrichenko wrote:
сб, 12 февр. 2022 г. в 17:55, Max Nikulin:
Если правильно понимаю, то это последствие того, что в ubuntu когда-то
был патч, который позволял и раскладку переключать, например,
Ctrl+Shift, и эти же самые клавиши использовать в комбинациях с другими.
Справедливости ради весь Xkb - это тоже одна большая помойка. Чё-то до
сих пор помнится мне, что проблема с тем, что на русской раскладке
комбинации с модификаторами приводили к тому, что генерировались
Ctrl-Я вместо ожидаемого Ctrl-Z, ну и всё такое.
Я бы тоже хотел, чтобы такое работало из коробки, только вот начал
сомневаться, что это вообще возможно. Например, на экране 2 программы,
одна с русской локализацией, другая с английской. Русская ожидает
Alt+русская буква (хотя лично мне хочется странного: даже при русской
локализации работали бы английские комбинации, который на других
клавишах). Еще интереснее становится, когда доходит дело до Ctrl+, - с
какой раскладки брать запятую? Дополнительные символы на цифровых
клавишах в европейских раскладках могут быть переставлены...
С другой стороны, оставлять все на совесть разработчикам
программы/библиотеки/toolkit тоже так себе идея.
Gnome вроде следит, чтобы первой всегда стояла английская раскладка, а
нужная пользовательская - следующей группой. Так хотя бы нормальные
приложения могут определить, что Ctrl+Z и Ctrl+Я - одно и тоже, правда
ценой дополнительных усилий и потенциальных ошибок при реализации.
Как-то слишком радикально получилось у них приделать поддержку CJK.
В целом, их тоже понять можно (см. выше).
Главное, что мне не нравится, так это то, что оторвали возможность не
использовать активное переключение, а тихо сидеть и только менять значок
при смене раскладки. Оно, конечно, дополнительный код, за
работоспособностью которого надо следить, техподдержке каждый раз надо
спрашивать, а не включена ли такая галочка...
На сколько я успел разобраться в LXDE есть плагин Lxpanel, который
отлавливает изменение раскладки и меняет флажок. Кроме того, он может
отлавливать переключение окон и восстанавливаться раскладку для каждого
окна. На этом все.
Значок на панели обычно позволяет на него тыкать и переключать мышкой,
интересно, каким механизмом пользуется он.
Раз mutter взялся прибивать гвоздями группу xkb, то вроде за
восстановлением раскладки при переключении окон тоже должен следить
window manager, а не LXDE.
Ну и если в LXDE работает то, к чему стремились в Gnome (в какой степени
получилось - другой вопрос), то одного xkb мало, нужен еще кто-то,
возможно управляющийся по dbus, ну или ibus сам обрабатывает
переключения (но тогда он должен об этом рассказывать mutter). Были
слова о том, что раскладок может быть больше 4, поэтому переключать
группу мало, бывает нужно полностью переконфигурировать xkb на новые
группы. По факту в gnome получилось, что переконфигурация делается при
каждом переключении на пару en + нужная.
Я год назад немного поигрался с gnome и ibus (с последним отдельно от
gnome), но не нашел, как их заставить при включении input method
выбирать английский xkb layout, который этот метод ждет. Иероглифов я не
понимаю, поэтому пробовал на нотации LaTeX для специальных символов. У
input method может быть комбинация клавиш для его отключения, чтобы
пропускать в приложение исходные символы, то тогда это полностью
ортогонально раскладке, и индикаторов должно быть два: для метода ввода
и для раскладки xkb, а я видел только один.