home/i3status-rust: add kbd cycle script on click

This commit is contained in:
Asmir A 2025-03-26 17:02:54 +01:00
parent 79289167b1
commit 101f58720c
Signed by: asmir
GPG Key ID: 020C42B7A9ABA3E2

View File

@ -1,4 +1,14 @@
{ ... }: { pkgs, ... }:
let
kbd_switch = pkgs.writeShellScriptBin "kbd_switch" ''
declare -A -r KBD_CYCLE_MAP=(
["English (US)"]="de"
["German"]="ba"
)
LAYOUT="$(${pkgs.sway}/bin/swaymsg -t get_inputs -r | ${pkgs.jq}/bin/jq -r 'map(select(.type == "keyboard")).[0].xkb_layout_names.[]')"
swaymsg input "*" xkb_layout ''${KBD_CYCLE_MAP["$LAYOUT"]:-"us"}
'';
in
{ {
programs.i3status-rust = { programs.i3status-rust = {
bars.top = { bars.top = {
@ -15,6 +25,12 @@
{ {
block = "keyboard_layout"; block = "keyboard_layout";
driver = "sway"; driver = "sway";
click = [
{
cmd = "${kbd_switch}/bin/kbd_switch";
button = "left";
}
];
} }
{ {
block = "battery"; block = "battery";