sway: sync Xwayland keyboard layout
This commit is contained in:
parent
28850abd5b
commit
481af4f88c
4 changed files with 54 additions and 0 deletions
|
|
@ -138,6 +138,10 @@
|
|||
libinput
|
||||
libratbag
|
||||
];
|
||||
sway-sync-xkbmap = [
|
||||
xorg.setxkbmap
|
||||
jq
|
||||
];
|
||||
print-battery-icon = [ ];
|
||||
controller-battery = [ print-battery-icon ];
|
||||
mouse-battery = [ print-battery-icon ];
|
||||
|
|
|
|||
22
scripts/sway-sync-xkbmap
Executable file
22
scripts/sway-sync-xkbmap
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
LAST_LAYOUT=""
|
||||
|
||||
while sleep 1s; do
|
||||
CURRENT_LAYOUT=$(swaymsg -t get_inputs | jq -r '.[]|.xkb_active_layout_name|select(.)' | head -n1)
|
||||
|
||||
if test "$LAST_LAYOUT" = "$CURRENT_LAYOUT"; then
|
||||
true
|
||||
elif test "$CURRENT_LAYOUT" = "English (Colemak)"; then
|
||||
echo "Setting layout to colemak"
|
||||
setxkbmap us colemak
|
||||
elif test "$CURRENT_LAYOUT" = "Portuguese (Brazil)"; then
|
||||
echo "Setting layout to br"
|
||||
setxkbmap br
|
||||
fi
|
||||
|
||||
LAST_LAYOUT="$CURRENT_LAYOUT"
|
||||
done
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue