summaryrefslogtreecommitdiff
path: root/.local/bin/chkb
blob: ac27e98e7c6112d6eaf94cd883867d71ae43be84 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh

set -e

export NOTIFY_LONG=keyboard
export NOTIFY_SHORT=${0##*/}

readonly KEYBOARD=at-translated-set-2-keyboard

s="$(
	{
		hyprctl -j getoption input:kb_layout
		hyprctl -j getoption input:kb_variant
	} | jq -rn '
		[inputs]
		| map(.str | split(",\\s*"; "g"))
		| transpose
		| map("\(.[0]) (\(.[1]))")
		| .[]
	' | sed -E 's/[a-zA-Z]+/\u&/g'
)"

if choice="$(echo "$s" | osel)"
then
	echo "$s"
	n="$(echo "$s" | sed -n "/$choice/=" | { xargs expr -1 + || true; })"
	hyprctl switchxkblayout $KEYBOARD $n >/dev/null
	notify 'Keyboard Layout Changed' \
		"The keyboard layout was changed to ‘$choice’"
fi