mirror of
				https://forge.katzen.cafe/schrottkatze/nix-configs.git
				synced 2025-10-31 01:27:57 +01:00 
			
		
		
		
	Switch to niri - Episode 2: The (first?) purge
This commit is contained in:
		
					parent
					
						
							
								f28ec1ae8f
							
						
					
				
			
			
				commit
				
					
						c2ebb8d760
					
				
			
		
					 54 changed files with 192 additions and 83206 deletions
				
			
		|  | @ -0,0 +1,65 @@ | |||
| (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") | ||||
|           (iceTacho) | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|     (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") | ||||
|     ) | ||||
|   ) | ||||
| ) | ||||
| 
 | ||||
| (defwidget iceTacho [] | ||||
|   (box | ||||
|     :class "iceTacho" | ||||
|     :tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})" | ||||
|     (circular-progress | ||||
|       :value { iceTachoData.frac * 60 + 20 } | ||||
|       :thickness 3 | ||||
|     ) | ||||
|     (label :text "${iceTachoData.speed} km/h") | ||||
|   ) | ||||
| ) | ||||
| 
 | ||||
| (deflisten iceTachoData | ||||
|   :initial "null" | ||||
|   { "~/.config/eww/scripts/iceTacho.nu" } | ||||
| ) | ||||
|  | @ -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" | ||||
| ) | ||||
|  | @ -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 "swaymsg workspace ${workspace.name}" | ||||
|         (label :text "${workspace.idx}") | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
| ) | ||||
| 
 | ||||
| (deflisten workspaces | ||||
|   :initial "[]" | ||||
|   "bar-ws-monitor" | ||||
| ) | ||||
							
								
								
									
										36
									
								
								modules/desktop-environment/home/eww/configDir/eww.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								modules/desktop-environment/home/eww/configDir/eww.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| label { | ||||
|   font: 14pt "Departure Mono Nerd Font"; | ||||
| } | ||||
| 
 | ||||
| .background { | ||||
|   background-color: #1d2021; | ||||
| } | ||||
| 
 | ||||
| .workspaces button { | ||||
|   border: 0px; | ||||
| } | ||||
| 
 | ||||
| .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; | ||||
| } | ||||
							
								
								
									
										2
									
								
								modules/desktop-environment/home/eww/configDir/eww.yuck
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								modules/desktop-environment/home/eww/configDir/eww.yuck
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| (include "topBar/topBar.yuck") | ||||
| (include "bottomBar/bottomBar.yuck") | ||||
							
								
								
									
										51
									
								
								modules/desktop-environment/home/eww/configDir/scripts/bat.nu
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								modules/desktop-environment/home/eww/configDir/scripts/bat.nu
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| #!/usr/bin/env nu | ||||
| 
 | ||||
| const ICONS = [ | ||||
|   [ normal charging]; | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
|   [   ] | ||||
| ]; | ||||
| 
 | ||||
| def main [ path: string ] { | ||||
|   loop { | ||||
|     let fract = get_bat_charge_fraction $path; | ||||
|     let is_charging = get_bat_charging_status $path; | ||||
|     let percent = ($fract * 100) | math round; | ||||
| 
 | ||||
|     print $"<span foreground=\"#d65d0e\">(get_bat_icon $fract $is_charging)</span> ($percent)<span foreground=\"#7c6f64\">%</span>"; | ||||
|     sleep 2sec; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 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" }) | ||||
| } | ||||
							
								
								
									
										38
									
								
								modules/desktop-environment/home/eww/configDir/scripts/iceTacho.nu
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								modules/desktop-environment/home/eww/configDir/scripts/iceTacho.nu
									
										
									
									
									
										Executable file
									
								
							|  | @ -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; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | @ -0,0 +1,27 @@ | |||
| (deflisten bat0  | ||||
|   :initial "<span foreground=\"#cc241d\">BAT0 ERR</span>" | ||||
|   { "~/.config/eww/scripts/bat.nu BAT0"} | ||||
| ) | ||||
| (deflisten bat1 | ||||
|   :initial "<span foreground=\"#cc241d\">BAT1 ERR</span>" | ||||
|   { "~/.config/eww/scripts/bat.nu BAT1"} | ||||
| ) | ||||
| 
 | ||||
| (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>" | ||||
|     ) | ||||
|   ) | ||||
| ) | ||||
| 
 | ||||
|  | @ -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 " | ||||
|       )  | ||||
|     } | ||||
|   ) | ||||
| ) | ||||
|  | @ -0,0 +1,58 @@ | |||
| (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) | ||||
|           (sep) | ||||
|           (label :markup bat0) | ||||
|           (sep) | ||||
|           (label :markup bat1) | ||||
|         ) | ||||
|         (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") | ||||
|     ) | ||||
|   ) | ||||
| ) | ||||
							
								
								
									
										11
									
								
								modules/desktop-environment/home/eww/configDir/util.yuck
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/desktop-environment/home/eww/configDir/util.yuck
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| (defwidget flagEl [color ?flipped] | ||||
|   (box | ||||
|     :style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}" | ||||
|     :halign "fill" | ||||
|   ) | ||||
| ) | ||||
| 
 | ||||
| (defwidget sep []  | ||||
|   (label :text "|") | ||||
| ) | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Schrottkatze
				Schrottkatze