Files
nix/hosts/battleship/desktop/eww/eww.yuck

200 lines
6.1 KiB
Plaintext

(include "/home/guz/.config/eww/vars.yuck");
(defpoll week-day :interval "1m"
:initial "1"
`date +%w`)
(defpoll quarter :interval "24h"
:initial "1"
`date +%q`)
(defpoll time :interval "10s"
:initial "00:00"
`date +%H:%M`)
(defpoll date :interval "1m"
:initial "00/00"
`date +%d/%m`)
(defwidget empty [] "")
(defwidget day []
(box :orientation "h"
; Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn
"${[" Sun", " Mon", " Tue", "󰬸 Wed", "󱡓 Thu", " Fri", " Sat"][week-day]} ${date} ${time}"))
(defwidget season []
(box :orientation "h"
"${["", "󰖨 Summer", "󰌪 Autumn", " Winter", "󰉊 Spring"][quarter]}"))
(defwidget metric [label value ?value-text ?onchange ?onclick]
(box :orientation "h"
:tooltip "${value-text != "" ? value-text : value}"
:space-evenly false
:class "metric"
(box :orientation "h"
:class "label"
(eventbox :active {onclick != ""}
:width 15
:cursor "pointer"
:onclick onclick
label))
(scale :min 0
:max 101
:active {onchange != ""}
:onchange onchange
:value value)))
(defwidget system-stats []
(box :class "system-stats"
""))
(defwidget workspaces [workspace]
(box :class "workspace"
:orientation "h"
"${
workspace == 1 ? '' : ''
} ${
workspace == 2 ? '' : ''
} ${
workspace == 3 ? '' : ''
} ${
workspace == 4 ? '' : ''
} ${
workspace == 5 ? '' : ''
}"))
(defwindow bar
:monitor 0
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "20px"
:anchor "top center")
:stacking "fg"
:reserve (struts :distance "40px" :side "top")
:windowtype "dock"
:wm-ignore false
:exclusive true
(box :orientation "h"
:class "wrapper"
(centerbox :orientation "h"
:class "bar"
(box :orientation "h"
:halign "start"
:class "rightstuff"
(workspaces :workspace active-workspace)
(empty)
(empty))
(box :orientation "h"
:halign "center"
:class "middlestuff"
(day))
(box :orientation "h"
:halign "end"
:class "leftstuff"
:space-evenly false
(metric :label volume-label
:value volume
:value-text "${volume-label} Volume ${volume}%"
:onclick volume-toggle
:onchange volume-set)))))
(defwindow bar-2
:monitor 1
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "20px"
:anchor "top center")
:stacking "fg"
:reserve (struts :distance "40px" :side "top")
:windowtype "dock"
:wm-ignore false
:exclusive true
(box :orientation "h"
:class "wrapper"
(centerbox :orientation "h"
:class "bar"
(box :orientation "h"
:halign "start"
:class "rightstuff"
(metric :label ""
:value "${EWW_RAM.used_mem_perc}"
:value-text " Ram ${round(EWW_RAM.used_mem_perc, 2)}%")
(metric :label ""
:value "${EWW_CPU.avg}"
:value-text " CPU ${round(EWW_CPU.avg, 2)}%")
(metric :label "󰨣"
:value "${EWW_DISK["/"].used_perc}"
:value-text "󰨣 Disk ${round(EWW_DISK["/"].used_perc, 2)}%")
(empty)
(empty))
(box :orientation "h"
:halign "center"
:class "middlestuff"
:space-evenly false
(box :class "season"
(season))
(label :tooltip "󱣖 ${temperature}°C -  ${wind}km/h"
:class "temperature"
:text "${round(temperature, 0)}󰔄")
(label :tooltip "󰖗 ${rain}mm - 󰖌 ${precipitation}mm"
:class "rain"
:text "${round(precipitation, 2)}mm"))
(box :orientation "h"
:halign "end"
:class "leftstuff"
(empty)
(workspaces :workspace "${active-workspace - 5}")))))
(defwindow bar-full
:monitor 0
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "20px"
:anchor "top center")
:stacking "fg"
:reserve (struts :distance "40px" :side "top")
:windowtype "dock"
:wm-ignore false
:exclusive true
(box :orientation "h"
:class "wrapper"
(centerbox :orientation "h"
:class "bar"
(box :orientation "h"
:halign "start"
:class "rightstuff"
(workspaces :workspace active-workspace)
(box :orientation "h"
:halign "start"
:class "bar-full-volume-align"
(metric :label volume-label
:value volume
:value-text "${volume-label} Volume ${volume}%"
:onclick volume-toggle
:onchange volume-set))
(metric :label "󰂄"
:value "${battery}"
:value-text "󰂄 Battery ${battery}%"))
(box :orientation "h"
:halign "center"
:class "middlestuff"
(day)
(season))
(box :orientation "h"
:halign "end"
:class "leftstuff"
:space-evenly false
(metric :label ""
:value "${EWW_RAM.used_mem_perc}"
:value-text " Ram ${round(EWW_RAM.used_mem_perc, 2)}%")
(metric :label ""
:value "${EWW_CPU.avg}"
:value-text " CPU ${round(EWW_CPU.avg, 2)}%")
(metric :label "󰨣"
:value "${EWW_DISK["/"].used_perc}"
:value-text "󰨣 Disk ${round(EWW_DISK["/"].used_perc, 2)}%")))))