#!/bin/sh printf "{\"version\":1}\n" printf "[\n" if ! command -v jq >/dev/null; then while true; do printf '[{ "full_text":"jq: command not found", "urgent":true },],' sleep 1 done fi while true; do printf "[" # keyboard layout swaymsg -t get_inputs | jq -Mcj '[.[] | select(.type=="keyboard")][0] | { "full_text":.xkb_active_layout_name, "urgent":.xkb_active_layout_index, }, ","' # battery # shellcheck disable=SC2002 cat /sys/class/power_supply/BAT0/capacity | jq -Mcj ' if .<20 then { "full_text":([.," %"]|join("")), "urgent":true, } else { "full_text":([.," %"]|join("")), } end, ","' # date date +%c | jq -RMcj '{ "full_text":., }, ","' # scratchpad swaymsg -t get_tree | jq -Mcj '.nodes[] | select(.name=="__i3").nodes[] | select(.name=="__i3_scratch").floating_nodes | { "full_text":length, "urgent":length, }, ","' # notifications makoctl list | jq -Mcj '.data[][0] | { "full_text":.summary.data, "urgent":(.urgency.data==2), }, ","' printf "]," # timeout timeout 1 swaymsg -t subscribe '["input","binding"]' >/dev/null done