]> git.sur5r.net Git - i3/i3/commit
Translate bindsym bindings upon ISO_Next_Group
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 6 Aug 2015 07:32:22 +0000 (09:32 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 6 Aug 2015 07:32:22 +0000 (09:32 +0200)
commit0fb784f5cb1157acd4e179ef4fa8ce767bf24a95
treef2e623cddc188308d7e3c4131c9ee67ca4e9f4bf
parentfed05ef876490043f334a600e06e5acce5d0e613
Translate bindsym bindings upon ISO_Next_Group

With commit c738b2e454bb8b096dd99d44e9e51030f8355b90 we changed i3 so
that the default keybindings can be used when ISO_Next_Group is enabled,
but bindings which explicitly use Mode_switch have precedence. This
behavior required the use of bindcode instead of bindsym.

With this commit, when switching from group 1 to group 2 using
ISO_Next_Group, i3 will re-translate all keybindings (looking at column
2/3, regardless of whether the keybinding itself specifies Mode_switch)
and re-grab them.

That way, the keybinding “bindsym $mod+x nop foo” will work when
pressing $mod+x without Mode_switch and when pressing the corresponding
$mod+x (different key) with Mode_switch. A binding such as “bindsym
Mode_switch+$mod+x nop bar” will still have precedence.

The intention here is to make bindsym keybindings work well with dual
keyboard layouts (such as {dvorak, us} or {us, ru}), so that users can
switch between groups and still have their (logical) keybindings behave
the same way.

fixes #1775
src/bindings.c
src/handlers.c