1
0
Fork 0
dot/.local/bin/status.sh

53 lines
1.4 KiB
Bash
Executable File

#!/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