Update Hyprland, use hyprpaper for wallpaper, split video

Change-Id: I4a000c722e074793d33822e8985539f212cf3299
Reviewed-on: https://git.clicks.codes/c/Coded/nixConfig/+/371
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Samuel Shuert <coded@clicks.codes>
diff --git a/extensions/eww/eww.scss b/extensions/eww/eww.scss
index 3c47527..d2abe6d 100644
--- a/extensions/eww/eww.scss
+++ b/extensions/eww/eww.scss
@@ -1,447 +1,54 @@
-/** EWW.SCSS
-Created by saimoom **/
-*{
-	all: unset;
-	font-family: feather;
-	font-family: DaddyTimeMono NF;
+* {
+  all: unset; //Unsets everything so you can style everything from scratch
 }
 
-/** General **/
-.bar_class {
-    background-color: #0f0f17;
-    border-radius: 16px;
-}
-.module {
-    margin: 0px 0px 0px 0px;
-    border-radius: 10px 16px 0px 10px;
+//Global Styles
+.bar {
+  background-color: #3a3a3a;
+  color: #b0b4bc;
+  padding: 10px;
 }
 
-/** tooltip!! **/
-tooltip.background {
-    background-color: #0f0f17;
-    font-size: 18;
-    border-radius: 10px;
-    color: #bfc9db;
-}
+// Styles on classes (see eww.yuck for more information)
 
-tooltip label {
-    margin: 6px;
-}
-
-
-/** Widgets **/
-
-.clock_time_sep {
-    font-size: 16;
-    color: #bfc9db;
-    margin: 0px 4px 1px 4px;
-}
-.clock_time_class, .clock_minute_class {
-    font-size: 23;
-}
-.clock_date_class {
-    font-size: 18;
-    margin: 0px 20px 0px -1px;
-    color: #d7beda;
-}
-.clock_minute_class {
-    margin: 0px 20px 0px 3px;
-    color: #bfc9db;
-}
-
-.clock_time_class {
-    color: #bfc9db;
-    font-weight: bold;
-    margin: 0px 5px 0px 0px;
-}
-
-
-.membar {
-  color: #e0b089;
-    background-color: #38384d;
-  border-radius: 10px;
-}
-.batbar {
-  color: #afbea2;
-    background-color: #38384d;
-  border-radius: 10px;
-}
-.brightbar trough highlight {
-  background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
-  border-radius: 10px;
-}
-.volbar trough highlight {
-  background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
-  border-radius: 10px;
-}
-.volume_icon {
-    font-size: 22;
-    color: #a1bdce;
-  margin: 0px 10px 0px 10px;
-}
-
-
-.module_essid {
-    font-size: 18;
-    color: #a1bdce;
-  margin: 0px 10px 0px 0px;
-}
-.module-wif {
-    font-size: 22;
-    color: #a1bdce;
-    border-radius: 100%;
-  margin: 0px 10px 0px 5px;
-}
-
-.iconmem {
-    color: #e0b089;
-}
-.iconbat {
-    color: #afbea2;
-}
-.iconbat, .iconmem {
-    font-size: 15;
-    margin: 10px;
-}
-.bright_icon {
-    font-size: 22;
-    color: #e4c9af;
-  margin: 0px 10px 0px 10px;
-}
-
-
-.separ {
-    color: #3e424f;
-    font-weight: bold;
-    font-size: 22px;
-    margin: 0px 8px 0px 8px;
-  }
-
-.mem_module {
-    background-color: #0f0f17;
-	border-radius: 16px;
-  margin: 0px 10px 0px 3px;
-  }
-.bat_module {
-    background-color: #0f0f17;
-	border-radius: 16px;
-  margin: 0px 10px 0px 10px;
-  }
-
-
-scale trough {
+.sidestuff slider {
   all: unset;
-  background-color: #22242b;
-  box-shadow: 0 2px 3px 2px #06060b;
-  border-radius: 16px;
-  min-height: 10px;
-  min-width: 70px;
-  margin: 0px 10px 0px 0px;
+  color: #ffd5cd;
 }
 
-.works {
-font-size: 27px;
-font-weight: normal;
-margin: 5px 0px 0px 20px;
-background-color: #0f0f17;
-}
-
-.0 , .01, .02, .03, .04, .05, .06,
-.011, .022, .033, .044, .055, .066{
-  margin: 0px 10px 0px 0px;
-}
-
-/* Unoccupied */
-.0 {
-color: #3e424f;
-}
-
-/* Occupied */
-.01, .02, .03, .04, .05, .06 {
-  color: #bfc9db;
-}
-
-/* Focused */
-.011, .022, .033, .044, .055, .066 {
-  color: #a1bdce;
-}
-
-
-.song_cover_art {
-	background-size: cover;	
-	background-position: center;
-	min-height: 24px;
-	min-width: 24px;
-	margin: 10px;
-	border-radius: 100px;
-}
-
-.song {
-	color: #a1bdce;
-	font-size : 18px;
-	font-weight : bold;
-	margin : 3px 5px 0px 0px;
-}
-
-.song_btn_play {
-	color: #a1bdce;
-	font-size : 28px;
-	margin : 3px 0px 0px 5px;
-
-}
-
-
-.song_btn_prev, .song_btn_next {
-	color: #bfc9db;
-	font-size : 24px;
-	margin : 3px 0px 0px 5px;
-
-}
-// Calendar
-.cal {
-  background-color: #0f0f17;
-  font-family: JetBrainsMono Nerd Font;
-  font-size: 18px;
-  font-weight: normal;
-
-.cal-in {
-    padding: 0px 10px 0px 10px;
-    color: #bfc9db;
-
-.cal {
-     &.highlight {
-          padding: 20px;
-      }
-
-      padding: 5px 5px 5px 5px;
-      margin-left: 10px;
-    }
-  }
-}
-
-calender {
-    color: #bfc9db;
-}
-calendar:selected {
-  color: #a1bdce;
-}
-
-calendar.header {
-color: #a1bdce;
-font-weight: bold;
-}
-
-calendar.button {
-color: #afbea2;
-}
-
-calendar.highlight {
-color: #a1bdce;
-font-weight: bold;
-}
-
-calendar:indeterminate {
-color: #bfc9db;
-}
-
-
-
-
-
-
-
-.sys_sep {
-    color: #38384d;
-    font-size: 18;
-    margin: 0px 10px 0px 10px;
-}
-.sys_text_bat_sub, .sys_text_mem_sub {
-    font-size: 16;
-    color: #bbc5d7;
-    margin: 5px 0px 0px 25px;
-}
-.sys_text_bat, .sys_text_mem {
-    font-size: 21;
-    font-weight: bold;
-    margin: 14px 0px 0px 25px;
-}
-.sys_icon_bat, .sys_icon_mem {
-    font-size: 30;
-    margin: 30px;
-}
-.sys_win {
-    background-color: #0f0f17;
-}
-.sys_bat {
-  color: #afbea2;
-    background-color: #38384d;
+.metric scale trough highlight {
+  all: unset;
+  background-color: #D35D6E;
+  color: #000000;
   border-radius: 10px;
 }
-.sys_mem {
-  color: #e4c9af;
-    background-color: #38384d;
+.metric scale trough {
+  all: unset;
+  background-color: #4e4e4e;
+  border-radius: 50px;
+  min-height: 3px;
+  min-width: 50px;
+  margin-left: 10px;
+  margin-right: 20px;
+}
+.metric scale trough highlight {
+  all: unset;
+  background-color: #D35D6E;
+  color: #000000;
   border-radius: 10px;
 }
-.sys_icon_bat, .sys_text_bat {
-    color: #afbea2;
+.metric scale trough {
+  all: unset;
+  background-color: #4e4e4e;
+  border-radius: 50px;
+  min-height: 3px;
+  min-width: 50px;
+  margin-left: 10px;
+  margin-right: 20px;
 }
-.sys_icon_mem, .sys_text_mem {
-    color: #e4c9af;
+.label-ram {
+  font-size: large;
 }
-.sys_bat_box {
-	border-radius: 16px;
-    margin: 15px 10px 10px 20px;
-  }
-.sys_mem_box {
-	border-radius: 16px;
-    margin: 10px 10px 15px 20px;
-  }
-
-
-
-
-
-
-
-.music_pop {
-    background-color: #0f0f17;
-	border-radius: 16px;
+.workspaces button:hover {
+  color: #D35D6E;
 }
-  .music_cover_art {
-	background-size: cover;
-	background-position: center;
-	min-height: 100px;
-    box-shadow: 5px 5px 5px 5px #06060b;
-	min-width: 170px;
-	margin: 20px;
-	border-radius: 20px;
-}
-
-.music {
-	color: #a1bdce;
-	font-size : 20px;
-	font-weight : bold;
-	margin : 20px 0px 0px -15px;
-}
-
-.music_artist {
-	color: #bbc5d7;
-	font-size : 16px;
-	font-weight : normal;
-	margin : 0px 0px 0px 0px;
-}
-
-.music_btn_prev, .music_btn_play, .music_btn_next {
-	font-family: Iosevka Nerd Font;
-}
-.music_btn_prev {
-	color: #bbc5d7;
-	font-size : 32px;
-	font-weight : normal;
-	margin: 0px 0px 0px 0px;
-}
-.music_btn_play {
-	color: #a1bdce;
-	font-size : 48px;
-	font-weight : normal;
-	margin: 0px 0px 0px 0px;
-}
-.music_btn_next {
-	color: #bbc5d7;
-	font-size : 32px;
-	font-weight : normal;
-	margin: 0px 0px 0px 0px;
-}
-
-.music_bar scale trough highlight {
-	all: unset;
-    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
-	border-radius: 24px;
-}
-.music_bar scale trough {
-	all: unset;
-	background-color: #232232;
-    box-shadow: 0 6px 5px 2px #06060b;
-	border-radius: 24px;
-	min-height: 13px;
-	min-width: 190px;
-	margin : -10px 10px 20px 0px;
-}
-
-.audio-box {
-    background-color: #0f0f17;
-	border-radius: 16px;
-}
-.speaker_icon {
-	background-size: cover;
-    background-image: url('images/speaker.png');
-	background-position: center;
-	min-height: 70px;
-	min-width: 75px;
-	margin: 10px 20px 5px 20px;
-	border-radius: 12px;
-}
-
-.speaker_text {
-	color: #a1bdce;
-	font-size : 26px;
-	font-weight : bold;
-	margin: 20px 0px 0px 0px;
-}
-
-.speaker_bar scale trough highlight {
-	all: unset;
-    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
-	border-radius: 24px;
-}
-.speaker_bar scale trough {
-	all: unset;
-	background-color: #232232;
-    box-shadow: 0 6px 5px 2px #06060b;
-	border-radius: 24px;
-	min-height: 13px;
-	min-width: 120px;
-	margin : 0px 0px 5px 0px;
-}
-
-
-
-
-.mic_icon {
-	background-size: cover;
-    background-image: url('images/mic.png');
-	background-position: center;
-	min-height: 70px;
-	min-width: 75px;
-	margin: 5px 20px 20px 20px;
-	border-radius: 12px;
-}
-
-.mic_text {
-	color: #a1bdce;
-	font-size : 26px;
-	font-weight : bold;
-	margin: 0px 0px 0px 0px;
-}
-
-.mic_bar scale trough highlight {
-	all: unset;
-    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
-	border-radius: 24px;
-}
-.mic_bar scale trough {
-	all: unset;
-    box-shadow: 0 6px 5px 2px #06060b;
-	background-color: #232232;
-	border-radius: 24px;
-	min-height: 13px;
-	min-width: 120px;
-	margin : 0px 0px 20px 0px;
-}
-
-.audio_sep {
-    color: #38384d;
-    font-size: 18;
-	margin : 0px 0px 0px 0px;
-}
-
diff --git a/extensions/eww/eww.yuck b/extensions/eww/eww.yuck
index 27eb4c4..a4a27d2 100644
--- a/extensions/eww/eww.yuck
+++ b/extensions/eww/eww.yuck
@@ -1,350 +1,75 @@
-;; Variables
-(defpoll clock_time :interval "5m" "date +\%I")
-(defpoll clock_minute :interval "5s" "date +\%M")
-(defpoll clock_date :interval "10h" "date '+%d/%m'")
-(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
-(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
-(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
-(defpoll battery :interval "15s" "./scripts/battery --bat")
-(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
-(defpoll memory :interval "15s" "scripts/memory")
-(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
-(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
-(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
-(defvar vol_reveal false)
-(defvar br_reveal false)
-(defvar music_reveal false)
-(defvar wifi_rev false)
-(defvar time_rev false)
-(deflisten workspace "scripts/workspace")
+(defwidget bar []
+  (centerbox :orientation "h"
+    (workspaces)
+    (music)
+    (sidestuff)))
 
-(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
-
-
-(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
-(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
-(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
-
-
-(defpoll song :interval "2s"  "~/.config/eww/bar/scripts/music_info --song")
-(defpoll song_artist :interval "2s"  "~/.config/eww/bar/scripts/music_info --artist")
-(defpoll current_status :interval "1s"  "~/.config/eww/bar/scripts/music_info --time")
-(defpoll song_status :interval "2s"  "~/.config/eww/bar/scripts/music_info --status")
-(defpoll cover_art :interval "2s"  "~/.config/eww/bar/scripts/music_info --cover")
-
-(defpoll calendar_day :interval "20h" "date '+%d'")
-(defpoll calendar_year :interval "20h" "date '+%Y'")
-
-;; widgets
-
-(defwidget wifi [] 
-  (eventbox :onhover "${eww} update wifi_rev=true"
-			  :onhoverlost "${eww} update wifi_rev=false"
-		(box :vexpand "false" :hexpand "false" :space-evenly "false"
-				(button :class "module-wif" :onclick "networkmanager_dmenu" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
-	(revealer :transition "slideright"
-			  :reveal wifi_rev
-			  :duration "350ms"
-	(label    :class "module_essid"
-			  :text ESSID_WLAN
-			  :orientation "h"
-			  )))))
-
+(defwidget sidestuff []
+  (box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
+    (metric :label "🔊"
+            :value volume
+            :onchange "amixer -D pulse sset Master {}%")
+    (metric :label ""
+            :value {EWW_RAM.used_mem_perc}
+            :onchange "")
+    (metric :label "💾"
+            :value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
+            :onchange "")
+    time))
 
 (defwidget workspaces []
-  (literal :content workspace))
-
-
-(defwidget bat []
-		(box :class "bat_module" :vexpand "false" :hexpand "false" 
-            (circular-progress :value battery
-                :class "batbar"
-                :thickness 4
-            (button 
-                :class "iconbat"
-                :limit-width 2
-                :tooltip "battery on ${battery}%"
-                :show_truncated false
-                :onclick "$HOME/.config/eww/bar/scripts/pop system"
-                :wrap false
-                ""))))
-
-
-(defwidget mem []
-		(box :class "mem_module" :vexpand "false" :hexpand "false" 
-            (circular-progress :value memory
-                :class "membar"
-                :thickness 4
-            (button 
-                :class "iconmem"
-                :limit-width 2
-                :tooltip "using ${memory}% ram"
-                :onclick "$HOME/.config/eww/bar/scripts/pop system"
-                :show_truncated false
-                :wrap false
-                ""))))
-
-
-
-(defwidget sep []
-  (box :class "module-2" :vexpand "false" :hexpand "false"
-    (label :class "separ" :text "|")))
-
-(defwidget clock_module []
-  (eventbox :onhover "${eww} update time_rev=true"
-			  :onhoverlost "${eww} update time_rev=false"
-    (box :class "module" :space-evenly "false" :orientation "h" :spacing "3" 
-      (label :text clock_time :class "clock_time_class" )
-      (label :text "" :class "clock_time_sep" )
-      (label :text clock_minute :class "clock_minute_class")
-	  (revealer :transition "slideleft"
-			  :reveal time_rev
-			  :duration "350ms"
-      (button :class "clock_date_class"
-             :onclick "$HOME/.config/eww/bar/scripts/pop calendar" clock_date
-        )
-  ))))
-  
-(defwidget volume []
-  (eventbox :onhover "${eww} update vol_reveal=true"
-			  :onhoverlost "${eww} update vol_reveal=false"
-  (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" 
-	(button   :onclick "scripts/pop audio"   :class "volume_icon" "")
-	(revealer :transition "slideleft"
-			  :reveal vol_reveal
-			  :duration "350ms"
-	(scale    :class "volbar"
-			  :value volume_percent
-			  :orientation "h"
-			  :tooltip "${volume_percent}%"
-			  :max 100
-			  :min 0
-			  :onchange "amixer -D pulse sset Master {}%" )))))
-
-(defwidget bright []
-  (eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
-  (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" 
-    (label :text "" :class "bright_icon" :tooltip "brightness")
-	(revealer :transition "slideleft"
-			  :reveal br_reveal
-			  :duration "350ms"
-	(scale    :class "brightbar"
-			  :value brightness_percent
-			  :orientation "h"
-			  :tooltip "${brightness_percent}%"
-			  :max 100
-			  :min 0
-			  :onchange "brightnessctl set {}%" )))))
-
-
-
-	;;  Music 
-(defwidget music [] 
-  (eventbox :onhover "${eww} update music_reveal=true"
-			  :onhoverlost "${eww} update music_reveal=false"
-		(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 
-			(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
-			(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
-	    (revealer :transition "slideright"
-			      :reveal music_reveal
-			      :duration "350ms"
-          (box :vexpand "false" :hexpand "false" :oreintation "h" 
-                    (button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
-					(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
-					(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
-
-
-
-(defwidget left []
-	(box :orientation "h" 
-		 :space-evenly false  
-         :halign "end"
-		 :class "left_modules"
-(bright)
-(volume)
-(wifi)
-(sep)
-(bat)
-(mem)
-(sep)
-(clock_module)))
-
-
-(defwidget right []
-	(box :orientation "h" 
-		 :space-evenly false  
-         :halign "start"
-		 :class "right_modules"
-(workspaces)))
-
-
-(defwidget center []
-	(box :orientation "h" 
-		 :space-evenly false  
-         :halign "center"
-		 :class "center_modules"
-(music)))
-
-(defwidget bar_1 []
-  (box :class "bar_class"
+  (box :class "workspaces"
        :orientation "h"
-  (right)
-  (center)
-  (left)
-    ))
+       :space-evenly true
+       :halign "start"
+       :spacing 10
+    (button :onclick "wmctrl -s 0" 1)
+    (button :onclick "wmctrl -s 1" 2)
+    (button :onclick "wmctrl -s 2" 3)
+    (button :onclick "wmctrl -s 3" 4)
+    (button :onclick "wmctrl -s 4" 5)
+    (button :onclick "wmctrl -s 5" 6)
+    (button :onclick "wmctrl -s 6" 7)
+    (button :onclick "wmctrl -s 7" 8)
+    (button :onclick "wmctrl -s 8" 9)))
+
+(defwidget music []
+  (box :class "music"
+       :orientation "h"
+       :space-evenly false
+       :halign "center"
+    {music != "" ? "🎵${music}" : ""}))
+
+
+(defwidget metric [label value onchange]
+  (box :orientation "h"
+       :class "metric"
+       :space-evenly false
+    (box :class "label" label)
+    (scale :min 0
+           :max 101
+           :active {onchange != ""}
+           :value value
+           :onchange onchange)))
+
+
+
+(deflisten music :initial ""
+  "playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
+
+(defpoll volume :interval "1s"
+  "scripts/getvol")
+
+(defpoll time :interval "10s"
+  "date '+%H:%M %b %d, %Y'")
 
 (defwindow bar
-          :geometry (geometry :x "0%"
-                       :y "9px"
-                       :width "98%"
-                       :height "30px"
-                       :anchor "top center")
-          :stacking "fg"
-          :windowtype "dock"
-  (bar_1))
-  
-(defwidget system []
-  (box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
-  (box :class "sys_bat_box" :orientation "h" :space-evenly "false"
-      (circular-progress :value battery
-                :class "sys_bat"
-                :thickness 9
-            (label :text ""
-                :class "sys_icon_bat"
-                :limit-width 2
-                :show_truncated false
-                :wrap false))
-            (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
-            (label :text "battery"
-                :halign "start"
-                :class "sys_text_bat"
-                :limit-width 9
-                :show_truncated false
-                :wrap false)
-            (label :text "${battery}%"
-                :halign "start"
-                :class "sys_text_bat_sub"
-                :limit-width 22
-                :show_truncated false
-                :wrap false)
-            (label :text "${battery_status}"
-                :halign "start"
-                :class "sys_text_bat_sub"
-                :limit-width 22
-                :show_truncated false
-                :wrap false)))
-            (label :text "" :class "sys_sep" :halign "center")
-  (box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
-      (circular-progress :value memory
-                :class "sys_mem"
-                :thickness 9
-            (label :text ""
-                :class "sys_icon_mem"
-                :limit-width 2
-                :show_truncated false
-                :wrap false
-                :angle 0.0))
-            (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
-            (label :text "memory"
-                :halign "start"
-                :class "sys_text_mem"
-                :limit-width 9
-                :show_truncated false
-                :wrap false)
-            (label :text "${memory_used_mb} | ${memory_total_mb}mb "
-                :halign "start"
-                :class "sys_text_mem_sub"
-                :limit-width 22
-                :show_truncated false
-                :wrap false)
-            (label :text "${memory_free_mb}mb free"
-                :halign "start"
-                :class "sys_text_mem_sub"
-                :limit-width 22
-                :show_truncated false
-                :wrap false)))))
-
-(defwidget cal []
-	(box :class "cal" :orientation "v"
-	(box :class "cal-in"
-	(calendar :class "cal" 
-			  :day calendar_day 
-			  :year calendar_year))))
-
-(defwindow calendar
-	:geometry (geometry :x "-20px" 
-						:y "7%" 
-                        :anchor "top right"
-						:width "270px" 
-						:height "60px")
-(cal))
-
-
-
-(defwidget audio []
-	(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
-	(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
-	(box :class "speaker_icon" :orientation "v")
-	(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
-    (label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
-	(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
-	(scale    :value volume_percent
-              :space-evenly "false"
-			  :orientation "h"
-			  :onchange "amixer -D pulse sset Master {}%" 
-              :tooltip "volume on ${volume_percent}%"
-			  :max 100
-			  :min 0))))
-            (label :text "" :class "audio_sep" :halign "center")
-	(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
-	(box :class "mic_icon" :orientation "v")
-	(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
-    (label :class "mic_text" :text "mic" :valign "center" :halign "left" )
-	(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
-	(scale    :value mic_percent
-              :space-evenly "false"
-			  :orientation "h"
-              :tooltip "mic on ${mic_percent}%"
-			  :onchange "amixer -D pulse sset Capture {}%" 
-			  :max 100
-			  :min 0))))))
-
-(defwindow audio_ctl
-	:geometry (geometry :x "-20px" 
-						:y "7%" 
-                        :anchor "top right"
-						:width "280px" 
-						:height "60px")
-(audio))
-
-
-(defwindow system
-	:geometry (geometry :x "-20px" 
-						:y "7%" 
-                        :anchor "top right"
-						:width "290px" 
-						:height "120px")
-(system))
-
-
-
-;;  Music
-(defwidget music_pop []
-		(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
-			(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
-			(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
-				(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
-				(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
-				(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
-					(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
-					(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
-					(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
-				(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
-					(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
-
-
-;;  music
-		(defwindow music_win :stacking "fg" :focusable "false" :screen 1
-			    :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
-			     				(music_pop))
-
+  :monitor 0
+  :windowtype "dock"
+  :geometry (geometry :x "0%"
+                      :y "0%"
+                      :width "90%"
+                      :height "10px"
+                      :anchor "top center")
+  :reserve (struts :side "top" :distance "4%")
+  (bar))
diff --git a/extensions/eww/images/mic.png b/extensions/eww/images/mic.png
deleted file mode 100644
index d77f315..0000000
--- a/extensions/eww/images/mic.png
+++ /dev/null
Binary files differ
diff --git a/extensions/eww/images/music.png b/extensions/eww/images/music.png
deleted file mode 100644
index 11804f5..0000000
--- a/extensions/eww/images/music.png
+++ /dev/null
Binary files differ
diff --git a/extensions/eww/images/profile.png b/extensions/eww/images/profile.png
deleted file mode 100644
index 0190a36..0000000
--- a/extensions/eww/images/profile.png
+++ /dev/null
Binary files differ
diff --git a/extensions/eww/images/speaker.png b/extensions/eww/images/speaker.png
deleted file mode 100644
index 79e005b..0000000
--- a/extensions/eww/images/speaker.png
+++ /dev/null
Binary files differ
diff --git a/extensions/eww/launch_bar b/extensions/eww/launch_bar
deleted file mode 100755
index 51f2a1d..0000000
--- a/extensions/eww/launch_bar
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-## Files and cmd
-FILE="$HOME/.cache/eww_launch.xyz"
-EWW="$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar"
-
-## Run eww daemon if not running already
-if [[ ! `pidof eww` ]]; then
-	${EWW} daemon
-	sleep 1
-fi
-
-## Open widgets 
-run_eww() {
-	${EWW} open-many \
-         bar
-        
-}
-
-## Launch or close widgets accordingly
-if [[ ! -f "$FILE" ]]; then
-	touch "$FILE"
-	run_eww && bspc config -m LVDS-1 top_padding 49
-else
-	${EWW} close-all && killall eww
-	rm "$FILE"
-fi
diff --git a/extensions/eww/scripts/battery b/extensions/eww/scripts/battery
deleted file mode 100755
index 0540a1b..0000000
--- a/extensions/eww/scripts/battery
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-battery() {
-	BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
-	cat /sys/class/power_supply/${BAT}/capacity
-}
-battery_stat() {
-	BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
-	cat /sys/class/power_supply/${BAT}/status
-}
-
-if [[ "$1" == "--bat" ]]; then
-	battery
-elif [[ "$1" == "--bat-st" ]]; then
-	battery_stat
-fi
-
diff --git a/extensions/eww/scripts/getvol b/extensions/eww/scripts/getvol
new file mode 100644
index 0000000..4e4275d
--- /dev/null
+++ b/extensions/eww/scripts/getvol
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if command -v pamixer &>/dev/null; then
+    if [ true == $(pamixer --get-mute) ]; then
+        echo 0
+        exit
+    else
+        pamixer --get-volume
+    fi
+else
+    amixer -D pulse sget Master | awk -F '[^0-9]+' '/Left:/{print $3}'
+fi
diff --git a/extensions/eww/scripts/mem-ad b/extensions/eww/scripts/mem-ad
deleted file mode 100755
index 1e4cf89..0000000
--- a/extensions/eww/scripts/mem-ad
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-
-total="$(free -m | grep Mem: | awk '{ print $2 }')"
-used="$(free -m | grep Mem: | awk '{ print $3 }')"
-
-free=$(expr $total - $used)
-
-if [ "$1" = "total" ]; then
-    echo $total
-elif [ "$1" = "used" ]; then
-    echo $used
-elif [ "$1" = "free" ]; then
-    echo $free
-fi
diff --git a/extensions/eww/scripts/memory b/extensions/eww/scripts/memory
deleted file mode 100755
index 217c834..0000000
--- a/extensions/eww/scripts/memory
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
diff --git a/extensions/eww/scripts/music_info b/extensions/eww/scripts/music_info
deleted file mode 100755
index ffafe87..0000000
--- a/extensions/eww/scripts/music_info
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-# scripts by adi1090x
-
-## Get data
-STATUS="$(mpc status)"
-COVER="/tmp/.music_cover.png"
-MUSIC_DIR="$HOME/Music"
-
-## Get status
-get_status() {
-	if [[ $STATUS == *"[playing]"* ]]; then
-		echo ""
-	else
-		echo "奈"
-	fi
-}
-
-## Get song
-get_song() {
-	song=`mpc -f %title% current`
-	if [[ -z "$song" ]]; then
-		echo "Offline"
-	else
-		echo "$song"
-	fi	
-}
-
-## Get artist
-get_artist() {
-	artist=`mpc -f %artist% current`
-	if [[ -z "$artist" ]]; then
-		echo ""
-	else
-		echo "$artist"
-	fi	
-}
-
-## Get time
-get_time() {
-	time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
-	if [[ -z "$time" ]]; then
-		echo "0"
-	else
-		echo "$time"
-	fi	
-}
-get_ctime() {
-	ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
-	if [[ -z "$ctime" ]]; then
-		echo "0:00"
-	else
-		echo "$ctime"
-	fi	
-}
-get_ttime() {
-	ttime=`mpc -f %time% current`
-	if [[ -z "$ttime" ]]; then
-		echo "0:00"
-	else
-		echo "$ttime"
-	fi	
-}
-
-## Get cover
-get_cover() {
-	ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
-	STATUS=$?
-
-	# Check if the file has a embbeded album art
-	if [ "$STATUS" -eq 0 ];then
-		echo "$COVER"
-	else
-		echo "images/music.png"
-	fi
-}
-
-## Execute accordingly
-if [[ "$1" == "--song" ]]; then
-	get_song
-elif [[ "$1" == "--artist" ]]; then
-	get_artist
-elif [[ "$1" == "--status" ]]; then
-	get_status
-elif [[ "$1" == "--time" ]]; then
-	get_time
-elif [[ "$1" == "--ctime" ]]; then
-	get_ctime
-elif [[ "$1" == "--ttime" ]]; then
-	get_ttime
-elif [[ "$1" == "--cover" ]]; then
-	get_cover
-elif [[ "$1" == "--toggle" ]]; then
-	mpc -q toggle
-elif [[ "$1" == "--next" ]]; then
-	{ mpc -q next; get_cover; }
-elif [[ "$1" == "--prev" ]]; then
-	{ mpc -q prev; get_cover; }
-fi
diff --git a/extensions/eww/scripts/pop b/extensions/eww/scripts/pop
deleted file mode 100755
index aef82e8..0000000
--- a/extensions/eww/scripts/pop
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash
-
-calendar() {
-LOCK_FILE="$HOME/.cache/eww-calendar.lock"
-EWW_BIN="$HOME/.local/bin/eww/eww"
-
-run() {
-    ${EWW_BIN} -c $HOME/.config/eww/bar open calendar
-}
-
-# Open widgets
-if [[ ! -f "$LOCK_FILE" ]]; then
-    ${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
-    touch "$LOCK_FILE"
-    run && echo "ok good!"
-else
-    ${EWW_BIN} -c $HOME/.config/eww/bar close calendar
-    rm "$LOCK_FILE" && echo "closed"
-fi
-}
-
-
-system() {
-LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
-EWW_BIN="$HOME/.local/bin/eww/eww"
-
-run() {
-    ${EWW_BIN} -c $HOME/.config/eww/bar open system 
-}
-
-# Open widgets
-if [[ ! -f "$LOCK_FILE_MEM" ]]; then
-    ${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
-    touch "$LOCK_FILE_MEM"
-    run && echo "ok good!"
-else
-    ${EWW_BIN} -c $HOME/.config/eww/bar close system 
-    rm "$LOCK_FILE_MEM" && echo "closed"
-fi
-}
-
-
-music() {
-LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
-EWW_BIN="$HOME/.local/bin/eww/eww"
-
-run() {
-    ${EWW_BIN} -c $HOME/.config/eww/bar open music_win 
-}
-
-# Open widgets
-if [[ ! -f "$LOCK_FILE_SONG" ]]; then
-    ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
-    touch "$LOCK_FILE_SONG"
-    run && echo "ok good!"
-else
-    ${EWW_BIN} -c $HOME/.config/eww/bar close music_win
-    rm "$LOCK_FILE_SONG" && echo "closed"
-fi
-}
-
-
-
-audio() {
-LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
-EWW_BIN="$HOME/.local/bin/eww/eww"
-
-run() {
-    ${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl 
-}
-
-# Open widgets
-if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
-    ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
-    touch "$LOCK_FILE_AUDIO"
-    run && echo "ok good!"
-else
-    ${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
-    rm "$LOCK_FILE_AUDIO" && echo "closed"
-fi
-}
-
-
-if [ "$1" = "calendar" ]; then
-calendar
-elif [ "$1" = "system" ]; then
-system
-elif [ "$1" = "music" ]; then
-music
-elif [ "$1" = "audio" ]; then
-audio
-fi
diff --git a/extensions/eww/scripts/wifi b/extensions/eww/scripts/wifi
deleted file mode 100755
index 5d7cc59..0000000
--- a/extensions/eww/scripts/wifi
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-status=$(nmcli g | grep -oE "disconnected")
-essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
-
-if [ $status ] ; then
-    icon=""
-    text=""
-    col="#575268"
-
-else
-    icon=""
-    text="${essid}"
-    col="#a1bdce"
-fi
-
-
-
-if [[ "$1" == "--COL" ]]; then
-    echo $col	
-elif [[ "$1" == "--ESSID" ]]; then
-	echo $text
-elif [[ "$1" == "--ICON" ]]; then
-	echo $icon
-fi
-
diff --git a/extensions/eww/scripts/workspace b/extensions/eww/scripts/workspace
deleted file mode 100755
index f202ef1..0000000
--- a/extensions/eww/scripts/workspace
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-workspaces() {
-
-ws1="1"
-ws2="2"
-ws3="3"
-ws4="4"
-ws5="5"
-ws6="6"
-
-# Unoccupied
-un="0"
-
-# check if Occupied
-o1=$(bspc query -D -d .occupied --names | grep "$ws1" )
-o2=$(bspc query -D -d .occupied --names | grep "$ws2" )
-o3=$(bspc query -D -d .occupied --names | grep "$ws3" )
-o4=$(bspc query -D -d .occupied --names | grep "$ws4" )
-o5=$(bspc query -D -d .occupied --names | grep "$ws5" )
-o6=$(bspc query -D -d .occupied --names | grep "$ws6" )
-
-# check if Focused
-f1=$(bspc query -D -d focused --names | grep "$ws1" )
-f2=$(bspc query -D -d focused --names | grep "$ws2" )
-f3=$(bspc query -D -d focused --names | grep "$ws3" )
-f4=$(bspc query -D -d focused --names | grep "$ws4" )
-f5=$(bspc query -D -d focused --names | grep "$ws5" )
-f6=$(bspc query -D -d focused --names | grep "$ws6" )
-
-ic_1=""
-ic_2=""
-ic_3=""
-ic_4=""
-ic_5=""
-ic_6=""
-if [ $f1 ]; then
-    ic_1=""
-elif [ $f2 ]; then
-    ic_2=""
-elif [ $f3 ]; then
-    ic_3=""
-elif [ $f4 ]; then
-    ic_4=""
-elif [ $f5 ]; then
-    ic_5=""
-elif [ $f6 ]; then
-    ic_6=""
-fi
-
-echo 	"(box	:class \"works\"	:orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"bspc desktop -f $ws1\"	:class	\"$un$o1$f1\"	\"$ic_1\") (button :onclick \"bspc desktop -f $ws2\"	:class \"$un$o2$f2\"	 \"$ic_2\") (button :onclick \"bspc desktop -f $ws3\"	:class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"bspc desktop -f $ws4\"	:class \"$un$o4$f4\"	\"$ic_4\") (button :onclick \"bspc desktop -f $ws5\"	:class \"$un$o5$f5\" \"$ic_5\")  (button :onclick \"bspc desktop -f $ws6\"	:class \"$un$o6$f6\" \"$ic_6\"))"
-
-}
-workspaces
-bspc subscribe desktop node_transfer | while read -r _ ; do
-workspaces
-done
diff --git a/extensions/hyprpaper/wallpaper.png b/extensions/hyprpaper/wallpaper.png
new file mode 100644
index 0000000..e758376
--- /dev/null
+++ b/extensions/hyprpaper/wallpaper.png
Binary files differ