100 lines
6.9 KiB
Plaintext
100 lines
6.9 KiB
Plaintext
;; variables
|
|
(defvar window false)
|
|
(defpoll time :interval "1s" "date '+%I %M'")
|
|
(defpoll date :interval "1s" "date '+%A, %B %d'")
|
|
(deflisten notifications-cards "Main/scripts/logger.zsh subscribe")
|
|
(defpoll notifications-crits :interval "1s" "Main/scripts/logger.zsh crits")
|
|
(defpoll weather-icon :interval "5m" "Main/scripts/weather --icon")
|
|
(defpoll weather-temp :interval "5m" "Main/scripts/weather --temp")
|
|
(defpoll weather-desc :interval "5m" "Main/scripts/weather --stat")
|
|
(defpoll weather-updatetime :interval "5m" "Main/scripts/weather --updatetime")
|
|
(deflisten weather-color :initial "#7aa2f7" "Main/scripts/weather --hex")
|
|
(defpoll calendar-day :interval "20h" "+%d")
|
|
(defpoll calendar-year :interval "20h" "+%Y")
|
|
(defpoll calendar-month :interval "20h" "%+B")
|
|
(defpoll cpu :interval "1s" "Main/scripts/system --cpu")
|
|
(defpoll memory :interval "1s" "Main/scripts/system --mem")
|
|
(defpoll profile-image :interval "10h" "Main/scripts/details --image")
|
|
(defpoll profile-username :interval "1h" "whoami")
|
|
(defpoll profile-name :interval "1h" "Main/scripts/details --name")
|
|
(defpoll profile-kernel :interval "1h" "Main/scripts/details --kernel")
|
|
(defpoll profile-os :interval "1h" "Main/scripts/details --os")
|
|
(defpoll music-length :interval "1s" "Main/scripts/music-length")
|
|
(defpoll music-title :interval "1s" "Main/scripts/music-title --status")
|
|
(defpoll music-pp :interval "1s" "Main/scripts/music-title --icon")
|
|
(defpoll music-artist :interval "1s" "Main/scripts/music-artist")
|
|
(defpoll music-art :interval "1s" "Main/scripts/music-art")
|
|
(defpoll volume :interval "1s" "Main/scripts/system --vol")
|
|
(defpoll brightness :interval "1s" "Main/scripts/system --bri")
|
|
(defpoll fortune :interval "1h" "Main/scripts/fortune-split 32 9")
|
|
(deflisten cava "Main/scripts/cava")
|
|
(defpoll title :interval "1s" "Main/scripts/music-title --status")
|
|
(defpoll artist :interval "1s" "Main/scripts/player --artist")
|
|
(defpoll album :interval "1s" "Main/scripts/player --album")
|
|
(defpoll length-info :interval "1s" "Main/scripts/player --length-info")
|
|
(defpoll art :interval "1s" "Main/scripts/player --cover")
|
|
|
|
;; widgets
|
|
(defwidget main []
|
|
(box :class "main-window" :space-evenly "false" :orientation "v"
|
|
(box :class "top-row" :orientation "h" :space-evenly "false"
|
|
(box :class "date-box" :space-evenly "false" :orientation "v" :hexpand "false" :vexpand "false"
|
|
(label :class "time" :text time)
|
|
(label :class "date" :text date))
|
|
(box :class "weather-box" :space-evenly "false" :hexpand "true" :orientation "v"
|
|
(label :class "weather-desc" :halign "start" :text weather-desc)
|
|
(label :class "weather-temp" :halign "start" :text weather-temp)
|
|
(label :class "weather-updatetime" :halign "start" :text weather-updatetime)
|
|
(label :class "weather-icon" :halign "end" :valign "start" :text weather-icon :style "color: ${weather-color}")))
|
|
(box :class "second-row" :orientation "h" :space-evenly "false"
|
|
(box :class "stats-box" :space-evenly "false" :orientation "v" :spacing 8
|
|
(label :class "stats-header" :halign "start" :text "Stats")
|
|
(box :class "volume-stats" :hexpand "false" :vexpand "false" :space-evenly "false"
|
|
(label :tooltip "${volume}%" :class "volume-icon" :text "")
|
|
(scale :min 0 :max 101 :active false :value {volume == "" ? 0 : volume} :class "volume-scale" :width 150))
|
|
(box :class "brightness-stats" :hexpand "false" :vexpand "false" :space-evenly "false"
|
|
(label :tooltip "${brightness}%" :class "brightness-icon" :text "")
|
|
(scale :min 0 :max 101 :active false :value {brightness == "" ? 0 : brightness} :class "brightness-scale" :width 150))
|
|
(box :class "cpu-stats" :hexpand "false" :vexpand "false" :space-evenly "false"
|
|
(label :tooltip "${cpu}%" :class "cpu-icon" :text "")
|
|
(scale :min 0 :max 101 :active false :value {cpu == "" ? 0 : cpu} :class "cpu-scale" :width 150))
|
|
(box :class "memory-stats" :hexpand "false" :vexpand "false" :space-evenly "false"
|
|
(label :tooltip "${memory}%" :class "memory-icon" :text "")
|
|
(scale :min 0 :max 101 :active false :value {memory == "" ? 0 : memory} :class "memory-scale" :width 150)))
|
|
(box :class "fortune-box" :space-evenly "false" :hexpand "true" :orientation "v"
|
|
(label :class "fortune-header" :halign "start" :text "Fortune")
|
|
(label :class "fortune-text" :halign "start" :text fortune :show-truncated true :wrap true)))
|
|
(box :class "third-row" :orientation "h" :space-evenly "false"
|
|
(box :class "music-art-box" :space-evenly "false" :orientation "v" :hexpand "false" :vexpand "false" :style "background-image: url(\"${music-art}\");"
|
|
(box :class "music-stuff-box" :space-evenly "false" :hexpand "false" :vexpand "false" :orientation "v"
|
|
(box :class "player-box" :hexpand "false" :vexpand "false" :space-evenly "true"
|
|
(box :class "player-info-box" :hexpand "false" :vexpand "false" :space-evenly "false" :orientation "v" :spacing 15
|
|
(label :class "player-info-title" :text " Title: ${title}" :halign "start" :limit-width 30 :tooltip "${title}")
|
|
(label :class "player-info-artist" :text " Artist: ${artist}" :halign "start" :limit-width 30 :tooltip "${artist}")
|
|
(label :class "player-info-album" :text " Album: ${album}" :halign "start" :limit-width 30 :tooltip "${album}")
|
|
(label :class "player-info-length" :text " Length: ${length-info}" :halign "start" :tooltip "${length-info}"))
|
|
(box :class "player-cover-box" :hexpand "false" :halign "end" :vexpand "false" :space-evenly "false" :style "background-image: url('${art}');"))
|
|
(box :class "cava-box" :hexpand "false" :vexpand "false"
|
|
(label :vexpand "false" :hexpand "false" :space-evenly "false"
|
|
:class "cavabar"
|
|
:text cava
|
|
))))
|
|
(box :class "music-controls-box" :space-evenly "true" :hexpand "true" :vexpand "false" :orientation "v"
|
|
(button :class "music-previous" :halign "center" :onclick "playerctl previous" "")
|
|
(button :class "music-pp" :halign "center" :onclick "playerctl play-pause" "${music-pp}")
|
|
(button :class "music-next" :halign "center" :onclick "playerctl next" "")))
|
|
(box :class "profile-stuff-box" :space-evenly "false" :hexpand "false" :vexpand "false" :orientation "h" :height 140
|
|
(box :class "profile-img" :space-evenly "false" :hexpand "false" :vexpand "false" :orientation "v" :style "background-image: url(\"${profile-image}\");")
|
|
(box :class "profile-stuff" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 8
|
|
(label :class "profile-name" :text profile-name :halign "start")
|
|
(label :class "profile-os" :text profile-os :halign "start")
|
|
(label :class "profile-kernel" :text profile-kernel :halign "start")))))
|
|
|
|
;; windows
|
|
(defwindow main
|
|
:windowtype "normal"
|
|
:wm-ignore true
|
|
:monitor 0
|
|
:geometry (geometry :x 2 :y 0)
|
|
(main))
|