diff --git a/arch/hypr/.config/colors.conf b/arch/hypr/.config/colors.conf
new file mode 100644
index 0000000..508dcc1
--- /dev/null
+++ b/arch/hypr/.config/colors.conf
@@ -0,0 +1,100 @@
+
+$background = rgba(1a110fff)
+
+$error = rgba(ffb4abff)
+
+$error_container = rgba(93000aff)
+
+$inverse_on_surface = rgba(392e2bff)
+
+$inverse_primary = rgba(8f4c35ff)
+
+$inverse_surface = rgba(f1dfdaff)
+
+$on_background = rgba(f1dfdaff)
+
+$on_error = rgba(690005ff)
+
+$on_error_container = rgba(ffdad6ff)
+
+$on_primary = rgba(55200cff)
+
+$on_primary_container = rgba(ffdbd0ff)
+
+$on_primary_fixed = rgba(390c00ff)
+
+$on_primary_fixed_variant = rgba(723520ff)
+
+$on_secondary = rgba(442a21ff)
+
+$on_secondary_container = rgba(ffdbd0ff)
+
+$on_secondary_fixed = rgba(2c160eff)
+
+$on_secondary_fixed_variant = rgba(5d4036ff)
+
+$on_surface = rgba(f1dfdaff)
+
+$on_surface_variant = rgba(d8c2bbff)
+
+$on_tertiary = rgba(3a3005ff)
+
+$on_tertiary_container = rgba(f3e2a7ff)
+
+$on_tertiary_fixed = rgba(221b00ff)
+
+$on_tertiary_fixed_variant = rgba(51461aff)
+
+$outline = rgba(a08d87ff)
+
+$outline_variant = rgba(53433fff)
+
+$primary = rgba(ffb59dff)
+
+$primary_container = rgba(723520ff)
+
+$primary_fixed = rgba(ffdbd0ff)
+
+$primary_fixed_dim = rgba(ffb59dff)
+
+$scrim = rgba(000000ff)
+
+$secondary = rgba(e7bdb0ff)
+
+$secondary_container = rgba(5d4036ff)
+
+$secondary_fixed = rgba(ffdbd0ff)
+
+$secondary_fixed_dim = rgba(e7bdb0ff)
+
+$shadow = rgba(000000ff)
+
+$source_color = rgba(f96732ff)
+
+$surface = rgba(1a110fff)
+
+$surface_bright = rgba(423733ff)
+
+$surface_container = rgba(271d1bff)
+
+$surface_container_high = rgba(322825ff)
+
+$surface_container_highest = rgba(3d322fff)
+
+$surface_container_low = rgba(231917ff)
+
+$surface_container_lowest = rgba(140c0aff)
+
+$surface_dim = rgba(1a110fff)
+
+$surface_tint = rgba(ffb59dff)
+
+$surface_variant = rgba(53433fff)
+
+$tertiary = rgba(d7c68dff)
+
+$tertiary_container = rgba(51461aff)
+
+$tertiary_fixed = rgba(f3e2a7ff)
+
+$tertiary_fixed_dim = rgba(d7c68dff)
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/animation.conf b/arch/hypr/.config/conf/animation.conf
new file mode 100644
index 0000000..a210389
--- /dev/null
+++ b/arch/hypr/.config/conf/animation.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/animations/default.conf
diff --git a/arch/hypr/.config/conf/animations/animations-classic.conf b/arch/hypr/.config/conf/animations/animations-classic.conf
new file mode 100644
index 0000000..4c33b0b
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-classic.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# Animations
+# name "Classic"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
diff --git a/arch/hypr/.config/conf/animations/animations-dynamic.conf b/arch/hypr/.config/conf/animations/animations-dynamic.conf
new file mode 100644
index 0000000..d703dd3
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-dynamic.conf
@@ -0,0 +1,19 @@
+# -----------------------------------------------------
+# Animations
+# name "Dynamic"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = wind, 0.05, 0.9, 0.1, 1.05
+ bezier = winIn, 0.1, 1.1, 0.1, 1.1
+ bezier = winOut, 0.3, -0.3, 0, 1
+ bezier = liner, 1, 1, 1, 1
+ animation = windows, 1, 6, wind, slide
+ animation = windowsIn, 1, 6, winIn, slide
+ animation = windowsOut, 1, 5, winOut, slide
+ animation = windowsMove, 1, 5, wind, slide
+ animation = border, 1, 1, liner
+ animation = borderangle, 1, 30, liner, loop
+ animation = fade, 1, 10, default
+ animation = workspaces, 1, 5, wind
+}
diff --git a/arch/hypr/.config/conf/animations/animations-end4.conf b/arch/hypr/.config/conf/animations/animations-end4.conf
new file mode 100644
index 0000000..4147d90
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-end4.conf
@@ -0,0 +1,39 @@
+
+# name "End-4"
+# credit https://github.com/end-4/dots-hyprland
+
+animations {
+ enabled = true
+ # Animation curves
+
+ bezier = linear, 0, 0, 1, 1
+ bezier = md3_standard, 0.2, 0, 0, 1
+ bezier = md3_decel, 0.05, 0.7, 0.1, 1
+ bezier = md3_accel, 0.3, 0, 0.8, 0.15
+ bezier = overshot, 0.05, 0.9, 0.1, 1.1
+ bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
+ bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
+ bezier = menu_decel, 0.1, 1, 0, 1
+ bezier = menu_accel, 0.38, 0.04, 1, 0.07
+ bezier = easeInOutCirc, 0.85, 0, 0.15, 1
+ bezier = easeOutCirc, 0, 0.55, 0.45, 1
+ bezier = easeOutExpo, 0.16, 1, 0.3, 1
+ bezier = softAcDecel, 0.26, 0.26, 0.15, 1
+ bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
+ # Animation configs
+ animation = windows, 1, 3, md3_decel, popin 60%
+ animation = windowsIn, 1, 3, md3_decel, popin 60%
+ animation = windowsOut, 1, 3, md3_accel, popin 60%
+ animation = border, 1, 10, default
+ animation = fade, 1, 3, md3_decel
+ # animation = layers, 1, 2, md3_decel, slide
+ animation = layersIn, 1, 3, menu_decel, slide
+ animation = layersOut, 1, 1.6, menu_accel
+ animation = fadeLayersIn, 1, 2, menu_decel
+ animation = fadeLayersOut, 1, 4.5, menu_accel
+ animation = workspaces, 1, 7, menu_decel, slide
+ # animation = workspaces, 1, 2.5, softAcDecel, slide
+ # animation = workspaces, 1, 7, menu_decel, slidefade 15%
+ # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
+ animation = specialWorkspace, 1, 3, md3_decel, slidevert
+}
diff --git a/arch/hypr/.config/conf/animations/animations-fast.conf b/arch/hypr/.config/conf/animations/animations-fast.conf
new file mode 100644
index 0000000..4eecc45
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-fast.conf
@@ -0,0 +1,23 @@
+# -----------------------------------------------------
+# Animations
+# name "Fast"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = linear, 0, 0, 1, 1
+ bezier = md3_standard, 0.2, 0, 0, 1
+ bezier = md3_decel, 0.05, 0.7, 0.1, 1
+ bezier = md3_accel, 0.3, 0, 0.8, 0.15
+ bezier = overshot, 0.05, 0.9, 0.1, 1.1
+ bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
+ bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
+ bezier = fluent_decel, 0.1, 1, 0, 1
+ bezier = easeInOutCirc, 0.85, 0, 0.15, 1
+ bezier = easeOutCirc, 0, 0.55, 0.45, 1
+ bezier = easeOutExpo, 0.16, 1, 0.3, 1
+ animation = windows, 1, 3, md3_decel, popin 60%
+ animation = border, 1, 10, default
+ animation = fade, 1, 2.5, md3_decel
+ animation = workspaces, 1, 3.5, easeOutExpo, slide
+ animation = specialWorkspace, 1, 3, md3_decel, slidevert
+}
diff --git a/arch/hypr/.config/conf/animations/animations-high.conf b/arch/hypr/.config/conf/animations/animations-high.conf
new file mode 100644
index 0000000..e403420
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-high.conf
@@ -0,0 +1,19 @@
+# -----------------------------------------------------
+# Animations
+# name: "High"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = wind, 0.05, 0.9, 0.1, 1.05
+ bezier = winIn, 0.1, 1.1, 0.1, 1.1
+ bezier = winOut, 0.3, -0.3, 0, 1
+ bezier = liner, 1, 1, 1, 1
+ animation = windows, 1, 6, wind, slide
+ animation = windowsIn, 1, 6, winIn, slide
+ animation = windowsOut, 1, 5, winOut, slide
+ animation = windowsMove, 1, 5, wind, slide
+ animation = border, 1, 1, liner
+ animation = borderangle, 1, 30, liner, loop
+ animation = fade, 1, 10, default
+ animation = workspaces, 1, 5, wind
+}
diff --git a/arch/hypr/.config/conf/animations/animations-moving.conf b/arch/hypr/.config/conf/animations/animations-moving.conf
new file mode 100644
index 0000000..20ec046
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-moving.conf
@@ -0,0 +1,18 @@
+# -----------------------------------------------------
+# Animations
+# name "Moving"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = overshot, 0.05, 0.9, 0.1, 1.05
+ bezier = smoothOut, 0.5, 0, 0.99, 0.99
+ bezier = smoothIn, 0.5, -0.5, 0.68, 1.5
+ animation = windows, 1, 5, overshot, slide
+ animation = windowsOut, 1, 3, smoothOut
+ animation = windowsIn, 1, 3, smoothOut
+ animation = windowsMove, 1, 4, smoothIn, slide
+ animation = border, 1, 5, default
+ animation = fade, 1, 5, smoothIn
+ animation = fadeDim, 1, 5, smoothIn
+ animation = workspaces, 1, 6, default
+}
diff --git a/arch/hypr/.config/conf/animations/animations-smooth.conf b/arch/hypr/.config/conf/animations/animations-smooth.conf
new file mode 100644
index 0000000..cb867ba
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/animations-smooth.conf
@@ -0,0 +1,20 @@
+# -----------------------------------------------------
+# Animations
+# name "Smooth"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = overshot, 0.05, 0.9, 0.1, 1.05
+ bezier = easeOutExpo, 0.16, 1, 0.3, 1
+ bezier = easeOutBack, 0.34, 1.56, 0.64, 1
+ bezier = easeInBack, 0.36, 0, 0.66, -0.56
+ bezier = easeInOutBack, 0.68, -0.6, 0.32, 1.6
+ animation = windows, 1, 3, overshot, slide
+ animation = windowsOut, 1, 2011, easeOutExpo
+ animation = windowsIn, 1, 7, easeOutBack
+ animation = windowsMove, 1, 6, easeInOutBack, slide
+ animation = border, 1, 5, default
+ animation = fade, 1, 5, easeOutBack
+ animation = fadeDim, 1, 5, easeOutBack
+ animation = workspaces, 1, 10, easeOutExpo
+}
diff --git a/arch/hypr/.config/conf/animations/default.conf b/arch/hypr/.config/conf/animations/default.conf
new file mode 100644
index 0000000..4147d90
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/default.conf
@@ -0,0 +1,39 @@
+
+# name "End-4"
+# credit https://github.com/end-4/dots-hyprland
+
+animations {
+ enabled = true
+ # Animation curves
+
+ bezier = linear, 0, 0, 1, 1
+ bezier = md3_standard, 0.2, 0, 0, 1
+ bezier = md3_decel, 0.05, 0.7, 0.1, 1
+ bezier = md3_accel, 0.3, 0, 0.8, 0.15
+ bezier = overshot, 0.05, 0.9, 0.1, 1.1
+ bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
+ bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
+ bezier = menu_decel, 0.1, 1, 0, 1
+ bezier = menu_accel, 0.38, 0.04, 1, 0.07
+ bezier = easeInOutCirc, 0.85, 0, 0.15, 1
+ bezier = easeOutCirc, 0, 0.55, 0.45, 1
+ bezier = easeOutExpo, 0.16, 1, 0.3, 1
+ bezier = softAcDecel, 0.26, 0.26, 0.15, 1
+ bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
+ # Animation configs
+ animation = windows, 1, 3, md3_decel, popin 60%
+ animation = windowsIn, 1, 3, md3_decel, popin 60%
+ animation = windowsOut, 1, 3, md3_accel, popin 60%
+ animation = border, 1, 10, default
+ animation = fade, 1, 3, md3_decel
+ # animation = layers, 1, 2, md3_decel, slide
+ animation = layersIn, 1, 3, menu_decel, slide
+ animation = layersOut, 1, 1.6, menu_accel
+ animation = fadeLayersIn, 1, 2, menu_decel
+ animation = fadeLayersOut, 1, 4.5, menu_accel
+ animation = workspaces, 1, 7, menu_decel, slide
+ # animation = workspaces, 1, 2.5, softAcDecel, slide
+ # animation = workspaces, 1, 7, menu_decel, slidefade 15%
+ # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
+ animation = specialWorkspace, 1, 3, md3_decel, slidevert
+}
diff --git a/arch/hypr/.config/conf/animations/disabled.conf b/arch/hypr/.config/conf/animations/disabled.conf
new file mode 100644
index 0000000..204b96f
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/disabled.conf
@@ -0,0 +1,7 @@
+# -----------------------------------------------------
+# Animations
+# name "Default"
+# -----------------------------------------------------
+animations {
+ enabled = false
+}
diff --git a/arch/hypr/.config/conf/animations/standard.conf b/arch/hypr/.config/conf/animations/standard.conf
new file mode 100644
index 0000000..cd01434
--- /dev/null
+++ b/arch/hypr/.config/conf/animations/standard.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# Animations
+# name "Default"
+# -----------------------------------------------------
+animations {
+ enabled = true
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
diff --git a/arch/hypr/.config/conf/autostart.conf b/arch/hypr/.config/conf/autostart.conf
new file mode 100644
index 0000000..9ae6937
--- /dev/null
+++ b/arch/hypr/.config/conf/autostart.conf
@@ -0,0 +1,35 @@
+# ___ __ __ __
+# / _ |__ __/ /____ ___ / /____ _____/ /_
+# / __ / // / __/ _ \(_- __/ _ `/ __/ __/
+# /_/ |_\_,_/\__/\___/___/\__/\_,_/_/ \__/
+#
+
+# Start Listeners
+exec-once=~/.config/ml4w/listeners.sh --startall
+
+# Start Polkit
+exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
+# Load Wallpaper
+exec-once = ~/.config/hypr/scripts/wallpaper-restore.sh
+
+# Load Notification Daemon
+exec-once = swaync
+
+# Load GTK settings
+exec-once = ~/.config/hypr/scripts/gtk.sh
+
+# Using hypridle to start hyprlock
+exec-once = hypridle
+
+# Load cliphist history
+exec-once = wl-paste --watch cliphist store
+
+# Autostart ML4W App
+exec-once = ~/.config/ml4w/scripts/ml4w-autostart.sh
+
+# Start autostart cleanup
+exec-once = ~/.config/hypr/scripts/cleanup.sh
+
+# Load configuration from ML4W Hyprland Settings App
+exec = ~/.config/com.ml4w.hyprlandsettings/hyprctl.sh
diff --git a/arch/hypr/.config/conf/cursor.conf b/arch/hypr/.config/conf/cursor.conf
new file mode 100644
index 0000000..b3b3493
--- /dev/null
+++ b/arch/hypr/.config/conf/cursor.conf
@@ -0,0 +1 @@
+exec-once = hyprctl setcursor Bibata-Modern-Ice 24
diff --git a/arch/hypr/.config/conf/custom.conf b/arch/hypr/.config/conf/custom.conf
new file mode 100644
index 0000000..fa24d8e
--- /dev/null
+++ b/arch/hypr/.config/conf/custom.conf
@@ -0,0 +1,27 @@
+# Add your additional Hyprland configurations here
+#
+# This is an additional key binding
+# bind = $mainMod CTRL, up, workspace, empty
+#
+# Example for xwayland
+# xwayland {
+# force_zero_scaling = true
+# }
+
+# qt5ct environment variable
+# env = QT_QPA_PLATFORMTHEME,qt5ct
+
+# SDL version
+env = SDL_VIDEODRIVER,wayland
+# env = SDL_VIDEODRIVER,x11
+
+# No Hardware Cursor
+# cursor {
+# no_hardware_cursors = false
+# }
+
+# Blur for waybar
+#layerrule = blur, waybar
+
+# Uncomment in case you have issues with screensharing
+# exec-once = ~/.config/hypr/scripts/xdg.sh
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/decoration.conf b/arch/hypr/.config/conf/decoration.conf
new file mode 100644
index 0000000..14ad8bb
--- /dev/null
+++ b/arch/hypr/.config/conf/decoration.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/decorations/default.conf
diff --git a/arch/hypr/.config/conf/decorations/blur.conf b/arch/hypr/.config/conf/decorations/blur.conf
new file mode 100644
index 0000000..b295bff
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/blur.conf
@@ -0,0 +1,29 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding All Blur No Shadows"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.9
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 32
+ render_power = 2
+ color = rgba(00000050)
+ }
+}
+
+layerrule = blur, waybar
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/decorations/default.conf b/arch/hypr/.config/conf/decorations/default.conf
new file mode 100644
index 0000000..30f48fc
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/default.conf
@@ -0,0 +1,27 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding All Blur No Shadows"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.9
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 4
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 32
+ render_power = 2
+ color = rgba(00000050)
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/gamemode.conf b/arch/hypr/.config/conf/decorations/gamemode.conf
new file mode 100644
index 0000000..570a110
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/gamemode.conf
@@ -0,0 +1,19 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding All Blur No Shadows"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 0
+ active_opacity = 1.0
+ inactive_opacity = 0.9
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = false
+ }
+
+ shadow {
+ enabled = false
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/no-blur.conf b/arch/hypr/.config/conf/decorations/no-blur.conf
new file mode 100644
index 0000000..8bceac4
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/no-blur.conf
@@ -0,0 +1,22 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Default"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.9
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = false
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/no-rounding-more-blur.conf b/arch/hypr/.config/conf/decorations/no-rounding-more-blur.conf
new file mode 100644
index 0000000..e4c5a13
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/no-rounding-more-blur.conf
@@ -0,0 +1,27 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "No Rounding More Blur"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 0
+ active_opacity = 1.0
+ inactive_opacity = 0.6
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 12
+ passes = 6
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/no-rounding.conf b/arch/hypr/.config/conf/decorations/no-rounding.conf
new file mode 100644
index 0000000..9951042
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/no-rounding.conf
@@ -0,0 +1,27 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "No Rounding"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 0
+ active_opacity = 1.0
+ inactive_opacity = 0.8
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/rounding-all-blur-no-shadows.conf b/arch/hypr/.config/conf/decorations/rounding-all-blur-no-shadows.conf
new file mode 100644
index 0000000..ab17727
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/rounding-all-blur-no-shadows.conf
@@ -0,0 +1,29 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding All Blur No Shadows"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 0.9
+ inactive_opacity = 0.6
+ fullscreen_opacity = 0.9
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = false
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
+
+layerrule = blur, waybar
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/decorations/rounding-all-blur.conf b/arch/hypr/.config/conf/decorations/rounding-all-blur.conf
new file mode 100644
index 0000000..23033f2
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/rounding-all-blur.conf
@@ -0,0 +1,29 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding All Blur"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 0.9
+ inactive_opacity = 0.6
+ fullscreen_opacity = 0.9
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
+
+layerrule = blur, waybar
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/decorations/rounding-more-blur.conf b/arch/hypr/.config/conf/decorations/rounding-more-blur.conf
new file mode 100644
index 0000000..125b4fd
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/rounding-more-blur.conf
@@ -0,0 +1,27 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Rounding More Blur"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.6
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 12
+ passes = 6
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/arch/hypr/.config/conf/decorations/rounding.conf b/arch/hypr/.config/conf/decorations/rounding.conf
new file mode 100644
index 0000000..ee92a72
--- /dev/null
+++ b/arch/hypr/.config/conf/decorations/rounding.conf
@@ -0,0 +1,27 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Default"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.8
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/arch/hypr/.config/conf/environment.conf b/arch/hypr/.config/conf/environment.conf
new file mode 100644
index 0000000..44e6f6d
--- /dev/null
+++ b/arch/hypr/.config/conf/environment.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/environments/default.conf
diff --git a/arch/hypr/.config/conf/environments/default.conf b/arch/hypr/.config/conf/environments/default.conf
new file mode 100644
index 0000000..944077b
--- /dev/null
+++ b/arch/hypr/.config/conf/environments/default.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Environment Variables
+# name: "Default"
+# -----------------------------------------------------
+
+# Default Settings in ml4w.conf
diff --git a/arch/hypr/.config/conf/environments/kvm.conf b/arch/hypr/.config/conf/environments/kvm.conf
new file mode 100644
index 0000000..88884e7
--- /dev/null
+++ b/arch/hypr/.config/conf/environments/kvm.conf
@@ -0,0 +1,10 @@
+# -----------------------------------------------------
+# Environment Variables
+# name: "KVM"
+# -----------------------------------------------------
+
+# Default Settings in ml4w.conf
+
+# KVM Environment
+env = WLR_RENDERER_ALLOW_SOFTWARE, 1
+# env = LIBGL_ALWAYS_SOFTWARE,1
diff --git a/arch/hypr/.config/conf/environments/nvidia.conf b/arch/hypr/.config/conf/environments/nvidia.conf
new file mode 100644
index 0000000..23016ea
--- /dev/null
+++ b/arch/hypr/.config/conf/environments/nvidia.conf
@@ -0,0 +1,29 @@
+# -----------------------------------------------------
+# Environment Variables
+# name: "Nvidia"
+# -----------------------------------------------------
+
+# Default Settings in ml4w.conf
+
+# NVIDIA https://wiki.hyprland.org/Nvidia/
+env = GBM_BACKEND,nvidia-drm
+env = LIBVA_DRIVER_NAME,nvidia
+env = SDL_VIDEODRIVER,wayland
+# env = WLR_DRM_NO_ATOMIC,1
+# env = __GL_VRR_ALLOWED,1
+env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+env = __NV_PRIME_RENDER_OFFLOAD,1
+env = __VK_LAYER_NV_optimus,NVIDIA_only
+
+# FOR VM and POSSIBLY NVIDIA
+env = WLR_NO_HARDWARE_CURSORS,1 # On hyprland >v0.41, now configured on variable cursor section
+env = WLR_RENDERER_ALLOW_SOFTWARE,1
+
+# nvidia firefox (for hardware acceleration on FF)?
+# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
+env = MOZ_DISABLE_RDD_SANDBOX,1
+env = EGL_PLATFORM,wayland
+
+cursor {
+ no_hardware_cursors = true
+}
diff --git a/arch/hypr/.config/conf/keybinding.conf b/arch/hypr/.config/conf/keybinding.conf
new file mode 100644
index 0000000..bdce99c
--- /dev/null
+++ b/arch/hypr/.config/conf/keybinding.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/keybindings/default.conf
diff --git a/arch/hypr/.config/conf/keybindings/default.conf b/arch/hypr/.config/conf/keybindings/default.conf
new file mode 100644
index 0000000..b1c8cbf
--- /dev/null
+++ b/arch/hypr/.config/conf/keybindings/default.conf
@@ -0,0 +1,138 @@
+# -----------------------------------------------------
+# Key bindings
+# name: "Default"
+# -----------------------------------------------------
+
+# SUPER KEY
+$mainMod = SUPER
+$HYPRSCRIPTS = ~/.config/hypr/scripts
+$SCRIPTS = ~/.config/ml4w/scripts
+
+# Applications
+bind = $mainMod, RETURN, exec, ~/.config/ml4w/settings/terminal.sh # Open the terminal
+bind = $mainMod, B, exec, ~/.config/ml4w/settings/browser.sh # Open the browser
+bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Open the filemanager
+bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
+bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator
+
+# Display
+bind = $mainMod SHIFT, mouse_down, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') + 0.5}") # Increase display zoom
+bind = $mainMod SHIFT, mouse_up, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') - 0.5}") # Decrease display zoom
+bind = $mainMod SHIFT, Z, exec, hyprctl keyword cursor:zoom_factor 1 # Reset display zoom
+
+# Windows
+bind = $mainMod, Q, killactive # Kill active window
+bind = $mainMod SHIFT, Q, exec, hyprctl activewindow | grep pid | tr -d 'pid:' | xargs kill # Quit active window and all open instances
+bind = $mainMod, F, fullscreen, 0 # Set active window to fullscreen
+bind = $mainMod, M, fullscreen, 1 # Maximize Window
+bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
+bind = $mainMod SHIFT, T, workspaceopt, allfloat # Toggle all windows into floating mode
+bind = $mainMod, J, togglesplit # Toggle split
+bind = $mainMod, left, movefocus, l # Move focus left
+bind = $mainMod, right, movefocus, r # Move focus right
+bind = $mainMod, up, movefocus, u # Move focus up
+bind = $mainMod, down, movefocus, d # Move focus down
+bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
+bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
+bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
+bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
+bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
+bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
+bind = $mainMod, G, togglegroup # Toggle window group
+bind = $mainMod, K, swapsplit # Swapsplit
+bind = $mainMod ALT, left, swapwindow, l # Swap tiled window left
+bind = $mainMod ALT, right, swapwindow, r # Swap tiled window right
+bind = $mainMod ALT, up, swapwindow, u # Swap tiled window up
+bind = $mainMod ALT, down, swapwindow, d # Swap tiled window down
+binde = ALT,Tab,cyclenext # Cycle between windows
+binde = ALT,Tab,bringactivetotop # Bring active window to the top
+
+# Actions
+bind = $mainMod CTRL, R, exec, hyprctl reload # Reload Hyprland configuration
+bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
+bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
+bind = $mainMod ALT, F, exec, $HYPRSCRIPTS/screenshot.sh --instant # Take an instant full-screen screenshot
+bind = $mainMod ALT, S, exec, $HYPRSCRIPTS/screenshot.sh --instant-area # Take an instant area screenshot
+bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh # Start wlogout
+bind = $mainMod SHIFT, W, exec, ~/.config/hypr/scripts/waypaper.sh --random # Change the wallpaper
+bind = $mainMod CTRL, W, exec, ~/.config/hypr/scripts/waypaper.sh # Open wallpaper selector
+bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
+bind = $mainMod CTRL, RETURN, exec, ~/.config/hypr/scripts/launcher.sh # Open application launcher
+bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings
+bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar
+bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
+bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
+bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
+bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
+bind = $mainMod CTRL, S, exec, flatpak run com.ml4w.settings # Open ML4W Dotfiles Settings app
+bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
+bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Launch Hyprshade
+bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Start wlogout
+bind = CTRL, Tab, exec, ~/.config/ml4w/scripts/focus.sh # Open Select Window Menu
+bind = CTRL ALT, T, exec, ~/.config/ml4w/themes/themes.sh # Open Select Window Menu
+
+# Sidepad
+bind = $mainMod CTRL, right, exec, ~/.config/ml4w/scripts/sidepad.sh # Open Sidepad
+bind = $mainMod CTRL, left, exec, ~/.config/ml4w/scripts/sidepad.sh --hide # Close Sidepad
+bind = $mainMod, S, exec, ~/.config/ml4w/scripts/sidepad.sh --init # Init Sidepad
+bind = $mainMod SHIFT, S, exec, ~/.config/ml4w/scripts/sidepad.sh --select # Select Sidepad
+
+# Workspaces
+bind = $mainMod, 1, workspace, 1 # Open workspace 1
+bind = $mainMod, 2, workspace, 2 # Open workspace 2
+bind = $mainMod, 3, workspace, 3 # Open workspace 3
+bind = $mainMod, 4, workspace, 4 # Open workspace 4
+bind = $mainMod, 5, workspace, 5 # Open workspace 5
+bind = $mainMod, 6, workspace, 6 # Open workspace 6
+bind = $mainMod, 7, workspace, 7 # Open workspace 7
+bind = $mainMod, 8, workspace, 8 # Open workspace 8
+bind = $mainMod, 9, workspace, 9 # Open workspace 9
+bind = $mainMod, 0, workspace, 10 # Open workspace 10
+
+bind = $mainMod SHIFT, 1, movetoworkspace, 1 # Move active window to workspace 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2 # Move active window to workspace 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3 # Move active window to workspace 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4 # Move active window to workspace 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5 # Move active window to workspace 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6 # Move active window to workspace 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7 # Move active window to workspace 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8 # Move active window to workspace 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9 # Move active window to workspace 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move active window to workspace 10
+
+bind = $mainMod, Tab, workspace, m+1 # Open next workspace
+bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace
+
+bind = $mainMod CTRL, 1, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
+bind = $mainMod CTRL, 2, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
+bind = $mainMod CTRL, 3, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
+bind = $mainMod CTRL, 4, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
+bind = $mainMod CTRL, 5, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
+bind = $mainMod CTRL, 6, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
+bind = $mainMod CTRL, 7, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
+bind = $mainMod CTRL, 8, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
+bind = $mainMod CTRL, 9, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
+bind = $mainMod CTRL, 0, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10
+
+bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
+bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
+bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
+
+# Fn keys
+bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
+bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
+bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # Increase volume by 5% (max 100% limit also added hold to raise volume)
+bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Reduce volume by 5% (min 0% limit also added hold to lower volume)
+bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle # Toggle mute
+bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
+bind = , XF86AudioPause, exec, playerctl pause # Audio pause
+bind = , XF86AudioNext, exec, playerctl next # Audio next
+bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
+bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
+bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
+bind = , XF86Lock, exec, hyprlock # Open screenlock
+bind = , XF86Tools, exec, flatpak run com.ml4w.settings # Open ML4W Dotfiles Settings app
+
+bind = , code:238, exec, brightnessctl -d smc::kbd_backlight s +10
+bind = , code:237, exec, brightnessctl -d smc::kbd_backlight s 10-
+
diff --git a/arch/hypr/.config/conf/keybindings/fr.conf b/arch/hypr/.config/conf/keybindings/fr.conf
new file mode 100644
index 0000000..818efd1
--- /dev/null
+++ b/arch/hypr/.config/conf/keybindings/fr.conf
@@ -0,0 +1,135 @@
+# -----------------------------------------------------
+# Key bindings
+# name: "Default"
+# -----------------------------------------------------
+
+# SUPER KEY
+$mainMod = SUPER
+$HYPRSCRIPTS = ~/.config/hypr/scripts
+$SCRIPTS = ~/.config/ml4w/scripts
+
+# Applications
+bind = $mainMod, RETURN, exec, ~/.config/ml4w/settings/terminal.sh # Open the terminal
+bind = $mainMod, B, exec, ~/.config/ml4w/settings/browser.sh # Open the browser
+bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Open the filemanager
+bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
+bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator
+
+# Display
+bind = $mainMod SHIFT, mouse_down, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') + 0.5}") # Increase display zoom
+bind = $mainMod SHIFT, mouse_up, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') - 0.5}") # Decrease display zoom
+bind = $mainMod SHIFT, Z, exec, hyprctl keyword cursor:zoom_factor 1 # Reset display zoom
+
+# Windows
+bind = $mainMod, Q, killactive # Kill active window
+bind = $mainMod SHIFT, Q, exec, hyprctl activewindow | grep pid | tr -d 'pid:' | xargs kill # Quit active window and all open instances
+bind = $mainMod, F, fullscreen, 0 # Set active window to fullscreen
+bind = $mainMod, M, fullscreen, 1 # Maximize Window
+bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
+bind = $mainMod SHIFT, T, workspaceopt, allfloat # Toggle all windows into floating mode
+bind = $mainMod, J, togglesplit # Toggle split
+bind = $mainMod, left, movefocus, l # Move focus left
+bind = $mainMod, right, movefocus, r # Move focus right
+bind = $mainMod, up, movefocus, u # Move focus up
+bind = $mainMod, down, movefocus, d # Move focus down
+bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
+bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
+bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
+bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
+bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
+bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
+bind = $mainMod, G, togglegroup # Toggle window group
+bind = $mainMod, K, swapsplit # Swapsplit
+bind = $mainMod ALT, left, swapwindow, l # Swap tiled window left
+bind = $mainMod ALT, right, swapwindow, r # Swap tiled window right
+bind = $mainMod ALT, up, swapwindow, u # Swap tiled window up
+bind = $mainMod ALT, down, swapwindow, d # Swap tiled window down
+binde = ALT,Tab,cyclenext # Cycle between windows
+binde = ALT,Tab,bringactivetotop # Bring active window to the top
+
+# Actions
+bind = $mainMod CTRL, R, exec, hyprctl reload # Reload Hyprland configuration
+bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
+bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
+bind = $mainMod SHIFT, S, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
+bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh # Start wlogout
+bind = $mainMod SHIFT, W, exec, waypaper --random # Change the wallpaper
+bind = $mainMod CTRL, W, exec, waypaper # Open wallpaper selector
+bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
+bind = $mainMod CTRL, RETURN, exec, ~/.config/hypr/scripts/launcher.sh # Open application launcher
+bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings
+bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar
+bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
+bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
+bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
+bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
+bind = $mainMod CTRL, S, exec, flatpak run com.ml4w.settings # Open ML4W Dotfiles Settings app
+bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
+bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Start wlogout
+bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Launch Hyprshade
+bind = CTRL, Tab, exec, ~/.config/ml4w/scripts/focus.sh # Open Select Window Menu
+
+# Sidepad
+bind = $mainMod CTRL, right, exec, ~/.config/ml4w/scripts/sidepad.sh # Open Sidepad
+bind = $mainMod CTRL, left, exec, ~/.config/ml4w/scripts/sidepad.sh --hide # Close Sidepad
+bind = $mainMod, S, exec, ~/.config/ml4w/scripts/sidepad.sh --init # Init Sidepad
+bind = $mainMod SHIFT, S, exec, ~/.config/ml4w/scripts/sidepad.sh --select # Select Sidepad
+
+# Workspaces
+bind = $mainMod, ampersand, workspace, 1 # Open workspace 1
+bind = $mainMod, eacute, workspace, 2 # Open workspace 2
+bind = $mainMod, quotedbl, workspace, 3 # Open workspace 3
+bind = $mainMod, apostrophe, workspace, 4 # Open workspace 4
+bind = $mainMod, parenleft, workspace, 5 # Open workspace 5
+bind = $mainMod, minus, workspace, 6 # Open workspace 6
+bind = $mainMod, egrave, workspace, 7 # Open workspace 7
+bind = $mainMod, underscore, workspace, 8 # Open workspace 8
+bind = $mainMod, ccedilla, workspace, 9 # Open workspace 9
+bind = $mainMod, agrave, workspace, 10 # Open workspace 10
+
+bind = $mainMod SHIFT, ampersand, movetoworkspace, 1 # Move active window to workspace 1
+bind = $mainMod SHIFT, eacute, movetoworkspace, 2 # Move active window to workspace 2
+bind = $mainMod SHIFT, quotedbl, movetoworkspace, 3 # Move active window to workspace 3
+bind = $mainMod SHIFT, apostrophe, movetoworkspace, 4 # Move active window to workspace 4
+bind = $mainMod SHIFT, parenleft, movetoworkspace, 5 # Move active window to workspace 5
+bind = $mainMod SHIFT, minus, movetoworkspace, 6 # Move active window to workspace 6
+bind = $mainMod SHIFT, egrave, movetoworkspace, 7 # Move active window to workspace 7
+bind = $mainMod SHIFT, underscore, movetoworkspace, 8 # Move active window to workspace 8
+bind = $mainMod SHIFT, ccedilla, movetoworkspace, 9 # Move active window to workspace 9
+bind = $mainMod SHIFT, agrave, movetoworkspace, 10 # Move active window to workspace 10
+
+bind = $mainMod, Tab, workspace, m+1 # Open next workspace
+bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace
+
+bind = $mainMod CTRL, ampersand, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
+bind = $mainMod CTRL, eacute, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
+bind = $mainMod CTRL, quotedbl, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
+bind = $mainMod CTRL, apostrophe, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
+bind = $mainMod CTRL, parenleft, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
+bind = $mainMod CTRL, minus, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
+bind = $mainMod CTRL, egrave, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
+bind = $mainMod CTRL, underscore, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
+bind = $mainMod CTRL, ccedilla, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
+bind = $mainMod CTRL, agrave, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10
+
+bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
+bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
+bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
+
+# Fn keys
+bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
+bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
+bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
+bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
+bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Toggle mute
+bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
+bind = , XF86AudioPause, exec, playerctl pause # Audio pause
+bind = , XF86AudioNext, exec, playerctl next # Audio next
+bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
+bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
+bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
+bind = , XF86Lock, exec, hyprlock # Open screenlock
+bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
+
+bind = , code:238, exec, brightnessctl -d smc::kbd_backlight s +10
+bind = , code:237, exec, brightnessctl -d smc::kbd_backlight s 10-
diff --git a/arch/hypr/.config/conf/keyboard.conf b/arch/hypr/.config/conf/keyboard.conf
new file mode 100644
index 0000000..d88028d
--- /dev/null
+++ b/arch/hypr/.config/conf/keyboard.conf
@@ -0,0 +1,20 @@
+# -----------------------------------------------------
+# Keyboard Layout
+# https://wiki.hyprland.org/Configuring/Variables/#input
+# -----------------------------------------------------
+
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ numlock_by_default = true
+ follow_mouse = 1
+ mouse_refocus=false
+ touchpad {
+ natural_scroll = false
+ scroll_factor = 1.0 # Touchpad scroll factor
+ disable_while_typing = false
+ }
+ sensitivity = 0 # Pointer speed: -1.0 - 1.0, 0 means no modification.
+}
diff --git a/arch/hypr/.config/conf/layout.conf b/arch/hypr/.config/conf/layout.conf
new file mode 100644
index 0000000..25474ce
--- /dev/null
+++ b/arch/hypr/.config/conf/layout.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/layouts/default.conf
diff --git a/arch/hypr/.config/conf/layouts/default.conf b/arch/hypr/.config/conf/layouts/default.conf
new file mode 100644
index 0000000..a6af3d2
--- /dev/null
+++ b/arch/hypr/.config/conf/layouts/default.conf
@@ -0,0 +1,19 @@
+# -----------------------------------------------------
+# Layouts
+# -----------------------------------------------------
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ # Commented out due to compatibility reasons
+ # new_status = master
+}
+
+binds {
+ workspace_back_and_forth = false
+ allow_workspace_cycles = true
+ pass_mouse_when_bound = false
+}
diff --git a/arch/hypr/.config/conf/layouts/laptop.conf b/arch/hypr/.config/conf/layouts/laptop.conf
new file mode 100644
index 0000000..7b6f9f1
--- /dev/null
+++ b/arch/hypr/.config/conf/layouts/laptop.conf
@@ -0,0 +1,21 @@
+# -----------------------------------------------------
+# Layouts
+# -----------------------------------------------------
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ # Commented out due to compatibility reasons
+ # new_status = master
+}
+
+gesture = 3, horizontal, workspace
+
+binds {
+ workspace_back_and_forth = false
+ allow_workspace_cycles = true
+ pass_mouse_when_bound = false
+}
diff --git a/arch/hypr/.config/conf/misc.conf b/arch/hypr/.config/conf/misc.conf
new file mode 100644
index 0000000..c8fa891
--- /dev/null
+++ b/arch/hypr/.config/conf/misc.conf
@@ -0,0 +1,9 @@
+# -----------------------------------------------------
+# Misc settings
+# -----------------------------------------------------
+
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ initial_workspace_tracking = 1
+}
diff --git a/arch/hypr/.config/conf/ml4w.conf b/arch/hypr/.config/conf/ml4w.conf
new file mode 100644
index 0000000..9ee8da2
--- /dev/null
+++ b/arch/hypr/.config/conf/ml4w.conf
@@ -0,0 +1,149 @@
+# __ _____ _____ __ _____ ___
+# / |/ / / / / / | /| / / / ___/__ ___ / _/
+# / /|_/ / /_/_ _/ |/ |/ / / /__/ _ \/ _ \/ _/
+# /_/ /_/____//_/ |__/|__/ \___/\___/_//_/_/
+#
+
+# Pavucontrol floating
+windowrule = float,class:(.*org.pulseaudio.pavucontrol.*)
+windowrule = size 700 600,class:(.*org.pulseaudio.pavucontrol.*)
+windowrule = center,class:(.*org.pulseaudio.pavucontrol.*)
+windowrule = pin,class:(.*org.pulseaudio.pavucontrol.*)
+
+# OpenAI ChatGPT floating
+windowrule = float,title:(ChatGPT.*)
+windowrule = float,title:(.*chat.openai.com.*)
+windowrule = size 500 50%,title:(.*chat.openai.com.*)
+windowrule = move 20 70,title:(.*chat.openai.com.*)
+
+# Waypaper
+windowrule = float,class:(.*waypaper.*)
+windowrule = size 900 700,class:(.*waypaper.*)
+windowrule = center,class:(.*waypaper.*)
+windowrule = pin,class:(.*waypaper.*)
+
+# SwayNC
+layerrule = blur, swaync-control-center
+layerrule = blur, swaync-notification-window
+layerrule = ignorezero, swaync-control-center
+layerrule = ignorezero, swaync-notification-window
+layerrule = ignorealpha 0.5, swaync-control-center
+layerrule = ignorealpha 0.5, swaync-notification-window
+
+# Newelle
+windowrule = float,class:(io.github.qwersyk.Newelle)
+windowrule = size 1000 700,class:(io.github.qwersyk.Newelle)
+windowrule = center,class:(io.github.qwersyk.Newelle)
+windowrule = pin,class:(io.github.qwersyk.Newelle)
+
+# ML4W Calendar floating
+windowrule = float,class:(com.ml4w.calendar)
+windowrule = move 100%-w-16 66,class:(com.ml4w.calendar)
+windowrule = pin, class:(com.ml4w.calendar)
+windowrule = size 400 400,class:(com.ml4w.calendar)
+
+# ML4W Sidebar floating
+windowrule = float,class:(com.ml4w.sidebar)
+windowrule = move 100%-w-16 66,class:(com.ml4w.sidebar)
+windowrule = pin, class:(com.ml4w.sidebar)
+windowrule = size 400 660,class:(com.ml4w.sidebar)
+
+# ML4W Welcome App floating
+windowrule = float,class:(com.ml4w.welcome)
+windowrule = size 700 600,class:(com.ml4w.welcome)
+windowrule = center,class:(com.ml4w.welcome)
+windowrule = pin,class:(com.ml4w.welcome)
+
+# ML4W Settings App floating
+windowrule = float,class:(com.ml4w.settings)
+windowrule = size 800 600,class:(com.ml4w.settings)
+windowrule = move 10% 20%,class:(com.ml4w.settings)
+
+# Blueman Manager
+windowrule = float,class:(blueman-manager)
+windowrule = size 800 600,class:(blueman-manager)
+windowrule = center,class:(blueman-manager)
+
+# nwg-look
+windowrule = float,class:(nwg-look)
+windowrule = size 700 600,class:(nwg-look)
+windowrule = move 10% 20%,class:(nwg-look)
+windowrule = pin,class:(nwg-look)
+
+# nwg-displays
+windowrule = float,class:(nwg-displays)
+windowrule = size 900 600,class:(nwg-displays)
+windowrule = move 10% 20%,class:(nwg-displays)
+windowrule = pin,class:(nwg-displays)
+
+# System Mission Center
+windowrule = float, class:(io.missioncenter.MissionCenter)
+windowrule = pin, class:(io.missioncenter.MissionCenter)
+windowrule = center, class:(io.missioncenter.MissionCenter)
+windowrule = size 900 600, class:(io.missioncenter.MissionCenter)
+
+# System Mission Center Preference Window
+windowrule = float, class:(missioncenter), title:^(Preferences)$
+windowrule = pin, class:(missioncenter), title:^(Preferences)$
+windowrule = center, class:(missioncenter), title:^(Preferences)$
+
+# Gnome Calculator
+windowrule = float,class:(org.gnome.Calculator)
+windowrule = size 700 600,class:(org.gnome.Calculator)
+windowrule = center,class:(org.gnome.Calculator)
+
+# Hyprland Share Picker
+windowrule = float, class:(hyprland-share-picker)
+windowrule = pin, class:(hyprland-share-picker)
+windowrule = center, title:class:(hyprland-share-picker)
+windowrule = size 600 400,class:(hyprland-share-picker)
+
+# General floating
+windowrule = float,class:(dotfiles-floating)
+windowrule = size 1000 700,class:(dotfiles-floating)
+windowrule = center,class:(dotfiles-floating)
+
+# Dotfiles Sidepad
+windowrule = float,class:(dotfiles-sidepad)
+windowrule = size 1000 700,class:(dotfiles-sidepad)
+windowrule = center,class:(dotfiles-sidepad)
+windowrule = pin,class:(dotfiles-sidepad)
+
+# Float and center file pickers
+windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
+windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
+
+# XDG Desktop Portal
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+
+# QT
+env = QT_QPA_PLATFORM,wayland;xcb
+env = QT_QPA_PLATFORMTHEME,qt6ct
+env = QT_QPA_PLATFORMTHEME,qt5ct
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+
+# GDK
+env = GDK_SCALE,1
+
+# Toolkit Backend
+env = GDK_BACKEND,wayland,x11,*
+env = CLUTTER_BACKEND,wayland
+
+# Mozilla
+env = MOZ_ENABLE_WAYLAND,1
+
+# Set the cursor size for xcursor
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+# Ozone
+env = OZONE_PLATFORM,wayland
+env = ELECTRON_OZONE_PLATFORM_HINT,wayland
+
+# XWayland
+xwayland {
+ force_zero_scaling = true
+}
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/monitor.conf b/arch/hypr/.config/conf/monitor.conf
new file mode 100644
index 0000000..5b3f3c8
--- /dev/null
+++ b/arch/hypr/.config/conf/monitor.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/monitors/default.conf
diff --git a/arch/hypr/.config/conf/monitors/1366x768.conf b/arch/hypr/.config/conf/monitors/1366x768.conf
new file mode 100644
index 0000000..eb9f6f0
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/1366x768.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1366x768"
+# -----------------------------------------------------
+
+monitor=,1366x768,auto,1
diff --git a/arch/hypr/.config/conf/monitors/1440x1080.conf b/arch/hypr/.config/conf/monitors/1440x1080.conf
new file mode 100644
index 0000000..5d25ce3
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/1440x1080.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1440x1080"
+# -----------------------------------------------------
+
+monitor=,1440x1080,auto,1
diff --git a/arch/hypr/.config/conf/monitors/1600x900.conf b/arch/hypr/.config/conf/monitors/1600x900.conf
new file mode 100644
index 0000000..69c7eb8
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/1600x900.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1600x900"
+# -----------------------------------------------------
+
+monitor=,1600x900,auto,1
diff --git a/arch/hypr/.config/conf/monitors/1920x1080.conf b/arch/hypr/.config/conf/monitors/1920x1080.conf
new file mode 100644
index 0000000..548279f
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/1920x1080.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1920x1080"
+# -----------------------------------------------------
+
+monitor=,1920x1080,auto,1
diff --git a/arch/hypr/.config/conf/monitors/1920x1200.conf b/arch/hypr/.config/conf/monitors/1920x1200.conf
new file mode 100644
index 0000000..8ed321c
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/1920x1200.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1920x1200"
+# -----------------------------------------------------
+
+monitor=,1920x1200,auto,1
diff --git a/arch/hypr/.config/conf/monitors/2560x1440.conf b/arch/hypr/.config/conf/monitors/2560x1440.conf
new file mode 100644
index 0000000..b4c9526
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/2560x1440.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440"
+# -----------------------------------------------------
+
+monitor=,2560x1440,auto,1
diff --git a/arch/hypr/.config/conf/monitors/2560x1440@120.conf b/arch/hypr/.config/conf/monitors/2560x1440@120.conf
new file mode 100644
index 0000000..e218ed0
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/2560x1440@120.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440@120"
+# -----------------------------------------------------
+
+monitor=,2560x1440@120,auto,1
diff --git a/arch/hypr/.config/conf/monitors/2560x1440@120x125.conf b/arch/hypr/.config/conf/monitors/2560x1440@120x125.conf
new file mode 100644
index 0000000..0fa5ddb
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/2560x1440@120x125.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440@120x125"
+# -----------------------------------------------------
+
+monitor=,2560x1440@120,auto,1.25
diff --git a/arch/hypr/.config/conf/monitors/3440x1440.conf b/arch/hypr/.config/conf/monitors/3440x1440.conf
new file mode 100644
index 0000000..4eb9c8c
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/3440x1440.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "3440x1440"
+# -----------------------------------------------------
+
+monitor=,3440x1440,auto,1
diff --git a/arch/hypr/.config/conf/monitors/default.conf b/arch/hypr/.config/conf/monitors/default.conf
new file mode 100644
index 0000000..5c16fb7
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/default.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "Default"
+# -----------------------------------------------------
+
+monitor=,preferred,auto,1
diff --git a/arch/hypr/.config/conf/monitors/highres.conf b/arch/hypr/.config/conf/monitors/highres.conf
new file mode 100644
index 0000000..68cc043
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/highres.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "Highres"
+# -----------------------------------------------------
+
+monitor=,highres,auto,1
diff --git a/arch/hypr/.config/conf/monitors/nwg-displays.conf b/arch/hypr/.config/conf/monitors/nwg-displays.conf
new file mode 100644
index 0000000..953cdff
--- /dev/null
+++ b/arch/hypr/.config/conf/monitors/nwg-displays.conf
@@ -0,0 +1,2 @@
+source = ~/.config/hypr/monitors.conf
+source = ~/.config/hypr/workspaces.conf
\ No newline at end of file
diff --git a/arch/hypr/.config/conf/restorevariations.sh b/arch/hypr/.config/conf/restorevariations.sh
new file mode 100755
index 0000000..d6f0abf
--- /dev/null
+++ b/arch/hypr/.config/conf/restorevariations.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+clear
+cat <<"EOF"
+ ___ __
+ / _ \___ ___ / /____ _______
+ / , _/ -_|_- __/ _ \/ __/ -_)
+/_/|_|\__/___/\__/\___/_/ \__/
+
+EOF
+echo "You can restore to the default ML4W variations."
+echo "PLEASE NOTE: You can reactivate to a customized variation or selection in the settings script."
+echo "Your customized variation will not be overwritten or deleted."
+
+if gum confirm "Do you want to restore all variations to the default values?"; then
+ echo
+
+ echo "source = ~/.config/hypr/conf/keybindings/default.conf" >~/.config/hypr/conf/keybinding.conf
+ echo "Hyprland keybinding.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/environments/default.conf" >~/.config/hypr/conf/environment.conf
+ echo "Hyprland environment.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/windowrules/default.conf" >~/.config/hypr/conf/windowrule.conf
+ echo "Hyprland windowrule.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/animations/default.conf" >~/.config/hypr/conf/animation.conf
+ echo "Hyprland animation.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/decorations/default.conf" >~/.config/hypr/conf/decoration.conf
+ echo "Hyprland decoration.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/windows/default.conf" >~/.config/hypr/conf/window.conf
+ echo "Hyprland window.conf restored!"
+
+ echo "source = ~/.config/hypr/conf/monitors/default.conf" >~/.config/hypr/conf/monitor.conf
+ echo "Hyprland monitor.conf restored!"
+
+ echo
+ echo ":: Restore done!"
+else
+ echo ":: Restore canceled!"
+ exit
+fi
diff --git a/arch/hypr/.config/conf/window.conf b/arch/hypr/.config/conf/window.conf
new file mode 100644
index 0000000..8269a9e
--- /dev/null
+++ b/arch/hypr/.config/conf/window.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/windows/default.conf
diff --git a/arch/hypr/.config/conf/windowrule.conf b/arch/hypr/.config/conf/windowrule.conf
new file mode 100644
index 0000000..a03ddb4
--- /dev/null
+++ b/arch/hypr/.config/conf/windowrule.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/windowrules/default.conf
diff --git a/arch/hypr/.config/conf/windowrules/default.conf b/arch/hypr/.config/conf/windowrules/default.conf
new file mode 100644
index 0000000..4cb3f91
--- /dev/null
+++ b/arch/hypr/.config/conf/windowrules/default.conf
@@ -0,0 +1,29 @@
+# -----------------------------------------------------
+# Window rules
+# -----------------------------------------------------
+
+windowrule = tile, title:^(Microsoft-edge)$
+windowrule = tile, title:^(Brave-browser)$
+windowrule = tile, title:^(Chromium)$
+windowrule = float, title:^(pavucontrol)$
+windowrule = float, title:^(blueman-manager)$
+windowrule = float, title:^(nm-connection-editor)$
+windowrule = float, title:^(qalculate-gtk)$
+
+# Browser Picture in Picture
+windowrule = float, title:^(Picture-in-Picture)$
+windowrule = pin, title:^(Picture-in-Picture)$
+windowrule = move 69.5% 4%, title:^(Picture-in-Picture)$
+
+# idleinhibit
+windowrule = idleinhibit fullscreen,class:([window]) # Available modes: none, always, focus, fullscreen
+
+#xwayland related rules
+# when moving objects in resolve a large border is produced
+# This rule prevents that and serves as a template for any problematic xwayland apps
+windowrule = noblur, class:^(\bresolve\b)$, xwayland:1
+# This is a general rule for xwayland apps but can have other consequences
+# for one user it impacted EMACs so it's disabled by default
+# It's here as a reference or for quick triage of xwayland ap
+#windowrule = noblur, xwayland:1
+
diff --git a/arch/hypr/.config/conf/windows/border-1-reverse.conf b/arch/hypr/.config/conf/windows/border-1-reverse.conf
new file mode 100644
index 0000000..7f734c9
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-1-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 1
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-1.conf b/arch/hypr/.config/conf/windows/border-1.conf
new file mode 100644
index 0000000..c860c6e
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-1.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 1
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-2-reverse.conf b/arch/hypr/.config/conf/windows/border-2-reverse.conf
new file mode 100644
index 0000000..7027be0
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-2-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 2
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-2.conf b/arch/hypr/.config/conf/windows/border-2.conf
new file mode 100644
index 0000000..f74425f
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-2.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 2
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-3-reverse.conf b/arch/hypr/.config/conf/windows/border-3-reverse.conf
new file mode 100644
index 0000000..28596ec
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-3-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 3
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-3.conf b/arch/hypr/.config/conf/windows/border-3.conf
new file mode 100644
index 0000000..74ccafb
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-3.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 3
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-4-reverse.conf b/arch/hypr/.config/conf/windows/border-4-reverse.conf
new file mode 100644
index 0000000..da6ba30
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-4-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 4
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/border-4.conf b/arch/hypr/.config/conf/windows/border-4.conf
new file mode 100644
index 0000000..fa3ee25
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/border-4.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 4
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/default.conf b/arch/hypr/.config/conf/windows/default.conf
new file mode 100644
index 0000000..f74425f
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/default.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 2
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/gamemode.conf b/arch/hypr/.config/conf/windows/gamemode.conf
new file mode 100644
index 0000000..c7074af
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/gamemode.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 0
+ gaps_out = 0
+ border_size = 1
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/glass.conf b/arch/hypr/.config/conf/windows/glass.conf
new file mode 100644
index 0000000..262fb7a
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/glass.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 1
+ col.active_border = $color8 $on_primary 90deg
+ col.inactive_border = $on_primary
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/no-border-more-gaps.conf b/arch/hypr/.config/conf/windows/no-border-more-gaps.conf
new file mode 100644
index 0000000..d5240ac
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/no-border-more-gaps.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "No Border More Gaps"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 20
+ gaps_out = 40
+ border_size = 0
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/windows/no-border.conf b/arch/hypr/.config/conf/windows/no-border.conf
new file mode 100644
index 0000000..65bd05c
--- /dev/null
+++ b/arch/hypr/.config/conf/windows/no-border.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "No Border"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 20
+ border_size = 0
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/arch/hypr/.config/conf/workspace.conf b/arch/hypr/.config/conf/workspace.conf
new file mode 100644
index 0000000..821f5ed
--- /dev/null
+++ b/arch/hypr/.config/conf/workspace.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/workspaces/default.conf
diff --git a/arch/hypr/.config/conf/workspaces/default.conf b/arch/hypr/.config/conf/workspaces/default.conf
new file mode 100644
index 0000000..32d04ac
--- /dev/null
+++ b/arch/hypr/.config/conf/workspaces/default.conf
@@ -0,0 +1,23 @@
+# -----------------------------------------------------
+# General workspace rules
+# name: "Default"
+# -----------------------------------------------------
+
+# Assigning workspace to a certain monitor. Below are just examples
+# workspace = 1, monitor:eDP-1
+# workspace = 2, monitor:eDP-1
+# workspace = 3, monitor:eDP-1
+# workspace = 4, monitor:eDP-1
+# workspace = 5, monitor:DP-2
+# workspace = 6, monitor:DP-2
+# workspace = 7, monitor:DP-2
+# workspace = 8, monitor:DP-2
+
+# Example rules (from https://wiki.hyprland.org/Configuring/Workspace-Rules/)
+# workspace = 3, rounding:false, decorate:false
+# workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1
+# workspace = 8,bordersize:8
+# workspace = name:Hello, monitor:DP-1, default:true
+# workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true
+# workspace = 5, on-created-empty:[float] firefox
+# workspace = special:scratchpad, on-created-empty:foot
diff --git a/arch/hypr/.config/effects/wallpaper/blackwhite b/arch/hypr/.config/effects/wallpaper/blackwhite
new file mode 100644
index 0000000..0f985b3
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blackwhite
@@ -0,0 +1 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blackwhite-blur b/arch/hypr/.config/effects/wallpaper/blackwhite-blur
new file mode 100644
index 0000000..85a5a51
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blackwhite-blur
@@ -0,0 +1,2 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
+magick $used_wallpaper -blur "50x30" $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blackwhite-brightness40 b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness40
new file mode 100644
index 0000000..97cafb6
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness40
@@ -0,0 +1,2 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
+magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blackwhite-brightness60 b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness60
new file mode 100644
index 0000000..3dc7788
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness60
@@ -0,0 +1,2 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
+magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blackwhite-brightness80 b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness80
new file mode 100644
index 0000000..67bb0ce
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blackwhite-brightness80
@@ -0,0 +1,2 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
+magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blur1 b/arch/hypr/.config/effects/wallpaper/blur1
new file mode 100644
index 0000000..f401e1a
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blur1
@@ -0,0 +1 @@
+magick $wallpaper -blur "50x30" $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blur1-brightness40 b/arch/hypr/.config/effects/wallpaper/blur1-brightness40
new file mode 100644
index 0000000..d79704a
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blur1-brightness40
@@ -0,0 +1,2 @@
+magick $wallpaper -blur "50x30" $used_wallpaper
+magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blur1-brightness60 b/arch/hypr/.config/effects/wallpaper/blur1-brightness60
new file mode 100644
index 0000000..73028f6
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blur1-brightness60
@@ -0,0 +1,2 @@
+magick $wallpaper -blur "50x30" $used_wallpaper
+magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blur1-brightness80 b/arch/hypr/.config/effects/wallpaper/blur1-brightness80
new file mode 100644
index 0000000..c1984aa
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blur1-brightness80
@@ -0,0 +1,2 @@
+magick $wallpaper -blur "50x30" $used_wallpaper
+magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/blur2 b/arch/hypr/.config/effects/wallpaper/blur2
new file mode 100644
index 0000000..cb13630
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/blur2
@@ -0,0 +1 @@
+magick $wallpaper -blur "10x30" $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/negate b/arch/hypr/.config/effects/wallpaper/negate
new file mode 100644
index 0000000..971c7aa
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/negate
@@ -0,0 +1 @@
+magick $wallpaper -negate $used_wallpaper
\ No newline at end of file
diff --git a/arch/hypr/.config/effects/wallpaper/negate-brightness40 b/arch/hypr/.config/effects/wallpaper/negate-brightness40
new file mode 100644
index 0000000..f6b8bd8
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/negate-brightness40
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
diff --git a/arch/hypr/.config/effects/wallpaper/negate-brightness60 b/arch/hypr/.config/effects/wallpaper/negate-brightness60
new file mode 100644
index 0000000..bf45cd6
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/negate-brightness60
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
diff --git a/arch/hypr/.config/effects/wallpaper/negate-brightness80 b/arch/hypr/.config/effects/wallpaper/negate-brightness80
new file mode 100644
index 0000000..2d342c1
--- /dev/null
+++ b/arch/hypr/.config/effects/wallpaper/negate-brightness80
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
diff --git a/arch/hypr/.config/hypridle.conf b/arch/hypr/.config/hypridle.conf
new file mode 100644
index 0000000..1381f66
--- /dev/null
+++ b/arch/hypr/.config/hypridle.conf
@@ -0,0 +1,35 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ # lock_cmd = playerctl --all-players pause && pidof hyprlock || hyprlock # pause all system audio and avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+listener {
+ timeout = 480 # 8min.
+ on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
+# listener {
+# timeout = 480 # 8min.
+# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
+# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
+# }
+
+listener {
+ timeout = 600 # 10min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 660 # 11min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
+}
+
+listener {
+ timeout = 1800 # 30min
+ on-timeout = systemctl suspend # suspend pc
+}
\ No newline at end of file
diff --git a/arch/hypr/.config/hyprland.conf b/arch/hypr/.config/hyprland.conf
new file mode 100644
index 0000000..4e243bd
--- /dev/null
+++ b/arch/hypr/.config/hyprland.conf
@@ -0,0 +1,74 @@
+# _ _ _ _
+# | | | |_ _ _ __ _ __| | __ _ _ __ __| |
+# | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` |
+# | _ | |_| | |_) | | | | (_| | | | | (_| |
+# |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_|
+# |___/|_|
+#
+# -----------------------------------------------------
+# IMPORTANT: Don't overwrite ML4W configuration.
+# Create your own custom configuration variation instead.
+# https://github.com/mylinuxforwork/dotfiles/wiki/Configuration-Variations
+
+# -----------------------------------------------------
+# Monitor
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/monitor.conf
+
+# -----------------------------------------------------
+# Cursor
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/cursor.conf
+
+# -----------------------------------------------------
+# Environment
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/environment.conf
+
+# -----------------------------------------------------
+# Keyboard
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/keyboard.conf
+
+# -----------------------------------------------------
+# Load color file
+# -----------------------------------------------------
+source = ~/.config/hypr/colors.conf
+$color8 = $primary
+$color11 = $on_surface
+
+# -----------------------------------------------------
+# Autostart
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/autostart.conf
+
+# -----------------------------------------------------
+# Load configuration files
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/window.conf
+source = ~/.config/hypr/conf/decoration.conf
+source = ~/.config/hypr/conf/layout.conf
+source = ~/.config/hypr/conf/workspace.conf
+source = ~/.config/hypr/conf/misc.conf
+source = ~/.config/hypr/conf/keybinding.conf
+source = ~/.config/hypr/conf/windowrule.conf
+
+# -----------------------------------------------------
+# Animation
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/animation.conf
+
+# -----------------------------------------------------
+# Environment for xdg-desktop-portal-hyprland
+# -----------------------------------------------------
+exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+
+# -----------------------------------------------------
+# ML4W Configuration
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/ml4w.conf
+
+# -----------------------------------------------------
+# Custom
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/custom.conf
\ No newline at end of file
diff --git a/arch/hypr/.config/hyprlock.conf b/arch/hypr/.config/hyprlock.conf
new file mode 100644
index 0000000..9fb8a4c
--- /dev/null
+++ b/arch/hypr/.config/hyprlock.conf
@@ -0,0 +1,102 @@
+# _ _ _
+# | |__ _ _ _ __ _ __| | ___ ___| | __
+# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ /
+# | | | | |_| | |_) | | | | (_) | (__| <
+# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\
+# |___/|_|
+#
+
+# Cache Folder
+$ml4w_cache_folder = $HOME/.cache/ml4w/hyprland-dotfiles
+
+# Source colors
+source = colors.conf
+
+general {
+ ignore_empty_input = true
+}
+
+background {
+ monitor =
+ path = $ml4w_cache_folder/blurred_wallpaper.png # only png supported for now
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
+ inner_color = $primary
+ font_color = $on_primary
+ font_family = Fira Semibold
+ outer_color = $on_primary
+ outline_thickness = 3
+ fade_on_empty = true
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = Input Password... # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = 10 # -1 means complete rounding (circle/oval)
+ check_color = $primary
+ fail_color = $error # if authentication failed, changes outer_color and fail message color
+ fail_text = $FAIL ($ATTEMPTS) # can be set to empty
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
+ invert_numlock = false # change color if numlock is off
+ swap_font_color = false # see below
+ position = 0, -20
+ halign = center
+ valign = center
+ shadow_passes = 10
+ shadow_size = 20
+ shadow_color = $shadow
+ shadow_boost = 1.6
+}
+
+label {
+ monitor =
+ #clock
+ text = cmd[update:1000] echo "$TIME"
+ color = #ffffff
+ font_size = 70
+ font_family = Bebas Neue Regular
+ position = -50, 20
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+label {
+ monitor =
+ text = $USER
+ color = #ffffff
+ font_size = 20
+ font_family = Fira Code Regular
+ position = -50, 120
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+image {
+ monitor =
+ path = $ml4w_cache_folder/square_wallpaper.png
+ size = 280 # lesser side if not 1:1 ratio
+ rounding = 40 # negative values mean circle
+ border_size = 4
+ border_color = $primary
+ rotate = 0 # degrees, counter-clockwise
+ reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
+# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
+ position = 0, 200
+ halign = center
+ valign = center
+ shadow_passes = 10
+ shadow_size = 20
+ shadow_color = $shadow
+ shadow_boost = 1.6
+}
\ No newline at end of file
diff --git a/arch/hypr/.config/hyprpaper.conf b/arch/hypr/.config/hyprpaper.conf
new file mode 100644
index 0000000..7456413
--- /dev/null
+++ b/arch/hypr/.config/hyprpaper.conf
@@ -0,0 +1,3 @@
+preload = $HOME/.config/ml4w/assets/blank.png
+wallpaper = ,$HOME/.config/ml4w/assets/blank.png
+splash = false
\ No newline at end of file
diff --git a/arch/hypr/.config/scripts/cleanup.sh b/arch/hypr/.config/scripts/cleanup.sh
new file mode 100755
index 0000000..048626c
--- /dev/null
+++ b/arch/hypr/.config/scripts/cleanup.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+# ____ _
+# / ___| | ___ __ _ _ __ _ _ _ __
+# | | | |/ _ \/ _` | '_ \| | | | '_ \
+# | |___| | __/ (_| | | | | |_| | |_) |
+# \____|_|\___|\__,_|_| |_|\__,_| .__/
+# |_|
+#
+
+# Remove gamemode flag
+if [ -f ~/.cache/gamemode ]; then
+ rm ~/.cache/gamemode
+ echo ":: ~/.cache/gamemode removed"
+fi
diff --git a/arch/hypr/.config/scripts/gamemode.sh b/arch/hypr/.config/scripts/gamemode.sh
new file mode 100755
index 0000000..8828e89
--- /dev/null
+++ b/arch/hypr/.config/scripts/gamemode.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+# __
+# ___ ____ ___ _ ___ __ _ ___ ___/ /__
+# / _ `/ _ `/ ' \/ -_) ' \/ _ \/ _ / -_)
+# \_, /\_,_/_/_/_/\__/_/_/_/\___/\_,_/\__/
+# /___/
+#
+
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+gamemode_monitor="$HOME/.config/hypr/conf/monitors/gamemode.conf"
+
+if [ -f $HOME/.config/ml4w/settings/gamemode-enabled ]; then
+ if [ -f $ml4w_cache_folder/last_monitor.conf ]; then
+ cat $ml4w_cache_folder/last_monitor.conf > $HOME/.config/hypr/conf/monitor.conf
+ rm $ml4w_cache_folder/last_monitor.conf
+ fi
+ if [ -f $ml4w_cache_folder/restart-wpauto ]; then
+ rm $ml4w_cache_folder/restart-wpauto
+ $HOME/.config/hypr/scripts/wallpaper-automation.sh &
+ fi
+ hyprctl reload
+ rm $HOME/.config/ml4w/settings/gamemode-enabled
+ notify-send "Gamemode deactivated" "Animations and blur enabled"
+else
+ if [ -f $gamemode_monitor ]; then
+ cat $HOME/.config/hypr/conf/monitor.conf > $ml4w_cache_folder/last_monitor.conf
+ echo "source = $gamemode_monitor" > $HOME/.config/hypr/conf/monitor.conf
+ fi
+ if [ -f $ml4w_cache_folder/wallpaper-automation ]; then
+ touch $ml4w_cache_folder/restart-wpauto
+ $HOME/.config/hypr/scripts/wallpaper-automation.sh
+ fi
+ hyprctl --batch "\
+ keyword animations:enabled 0;\
+ keyword decoration:shadow:enabled 0;\
+ keyword decoration:blur:enabled 0;\
+ keyword general:gaps_in 0;\
+ keyword general:gaps_out 0;\
+ keyword general:border_size 1;\
+ keyword decoration:active_opacity 1;\
+ keyword decoration:inactive_opacity 1;\
+ keyword decoration:fullscreen_opacity 1;\
+ keyword decoration:rounding 0"
+ touch $HOME/.config/ml4w/settings/gamemode-enabled
+ notify-send "Gamemode activated" "Animations and blur disabled"
+fi
\ No newline at end of file
diff --git a/arch/hypr/.config/scripts/gtk.sh b/arch/hypr/.config/scripts/gtk.sh
new file mode 100755
index 0000000..805a59e
--- /dev/null
+++ b/arch/hypr/.config/scripts/gtk.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+# _____________ __
+# / ___/_ __/ //_/
+# / (_ / / / / ,<
+# \___/ /_/ /_/|_|
+#
+# Source: https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
+
+# Check that settings file exists
+config="$HOME/.config/gtk-3.0/settings.ini"
+if [ ! -f "$config" ]; then exit 1; fi
+
+# Read settings file
+gnome_schema="org.gnome.desktop.interface"
+gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
+icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
+cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
+cursor_size="$(grep 'gtk-cursor-theme-size' "$config" | sed 's/.*\s*=\s*//')"
+font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
+prefer_dark_theme="$(grep 'gtk-application-prefer-dark-theme' "$config" | sed 's/.*\s*=\s*//')"
+terminal=$(cat $HOME/.config/ml4w/settings/terminal.sh)
+
+# Echo value for debugging
+echo "GTK-Theme:" $gtk_theme
+echo "Icon Theme:" $icon_theme
+echo "Cursor Theme:" $cursor_theme
+echo "Cursor Size:" $cursor_size
+if [[ $prefer_dark_theme == "0" || $prefer_dark_theme == "false" ]]; then
+ prefer_dark_theme_value="prefer-light"
+else
+ prefer_dark_theme_value="prefer-dark"
+fi
+echo "Color Theme:" $prefer_dark_theme_value
+echo "Font Name:" $font_name
+echo "Terminal:" $terminal
+
+# Update gsettings
+gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
+gsettings set "$gnome_schema" icon-theme "$icon_theme"
+gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
+gsettings set "$gnome_schema" font-name "$font_name"
+gsettings set "$gnome_schema" color-scheme "$prefer_dark_theme_value"
+
+# Update cursor for Hyprland
+if [ -f ~/.config/hypr/conf/cursor.conf ]; then
+ echo "exec-once = hyprctl setcursor $cursor_theme $cursor_size" >~/.config/hypr/conf/cursor.conf
+ hyprctl setcursor $cursor_theme $cursor_size
+fi
+
+# Update gsettings for open any terminal
+gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal "$terminal"
+gsettings set com.github.stunkymonkey.nautilus-open-any-terminal use-generic-terminal-name "true"
+gsettings set com.github.stunkymonkey.nautilus-open-any-terminal keybindings "t"
\ No newline at end of file
diff --git a/arch/hypr/.config/scripts/hypridle.sh b/arch/hypr/.config/scripts/hypridle.sh
new file mode 100755
index 0000000..346146f
--- /dev/null
+++ b/arch/hypr/.config/scripts/hypridle.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# __ __ _ ____
+# / // /_ _____ ____(_)__/ / /__
+# / _ / // / _ \/ __/ / _ / / -_)
+# /_//_/\_, / .__/_/ /_/\_,_/_/\__/
+# /___/_/
+#
+
+SERVICE="hypridle"
+
+print_status() {
+ if pgrep -x "$SERVICE" >/dev/null ; then
+ echo '{"text": "RUNNING", "class": "active", "tooltip": "Screen locking active\nLeft: Deactivate\nRight: Lock Screen"}'
+ else
+ echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "Screen locking deactivated\nLeft: Activate\nRight: Lock Screen"}'
+ fi
+}
+
+case "$1" in
+ status)
+ # Add a tiny delay to avoid race condition on startup
+ sleep 0.2
+ print_status
+ ;;
+ toggle)
+ if pgrep -x "$SERVICE" >/dev/null ; then
+ killall "$SERVICE"
+ else
+ "$SERVICE" &
+ fi
+ # Give it a moment to start/stop before checking again
+ sleep 0.2
+ print_status
+ ;;
+ *)
+ echo "Usage: $0 {status|toggle}"
+ exit 1
+ ;;
+esac
\ No newline at end of file
diff --git a/arch/hypr/.config/scripts/hyprshade.sh b/arch/hypr/.config/scripts/hyprshade.sh
new file mode 100755
index 0000000..158d3a1
--- /dev/null
+++ b/arch/hypr/.config/scripts/hyprshade.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+# _ _ _ _
+# | | | |_ _ _ __ _ __ ___| |__ __ _ __| | ___
+# | |_| | | | | '_ \| '__/ __| '_ \ / _` |/ _` |/ _ \
+# | _ | |_| | |_) | | \__ \ | | | (_| | (_| | __/
+# |_| |_|\__, | .__/|_| |___/_| |_|\__,_|\__,_|\___|
+# |___/|_|
+#
+
+# Remove legacy shaders folder
+if [ -d $HOME/.config/hypr/shaders ]; then
+ rm -rf $HOME/.config/hypr/shaders
+fi
+
+if [[ "$1" == "rofi" ]]; then
+
+ # Open rofi to select the Hyprshade filter for toggle
+ options="$(hyprshade ls | sed 's/^[ *]*//')\noff"
+
+ # Open rofi
+ choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/config-hyprshade.rasi -i -no-show-icons -l 4 -width 30 -p "Hyprshade")
+ if [ ! -z $choice ]; then
+ echo "hyprshade_filter=\"$choice\"" >~/.config/ml4w/settings/hyprshade.sh
+ if [ "$choice" == "off" ]; then
+ hyprshade off
+ notify-send "Hyprshade deactivated"
+ echo ":: hyprshade turned off"
+ else
+ notify-send "Changing Hyprshade to $choice" "Toggle shader with SUPER+SHIFT+H"
+ fi
+ fi
+
+else
+
+ # Toggle Hyprshade based on the selected filter
+ hyprshade_filter="blue-light-filter-50"
+
+ # Check if hyprshade.sh settings file exists and load
+ if [ -f ~/.config/ml4w/settings/hyprshade.sh ]; then
+ source ~/.config/ml4w/settings/hyprshade.sh
+ fi
+
+ # Toggle Hyprshade
+ if [ "$hyprshade_filter" != "off" ]; then
+ if [ -z $(hyprshade current) ]; then
+ echo ":: hyprshade is not running"
+ hyprshade on $hyprshade_filter
+ notify-send "Hyprshade activated" "with $(hyprshade current)"
+ echo ":: hyprshade started with $(hyprshade current)"
+ else
+ notify-send "Hyprshade deactivated"
+ echo ":: Current hyprshade $(hyprshade current)"
+ echo ":: Switching hyprshade off"
+ hyprshade off
+ fi
+ else
+ hyprshade off
+ echo ":: hyprshade turned off"
+ fi
+
+fi
diff --git a/arch/hypr/.config/scripts/keybindings.sh b/arch/hypr/.config/scripts/keybindings.sh
new file mode 100755
index 0000000..d331ee6
--- /dev/null
+++ b/arch/hypr/.config/scripts/keybindings.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+# __ __ _ ___
+# / /_____ __ __/ / (_)__ ___/ (_)__ ___ ____
+# / '_/ -_) // / _ \/ / _ \/ _ / / _ \/ _ `(_-<
+# /_/\_\\__/\_, /_.__/_/_//_/\_,_/_/_//_/\_, /___/
+# /___/ /___/
+#
+
+# -----------------------------------------------------
+# Get keybindings location based on variation
+# -----------------------------------------------------
+config_file=$(<~/.config/hypr/conf/keybinding.conf)
+config_file=${config_file//source = ~//home/$USER}
+
+# -----------------------------------------------------
+# Load Launcher
+# -----------------------------------------------------
+launcher=$(cat $HOME/.config/ml4w/settings/launcher)
+
+# -----------------------------------------------------
+# Path to keybindings config file
+# -----------------------------------------------------
+echo "Reading from: $config_file"
+
+keybinds=$(awk -F'[=#]' '
+ $1 ~ /^bind/ {
+ # Replace the string "$mainMod" with "SUPER" (for the super key)
+ gsub(/\$mainMod/, "SUPER", $0)
+
+ # Remove "bind" and extra spaces, if any, at the beginning of the line
+ gsub(/^bind[[:space:]]*=+[[:space:]]*/, "", $0)
+
+ # Split the keybinding part (e.g., "Mod1,Return") using a comma
+ split($1, kbarr, ",")
+
+ # Format the keybinding and associated command and prepare for output:
+ # Concatenate the two keybinding keys (e.g., "Mod1" + "Return") and append the command
+ print kbarr[1] " + " kbarr[2] "\r" $2
+ }
+' "$config_file")
+
+sleep 0.2
+
+if [ "$launcher" == "walker" ]; then
+ keybinds=$(echo -n "$keybinds" | tr '\r' ':')
+ $HOME/.config/walker/launch.sh -d -N -H -p "Search Keybinds" <<<"$keybinds"
+else
+ rofi -dmenu -i -markup -eh 2 -replace -p "Keybinds" -config ~/.config/rofi/config-compact.rasi <<<"$keybinds"
+fi
diff --git a/arch/hypr/.config/scripts/launcher.sh b/arch/hypr/.config/scripts/launcher.sh
new file mode 100755
index 0000000..c813c91
--- /dev/null
+++ b/arch/hypr/.config/scripts/launcher.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+# -----------------------------------------------------
+# Load Launcher
+# -----------------------------------------------------
+launcher=$(cat $HOME/.config/ml4w/settings/launcher)
+
+# Use Walker
+_launch_walker() {
+ $HOME/.config/walker/launch.sh --height 500
+}
+
+# Use Rofi
+_launch_rofi() {
+ pkill rofi || rofi -show drun -replace -i
+}
+
+if [ "$launcher" == "walker" ]; then
+ _launch_walker
+else
+ _launch_rofi
+fi
diff --git a/arch/hypr/.config/scripts/load-gamemode.sh b/arch/hypr/.config/scripts/load-gamemode.sh
new file mode 100755
index 0000000..f5410c4
--- /dev/null
+++ b/arch/hypr/.config/scripts/load-gamemode.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+# __
+# ___ ____ ___ _ ___ __ _ ___ ___/ /__
+# / _ `/ _ `/ ' \/ -_) ' \/ _ \/ _ / -_)
+# \_, /\_,_/_/_/_/\__/_/_/_/\___/\_,_/\__/
+# /___/
+#
+
+_loadGameMode() {
+ hyprctl --batch "\
+ keyword animations:enabled 0;\
+ keyword decoration:shadow:enabled 0;\
+ keyword decoration:blur:enabled 0;\
+ keyword general:gaps_in 0;\
+ keyword general:gaps_out 0;\
+ keyword general:border_size 1;\
+ keyword decoration:rounding 0"
+}
+
+if [ -f $HOME/.config/ml4w/settings/gamemode-enabled ]; then
+ _loadGameMode
+ notify-send "Gamemode activated" "Animations and blur disabled"
+fi
\ No newline at end of file
diff --git a/arch/hypr/.config/scripts/loadconfig.sh b/arch/hypr/.config/scripts/loadconfig.sh
new file mode 100755
index 0000000..23a646c
--- /dev/null
+++ b/arch/hypr/.config/scripts/loadconfig.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+hyprctl reload
diff --git a/arch/hypr/.config/scripts/moveTo.sh b/arch/hypr/.config/scripts/moveTo.sh
new file mode 100755
index 0000000..9c39ced
--- /dev/null
+++ b/arch/hypr/.config/scripts/moveTo.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+# __
+# __ _ ___ _ _____ / /____
+# / ' \/ _ \ |/ / -_) / __/ _ \
+# /_/_/_/\___/___/\__/ \__/\___/
+#
+
+# Function to log messages (useful for debugging)
+log_message() {
+ # echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> ~/moveto_log.txt
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
+}
+
+# Get the target workspace from the argument
+target_workspace=$1
+
+# Check if a target workspace was provided
+if [ -z "$target_workspace" ]; then
+ log_message "Error: No target workspace provided"
+ exit 1
+fi
+
+# Get the current active workspace
+current_workspace=$(hyprctl activewindow -j | jq '.workspace.id')
+
+if [ -z "$current_workspace" ]; then
+ log_message "Error: Couldn't determine current workspace"
+ exit 1
+fi
+
+log_message "Moving from workspace $current_workspace to $target_workspace"
+
+# Get all window addresses in the current workspace
+window_addresses=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $current_workspace) | .address")
+
+# Move each window to the target workspace
+for address in $window_addresses; do
+ log_message "Moving window $address to workspace $target_workspace"
+ hyprctl dispatch movetoworkspacesilent "$target_workspace,address:$address"
+done
+
+log_message "Finished moving windows"
+
+# Switch to the target workspace
+hyprctl dispatch workspace "$target_workspace"
+
+log_message "Switched to workspace $target_workspace"
diff --git a/arch/hypr/.config/scripts/power.sh b/arch/hypr/.config/scripts/power.sh
new file mode 100755
index 0000000..ff3c938
--- /dev/null
+++ b/arch/hypr/.config/scripts/power.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+# ___
+# / _ \___ _ _____ ____
+# / ___/ _ \ |/|/ / -_) __/
+# /_/ \___/__,__/\__/_/
+#
+
+terminate_clients() {
+ TIMEOUT=5
+ # Get a list of all client PIDs in the current Hyprland session
+ client_pids=$(hyprctl clients -j | jq -r '.[] | .pid')
+
+ # Send SIGTERM (kill -15) to each client PID and wait for termination
+ for pid in $client_pids; do
+ echo ":: Sending SIGTERM to PID $pid"
+ kill -15 $pid
+ done
+
+ start_time=$(date +%s)
+ for pid in $client_pids; do
+ # Wait for the process to terminate
+ while kill -0 $pid 2>/dev/null; do
+ current_time=$(date +%s)
+ elapsed_time=$((current_time - start_time))
+
+ if [ $elapsed_time -ge $TIMEOUT ]; then
+ echo ":: Timeout reached."
+ return 0
+ fi
+
+ echo ":: Waiting for PID $pid to terminate..."
+ sleep 1
+ done
+
+ echo ":: PID $pid has terminated."
+ done
+ bash $home/.config/ml4w/listeners.sh --stopall
+}
+
+if [[ "$1" == "exit" ]]; then
+ echo ":: Exit"
+ terminate_clients
+ sleep 0.5
+ hyprctl dispatch exit
+ sleep 2
+fi
+
+if [[ "$1" == "lock" ]]; then
+ echo ":: Lock"
+ sleep 0.5
+ hyprlock
+fi
+
+if [[ "$1" == "reboot" ]]; then
+ echo ":: Reboot"
+ terminate_clients
+ sleep 0.5
+ systemctl reboot
+fi
+
+if [[ "$1" == "shutdown" ]]; then
+ echo ":: Shutdown"
+ terminate_clients
+ sleep 0.5
+ systemctl poweroff
+fi
+
+if [[ "$1" == "suspend" ]]; then
+ echo ":: Suspend"
+ sleep 0.5
+ systemctl suspend
+fi
+
+if [[ "$1" == "hibernate" ]]; then
+ echo ":: Hibernate"
+ sleep 1
+ systemctl hibernate
+fi
diff --git a/arch/hypr/.config/scripts/restart-hypridle.sh b/arch/hypr/.config/scripts/restart-hypridle.sh
new file mode 100755
index 0000000..a736eaa
--- /dev/null
+++ b/arch/hypr/.config/scripts/restart-hypridle.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+killall hypridle
+sleep 1
+hypridle &
+notify-send "hypridle has been restarted."
diff --git a/arch/hypr/.config/scripts/screenshot.sh b/arch/hypr/.config/scripts/screenshot.sh
new file mode 100755
index 0000000..2298e67
--- /dev/null
+++ b/arch/hypr/.config/scripts/screenshot.sh
@@ -0,0 +1,263 @@
+#!/usr/bin/env bash
+# __ __
+# ___ ___________ ___ ___ ___ / / ___ / /_
+# (_- __/ __/ -_) -_) _ \(_- _ \/ _ \/ __/
+# /___/\__/_/ \__/\__/_//_/___/_//_/\___/\__/
+#
+# Based on https://github.com/hyprwm/contrib/blob/main/grimblast/screenshot.sh
+
+# -----------------------------------------------------
+
+# Screenshots will be stored in $HOME by default.
+# The screenshot will be moved into the screenshot directory
+
+# Add this to ~/.config/user-dirs.dirs to save screenshots in a custom folder:
+# XDG_SCREENSHOTS_DIR="$HOME/Screenshots"
+
+prompt='Screenshot'
+mesg="DIR: ~/Screenshots"
+
+# Screenshot Filename
+source ~/.config/ml4w/settings/screenshot-filename.sh
+
+# Screenshot Folder
+source ~/.config/ml4w/settings/screenshot-folder.sh
+
+# Screenshot Editor
+export GRIMBLAST_EDITOR="$(cat ~/.config/ml4w/settings/screenshot-editor.sh)"
+
+# Example for keybindings
+# bind = SUPER, p, exec, grimblast save active
+# bind = SUPER SHIFT, p, exec, grimblast save area
+# bind = SUPER ALT, p, exec, grimblast save output
+# bind = SUPER CTRL, p, exec, grimblast save screen
+
+# Quick instant mode: full screen
+take_instant_full() {
+ grim "$NAME" && notify-send -t 1000 "Screenshot saved to $screenshot_folder/$NAME"
+ [[ -f "$HOME/$NAME" && -d "$screenshot_folder" && -w "$screenshot_folder" ]] && mv "$HOME/$NAME" "$screenshot_folder/"
+}
+
+# Quick instant mode: area selection
+take_instant_area() {
+ local pid_picker region
+
+ # freeze screen for region selection
+ hyprpicker -r -z &
+ pid_picker=$!
+ trap 'kill "$pid_picker" 2>/dev/null' EXIT
+ sleep 0.1
+
+ # user selects region; kill picker on cancel
+ region=$(slurp -b "#00000080" -c "#888888ff" -w 1) || exit 0
+ [[ -z "$region" ]] && exit 0
+
+ # unfreeze screen
+ kill "$pid_picker" 2>/dev/null
+ trap - EXIT
+
+ # capture and notify
+ grim -g "$region" "$NAME" && notify-send -t 1000 "Screenshot saved to $screenshot_folder/$NAME"
+ [[ -f "$HOME/$NAME" && -d "$screenshot_folder" && -w "$screenshot_folder" ]] && mv "$HOME/$NAME" "$screenshot_folder/"
+}
+
+# Handle instant flags
+if [[ "$1" == "--instant" ]]; then
+ take_instant_full
+ exit 0
+elif [[ "$1" == "--instant-area" ]]; then
+ take_instant_area
+ exit 0
+fi
+
+# Options
+option_1="Immediate"
+option_2="Delayed"
+
+option_capture_1="Capture Everything"
+option_capture_2="Capture Active Display"
+option_capture_3="Capture Selection"
+
+option_time_1="5s"
+option_time_2="10s"
+option_time_3="20s"
+option_time_4="30s"
+option_time_5="60s"
+#option_time_4="Custom (in seconds)" # Roadmap or someone contribute :)
+
+list_col='1'
+list_row='2'
+
+copy='Copy'
+save='Save'
+copy_save='Copy & Save'
+edit='Edit'
+
+# Rofi CMD
+rofi_cmd() {
+ rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 2 -width 30 -p "Take screenshot"
+}
+
+# Pass variables to rofi dmenu
+run_rofi() {
+ echo -e "$option_1\n$option_2" | rofi_cmd
+}
+
+####
+# Choose Timer
+# CMD
+timer_cmd() {
+ rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 5 -width 30 -p "Choose timer"
+}
+
+# Ask for confirmation
+timer_exit() {
+ echo -e "$option_time_1\n$option_time_2\n$option_time_3\n$option_time_4\n$option_time_5" | timer_cmd
+}
+
+# Confirm and execute
+timer_run() {
+ selected_timer="$(timer_exit)"
+ if [[ "$selected_timer" == "$option_time_1" ]]; then
+ countdown=5
+ ${1}
+ elif [[ "$selected_timer" == "$option_time_2" ]]; then
+ countdown=10
+ ${1}
+ elif [[ "$selected_timer" == "$option_time_3" ]]; then
+ countdown=20
+ ${1}
+ elif [[ "$selected_timer" == "$option_time_4" ]]; then
+ countdown=30
+ ${1}
+ elif [[ "$selected_timer" == "$option_time_5" ]]; then
+ countdown=60
+ ${1}
+ else
+ exit
+ fi
+}
+###
+
+####
+# Chose Screenshot Type
+# CMD
+type_screenshot_cmd() {
+ rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 3 -width 30 -p "Type of screenshot"
+}
+
+# Ask for confirmation
+type_screenshot_exit() {
+ echo -e "$option_capture_1\n$option_capture_2\n$option_capture_3" | type_screenshot_cmd
+}
+
+# Confirm and execute
+type_screenshot_run() {
+ selected_type_screenshot="$(type_screenshot_exit)"
+ if [[ "$selected_type_screenshot" == "$option_capture_1" ]]; then
+ option_type_screenshot=screen
+ ${1}
+ elif [[ "$selected_type_screenshot" == "$option_capture_2" ]]; then
+ option_type_screenshot=output
+ ${1}
+ elif [[ "$selected_type_screenshot" == "$option_capture_3" ]]; then
+ option_type_screenshot=area
+ ${1}
+ else
+ exit
+ fi
+}
+###
+
+####
+# Choose to save or copy photo
+# CMD
+copy_save_editor_cmd() {
+ rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 4 -width 30 -p "How to save"
+}
+
+# Ask for confirmation
+copy_save_editor_exit() {
+ echo -e "$copy\n$save\n$copy_save\n$edit" | copy_save_editor_cmd
+}
+
+# Confirm and execute
+copy_save_editor_run() {
+ selected_chosen="$(copy_save_editor_exit)"
+ if [[ "$selected_chosen" == "$copy" ]]; then
+ option_chosen=copy
+ ${1}
+ elif [[ "$selected_chosen" == "$save" ]]; then
+ option_chosen=save
+ ${1}
+ elif [[ "$selected_chosen" == "$copy_save" ]]; then
+ option_chosen=copysave
+ ${1}
+ elif [[ "$selected_chosen" == "$edit" ]]; then
+ option_chosen=edit
+ ${1}
+ else
+ exit
+ fi
+}
+###
+
+timer() {
+ if [[ $countdown -gt 10 ]]; then
+ notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
+ countdown_less_10=$((countdown - 10))
+ sleep $countdown_less_10
+ countdown=10
+ fi
+ while [[ $countdown -ne 0 ]]; do
+ notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
+ countdown=$((countdown - 1))
+ sleep 1
+ done
+}
+
+# take shots
+takescreenshot() {
+ sleep 1
+ grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
+ if [ -f $HOME/$NAME ]; then
+ if [ -d $screenshot_folder ]; then
+ mv $HOME/$NAME $screenshot_folder/
+ fi
+ fi
+}
+
+takescreenshot_timer() {
+ sleep 1
+ timer
+ sleep 1
+ grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
+ if [ -f $HOME/$NAME ]; then
+ if [ -d $screenshot_folder ]; then
+ mv $HOME/$NAME $screenshot_folder/
+ fi
+ fi
+}
+
+# Execute Command
+run_cmd() {
+ if [[ "$1" == '--opt1' ]]; then
+ type_screenshot_run
+ copy_save_editor_run "takescreenshot"
+ elif [[ "$1" == '--opt2' ]]; then
+ timer_run
+ type_screenshot_run
+ copy_save_editor_run "takescreenshot_timer"
+ fi
+}
+
+# Actions
+chosen="$(run_rofi)"
+case ${chosen} in
+ $option_1)
+ run_cmd --opt1
+ ;;
+ $option_2)
+ run_cmd --opt2
+ ;;
+esac
diff --git a/arch/hypr/.config/scripts/systeminfo.sh b/arch/hypr/.config/scripts/systeminfo.sh
new file mode 100755
index 0000000..29aeb67
--- /dev/null
+++ b/arch/hypr/.config/scripts/systeminfo.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+clear
+figlet -f smslant "Systeminfo"
+echo
+setsid hyprctl systeminfo
+echo
+echo "Press return to exit"
+read
diff --git a/arch/hypr/.config/scripts/toggle-animations.sh b/arch/hypr/.config/scripts/toggle-animations.sh
new file mode 100755
index 0000000..864cec6
--- /dev/null
+++ b/arch/hypr/.config/scripts/toggle-animations.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+cache_file="$HOME/.cache/toggle_animation"
+if [[ $(cat $HOME/.config/hypr/conf/animation.conf) == *"disabled"* ]]; then
+ echo ":: Toggle blocked by disabled.conf variation."
+else
+ if [ -f $cache_file ]; then
+ hyprctl keyword animations:enabled true
+ rm $cache_file
+ else
+ hyprctl keyword animations:enabled false
+ touch $cache_file
+ fi
+fi
diff --git a/arch/hypr/.config/scripts/toggleallfloat.sh b/arch/hypr/.config/scripts/toggleallfloat.sh
new file mode 100755
index 0000000..1c68dea
--- /dev/null
+++ b/arch/hypr/.config/scripts/toggleallfloat.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+# _ _ _ __ _ _
+# / \ | | |/ _| | ___ __ _| |_
+# / _ \ | | | |_| |/ _ \ / _` | __|
+# / ___ \| | | _| | (_) | (_| | |_
+# /_/ \_\_|_|_| |_|\___/ \__,_|\__|
+#
+
+hyprctl dispatch workspaceopt allfloat
+notify-send "Windows on this workspace toggled to floating/tiling"
diff --git a/arch/hypr/.config/scripts/wallpaper-automation.sh b/arch/hypr/.config/scripts/wallpaper-automation.sh
new file mode 100755
index 0000000..5b9dd60
--- /dev/null
+++ b/arch/hypr/.config/scripts/wallpaper-automation.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+# _ _ __ ______
+# / \ _ _| |_ ___ \ \ / / _ \
+# / _ \| | | | __/ _ \ \ \ /\ / /| |_) |
+# / ___ \ |_| | || (_) | \ V V / | __/
+# /_/ \_\__,_|\__\___/ \_/\_/ |_|
+#
+
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+
+sec=$(cat ~/.config/ml4w/settings/wallpaper-automation.sh)
+_setWallpaperRandomly() {
+ waypaper --random
+ echo ":: Next wallpaper in 60 seconds..."
+ sleep $sec
+ _setWallpaperRandomly
+}
+
+if [ ! -f $ml4w_cache_folder/wallpaper-automation ]; then
+ touch $ml4w_cache_folder/wallpaper-automation
+ echo ":: Start wallpaper automation script"
+ notify-send "Wallpaper automation process started" "Wallpaper will be changed every $sec seconds."
+ _setWallpaperRandomly
+else
+ rm $ml4w_cache_folder/wallpaper-automation
+ notify-send "Wallpaper automation process stopped."
+ echo ":: Wallpaper automation script process $wp stopped"
+ wp=$(pgrep -f wallpaper-automation.sh)
+ kill -KILL $wp
+fi
diff --git a/arch/hypr/.config/scripts/wallpaper-cache.sh b/arch/hypr/.config/scripts/wallpaper-cache.sh
new file mode 100755
index 0000000..3e663ae
--- /dev/null
+++ b/arch/hypr/.config/scripts/wallpaper-cache.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+generated_versions="$ml4w_cache_folder/wallpaper-generated"
+rm $generated_versions/*
+echo ":: Wallpaper cache cleared"
+notify-send "Wallpaper cache cleared"
diff --git a/arch/hypr/.config/scripts/wallpaper-effects.sh b/arch/hypr/.config/scripts/wallpaper-effects.sh
new file mode 100755
index 0000000..1a95db1
--- /dev/null
+++ b/arch/hypr/.config/scripts/wallpaper-effects.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# __ ______ _____ __ __ _
+# \ \ / / _ \ | ____|/ _|/ _| ___ ___| |_ ___
+# \ \ /\ / /| |_) | | _| | |_| |_ / _ \/ __| __/ __|
+# \ V V / | __/ | |___| _| _| __/ (__| |_\__ \
+# \_/\_/ |_| |_____|_| |_| \___|\___|\__|___/
+#
+
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+
+# Get current wallpaper
+cache_file="$ml4w_cache_folder/current_wallpaper"
+
+if [ $1 == "reload" ]; then
+ # Releod wallpaper with current effect
+ waypaper --wallpaper $(cat $cache_file)
+else
+ # Open rofi to select the Hyprshade filter for toggle
+ options="$(ls ~/.config/hypr/effects/wallpaper/)\noff"
+
+ # Open rofi
+ choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/config-themes.rasi -i -no-show-icons -l 5 -width 30 -p "Hyprshade")
+ if [ ! -z $choice ]; then
+ echo "$choice" >~/.config/ml4w/settings/wallpaper-effect.sh
+ notify-send "Changing Wallpaper Effect to " "$choice"
+ waypaper --wallpaper $(cat $cache_file)
+ fi
+fi
diff --git a/arch/hypr/.config/scripts/wallpaper-restore.sh b/arch/hypr/.config/scripts/wallpaper-restore.sh
new file mode 100755
index 0000000..766ab2f
--- /dev/null
+++ b/arch/hypr/.config/scripts/wallpaper-restore.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+# _ _
+# __ ____ _| | |_ __ __ _ _ __ ___ _ __
+# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__|
+# \ V V / (_| | | | |_) | (_| | |_) | __/ |
+# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
+# |_| |_|
+#
+# -----------------------------------------------------
+# Restore last wallpaper
+# -----------------------------------------------------
+
+# -----------------------------------------------------
+# Set defaults
+# -----------------------------------------------------
+
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+
+defaultwallpaper="$HOME/.config/ml4w/wallpapers/default.jpg"
+
+cachefile="$ml4w_cache_folder/current_wallpaper"
+
+# -----------------------------------------------------
+# Get current wallpaper
+# -----------------------------------------------------
+
+if [ -f "$cachefile" ]; then
+ sed -i "s|~|$HOME|g" "$cachefile"
+ wallpaper=$(cat $cachefile)
+ if [ -f $wallpaper ]; then
+ echo ":: Wallpaper $wallpaper exists"
+ else
+ echo ":: Wallpaper $wallpaper does not exist. Using default."
+ wallpaper=$defaultwallpaper
+ fi
+else
+ echo ":: $cachefile does not exist. Using default wallpaper."
+ wallpaper=$defaultwallpaper
+fi
+
+# -----------------------------------------------------
+# Set wallpaper
+# -----------------------------------------------------
+
+echo ":: Setting wallpaper with source image $wallpaper"
+if [ -f ~/.local/bin/waypaper ]; then
+ export PATH=$PATH:~/.local/bin/
+fi
+waypaper --wallpaper "$wallpaper"
diff --git a/arch/hypr/.config/scripts/wallpaper.sh b/arch/hypr/.config/scripts/wallpaper.sh
new file mode 100755
index 0000000..57fd34c
--- /dev/null
+++ b/arch/hypr/.config/scripts/wallpaper.sh
@@ -0,0 +1,201 @@
+#!/usr/bin/env bash
+# _ __ ____
+# | | /| / /__ _/ / /__ ___ ____ ___ ____
+# | |/ |/ / _ `/ / / _ \/ _ `/ _ \/ -_) __/
+# |__/|__/\_,_/_/_/ .__/\_,_/ .__/\__/_/
+# /_/ /_/
+
+# Source library.sh
+source $HOME/.config/ml4w/library.sh
+
+# -----------------------------------------------------
+# Check to use wallpaper cache
+# -----------------------------------------------------
+
+if [ -f ~/.config/ml4w/settings/wallpaper_cache ]; then
+ use_cache=1
+ _writeLog "Using Wallpaper Cache"
+else
+ use_cache=0
+ _writeLog "Wallpaper Cache disabled"
+fi
+
+# -----------------------------------------------------
+# Create cache folder
+# -----------------------------------------------------
+ml4w_cache_folder="$HOME/.cache/ml4w/hyprland-dotfiles"
+
+if [ ! -d $ml4w_cache_folder ]; then
+ mkdir -p $ml4w_cache_folder
+fi
+
+# -----------------------------------------------------
+# Set defaults
+# -----------------------------------------------------
+
+force_generate=0
+
+# Cache for generated wallpapers with effects
+generatedversions="$ml4w_cache_folder/wallpaper-generated"
+if [ ! -d $generatedversions ]; then
+ mkdir -p $generatedversions
+fi
+
+# Will be set when waypaper is running
+waypaperrunning=$ml4w_cache_folder/waypaper-running
+if [ -f $waypaperrunning ]; then
+ rm $waypaperrunning
+ exit
+fi
+
+cachefile="$ml4w_cache_folder/current_wallpaper"
+blurredwallpaper="$ml4w_cache_folder/blurred_wallpaper.png"
+squarewallpaper="$ml4w_cache_folder/square_wallpaper.png"
+rasifile="$ml4w_cache_folder/current_wallpaper.rasi"
+blurfile="$HOME/.config/ml4w/settings/blur.sh"
+defaultwallpaper="$HOME/.config/ml4w/wallpapers/default.jpg"
+wallpapereffect="$HOME/.config/ml4w/settings/wallpaper-effect.sh"
+blur="50x30"
+blur=$(cat $blurfile)
+
+# -----------------------------------------------------
+# Get selected wallpaper
+# -----------------------------------------------------
+
+if [ -z $1 ]; then
+ if [ -f $cachefile ]; then
+ wallpaper=$(cat $cachefile)
+ else
+ wallpaper=$defaultwallpaper
+ fi
+else
+ wallpaper=$1
+fi
+used_wallpaper=$wallpaper
+_writeLog "Setting wallpaper with source image $wallpaper"
+tmpwallpaper=$wallpaper
+
+# -----------------------------------------------------
+# Copy path of current wallpaper to cache file
+# -----------------------------------------------------
+
+if [ ! -f $cachefile ]; then
+ touch $cachefile
+fi
+echo "$wallpaper" > $cachefile
+_writeLog "Path of current wallpaper copied to $cachefile"
+
+# -----------------------------------------------------
+# Get wallpaper filename
+# -----------------------------------------------------
+
+wallpaperfilename=$(basename $wallpaper)
+_writeLog "Wallpaper Filename: $wallpaperfilename"
+
+# -----------------------------------------------------
+# Wallpaper Effects
+# -----------------------------------------------------
+
+if [ -f $wallpapereffect ]; then
+ effect=$(cat $wallpapereffect)
+ if [ ! "$effect" == "off" ]; then
+ used_wallpaper=$generatedversions/$effect-$wallpaperfilename
+ if [ -f $generatedversions/$effect-$wallpaperfilename ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ]; then
+ _writeLog "Use cached wallpaper $effect-$wallpaperfilename"
+ else
+ _writeLog "Generate new cached wallpaper $effect-$wallpaperfilename with effect $effect"
+ notify-send --replace-id=1 "Using wallpaper effect $effect..." "with image $wallpaperfilename" -h int:value:33
+ source $HOME/.config/hypr/effects/wallpaper/$effect
+ fi
+ _writeLog "Loading wallpaper $generatedversions/$effect-$wallpaperfilename with effect $effect"
+ _writeLog "Setting wallpaper with $used_wallpaper"
+ touch $waypaperrunning
+ waypaper --wallpaper $used_wallpaper
+ else
+ _writeLog "Wallpaper effect is set to off"
+ fi
+else
+ effect="off"
+fi
+
+# -----------------------------------------------------
+# Detect Theme
+# -----------------------------------------------------
+
+SETTINGS_FILE="$HOME/.config/gtk-3.0/settings.ini"
+THEME_PREF=$(grep -E '^gtk-application-prefer-dark-theme=' "$SETTINGS_FILE" | awk -F'=' '{print $2}')
+
+# -----------------------------------------------------
+# Execute matugen
+# -----------------------------------------------------
+
+_writeLog "Execute matugen with $used_wallpaper"
+if [ "$THEME_PREF" -eq 1 ]; then
+ $HOME/.local/bin/matugen image $used_wallpaper -m "dark"
+else
+ $HOME/.local/bin/matugen image $used_wallpaper -m "light"
+fi
+
+# -----------------------------------------------------
+# Reload Waybar
+# -----------------------------------------------------
+
+sleep 1
+$HOME/.config/waybar/launch.sh
+
+# -----------------------------------------------------
+# Reload nwg-dock-hyprland
+# -----------------------------------------------------
+
+$HOME/.config/nwg-dock-hyprland/launch.sh &
+
+# -----------------------------------------------------
+# Update Pywalfox
+# -----------------------------------------------------
+
+if type pywalfox >/dev/null 2>&1; then
+ pywalfox update
+fi
+
+# -----------------------------------------------------
+# Update SwayNC
+# -----------------------------------------------------
+
+sleep 0.1
+swaync-client -rs
+
+# -----------------------------------------------------
+# Created blurred wallpaper
+# -----------------------------------------------------
+
+if [ -f $generatedversions/blur-$blur-$effect-$wallpaperfilename.png ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ]; then
+ _writeLog "Use cached wallpaper blur-$blur-$effect-$wallpaperfilename"
+else
+ _writeLog "Generate new cached wallpaper blur-$blur-$effect-$wallpaperfilename with blur $blur"
+ # notify-send --replace-id=1 "Generate new blurred version" "with blur $blur" -h int:value:66
+ magick $used_wallpaper -resize 75% $blurredwallpaper
+ _writeLog "Resized to 75%"
+ if [ ! "$blur" == "0x0" ]; then
+ magick $blurredwallpaper -blur $blur $blurredwallpaper
+ cp $blurredwallpaper $generatedversions/blur-$blur-$effect-$wallpaperfilename.png
+ _writeLog "Blurred"
+ fi
+fi
+cp $generatedversions/blur-$blur-$effect-$wallpaperfilename.png $blurredwallpaper
+
+# -----------------------------------------------------
+# Create rasi file
+# -----------------------------------------------------
+
+if [ ! -f $rasifile ]; then
+ touch $rasifile
+fi
+echo "* { current-image: url(\"$blurredwallpaper\", height); }" >"$rasifile"
+
+# -----------------------------------------------------
+# Created square wallpaper
+# -----------------------------------------------------
+
+_writeLog "Generate new cached wallpaper square-$wallpaperfilename"
+magick $tmpwallpaper -gravity Center -extent 1:1 $squarewallpaper
+cp $squarewallpaper $generatedversions/square-$wallpaperfilename.png
diff --git a/arch/hypr/.config/scripts/waypaper.sh b/arch/hypr/.config/scripts/waypaper.sh
new file mode 100755
index 0000000..b2978b1
--- /dev/null
+++ b/arch/hypr/.config/scripts/waypaper.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+if [ -f /usr/bin/waypaper ]; then
+ echo ":: Launching waybar in /usr/bin"
+ waypaper $1 &
+elif [ -f $HOME/.local/bin/waypaper ]; then
+ echo ":: Launching waybar in $HOME/.local/bin"
+ $HOME/.local/bin/waypaper $1 &
+else
+ echo ":: waypaper not found"
+fi
diff --git a/arch/hypr/.config/scripts/xdg.sh b/arch/hypr/.config/scripts/xdg.sh
new file mode 100755
index 0000000..d6f00df
--- /dev/null
+++ b/arch/hypr/.config/scripts/xdg.sh
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+# __ ______ ____
+# \ \/ / _ \ / ___|
+# \ /| | | | | _
+# / \| |_| | |_| |
+# /_/\_\____/ \____|
+#
+
+# Setup Timers
+_sleep1="0.1"
+_sleep2="0.5"
+_sleep3="2"
+_sleep4="1"
+
+sleep $_sleep4
+
+# Kill all possible running xdg-desktop-portals
+killall -e xdg-desktop-portal-hyprland
+killall -e xdg-desktop-portal-gnome
+killall -e xdg-desktop-portal-kde
+killall -e xdg-desktop-portal-lxqt
+killall -e xdg-desktop-portal-wlr
+killall -e xdg-desktop-portal-gtk
+killall -e xdg-desktop-portal
+
+# Set required environment variables
+dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
+
+# Stop all services
+systemctl --user stop pipewire
+systemctl --user stop wireplumber
+systemctl --user stop xdg-desktop-portal
+systemctl --user stop xdg-desktop-portal-gnome
+systemctl --user stop xdg-desktop-portal-kde
+systemctl --user stop xdg-desktop-portal-wlr
+systemctl --user stop xdg-desktop-portal-hyprland
+sleep $_sleep1
+
+# Start xdg-desktop-portal-hyprland
+/usr/lib/xdg-desktop-portal-hyprland &
+sleep $_sleep3
+
+# Start xdg-desktop-portal-gtk
+if [ -f /usr/lib/xdg-desktop-portal-gtk ]; then
+ /usr/lib/xdg-desktop-portal-gtk &
+ sleep $_sleep1
+fi
+
+# Start xdg-desktop-portal
+/usr/lib/xdg-desktop-portal &
+sleep $_sleep2
+
+# Start required services
+systemctl --user start pipewire
+systemctl --user start wireplumber
+systemctl --user start xdg-desktop-portal
+systemctl --user start xdg-desktop-portal-hyprland
+
+# Run waybar
+sleep $_sleep3
+# ~/.config/waybar/launch.sh