dotfiles/de/home/.config/eww/modules/home/softwareupdates.yuck
2025-07-19 10:44:30 -07:00

57 lines
2 KiB
Text

(defpoll software_list :initial '[{"package_name":"package","package_version":"1","upstream_version":"1","up_to_date":"true"}]'
:interval "43200s"
'software-release-monitor')
(defvar reveal_software true)
(defwidget software_revealer []
(revealer-on-press
:visible {(jq(workspacesArray, '.[]\|select(.focused==true).num') <= 20) && (jq(workspacesArray, '.[]\|select(.focused==true).num') >= 11)}
; :visible {jq(workspacesArray, '.[]\|select(.focused==true).num') <= 9}
:revealvar reveal_software
:revealvar-name "reveal_software"
:width 300
(button
:width 300
:class "revealer-title"
"Software Monitor ${reveal_software ? '' : ''}")
(softwareupdates :json {software_list})))
(defwidget softwareupdates [json]
(box
:class "notes"
:orientation "v"
:halign "baseline"
:width 300
:height 150
:space-evenly true
(for software in json
(button :onclick "notify-send '${software.package_name} is ${(software.up_to_date == 'true' ) ? 'up to date!' : 'outdated!'}' 'upstream: ${software.upstream_version}\\npackage: ${software.package_version}'"
(box
:orientation "h"
:space-evenly false
(label
;; :xalign 0
:halign "start"
:hexpand true
:wrap false
:truncate true
:text "${software.package_name}")
(box
:orientation "v"
:halign "end"
(label
:valign "end"
:halign "end"
:class "details"
:text "${software.upstream_version} ")
(label
:valign "start"
:halign "end"
:class "details"
:text "${software.package_version} 󰏖"))
(label
:halign "end"
:class "status"
:style {(software.up_to_date == "true" ) ? "color: green;" : "color: red;"}
:text {(software.up_to_date == "true" ) ? "" : ""}))))
))