ref(i3status_wrapper)

This commit is contained in:
TheK4n 2023-10-24 23:33:10 +03:00
parent 5f6d518c2c
commit 862ace6718
2 changed files with 28 additions and 27 deletions

View File

@ -8,7 +8,7 @@
general { general {
colors = true colors = true
interval = 2 interval = 5
output_format = i3bar output_format = i3bar
} }
@ -68,7 +68,7 @@ cpu_temperature 0 {
} }
tztime local { tztime local {
format = " %Y-%m-%d  %H:%M:%S" format = "%Y-%m-%d %H:%M"
} }
volume master { volume master {

View File

@ -12,39 +12,40 @@
[ -x "/usr/bin/jq" ] || exec i3status [ -x "/usr/bin/jq" ] || exec i3status
update_holder() { update_holder() {
local instance="$1" local instance="$1"
local replacement="$2" local replacement="$2"
echo "$3" | jq --argjson arg_j "$replacement" "(.[] | (select(.instance==\"$instance\"))) |= \$arg_j" echo "$3" | jq --argjson arg_j "$replacement" "(.[] | (select(.instance==\"$instance\"))) |= \$arg_j"
}
remove_holder() {
local instance="$1"
echo "$2" | jq "del(.[] | (select(.instance==\"$instance\")))"
} }
get_device_battery_status() { get_device_battery_status() {
for uuid in $(timeout 1 bluetoothctl devices | cut -f2 -d' ' 2>/dev/null) for uuid in $(timeout 1 bluetoothctl devices | cut -f2 -d' ' 2>/dev/null)
do do
local device_info local device_info
device_info="$(timeout 1 bluetoothctl info "$uuid")" device_info="$(timeout 1 bluetoothctl info "$uuid")"
if echo "$device_info" | grep -q 'Connected: yes\|Battery Percentage'; then if echo "$device_info" | grep -q 'Connected: yes\|Battery Percentage'; then
echo "$device_info" | grep 'Battery Percentage' | awk -F '[()]' '{ print "🎧🔋"$2"%" }' echo "$device_info" | grep 'Battery Percentage' | awk -F '[()]' '{ print "🎧🔋"$2"%" }'
break break
fi fi
done done
} }
update_json_with_text() { update_json_with_text() {
local json="{ \"full_text\": \"$1\", \"color\": \"#FFFFFF\"}" local json="{ \"full_text\": \"$1\", \"color\": \"#FFFFFF\"}"
update_holder holder__headphones "$json" "$2" update_holder "holder__headphones" "$json" "$2"
} }
i3status | (read -r line; echo "$line"; read -r line; echo "$line"; i3status | (
while true # read first 2 lines without formatting
do
read -r line read -r line
json_array="$(echo "$line" | sed -e 's/^,//')" echo "$line"
echo ",$(update_json_with_text "$(get_device_battery_status)" "$json_array")" read -r line
done echo "$line"
while true
do
read -r line
json_array="$(echo "$line" | sed -e 's/^,//')"
echo "$(update_json_with_text "$(get_device_battery_status)" "$json_array"),"
done
) )