[РЕШЕНО]sway wayland смена раскладки командой в консоли, каждому окну своя раскладка

Стековые, фреймовые, динамические
Ответить
lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

Коллеги, гугл беспощен или меня водит по кругу.
Задача - к забинденным клавишам прикрутить явное задание раскладки. Точнее даже ПОлучение окном фокуса = явное задание раскладки. Поскольку setxkbmap -layout ru исполнять отказывается, обоснованно ссылаясь, что он -
WARNING: Running setxkbmap against an Xwayland server
решения не находится.
Пробовал прикрутить симуляцию нажатия клавиши типа wtype -M capslock результата не дает.
Эксперименты вида $mod+Shift+g exec gimp ; input type:keyboard xkb_switch_layout en тоже результатов не дают.
Версии типа qdbus --literal org.kde.keyboard .. завязаны на кеды и гномов, а без них в qdbus по листингу ничего подходящего не нашел.

Как это сделать правильно? хотя бы команду? на смену раскладки на явно указанную?
например, чтобы у локскрина всегда была англ, у терминала при получении фокуса англ и т.д.
Последний раз редактировалось lnx 23.07.2025 14:29, всего редактировалось 1 раз.
lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

Нет, в самом деле, коллеги, ведь...

ведь даже в настройках waybar, который религиозно для sway, который для wayland, явно на пимпу индикации раскладки пишут -
"sway/languae": {
  "format": "{}",
     "on-click": "swaymsg input type:keyboard xkb_switch_layout next",
  },
  
и ясен пень, не работает жамканьеп о кнопке на панели. ЧЯДНТ?
vasek
Сообщения: 530
Зарегистрирован: 31.08.2022

#

что прописано в ~/.config/sway/config с части Keymap ???

Ошибки не исчезают с опытом - они просто умнеют

lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

и оно работает -
#клавиатура - смена раскладки и лампочки
input * {
    xkb_layout "us,ru"
    xkb_options "grp:caps_toggle",grp_led:caps" 
    }
vasek
Сообщения: 530
Зарегистрирован: 31.08.2022

#

lnx:и оно работает -
тогда в чем проблема ???
lnx:раздела Keymap в моем конфиге нет
Keymap = раскладка клавиатуры
lnx:"sway/languae":
languae ??? --- language

Ошибки не исчезают с опытом - они просто умнеют

Vedun
Сообщения: 8
Зарегистрирован: 19.07.2025

#

lnx: xkb_options "grp:caps_toggle",grp_led:caps"
Уберите лишнюю кавычку после grp:caps_toggle , да и вообще там кавычки ненужны
input * {
    xkb_layout us,ru
    xkb_options grp:caps_toggle,grp_led:caps
 }
И вообще, вы можете попроще обьяснить что вы хотите?
Что бы каждая программа имела свою раскладку?
lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

vasek:languae ??? --- language
Блин! я так и знал, права была мама со своим "учи английский"!

И да, хочу, чтобы каждая программа имела свою раскладку.
vasek
Сообщения: 530
Зарегистрирован: 31.08.2022

#

lnx:И да, хочу, чтобы каждая программа имела свою раскладку.
??? .... ???
у меня так
### Keymap
input * {
    xkb_capslock disable
    xkb_layout "us,ru"
    xkb_options "grp:caps_toggle,grp_led:caps" 
}
нажал caps lock - включилась подсветка - ru ..... нажал еще раз caps lock - подсветка отключилась - en

Ошибки не исчезают с опытом - они просто умнеют

lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

Все верно в части переключалки капслуком и теперь и кнопкой сверху. Но хотелось бы на на каждое окно чтобы своя и при смене окон восстанавливалсь та раскладка, которая была на момент прошлого фокуса. Явно речь идет о скрипте, который слушает Заголовок текущего окна и сохраняет в переменной выбранную раскладку и пр.
Vedun
Сообщения: 8
Зарегистрирован: 19.07.2025

#

lnx:И да, хочу, чтобы каждая программа имела свою раскладку.
Ну я сейчас переключился в Sway и попробовал у себя забиндить fpad вот так:
bindsym Mod4+e exec fpad; exec swaymsg input type:keyboard xkb_switch_layout 1
и всё норм, - при нажатии Mod4+e у меня открывается fpad с русской раскладкой (1)

А если изменить в конце на 0
bindsym Mod4+e exec fpad; exec swaymsg input type:keyboard xkb_switch_layout 0
то он будет открываться с английской.

Что вам еще надо?
lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

Это уже большой прогресс, спасибо, попробую. Новостью для мены было два exec в одной строке. Думал раньше, что требуется один и через ; вторая команда (в описании этого не было). Однако это стартовое, при запуске по кнопке, переключение раскладки для запускаемой программы. В ходе работы она будет переключаться и будет переход от одного открытого окна к другому и обратно. И клава сохраняет свою раскладку при переходе между открытыми окнами, а хотелось бы автосмены.
Последний раз редактировалось lnx 22.07.2025 19:20, всего редактировалось 1 раз.
Vedun
Сообщения: 8
Зарегистрирован: 19.07.2025

#

Ну проще что приходит в голову, то только так - указывать для каждого бинда
set $en exec swaymsg input type:keyboard xkb_switch_layout 0
set $ru exec swaymsg input type:keyboard xkb_switch_layout 1

bindsym Mod4+e exec fpad, $ru
bindsym Mod4+f exec pcmanfm-qt, $en
А иначе видимо будет нужен какой то скрипт.
lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

со всей очевидностью нужен, во всепланетном масштабе. гугл утверждает, что пока такой скрипт еще не рожден.
vasek
Сообщения: 530
Зарегистрирован: 31.08.2022

#

lnx:гугл беспощен или меня водит по кругу
алиса выдала ...
swaykbdd для оконного менеджера Sway ... позволяет автоматически менять раскладку клавиатуры для каждого окна или вкладки.
sway-xkb-switcher - записывает раскладку клавиатуры для окон Sway при выходе из них, а при возвращении восстанавливает её.

paru -Ss swaykbdd
aur/swaykbdd 1.4-1 [+4 ~0.00]
Automatic keyboard layout switching in Sway
paru -Ss sway-xkb-switcher
aur/sway-xkb-switcher 0.3.0-1 [+0 ~0.00] [Сирота]
Keyboard layout switcher for sway windows

Ошибки не исчезают с опытом - они просто умнеют

lnx
Сообщения: 205
Зарегистрирован: 24.08.2022

#

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

Опробовал. Оба скрипта работают, разницы не заметил. Разумеется, их следует прописать в автозагрузку в конфиге. Оба адекватно сохраняют раскладку при смене ОКОН. Но не вкладок - а ведь сразу захотелось и такого, ведь священный грааль Sway - заголовок вкладки, субокошка в титуле светится = есть возможность и клаве реагировать.
Ответить