aboutsummaryrefslogtreecommitdiff
path: root/roles/home/desktop/eww/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'roles/home/desktop/eww/widgets')
-rw-r--r--roles/home/desktop/eww/widgets/default.css1
-rw-r--r--roles/home/desktop/eww/widgets/default.yuck2
-rw-r--r--roles/home/desktop/eww/widgets/meter.css9
-rw-r--r--roles/home/desktop/eww/widgets/meter.yuck41
-rw-r--r--roles/home/desktop/eww/widgets/stat.yuck24
5 files changed, 77 insertions, 0 deletions
diff --git a/roles/home/desktop/eww/widgets/default.css b/roles/home/desktop/eww/widgets/default.css
new file mode 100644
index 0000000..e6d3764
--- /dev/null
+++ b/roles/home/desktop/eww/widgets/default.css
@@ -0,0 +1 @@
+@import "meter.css";
diff --git a/roles/home/desktop/eww/widgets/default.yuck b/roles/home/desktop/eww/widgets/default.yuck
new file mode 100644
index 0000000..bedb80e
--- /dev/null
+++ b/roles/home/desktop/eww/widgets/default.yuck
@@ -0,0 +1,2 @@
+(include "./widgets/meter.yuck")
+(include "./widgets/stat.yuck")
diff --git a/roles/home/desktop/eww/widgets/meter.css b/roles/home/desktop/eww/widgets/meter.css
new file mode 100644
index 0000000..df65382
--- /dev/null
+++ b/roles/home/desktop/eww/widgets/meter.css
@@ -0,0 +1,9 @@
+.meter .background {
+ color: @bg1;
+ background: rgba(0, 0, 0, 0);
+}
+
+.meter .progress {
+ color: @accent;
+ background: rgba(0, 0, 0, 0);
+}
diff --git a/roles/home/desktop/eww/widgets/meter.yuck b/roles/home/desktop/eww/widgets/meter.yuck
new file mode 100644
index 0000000..af2c3f3
--- /dev/null
+++ b/roles/home/desktop/eww/widgets/meter.yuck
@@ -0,0 +1,41 @@
+(defwidget meter [value label]
+ (overlay :class {"meter"
+ + (value >= 90 ? " almost-full" : "")
+ + (value >= 99 ? " full" : "")
+ + (value <= 10 ? " almost-empty" : "")
+ + (value <= 1 ? " empty" : "")
+ }
+
+ :width 100
+
+ (circular-progress :class "background"
+ :value 80
+ :start-at 35
+ :thickness 10
+ :width 100
+ )
+
+ (circular-progress :class "progress"
+ :value {value*0.8}
+ :start-at 35
+ :thickness 10
+ :width 100
+ )
+
+ (box
+ :orientation "v"
+ :valign "center"
+ :space-evenly false
+ :spacing 2
+
+ (children)
+
+ {round(value, 2)+"%"}
+ )
+
+ (transform
+ :translate-y "44px"
+ (label :markup {"<b>"+label+"</b>"})
+ )
+ )
+)
diff --git a/roles/home/desktop/eww/widgets/stat.yuck b/roles/home/desktop/eww/widgets/stat.yuck
new file mode 100644
index 0000000..1ef76f2
--- /dev/null
+++ b/roles/home/desktop/eww/widgets/stat.yuck
@@ -0,0 +1,24 @@
+(defwidget stat [key value ?class]
+ (overlay
+ (box :class {class}
+ :orientation "h"
+ :spacing 45
+
+ (label
+ :text {key}
+ :halign "start"
+ :hexpand true
+ )
+
+ (label
+ :text {value}
+ :halign "end"
+ :hexpand true
+ )
+ )
+
+ (label :class "faint"
+ :text "..."
+ )
+ )
+)