(defvar reveal_network false) (defwidget network [] (revealer-on-hover :class "${reveal_network} networks" :revealvar reveal_network :revealvar-name "reveal_network" (button :onclick 'nm-connection-editor' :tooltip "${jq(network_manager.network_devices, '.[] | "\\(.connection) (\\(.device)) \\n"', 'r')}" :class "revealer-preview ${(jq(network_manager.network_devices, '[ .[] | select(.active) ] | length') > 0 ? 'active' : 'inactive')}" ;${network_status.wifi || network_status.wired ? 'active' : 'inactive'}" "󰇧") (network_children :array "${network_manager.network_devices}"))) (defwidget network_children [array] (box :class "reveal-children" :orientation "h" :space-evenly false :halign "center" (for interface in array (button :onclick "nmcli device ${( interface.active ? 'down' : 'up' )} ${interface.name}" :class {( interface.active ? 'active' : 'inactive' )} :tooltip "${interface.address} (${interface.name})" {( interface.dev_type == "Wi-Fi" ? "" : ( interface.dev_type == "Ethernet" ? "󰈀" : "" ))}))))