feat(eww): add config

This commit is contained in:
2026-03-12 17:42:32 +01:00
parent adeb93bd24
commit c6eaad94ef
11 changed files with 1128 additions and 0 deletions

35
eww/scripts/keyboard.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/env bash
# keyboard layout info as JSON for eww keyboard-popup
action="${1:-status}"
case "$action" in
status)
inputs=$(swaymsg -t get_inputs 2>/dev/null)
current=$(jq -r '[.[] | select(.type == "keyboard")] | .[0].xkb_active_layout_name // "unknown"' <<< "$inputs")
layouts=$(jq -c '[.[] | select(.type == "keyboard")] | .[0].xkb_layout_names // []' <<< "$inputs")
layout_count=$(jq 'length' <<< "$layouts" 2>/dev/null || echo 0)
keyboards=$(jq -c '[.[] | select(.type == "keyboard") |
{id: .identifier, name: .name, layout: .xkb_active_layout_name}] | unique_by(.name)' <<< "$inputs")
kb_count=$(jq 'length' <<< "$keyboards" 2>/dev/null || echo 0)
jq -nc \
--arg current "${current:-unknown}" \
--argjson layouts "${layouts:-[]}" \
--argjson layout_count "${layout_count:-0}" \
--argjson keyboards "${keyboards:-[]}" \
--argjson kb_count "${kb_count:-0}" \
'{$current,$layouts,$layout_count,$keyboards,$kb_count}'
;;
switch)
swaymsg input type:keyboard xkb_switch_layout next 2>/dev/null
( sleep 0.3; data=$(~/.config/eww/scripts/keyboard.sh); eww update kbd="$data" ) &
;;
set-layout)
swaymsg input type:keyboard xkb_switch_layout "$2" 2>/dev/null
( sleep 0.3; data=$(~/.config/eww/scripts/keyboard.sh); eww update kbd="$data" ) &
;;
esac