LINUX.ORG.RU

i3 и игнорирование раскладки клавиатуры для bindsym

 , ,


0

2

Проблема в следующем: не работают хоткеи i3 в отличной от английской раскладки клавиатуры, это раздражает. А хаки вроде:

bindsym $mod+й exec '...'
bindsym $mod+ц exec '...'
bindsym $mod+у exec '...'
bindsym $mod+к exec '...'

не работают.

Что можно предпринять?

★★★★★

Дистр и как настроена расклкадка? Ибо у меня на генту из коробки все работает с переключалкой через setxkbmap.

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

ubuntu minimal 14.04. Вот как раз раскладку и планирую переключать хоткеями :)

Как-то вот так:

bindsym $mod+w exec "setxkbmap -layout 'by'"
bindsym $mod+e exec "setxkbmap -layout 'ru'"
bindsym $mod+q exec "setxkbmap -layout 'by(latin)'"

Не работает. До этого переключал тоже setxkbmap, биндинги на отличной от анг. клавы не работали никогда в i3.

soko1 ★★★★★
() автор топика

4.3. Keyboard bindings

...

Keycodes do not need to have a symbol assigned (handy for custom vendor hotkeys on some notebooks) and they will not change their meaning as you switch to a different keyboard layout (when using xmodmap).

My recommendation is: If you often switch keyboard layouts but you want to keep your bindings in the same physical location on the keyboard, use keycodes. If you don’t switch layouts, and want a clean and simple config file, use keysyms.

# Notebook-specific hotkeys
bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh

http://i3wm.org/docs/userguide.html#keybindings

Smola
()
Ответ на: комментарий от soko1

Потестировал у себя и таки оказалось, что биндинги в других раскладках работают лишь если setxkbmap забинжен один раз. Если тебе нужно иметь несколько раскладок, то лучше это сделать через бинд по кодам клавишам через bindcode в i3. Так что xev в помощь и успехов.
Подробнее тут: http://i3wm.org/docs/userguide.html#keybindings

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

Ordy, Smola, спасибо, парни, всё завелось!

Вот так сделал:

bindcode $mod+24 exec "setxkbmap -layout 'by(latin)'"
bindcode $mod+25 exec "setxkbmap -layout 'by'" 
bindcode $mod+26 exec "setxkbmap -layout 'ru'"

Осталось привыкнуть к новым комбинациям :)

soko1 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.