65 lines
1.8 KiB
Bash
Executable File
65 lines
1.8 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,
|
|
"separator_block_width":0
|
|
},],'
|
|
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," "]|join("")),
|
|
"urgent":.xkb_active_layout_index,
|
|
"separator_block_width":0
|
|
}, ","'
|
|
# battery
|
|
# shellcheck disable=SC2002
|
|
cat /sys/class/power_supply/BAT0/capacity | jq -Mcj '
|
|
if .<20 then {
|
|
"full_text":([" ",.," % "]|join("")),
|
|
"urgent":true,
|
|
"separator_block_width":0
|
|
} else {
|
|
"full_text":([" ",.," % "]|join("")),
|
|
"separator_block_width":0
|
|
} end, ","'
|
|
# date
|
|
date +%c | jq -RMcj '{
|
|
"full_text":([" ",.," "]|join("")),
|
|
"separator_block_width":0
|
|
}, ","'
|
|
# scratchpad
|
|
swaymsg -t get_tree | jq -Mcj '
|
|
.nodes[]
|
|
| select(.name=="__i3").nodes[]
|
|
| select(.name=="__i3_scratch").floating_nodes
|
|
| if length>0 then {
|
|
"full_text":([" ",length," "]|join("")),
|
|
"urgent":true,
|
|
"separator_block_width":0
|
|
}, "," else "" end'
|
|
# notifications
|
|
makoctl list | jq -Mcj '
|
|
.data[]
|
|
| if length>0 then {
|
|
"full_text":([" (",length,") ",.[0].summary.data," "]|join("")),
|
|
"urgent":(.[0].urgency.data==2),
|
|
"separator_block_width":0
|
|
}, "," else "" end'
|
|
printf "],"
|
|
# timeout
|
|
timeout 1 swaymsg -t subscribe '["input","binding"]' >/dev/null
|
|
done
|