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
diff --git a/flake.lock b/flake.lock
index dd74618..212e8b9 100755
--- a/flake.lock
+++ b/flake.lock
@@ -367,6 +367,22 @@
         "type": "github"
       }
     },
+    "nixpkgs-unstable": {
+      "locked": {
+        "lastModified": 1707546158,
+        "narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nixpkgs_2": {
       "locked": {
         "lastModified": 1706191920,
@@ -439,7 +455,8 @@
         "hyprland": "hyprland",
         "lanzaboote": "lanzaboote",
         "nix-vscode-extensions": "nix-vscode-extensions",
-        "nixpkgs": "nixpkgs_3"
+        "nixpkgs": "nixpkgs_3",
+        "nixpkgs-unstable": "nixpkgs-unstable"
       }
     },
     "rust-overlay": {
diff --git a/flake.nix b/flake.nix
index 2ba0c23..efccbad 100755
--- a/flake.nix
+++ b/flake.nix
@@ -3,6 +3,7 @@
 
   inputs = {
     nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
+    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 
     nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
     nix-vscode-extensions.inputs.nixpkgs.follows = "nixpkgs";
diff --git a/modules/codedPC/eww.nix b/modules/codedPC/eww.nix
index edbdf3e..b8b658d 100644
--- a/modules/codedPC/eww.nix
+++ b/modules/codedPC/eww.nix
@@ -1,6 +1,7 @@
-{ flakeRoot, ... }: {
+{ flakeRoot, pkgs, ... }: {
   home-manager.users.coded.programs.eww = {
     enable = true;
+    package = pkgs.eww-wayland;
     configDir = "${flakeRoot}/extensions/eww";
   };
 }
diff --git a/modules/codedPC/hyprland.nix b/modules/codedPC/hyprland.nix
new file mode 100644
index 0000000..a24e691
--- /dev/null
+++ b/modules/codedPC/hyprland.nix
@@ -0,0 +1,104 @@
+{ pkgs, inputs, flakeRoot, system, ... }: {
+
+  programs.hyprland.enable = true;
+
+  home-manager.users.coded = {
+    home.packages = [ pkgs.hyprpicker ];
+
+    wayland.windowManager.hyprland = {
+      enable = true;
+
+      xwayland.enable = true;
+      systemd.enable = true;
+
+      plugins = [
+        
+      ];
+
+      settings = let
+        mod = "SUPER";
+        terminal = "kitty";
+        menu = "anyrun";
+        reloadWallpaper = "${inputs.nixpkgs-unstable.legacyPackages.${system}.hyprpaper}/bin/hyprpaper";
+      in {
+        exec-once = "${reloadWallpaper}";
+
+        general = {
+          gaps_in = 5;
+          gaps_out = 20;
+
+          border_size = 2;
+          "col.active_border" = "rgba(71AEF5EE) rgba(F2D478EE) 45deg";
+          "col.inactive_border" = "rgba(C4C4C4EE)";
+
+          layout = "dwindle";
+        };
+
+        decoration = {
+          rounding = 10;
+
+          drop_shadow = true;
+          shadow_range = 4;
+          shadow_render_power = 3;
+          "col.shadow" = "rgba(1a1a1aee)";
+        };
+
+        input = {
+          kb_layout = "us";
+          numlock_by_default = true;
+        };
+
+        monitor = [
+          "DP-1,1920x1080@165,0x0,1"
+          "DP-2,1920x1080@165,1920x0,1"
+          "HDMI-A-1,1920x1080@60,960x-1080,1"
+          ",preferred,auto,1"
+        ];
+
+        xwayland = {
+          force_zero_scaling = true;
+        };
+
+        master = {
+          new_is_master = true;
+        };
+
+        bind = [
+          "${mod}, Q, killactive"
+          "${mod}, SPACE, togglefloating"
+          "${mod}, RETURN, exec, ${terminal}"
+          "${mod}, down, movefocus, d"
+          "${mod}, up, movefocus, u"
+          "${mod}, right, movefocus, r"
+          "${mod}, left, movefocus, l"
+
+          "${mod} SHIFT, R, exec, ${reloadWallpaper}"
+
+          "ALT, SPACE, exec, ${menu}"
+        ] ++ (
+          builtins.concatLists (builtins.genList (
+              x: let
+                ws = let
+                  c = (x + 1) / 10;
+                in
+                  builtins.toString (x + 1 - (c * 10));
+              in [
+                "${mod}, ${ws}, workspace, ${toString (x + 1)}"
+                "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+              ]
+            )
+            10)
+        );
+
+        bindm = [
+          "${mod}, mouse:272, movewindow"
+          "${mod}, mouse:273, resizewindow"
+        ];
+
+        misc = {
+          force_default_wallpaper = 0;
+        };
+      };
+    };
+  };
+}
diff --git a/modules/codedPC/hyprpaper.nix b/modules/codedPC/hyprpaper.nix
new file mode 100644
index 0000000..8a09def
--- /dev/null
+++ b/modules/codedPC/hyprpaper.nix
@@ -0,0 +1,18 @@
+{ inputs, flakeRoot, system, ... }: let
+  wallpaper = "${flakeRoot}/extensions/hyprpaper/wallpaper.png";
+in {
+  home-manager.users.coded.home = {
+    packages = [
+      inputs.nixpkgs-unstable.legacyPackages.${system}.hyprpaper
+    ];
+
+    file.".config/hypr/hyprpaper.conf".text = ''
+      preload = ${wallpaper}
+
+      wallpaper=,${wallpaper}
+
+      splash = true
+      splash_offset = -0.5
+    '';
+  };
+}
diff --git a/modules/codedPC/opengl.nix b/modules/codedPC/opengl.nix
new file mode 100644
index 0000000..55a5ea4
--- /dev/null
+++ b/modules/codedPC/opengl.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+  hardware.opengl = {
+    enable = true;
+    driSupport = true;
+    driSupport32Bit = true;
+    extraPackages = [
+      pkgs.vaapiVdpau
+    ];
+  };
+}
diff --git a/modules/codedPC/video.nix b/modules/codedPC/video.nix
deleted file mode 100644
index bc5cffb..0000000
--- a/modules/codedPC/video.nix
+++ /dev/null
@@ -1,122 +0,0 @@
-{ pkgs, inputs, ... }: {
-
-  programs.hyprland.enable = true;
-
-  home-manager.users.coded = {
-    home.packages = [ pkgs.hyprpicker ];
-
-    wayland.windowManager.hyprland = {
-      enable = true;
-
-      xwayland.enable = true;
-      systemd.enable = true;
-
-      plugins = [
-        
-      ];
-
-
-      settings = {
-        "$mainMod" = "SUPER";
-        "$terminal" = "kitty";
-        "$menu" = "anyrun";
-
-        general = {
-          gaps_in = 5;
-          gaps_out = 20;
-
-          border_size = 2;
-          "col.active_border" = "rgba(71AEF5EE) rgba(F2D478EE) 45deg";
-          "col.inactive_border" = "rgba(C4C4C4EE)";
-
-          layout = "dwindle";
-        };
-
-        decoration = {
-          rounding = 10;
-
-          drop_shadow = true;
-          shadow_range = 4;
-          shadow_render_power = 3;
-          "col.shadow" = "rgba(1a1a1aee)";
-        };
-
-        input = {
-          kb_layout = "us";
-          numlock_by_default = true;
-        };
-
-        monitor = [
-          "DP-1,1920x1080@165,0x0,1"
-          "DP-2,1920x1080@165,1920x0,1"
-          "HDMI-A-1,1920x1080@60,960x-1080,1"
-          ",preferred,auto,1"
-        ];
-
-        xwayland = {
-          force_zero_scaling = true;
-        };
-
-        master = {
-          new_is_master = true;
-        };
-
-        bind = [
-          "$mainMod, Q, killactive"
-          "$mainMod, SPACE, togglefloating"
-          "$mainMod, RETURN, exec, $terminal"
-          "$mainMod, down, movefocus, d"
-          "$mainMod, up, movefocus, u"
-          "$mainMod, right, movefocus, r"
-          "$mainMod, left, movefocus, l"
-
-          "ALT, SPACE, exec, $menu"
-        ] ++ (
-          builtins.concatLists (builtins.genList (
-              x: let
-                ws = let
-                  c = (x + 1) / 10;
-                in
-                  builtins.toString (x + 1 - (c * 10));
-              in [
-                "$mainMod, ${ws}, workspace, ${toString (x + 1)}"
-                "$mainMod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
-              ]
-            )
-            10)
-        );
-
-        bindm = [
-          "$mainMod, mouse:272, movewindow"
-          "$mainMod, mouse:273, resizewindow"
-        ];
-      };
-    };
-  };
-
-  # services.xserver.enable = true;
-  # services.xserver.videoDrivers = [ "amdgpu" ];
-
-  # services.xserver.displayManager.sddm.enable = true;
-  # services.xserver.desktopManager.plasma5.enable = true;
-
-  # hardware.opengl.driSupport = true;
-  # # For 32 bit applications
-  # hardware.opengl.driSupport32Bit = true;
-
-  # programs.dconf.enable = true;
-
-  # services.xserver = {
-  #   layout = "us";
-  #   xkbVariant = "";
-  # };
-
-  hardware.opengl = {
-    enable = true;
-    driSupport = true;
-    driSupport32Bit = true;
-    extraPackages = [
-      pkgs.vaapiVdpau
-    ];
-  };
-}
