(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' :class "revealer-preview" ;${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}" :tooltip "${interface.connection} (${interface.device})" {( interface.type == "wifi" ? "" : ( interface.type == "ethernet" ? "󰈀" : "" ))} ) ) ) ) ; (button :onclick {network_status.wifi ? 'scripts/bar/network-updown wifi down' : 'scripts/bar/network-updown wifi up'} ; :class {network_status.wifi ? "active" : "inactive"} ; "") ; (button :onclick {network_status.wired ? 'scripts/bar/network-updown ethernet down' : 'scripts/bar/network-updown ethernet up'} ; :class {network_status.wired ? "active" : "inactive"} ; "󰈀")))