208 lines
5.4 KiB
Text
208 lines
5.4 KiB
Text
|
(defwidget sysblock [icon onclick active label]
|
||
|
(box :class "block-container"
|
||
|
:orientation "v"
|
||
|
:space-evenly false
|
||
|
:spacing 5
|
||
|
(button :class "block ${active ? 'active' : ''}" :onclick "${onclick}"
|
||
|
(box :orientation "h"
|
||
|
:space-evenly false
|
||
|
(box :class "iconbox"
|
||
|
:halign "start"
|
||
|
:space-evenly true
|
||
|
:orientation "h"
|
||
|
(label :text "${icon}" :class "icon")
|
||
|
)
|
||
|
(box :class "sepbox"
|
||
|
:halign "center"
|
||
|
:space-evenly true
|
||
|
:orientation "h"
|
||
|
(box :class "sep")
|
||
|
)
|
||
|
(box :class "chevronbox"
|
||
|
:halign "end"
|
||
|
:space-evenly true
|
||
|
:orientation "h"
|
||
|
(label :text "")
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(label :halign "center" :text "${label}" :class "label")
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defwidget sysbuttons []
|
||
|
(box :class "sysbuttonsbox"
|
||
|
:orientation "v"
|
||
|
:space-evenly false
|
||
|
:spacing 20
|
||
|
(box :class "firstrow"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(box :halign "start"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${network_icon}"
|
||
|
:onclick "$EWW_PATH/network.sh toggle"
|
||
|
:active "${network_status == 'Connected' ? true : false}"
|
||
|
:label "${network_ssid}"
|
||
|
)
|
||
|
)
|
||
|
(box :halign "center"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${bluetooth_state == 'on' ? '' : ''}"
|
||
|
:onclick "$EWW_PATH/bluetooth toggle"
|
||
|
:active "${bluetooth_state == 'on' ? true : false}"
|
||
|
:label "Bluetooth"
|
||
|
)
|
||
|
)
|
||
|
(box :halign "end"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${network_radio == 'on' ? '' : ''}"
|
||
|
:onclick "$EWW_PATH/network.sh toggle-radio"
|
||
|
:active "${network_radio == 'on' ? false : true}"
|
||
|
:label "Airplane"
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(box :class "lastrow"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(box :halign "start"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${redshift_state == 'on' ? '' : ''}"
|
||
|
:onclick "$EWW_PATH/redshift toggle"
|
||
|
:active "${redshift_state == 'on' ? true : false}"
|
||
|
:label "Night Light"
|
||
|
)
|
||
|
)
|
||
|
(box :halign "center"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${volume_icon}"
|
||
|
:onclick "$EWW_PATH/volume.sh toggle-muted"
|
||
|
:active "${is_muted == 'yes' ? false : true}"
|
||
|
:label "Volume"
|
||
|
)
|
||
|
)
|
||
|
(box :halign "end"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(sysblock :icon "${mic_status == 'yes' ? '' : ''}"
|
||
|
:onclick "$EWW_PATH/mic toggle"
|
||
|
:active "${mic_status == 'yes' ? true : false}"
|
||
|
:label "Micro"
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defwidget controls []
|
||
|
(box :class "controlsbox"
|
||
|
:orientation "v"
|
||
|
:space-evenly false
|
||
|
:spacing 10
|
||
|
(box :orientation "h"
|
||
|
:space-evenly "false"
|
||
|
:class "vol-slider"
|
||
|
(box :class "vol-label"
|
||
|
volume_icon
|
||
|
)
|
||
|
(scale :value volume_value
|
||
|
:onchange "$EWW_PATH/volume.sh set {}"
|
||
|
:min 0
|
||
|
:max 101
|
||
|
)
|
||
|
)
|
||
|
(box :orientation "h"
|
||
|
:space-evenly "false"
|
||
|
:class "br-slider"
|
||
|
(box :class "br-label"
|
||
|
br_icon
|
||
|
)
|
||
|
(scale :value br
|
||
|
:onchange "$EWW_PATH/brightness.sh set {}"
|
||
|
:min 0
|
||
|
:max 101
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defwidget user []
|
||
|
(box :class "userinfobox"
|
||
|
:orientation "h"
|
||
|
:space-evenly false
|
||
|
(box :class "info"
|
||
|
:space-evenly false
|
||
|
:orientation "h"
|
||
|
:halign "start"
|
||
|
:valign "center"
|
||
|
:spacing 10
|
||
|
(label :text "${lithour}:${litmin}" :class "time")
|
||
|
(box :class "daybox"
|
||
|
:orientation "v"
|
||
|
:space-evenly false
|
||
|
(label :text "${shortday}" :halign "start")
|
||
|
(label :text "${weekday}" :halign "start")
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defwidget poweractions []
|
||
|
(box :class "poweractionsbox"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
(box :class "buttons-container"
|
||
|
:space-evenly true
|
||
|
:halign "end"
|
||
|
:orientation "h"
|
||
|
(box :class "buttons"
|
||
|
:orientation "h"
|
||
|
:space-evenly true
|
||
|
:spacing 10
|
||
|
(button :class "do-logout"
|
||
|
:onclick "eww close closer && $EWW_PATH/open.sh powermenu && eww open closer"
|
||
|
:tooltip "Logout"
|
||
|
:halign "end"
|
||
|
""
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defwidget actions []
|
||
|
(box :class "actions"
|
||
|
:orientation "v"
|
||
|
:space-evenly false
|
||
|
:spacing 20
|
||
|
(user)
|
||
|
(sysbuttons)
|
||
|
(controls)
|
||
|
(poweractions)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
(defvar actions-visible false)
|
||
|
|
||
|
(defwindow actions-reveal
|
||
|
:monitor "0"
|
||
|
:stacking "overlay"
|
||
|
:geometry (geometry :x "10px"
|
||
|
:y "4px"
|
||
|
:width "320px" ; this isn't respected btw, so it's auto-adjusted by eww lol.
|
||
|
:height "10px" ; automatically generated by eww.
|
||
|
:anchor "top right")
|
||
|
|
||
|
(revealer :transition "crossfade"
|
||
|
:reveal actions-visible
|
||
|
:duration "550ms"
|
||
|
(actions)
|
||
|
)
|
||
|
)
|