(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.interfaces, '.[] | "\\(.connection) (\\(.device)) \\n"', 'r')}" :class "revealer-preview ${(jq(network_manager.interfaces, '[ .[] | select(.state=="connected") ] | length') > 0 ? 'active' : 'inactive')}" ;${network_status.wifi || network_status.wired ? 'active' : 'inactive'}" "󰇧") (network_children :array "${network_manager.interfaces}"))) (defwidget network_children [array] (box :class "reveal-children" :orientation "h" :space-evenly false :halign "center" (for interface in array (button :onclick "nmcli device ${( interface.state == 'connected' ? 'down' : 'up' )} ${interface.device}" :class {( interface.state == "connected" ? 'active' : 'inactive' )} :tooltip "${interface.connection} (${interface.device})" {( interface.type == "wifi" ? "" : ( interface.type == "ethernet" ? "󰈀" : "" ))} ) ) ) )