aboutsummaryrefslogtreecommitdiff
path: root/home/rices/schrottkatze/eww/configDir
diff options
context:
space:
mode:
Diffstat (limited to 'home/rices/schrottkatze/eww/configDir')
-rw-r--r--home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck77
-rw-r--r--home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck37
-rw-r--r--home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck18
-rw-r--r--home/rices/schrottkatze/eww/configDir/eww.css58
-rw-r--r--home/rices/schrottkatze/eww/configDir/eww.yuck36
-rwxr-xr-xhome/rices/schrottkatze/eww/configDir/scripts/bat.nu78
-rwxr-xr-xhome/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu38
-rw-r--r--home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck22
-rw-r--r--home/rices/schrottkatze/eww/configDir/topBar/time.yuck10
-rw-r--r--home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck55
-rw-r--r--home/rices/schrottkatze/eww/configDir/util.yuck10
11 files changed, 439 insertions, 0 deletions
diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck
new file mode 100644
index 0000000..d955d31
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck
@@ -0,0 +1,77 @@
+(include "bottomBar/workspaces.yuck")
+(include "bottomBar/traveldings.yuck")
+
+(defwindow bottomBar
+ :monitor 0
+ :stacking "fg"
+ :wm-ignore true
+ :exclusive true
+ :geometry (geometry
+ :width "100%"
+ :height "33px"
+ :anchor "bottom center")
+ (bottomBar))
+
+(defwidget bottomBar []
+ (overlay
+ :class "bottomBar"
+ (transform
+ :translate-y "1.5px"
+ (centerbox
+ (box
+ :halign "start"
+ (workspaceWidget)
+ )
+ (box
+ :halign "center"
+ (traveldings)
+ )
+ (box
+ :halign "end"
+ ; (label :text "${iceData.speed}km/h")
+ (mullvadThing)
+ )
+ )
+ )
+ (box
+ :class "lesbianFlag"
+ :height 1
+ ( flagEl :flipped true :color "#D52D00")
+ ( flagEl :flipped true :color "#EF7627")
+ ( flagEl :flipped true :color "#FF9A56")
+ ( flagEl :flipped true :color "#FFFFFF")
+ ( flagEl :flipped true :color "#D162A4")
+ ( flagEl :flipped true :color "#B55690")
+ ( flagEl :flipped true :color "#A30262")
+ )
+ )
+)
+
+(deflisten mullvad
+ :initial "{\"state\":\"init\"}"
+ `mullvad status -j listen`
+)
+
+(defwidget mullvadThing []
+ (box
+ :class "container"
+ (button
+ :height 16
+ :width 16
+ :class "mullvad-state-${mullvad.state}"
+ )
+ )
+)
+
+(defwidget iceTacho []
+ (box
+ :class "iceTacho"
+ :tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})"
+ (label :text "${iceTachoData.speed} km/h")
+ )
+)
+
+(deflisten iceTachoData
+ :initial "null"
+ { "~/.config/eww/scripts/iceTacho.nu" }
+)
diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck
new file mode 100644
index 0000000..62de26e
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck
@@ -0,0 +1,37 @@
+(defwidget traveldings []
+ (revealer
+ :class "traveldings"
+ :transition "crossfade"
+ :reveal { traveldings_data != "null" }
+ (traveldingsBarWidget)
+ )
+)
+
+(defwidget traveldingsBarWidget []
+ (overlay
+ (box
+ :width 640
+ (label
+ :halign "start"
+ :text "${traveldings_data.line} -> ${strlength(traveldings_data.arrival_station) > 24 ? "${substring(traveldings_data.arrival_station, 0, 24)}…" : traveldings_data.arrival_station}${traveldings_data.arrival_platform_data_available ? " (Gl. ${traveldings_data.arrival_platform_real})" : ""}"
+ )
+ (label
+ :halign "end"
+ :text { traveldings_data.time_left >= 3600 ? formattime(traveldings_data.time_left, "noch %-Hh %-Mmin", "Etc/UTC") : formattime(traveldings_data.time_left, "noch %-Mmin", "Etc/UTC") }
+ )
+ )
+ (box
+ (progress
+ :class { traveldings_data.live ? "traveldings_live" : "traveldings_disconnected" }
+ :value {traveldings_data.progress * 100}
+ :orientation "horizontal"
+ )
+ )
+ )
+)
+
+
+(deflisten traveldings_data
+ :initial "null"
+ "traveldings current"
+)
diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck
new file mode 100644
index 0000000..2709e1b
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck
@@ -0,0 +1,18 @@
+(defwidget workspaceWidget []
+ (box
+ :class "workspaces"
+ (for workspace in workspaces
+ (button
+ :style "border-bottom: 4px solid ${workspace.color}${workspace.active ? "; background-color: #3c3836" : ""}"
+ :class "${workspace.focused ? "focused" : ""}"
+ :onclick "niri msg action focus-workspace ${workspace.idx}"
+ (label :text "${workspace.icon ?: workspace.idx}")
+ )
+ )
+ )
+)
+
+(deflisten workspaces
+ :initial "[]"
+ "bar-ws-monitor"
+)
diff --git a/home/rices/schrottkatze/eww/configDir/eww.css b/home/rices/schrottkatze/eww/configDir/eww.css
new file mode 100644
index 0000000..2ce2ac5
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/eww.css
@@ -0,0 +1,58 @@
+label {
+ font: 14pt "Departure Mono Nerd Font";
+}
+
+button {
+ border-radius: 0px;
+ padding: 0;
+}
+
+.background {
+ background-color: #1d2021;
+}
+
+.workspaces button {
+ border: 0px;
+ padding: 5px 4px 0 4px;
+}
+
+.workspaces button.focused {
+ background-color: #504935;
+}
+
+.traveldings progressbar trough {
+ border: none;
+ background-color: #3c3836;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.traveldings progressbar.traveldings_live progress {
+ background-color: #79740e;
+ border-bottom-left-radius: 0;
+}
+
+.traveldings progressbar.traveldings_disconnected progress {
+ background-color: #cc241d;
+}
+
+
+.traveldingsWindow {
+ border-radius: 15px;
+}
+
+.mullvad-state-connected {
+ background-color: #98971a
+}
+
+.mullvad-state-connecting {
+ background-color: #d79921
+}
+
+.mullvad-state-disconnected {
+ background-color: #cc241d
+}
+
+.mullvad-state-init {
+ background-color: #458588
+}
diff --git a/home/rices/schrottkatze/eww/configDir/eww.yuck b/home/rices/schrottkatze/eww/configDir/eww.yuck
new file mode 100644
index 0000000..f6f20f5
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/eww.yuck
@@ -0,0 +1,36 @@
+(include "topBar/topBar.yuck")
+(include "bottomBar/bottomBar.yuck")
+
+(include "topBar/time.yuck")
+
+(defwindow streamUi
+ :monitor 0
+ :stacking "fg"
+ :wm-ignore true
+ :exclusive true
+ :geometry (geometry
+ :width "640px"
+ :height "100%"
+ :anchor "center right")
+ (centerbox
+ :style "padding: 0 3px"
+ :orientation "vertical"
+ (label :text "hi")
+ (label :text "hi")
+ (centerbox
+ :valign "end"
+ (box
+ :halign "start"
+ (systray
+ :icon-size 18
+ :spacing 3
+ )
+ )
+ (box)
+ (box
+ :halign "end"
+ (time)
+ )
+ )
+ )
+)
diff --git a/home/rices/schrottkatze/eww/configDir/scripts/bat.nu b/home/rices/schrottkatze/eww/configDir/scripts/bat.nu
new file mode 100755
index 0000000..fd34c50
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/scripts/bat.nu
@@ -0,0 +1,78 @@
+#!/usr/bin/env nu
+
+const ICONS = [
+ [ normal charging];
+ [ 󰂎 󰢟 ]
+ [ 󰁺 󰢜 ]
+ [ 󰁻 󰂆 ]
+ [ 󰁼 󰂇 ]
+ [ 󰁽 󰂈 ]
+ [ 󰁾 󰢝 ]
+ [ 󰁿 󰂉 ]
+ [ 󰂀 󰢞 ]
+ [ 󰂁 󰂊 ]
+ [ 󰂂 󰂋 ]
+ [ 󰁹 󰂅 ]
+];
+
+const DELAY = 2sec;
+
+def "main auto" [] {
+ loop {
+ let paths = ls "/sys/class/power_supply"
+ | each {|it| $it.name | path basename}
+ | filter {|it| $it starts-with "BAT"};
+
+ if ($paths | is-not-empty) {
+ let result = $paths
+ | each {|it| get_and_format $it}
+ | str join " | "
+ | prepend "| "
+ | str join;
+
+ print $result
+ } else {
+ print ""
+ }
+ sleep $DELAY;
+ }
+}
+
+def main [ path: string ] {
+ loop {
+ print (get_and_format $path)
+ sleep $DELAY;
+ }
+}
+
+def get_and_format [ path: string ] {
+ let fract = get_bat_charge_fraction $path;
+ let is_charging = get_bat_charging_status $path;
+ let percent = ($fract * 100) | math round;
+
+ return $"<span foreground=\"#d65d0e\">(get_bat_icon $fract $is_charging)</span> ($percent)<span foreground=\"#7c6f64\">%</span>";
+}
+
+def get_bat_charge_fraction [
+ path: string
+] {
+ let energy_full = open $"/sys/class/power_supply/($path)/energy_full" | into float;
+ let energy_now = open $"/sys/class/power_supply/($path)/energy_now" | into float;
+
+ $energy_now / $energy_full
+}
+
+def get_bat_charging_status [
+ path: string
+] {
+ let status = open $"/sys/class/power_supply/($path)/status";
+
+ $status like Charging
+}
+
+def get_bat_icon [
+ frac: float
+ is_charging = false
+] {
+ $ICONS | get (($frac * 10) | math round) | get (if ($is_charging) { "charging" } else { "normal" })
+}
diff --git a/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu b/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu
new file mode 100755
index 0000000..5225dc2
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu
@@ -0,0 +1,38 @@
+#!/usr/bin/env nu
+
+const TABLE = {
+ 401: 280
+ 402: 280
+ 403: 330
+ 406: 330
+ 407: 320
+ 408: 320
+ 411: 230
+ 415: 230
+ 412: 265
+ 605: 200
+};
+
+def main [ ] {
+ loop {
+ if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) {
+ let iceData = http get https://iceportal.de/api1/rs/status;
+ let tzn = $iceData.tzn;
+ let br = $iceData.series;
+ let speed = $iceData.speed;
+ let speedfrac = $speed / ($TABLE | get $br);
+
+ print ({
+ tzn: $tzn,
+ br: $br,
+ speed: $speed,
+ frac: $speedfrac
+ } | to json -r);
+
+ sleep 2sec;
+ } else {
+ print "null";
+ sleep 5sec;
+ }
+ }
+}
diff --git a/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck b/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck
new file mode 100644
index 0000000..c37838a
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck
@@ -0,0 +1,22 @@
+(deflisten bat
+ :initial "<span foreground=\"#cc241d\">BAT0 ERR</span>"
+ { "~/.config/eww/scripts/bat.nu auto"}
+)
+
+(defwidget cpu []
+ (box
+ :class "cpuIndicator"
+ (label
+ :markup "<span foreground=\"#d65d0e\"></span> ${strlength(round(EWW_CPU.avg, 0)) == 1 ? " ${round(EWW_CPU.avg, 0)}" : round(EWW_CPU.avg, 0)}<span foreground=\"#7c6f64\">%</span>"
+ )
+ )
+)
+
+(defwidget mem []
+ (box
+ :class "memIndicator"
+ (label
+ :markup "<span foreground=\"#d65d0e\"> </span> ${round(EWW_RAM.used_mem_perc, 0)}<span foreground=\"#7c6f64\">%</span>"
+ )
+ )
+)
diff --git a/home/rices/schrottkatze/eww/configDir/topBar/time.yuck b/home/rices/schrottkatze/eww/configDir/topBar/time.yuck
new file mode 100644
index 0000000..ba22883
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/topBar/time.yuck
@@ -0,0 +1,10 @@
+(defwidget time []
+ (label
+ :markup {
+ formattime(
+ EWW_TIME,
+ "<span foreground=\"#d65d0e\"></span> %Y<span foreground=\"#7c6f64\">-</span>%m<span foreground=\"#7c6f64\">-</span>%d <span foreground=\"#d65d0e\"></span> %H<span foreground=\"#7c6f64\">:</span>%M<span foreground=\"#7c6f64\">:</span>%S "
+ )
+ }
+ )
+)
diff --git a/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck b/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck
new file mode 100644
index 0000000..4aee71f
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck
@@ -0,0 +1,55 @@
+(include "topBar/time.yuck")
+(include "topBar/sysinfo.yuck")
+(include "util.yuck")
+
+(defwindow topBar
+ :monitor 0
+ :stacking "fg"
+ :wm-ignore true
+ :exclusive true
+ :geometry (geometry
+ :width "100%"
+ :height "33px"
+ :anchor "top center")
+ (topBar))
+
+(defwidget topBar []
+ (overlay
+ :class "topBar"
+ (transform
+ :translate-y "-1.5px"
+ (centerbox
+ (box
+ :halign "start"
+ :spacing 12
+ :space-evenly false
+ (label :text " ")
+ (cpu)
+ (sep)
+ (mem)
+ (label :markup bat)
+ )
+ (box
+ :halign "center"
+ (systray
+ :icon-size 18
+ :spacing 3
+ )
+ )
+ (box
+ :halign "end"
+ (time)
+ )
+ )
+ )
+ (box
+ :class "transFlag"
+ :height 1
+ ( flagEl :flipped false :color "#5BCEFA")
+ ( flagEl :flipped false :color "#F5A9B8")
+ ( flagEl :flipped false :color "#FFFFFF")
+ ( flagEl :flipped false :color "#F5A9B8")
+ ( flagEl :flipped false :color "#5BCEFA")
+ )
+ )
+)
diff --git a/home/rices/schrottkatze/eww/configDir/util.yuck b/home/rices/schrottkatze/eww/configDir/util.yuck
new file mode 100644
index 0000000..3df84ab
--- /dev/null
+++ b/home/rices/schrottkatze/eww/configDir/util.yuck
@@ -0,0 +1,10 @@
+(defwidget flagEl [color ?flipped]
+ (box
+ :style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}"
+ :halign "fill"
+ )
+)
+
+(defwidget sep []
+ (label :text "|")
+)