LINUX.ORG.RU

Проблемы с биндами в Hyprland при использовании Ctrl+Shift

 , , , ,


0

1

В Wayland (конкретнее в Hyprland, потому что, как я знаю, за это не Wayland отвечает, хотя подобное и было в KDE Plasma на Wayland) при установке бинда на смену раскладки, например, в Ctrl+Shift, бинды типа Ctrl+Shift+V перестают работать. Также и со всеми биндами, которые продолжают Ctrl+Shift.

В XOrg также есть подобная проблема, но решается она установкой пакета AUR (xorg-server-bug865) или репозитория Launchpad в Deb-based.

Буду рад, если кто-то сможет помочь.

В Wayland (конкретнее в Hyprland, потому что, как я знаю, за это не Wayland отвечает, хотя подобное и было в KDE Plasma на Wayland) при установке бинда на смену раскладки, например, в Ctrl+Shift, бинды типа Ctrl+Shift+V перестают работать.

Скорее всего в гиперленде переключение по нажатию клавиш, из-за чего комба прерывается при переключении раскладки.

Вроде в гиперленде можно было бинды указывать на отпускание bindr (r флаг), тогда на такой хоткей можно попробовать повесить смену раскладки.

Не знаю, меняли ли в кедах, но там сейчас в вейленде если указать комбинации на модификаторах, то они на отжатие будут и хоткеи типа ctrl+shift+X работают.

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

После добавления флага r комбинация вообще отказалась работать. Я использую hyprctl switchxkblayout, щас ещё попробую другой вариант. Кстати, я проверил, и такая же проблема с Wayfire.

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

Было бы неплохо не менять бинды, а исправить данный баг (Который, похоже связан с libinput)

Это не баг и особенность реализации хоткеев в выбранной среде. В тех же кедах (wayland) можно спокойно использовать переключение на alt+shift с хоткеями типа alt+shift+x. Просто если ты в настройках клавиатуры задаешь комбинацию чисто на модификаторах, то она срабатывает на отжатии клавиш и не мешает обычным хоткеям.

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

Я считаю что это баг, не знаю что там сделали разработчики KDE, но настроить в input, конкретно для Hyprland нельзя (В документации не нашел) настроить на отжатие для переключение раскладки, а бинд с hyprctl после флага r перестаёт работать.

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

…конкретно для Hyprland нельзя…

Это надо разработчиков гиперленда спрашивать, есть ли у них такая функция и как её использовать. Но это не баг libinput-а, а реализация в гиперленде или wlroots.

Я знаю, что bindr работает в случае бинда на одну кнопку-модификатор, но можно ли его применить к двум и как из документации не ясно. Возможно это два бинда надо на смену раскладки типа:

bindrl = CONTROL,Shift_L,exec,....
bindrl = SHIFT,Control_L,exec,....
altwazar ★★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)

Суть ситуации с переключением на ctrl+shift, ctrl+shift+x в том, что для поддержки одновременной работы таких биндов система либо должна относиться к биндам на «модификаторы» особенным образом, либо быть громоздкой и достаточно гибкой, чтобы предусматривать подобные юзкейсы.

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

В гиперленде второй вариант решения проблемы. Но предусмотрели ли они ситуацию с двойным использованием модификаторов ctrl+shift из документации не ясно, плюс система биндов из-за гибкости довольно запутанная. Возможно там получиться реализовать через эту систему кде-шный подход к ctrl+shift кобминации.

altwazar ★★★★★
()
Ответ на: комментарий от MetaOne

Благодарю за помощь, но, к сожалению не работает.

Глянул гиперленд, ошибся немного:

bindrl = CONTROL_SHIFT,Shift_L,exec,....
bindrl = CONTROL_SHIFT,Control_L,exec,....

Так работает.

Ну и если надо еще на правые ктрл и шифты, то их так же надо прописать будет.

altwazar ★★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)