#!/bin/bash function btstatus(){ # device_mac_list= device_json_array=() for m in $(bluetoothctl devices Paired | awk '{print $2}');do IFS=';' read -r dev_name dev_icon dev_connected <<<$(bluetoothctl info "${m}" | grep -e 'Connected\: \|Name\:\|Icon\:' | sed 's/.*: //g' | tr '\n' ';') # IFS='' read -rd "\n" dev_name dev_icon dev_connected <<<$(bluetoothctl info "${m}" | grep -e 'Connected\: \|Name\:\|Icon\:' | sed -n 's/.*: //p') # IFS="\n" read -r dev_name dev_icon dev_connected <<<$(bluetoothctl info "${m}" | grep -e 'Connected\: \|Name\:\|Icon\:' | sed -n 's/.*: //p') case "${dev_icon}" in "input-mouse") dev_icon="󰍽";; "phone") dev_icon="";; "input-keyboard") dev_icon="";; "input-gaming") dev_icon="";; "audio-headphones") dev_icon="";; "audio-headset") dev_icon="";; "computer") dev_icon="";; esac # device_json=$( jq -n --arg name "${dev_name}" --arg connected "${dev_connected}" --arg icon "${dev_icon}" --arg address "${m}" '{name: $name, connected: $connected, icon: $icon, address: $address}') # device_json_array+=("${device_json}") # printf 'Address: %s\nName: %s\nIcon: %s\nConnected: %s\n\n' "${m}" "${dev_name}" "${dev_icon}" "${dev_connected}" printf '%s;%s;%s;%s\n' "${m}" "${dev_name}" "${dev_icon}" "${dev_connected}" done | column -t -n 'bt_devices' -N address,name,icon,connected -s ';' -J # devices_json=$(printf '%s\n' "${device_json_array[@]}" | jq -s .) # echo ${devices_json} } btstatus dbus-monitor --profile "interface='org.blueman.Applet',member='MenuChanged'" | while read -r event; do btstatus done