From 101f58720cf51637d974b3f6113cfd2afc006731 Mon Sep 17 00:00:00 2001 From: Asmir A Date: Wed, 26 Mar 2025 17:02:54 +0100 Subject: [PATCH] home/i3status-rust: add kbd cycle script on click --- home/i3status-rust.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/home/i3status-rust.nix b/home/i3status-rust.nix index 64e93dd..47d7324 100644 --- a/home/i3status-rust.nix +++ b/home/i3status-rust.nix @@ -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 = { bars.top = { @@ -15,6 +25,12 @@ { block = "keyboard_layout"; driver = "sway"; + click = [ + { + cmd = "${kbd_switch}/bin/kbd_switch"; + button = "left"; + } + ]; } { block = "battery";