diff --git a/.config/hypr/conf/hypr/colors.conf b/.config/hypr/conf/hypr/colors.conf
new file mode 100644
index 0000000..2ad5d0a
--- /dev/null
+++ b/.config/hypr/conf/hypr/colors.conf
@@ -0,0 +1,100 @@
+
+$background = rgba(111318ff)
+
+$error = rgba(ffb4abff)
+
+$error_container = rgba(93000aff)
+
+$inverse_on_surface = rgba(2e3036ff)
+
+$inverse_primary = rgba(425e91ff)
+
+$inverse_surface = rgba(e2e2e9ff)
+
+$on_background = rgba(e2e2e9ff)
+
+$on_error = rgba(690005ff)
+
+$on_error_container = rgba(ffdad6ff)
+
+$on_primary = rgba(0c305fff)
+
+$on_primary_container = rgba(d7e3ffff)
+
+$on_primary_fixed = rgba(001b3fff)
+
+$on_primary_fixed_variant = rgba(284677ff)
+
+$on_secondary = rgba(283041ff)
+
+$on_secondary_container = rgba(dae2f9ff)
+
+$on_secondary_fixed = rgba(131c2bff)
+
+$on_secondary_fixed_variant = rgba(3e4759ff)
+
+$on_surface = rgba(e2e2e9ff)
+
+$on_surface_variant = rgba(c4c6d0ff)
+
+$on_tertiary = rgba(3f2844ff)
+
+$on_tertiary_container = rgba(fad8fdff)
+
+$on_tertiary_fixed = rgba(29132eff)
+
+$on_tertiary_fixed_variant = rgba(573e5cff)
+
+$outline = rgba(8e9099ff)
+
+$outline_variant = rgba(44474eff)
+
+$primary = rgba(abc7ffff)
+
+$primary_container = rgba(284677ff)
+
+$primary_fixed = rgba(d7e3ffff)
+
+$primary_fixed_dim = rgba(abc7ffff)
+
+$scrim = rgba(000000ff)
+
+$secondary = rgba(bec6dcff)
+
+$secondary_container = rgba(3e4759ff)
+
+$secondary_fixed = rgba(dae2f9ff)
+
+$secondary_fixed_dim = rgba(bec6dcff)
+
+$shadow = rgba(000000ff)
+
+$source_color = rgba(012a5bff)
+
+$surface = rgba(111318ff)
+
+$surface_bright = rgba(37393eff)
+
+$surface_container = rgba(1e2025ff)
+
+$surface_container_high = rgba(282a2fff)
+
+$surface_container_highest = rgba(33353aff)
+
+$surface_container_low = rgba(191c20ff)
+
+$surface_container_lowest = rgba(0c0e13ff)
+
+$surface_dim = rgba(111318ff)
+
+$surface_tint = rgba(abc7ffff)
+
+$surface_variant = rgba(44474eff)
+
+$tertiary = rgba(ddbce0ff)
+
+$tertiary_container = rgba(573e5cff)
+
+$tertiary_fixed = rgba(fad8fdff)
+
+$tertiary_fixed_dim = rgba(ddbce0ff)
diff --git a/.config/hypr/conf/hypr/conf/animation.conf b/.config/hypr/conf/hypr/conf/animation.conf
new file mode 100644
index 0000000..a210389
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/animation.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/animations/default.conf
diff --git a/.config/hypr/conf/hypr/conf/animations/animations-classic.conf b/.config/hypr/conf/hypr/conf/animations/animations-classic.conf
new file mode 100644
index 0000000..4c33b0b
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/animations-dynamic.conf b/.config/hypr/conf/hypr/conf/animations/animations-dynamic.conf
new file mode 100644
index 0000000..d703dd3
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/animations-end4.conf b/.config/hypr/conf/hypr/conf/animations/animations-end4.conf
new file mode 100644
index 0000000..4147d90
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/animations-fast.conf b/.config/hypr/conf/hypr/conf/animations/animations-fast.conf
new file mode 100644
index 0000000..4eecc45
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/animations-high.conf b/.config/hypr/conf/hypr/conf/animations/animations-high.conf
new file mode 100644
index 0000000..e403420
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/animations-moving.conf b/.config/hypr/conf/hypr/conf/animations/animations-moving.conf
new file mode 100644
index 0000000..20ec046
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/default.conf b/.config/hypr/conf/hypr/conf/animations/default.conf
new file mode 100644
index 0000000..4147d90
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/animations/disabled.conf b/.config/hypr/conf/hypr/conf/animations/disabled.conf
new file mode 100644
index 0000000..204b96f
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/animations/disabled.conf
@@ -0,0 +1,7 @@
+# -----------------------------------------------------
+# Animations
+# name "Default"
+# -----------------------------------------------------
+animations {
+ enabled = false
+}
diff --git a/.config/hypr/conf/hypr/conf/animations/standard.conf b/.config/hypr/conf/hypr/conf/animations/standard.conf
new file mode 100644
index 0000000..cd01434
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/autostart.conf b/.config/hypr/conf/hypr/conf/autostart.conf
new file mode 100644
index 0000000..66e2c90
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/autostart.conf
@@ -0,0 +1,46 @@
+# ___ __ __ __
+# / _ |__ __/ /____ ___ / /____ _____/ /_
+# / __ / // / __/ _ \(_- __/ _ `/ __/ __/
+# /_/ |_\_,_/\__/\___/___/\__/\_,_/_/ \__/
+#
+
+# Setup XDG for screen sharing and start waypaper and waybar
+exec-once = ~/.config/hypr/scripts/xdg.sh
+
+# Start Polkit
+exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
+# Load Wallpaper
+# exec-once = ~/.config/hypr/scripts/wallpaper-restore.sh
+exec-once = hyprpaper
+
+# 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
+
+# Dock
+# exec-once = ~/.config/nwg-dock-hyprland/launch.sh
+
+#Custom
+exec-once = nextcloud --background
+exec-once = waybar &
+exec-once = syncthing &
+exec-once = qbittorrent &
+# exec-once = QSyncthingTray &
diff --git a/.config/hypr/conf/hypr/conf/cursor.conf b/.config/hypr/conf/hypr/conf/cursor.conf
new file mode 100644
index 0000000..36f0fff
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/cursor.conf
@@ -0,0 +1 @@
+exec-once = hyprctl setcursor breeze_cursors 24
diff --git a/.config/hypr/conf/hypr/conf/custom.conf b/.config/hypr/conf/hypr/conf/custom.conf
new file mode 100644
index 0000000..6424849
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/custom.conf
@@ -0,0 +1,24 @@
+# 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
diff --git a/.config/hypr/conf/hypr/conf/decoration.conf b/.config/hypr/conf/hypr/conf/decoration.conf
new file mode 100644
index 0000000..77ace10
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decoration.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/decorations/patrick-decoration.conf
diff --git a/.config/hypr/conf/hypr/conf/decorations/default.conf b/.config/hypr/conf/hypr/conf/decorations/default.conf
new file mode 100644
index 0000000..22f9487
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/default.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Default"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.8
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 6
+ passes = 2
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/no-rounding-more-blur.conf b/.config/hypr/conf/hypr/conf/decorations/no-rounding-more-blur.conf
new file mode 100644
index 0000000..a915f28
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/no-rounding-more-blur.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# 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
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/no-rounding.conf b/.config/hypr/conf/hypr/conf/decorations/no-rounding.conf
new file mode 100644
index 0000000..c02ef1e
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/no-rounding.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# 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 = 6
+ passes = 2
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/patrick-decoration.conf b/.config/hypr/conf/hypr/conf/decorations/patrick-decoration.conf
new file mode 100644
index 0000000..4951cb9
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/patrick-decoration.conf
@@ -0,0 +1,25 @@
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.8
+ fullscreen_opacity = 1.0
+
+ # border_color = 0x66000000
+
+ blur {
+ enabled = true
+ size = 6
+ passes = 2
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur-no-shadows.conf b/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur-no-shadows.conf
new file mode 100644
index 0000000..b435e47
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur-no-shadows.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# 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 = 12
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ blurls = waybar
+ }
+
+ shadow {
+ enabled = false
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur.conf b/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur.conf
new file mode 100644
index 0000000..712bde0
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/rounding-all-blur.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# 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 = 12
+ passes = 4
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/rounding-more-blur.conf b/.config/hypr/conf/hypr/conf/decorations/rounding-more-blur.conf
new file mode 100644
index 0000000..760a7f7
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/rounding-more-blur.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# 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
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/decorations/rounding.conf b/.config/hypr/conf/hypr/conf/decorations/rounding.conf
new file mode 100644
index 0000000..22f9487
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/decorations/rounding.conf
@@ -0,0 +1,28 @@
+# -----------------------------------------------------
+# General window decoration
+# name: "Default"
+# -----------------------------------------------------
+
+decoration {
+ rounding = 10
+ active_opacity = 1.0
+ inactive_opacity = 0.8
+ fullscreen_opacity = 1.0
+
+ blur {
+ enabled = true
+ size = 6
+ passes = 2
+ new_optimizations = on
+ ignore_opacity = true
+ xray = true
+ # blurls = waybar
+ }
+
+ shadow {
+ enabled = true
+ range = 30
+ render_power = 3
+ color = 0x66000000
+ }
+}
diff --git a/.config/hypr/conf/hypr/conf/environment.conf b/.config/hypr/conf/hypr/conf/environment.conf
new file mode 100644
index 0000000..752e6ae
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/environment.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/environments/nvidia.conf
diff --git a/.config/hypr/conf/hypr/conf/environments/default.conf b/.config/hypr/conf/hypr/conf/environments/default.conf
new file mode 100644
index 0000000..944077b
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/environments/default.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Environment Variables
+# name: "Default"
+# -----------------------------------------------------
+
+# Default Settings in ml4w.conf
diff --git a/.config/hypr/conf/hypr/conf/environments/kvm.conf b/.config/hypr/conf/hypr/conf/environments/kvm.conf
new file mode 100644
index 0000000..88884e7
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/environments/nvidia.conf b/.config/hypr/conf/hypr/conf/environments/nvidia.conf
new file mode 100644
index 0000000..3ec9dcc
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/keybinding.conf b/.config/hypr/conf/hypr/conf/keybinding.conf
new file mode 100644
index 0000000..3176a7a
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/keybinding.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/keybindings/patrick.conf
diff --git a/.config/hypr/conf/hypr/conf/keybindings/default.conf b/.config/hypr/conf/hypr/conf/keybindings/default.conf
new file mode 100644
index 0000000..332badf
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/keybindings/default.conf
@@ -0,0 +1,124 @@
+# -----------------------------------------------------
+# 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
+
+# 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, pkill rofi || rofi -show drun -replace -i # 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 SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
+bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
+bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Start wlogout
+
+# 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%
+bind = , XF86AudioRaiseVolume, exec, pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
+bind = , XF86AudioLowerVolume, exec, pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
+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/.config/hypr/conf/hypr/conf/keybindings/fr.conf b/.config/hypr/conf/hypr/conf/keybindings/fr.conf
new file mode 100644
index 0000000..9d57159
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/keybindings/fr.conf
@@ -0,0 +1,123 @@
+# -----------------------------------------------------
+# 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
+
+# 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, pkill rofi || rofi -show drun -replace -i # 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 SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
+bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
+bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Start wlogout
+
+# 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/.config/hypr/conf/hypr/conf/keybindings/patrick.conf b/.config/hypr/conf/hypr/conf/keybindings/patrick.conf
new file mode 100644
index 0000000..7968590
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/keybindings/patrick.conf
@@ -0,0 +1,133 @@
+# -----------------------------------------------------
+# Key bindings
+# name: "Default"
+# -----------------------------------------------------
+
+# SUPER KEY
+$mainMod = SUPER
+$HYPRSCRIPTS = ~/.config/hypr/scripts
+
+# DEFAULTS
+$terminal = kitty
+$browser = zen-browser
+$filemanager = thunar
+
+# Applications
+bind = $mainMod, RETURN, exec, $terminal
+bind = $mainMod, B, exec, $browser
+bind = $mainMod SHIFT, RETURN, exec, $filemanager
+bind = $mainMod, C, exec, [floating] ~/.config/ml4w/settings/calculator.sh # Open the calculator
+
+# Custom
+bind = $mainMod, M, exec, marktext
+bind = $mainMod, A, exec, flatpak run com.jeffser.Alpaca
+bind = $mainMod, E, exec, flatpak run it.mijorus.smile
+# bind = $mainMod, Print, exec, grim -g "$(slurp)" - | wl-copy && wl-paste > ~/Pictures/Screenshot-$(date +%F_%T).png
+bind = $mainMod SHIFT, Print, exec, grim - | wl-copy && wl-paste > ~/Pictures/Screenshot-$(date +%F_%T).png
+
+# 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, pkill rofi || rofi -show drun -replace -i # 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 SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
+bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
+bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Start wlogout
+
+# 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%
+bind = , XF86AudioRaiseVolume, exec, pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
+bind = , XF86AudioLowerVolume, exec, pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
+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, $(cat ~/.config/ml4w/settings/terminal.sh) --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/.config/hypr/conf/hypr/conf/keyboard.conf b/.config/hypr/conf/hypr/conf/keyboard.conf
new file mode 100644
index 0000000..ac450db
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/keyboard.conf
@@ -0,0 +1,19 @@
+# -----------------------------------------------------
+# 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
+ }
+ sensitivity = 0 # Pointer speed: -1.0 - 1.0, 0 means no modification.
+}
diff --git a/.config/hypr/conf/hypr/conf/layout.conf b/.config/hypr/conf/hypr/conf/layout.conf
new file mode 100644
index 0000000..25474ce
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/layout.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/layouts/default.conf
diff --git a/.config/hypr/conf/hypr/conf/layouts/default.conf b/.config/hypr/conf/hypr/conf/layouts/default.conf
new file mode 100644
index 0000000..995731b
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/layouts/default.conf
@@ -0,0 +1,23 @@
+# -----------------------------------------------------
+# Layouts
+# -----------------------------------------------------
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ # Commented out due to compatibility reasons
+ # new_status = master
+}
+
+gestures {
+ workspace_swipe = false
+}
+
+binds {
+ workspace_back_and_forth = true
+ allow_workspace_cycles = true
+ pass_mouse_when_bound = false
+}
diff --git a/.config/hypr/conf/hypr/conf/layouts/laptop.conf b/.config/hypr/conf/hypr/conf/layouts/laptop.conf
new file mode 100644
index 0000000..603fb79
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/layouts/laptop.conf
@@ -0,0 +1,30 @@
+# -----------------------------------------------------
+# Layouts
+# -----------------------------------------------------
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ # Commented out due to compatibility reasons
+ # new_status = master
+}
+
+gestures {
+ workspace_swipe = true
+ workspace_swipe_fingers = 3
+ workspace_swipe_distance = 500
+ workspace_swipe_invert = true
+ workspace_swipe_min_speed_to_force = 30
+ workspace_swipe_cancel_ratio = 0.5
+ workspace_swipe_create_new = true
+ workspace_swipe_forever = true
+}
+
+binds {
+ workspace_back_and_forth = true
+ allow_workspace_cycles = true
+ pass_mouse_when_bound = false
+}
diff --git a/.config/hypr/conf/hypr/conf/misc.conf b/.config/hypr/conf/hypr/conf/misc.conf
new file mode 100644
index 0000000..c8fa891
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/ml4w.conf b/.config/hypr/conf/hypr/conf/ml4w.conf
new file mode 100644
index 0000000..9731229
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/ml4w.conf
@@ -0,0 +1,138 @@
+# __ _____ _____ __ _____ ___
+# / |/ / / / / / | /| / / / ___/__ ___ / _/
+# / /|_/ / /_/_ _/ |/ |/ / / /__/ _ \/ _ \/ _/
+# /_/ /_/____//_/ |__/|__/ \___/\___/_//_/_/
+#
+
+# 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
+
+# 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 740,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)
+
+# Emoji Picker Smile
+windowrule = float,class:(it.mijorus.smile)
+windowrule = pin, class:(it.mijorus.smile)
+windowrule = move 100%-w-40 90,class:(it.mijorus.smile)
+
+# 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)
+
+# Floating for Ghostty
+windowrule = float,class:(ml4w.dotfiles.floating)
+windowrule = size 1000 700,class:(ml4w.dotfiles.floating)
+windowrule = center,class:(ml4w.dotfiles.floating)
+windowrule = pin, class:(ml4w.dotfiles.floating)
+
+# 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
+
+# Ozone
+env = OZONE_PLATFORM,wayland
+env = ELECTRON_OZONE_PLATFORM_HINT,wayland
diff --git a/.config/hypr/conf/hypr/conf/monitor.conf b/.config/hypr/conf/hypr/conf/monitor.conf
new file mode 100644
index 0000000..0ccc26d
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitor.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/monitors/1920x1080.conf
diff --git a/.config/hypr/conf/hypr/conf/monitors/1366x768.conf b/.config/hypr/conf/hypr/conf/monitors/1366x768.conf
new file mode 100644
index 0000000..eb9f6f0
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/1366x768.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1366x768"
+# -----------------------------------------------------
+
+monitor=,1366x768,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/1440x1080.conf b/.config/hypr/conf/hypr/conf/monitors/1440x1080.conf
new file mode 100644
index 0000000..5d25ce3
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/1440x1080.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1440x1080"
+# -----------------------------------------------------
+
+monitor=,1440x1080,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/1600x900.conf b/.config/hypr/conf/hypr/conf/monitors/1600x900.conf
new file mode 100644
index 0000000..69c7eb8
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/1600x900.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1600x900"
+# -----------------------------------------------------
+
+monitor=,1600x900,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/1920x1080.conf b/.config/hypr/conf/hypr/conf/monitors/1920x1080.conf
new file mode 100644
index 0000000..47cc1d6
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/1920x1080.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1920x1080"
+# -----------------------------------------------------
+
+monitor=,1920x1080@75,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/1920x1200.conf b/.config/hypr/conf/hypr/conf/monitors/1920x1200.conf
new file mode 100644
index 0000000..8ed321c
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/1920x1200.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "1920x1200"
+# -----------------------------------------------------
+
+monitor=,1920x1200,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/2560x1440.conf b/.config/hypr/conf/hypr/conf/monitors/2560x1440.conf
new file mode 100644
index 0000000..b4c9526
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/2560x1440.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440"
+# -----------------------------------------------------
+
+monitor=,2560x1440,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/2560x1440@120.conf b/.config/hypr/conf/hypr/conf/monitors/2560x1440@120.conf
new file mode 100644
index 0000000..e218ed0
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/2560x1440@120.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440@120"
+# -----------------------------------------------------
+
+monitor=,2560x1440@120,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/2560x1440@120x125.conf b/.config/hypr/conf/hypr/conf/monitors/2560x1440@120x125.conf
new file mode 100644
index 0000000..0fa5ddb
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/2560x1440@120x125.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "2560x1440@120x125"
+# -----------------------------------------------------
+
+monitor=,2560x1440@120,auto,1.25
diff --git a/.config/hypr/conf/hypr/conf/monitors/3440x1440.conf b/.config/hypr/conf/hypr/conf/monitors/3440x1440.conf
new file mode 100644
index 0000000..4eb9c8c
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/3440x1440.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "3440x1440"
+# -----------------------------------------------------
+
+monitor=,3440x1440,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/default.conf b/.config/hypr/conf/hypr/conf/monitors/default.conf
new file mode 100644
index 0000000..5c16fb7
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/default.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "Default"
+# -----------------------------------------------------
+
+monitor=,preferred,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/highres.conf b/.config/hypr/conf/hypr/conf/monitors/highres.conf
new file mode 100644
index 0000000..68cc043
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/monitors/highres.conf
@@ -0,0 +1,6 @@
+# -----------------------------------------------------
+# Monitor Setup
+# name: "Highres"
+# -----------------------------------------------------
+
+monitor=,highres,auto,1
diff --git a/.config/hypr/conf/hypr/conf/monitors/nwg-displays.conf b/.config/hypr/conf/hypr/conf/monitors/nwg-displays.conf
new file mode 100644
index 0000000..953cdff
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/restorevariations.sh b/.config/hypr/conf/hypr/conf/restorevariations.sh
new file mode 100755
index 0000000..d6f0abf
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/window.conf b/.config/hypr/conf/hypr/conf/window.conf
new file mode 100644
index 0000000..47e5ce2
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/window.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/windows/patrick-windows.conf
diff --git a/.config/hypr/conf/hypr/conf/windowrule.conf b/.config/hypr/conf/hypr/conf/windowrule.conf
new file mode 100644
index 0000000..a03ddb4
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windowrule.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/windowrules/default.conf
diff --git a/.config/hypr/conf/hypr/conf/windowrules/default.conf b/.config/hypr/conf/hypr/conf/windowrules/default.conf
new file mode 100644
index 0000000..17c0a04
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windowrules/default.conf
@@ -0,0 +1,26 @@
+# -----------------------------------------------------
+# 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!)$
+
+# Workspaces
+windowrule = workspace 2, class:^(thunar)$
+windowrule = workspace 4, title:^(Zen Browser)$
+
+# 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
+
+# Custom
+windowrule = opacity 0.9, class:^(thunar)$
diff --git a/.config/hypr/conf/hypr/conf/windows/border-1-reverse.conf b/.config/hypr/conf/hypr/conf/windows/border-1-reverse.conf
new file mode 100644
index 0000000..c8b46ef
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-1-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 1
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-1.conf b/.config/hypr/conf/hypr/conf/windows/border-1.conf
new file mode 100644
index 0000000..a8c9178
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-1.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 1
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-2-reverse.conf b/.config/hypr/conf/hypr/conf/windows/border-2-reverse.conf
new file mode 100644
index 0000000..293afe7
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-2-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 2
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-2.conf b/.config/hypr/conf/hypr/conf/windows/border-2.conf
new file mode 100644
index 0000000..8b58764
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-2.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 2
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-3-reverse.conf b/.config/hypr/conf/hypr/conf/windows/border-3-reverse.conf
new file mode 100644
index 0000000..5b10142
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-3-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 3
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-3.conf b/.config/hypr/conf/hypr/conf/windows/border-3.conf
new file mode 100644
index 0000000..905f57b
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-3.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 3
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-4-reverse.conf b/.config/hypr/conf/hypr/conf/windows/border-4-reverse.conf
new file mode 100644
index 0000000..0fd83ec
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-4-reverse.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 4
+ col.active_border = $color8
+ col.inactive_border = $color11
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/border-4.conf b/.config/hypr/conf/hypr/conf/windows/border-4.conf
new file mode 100644
index 0000000..d2f4da3
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/border-4.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 4
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/default.conf b/.config/hypr/conf/hypr/conf/windows/default.conf
new file mode 100644
index 0000000..905f57b
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/default.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "Default"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 3
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/no-border-more-gaps.conf b/.config/hypr/conf/hypr/conf/windows/no-border-more-gaps.conf
new file mode 100644
index 0000000..d5240ac
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/conf/windows/no-border.conf b/.config/hypr/conf/hypr/conf/windows/no-border.conf
new file mode 100644
index 0000000..62a0652
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/no-border.conf
@@ -0,0 +1,14 @@
+# -----------------------------------------------------
+# General window layout and colors
+# name: "No Border"
+# -----------------------------------------------------
+
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 0
+ col.active_border = $color11
+ col.inactive_border = $color8
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/windows/patrick-windows.conf b/.config/hypr/conf/hypr/conf/windows/patrick-windows.conf
new file mode 100644
index 0000000..4f0f708
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/windows/patrick-windows.conf
@@ -0,0 +1,9 @@
+general {
+ gaps_in = 10
+ gaps_out = 14
+ border_size = 3
+ col.active_border = rgba(66688DFF)
+ col.inactive_border = rgba(1E2049FF)
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/hypr/conf/workspace.conf b/.config/hypr/conf/hypr/conf/workspace.conf
new file mode 100644
index 0000000..821f5ed
--- /dev/null
+++ b/.config/hypr/conf/hypr/conf/workspace.conf
@@ -0,0 +1 @@
+source = ~/.config/hypr/conf/workspaces/default.conf
diff --git a/.config/hypr/conf/hypr/conf/workspaces/default.conf b/.config/hypr/conf/hypr/conf/workspaces/default.conf
new file mode 100644
index 0000000..32d04ac
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blackwhite b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite
new file mode 100644
index 0000000..0f985b3
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite
@@ -0,0 +1 @@
+magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
\ No newline at end of file
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-blur b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-blur
new file mode 100644
index 0000000..85a5a51
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness40 b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness40
new file mode 100644
index 0000000..97cafb6
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness60 b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness60
new file mode 100644
index 0000000..3dc7788
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness80 b/.config/hypr/conf/hypr/effects/wallpaper/blackwhite-brightness80
new file mode 100644
index 0000000..67bb0ce
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blur1 b/.config/hypr/conf/hypr/effects/wallpaper/blur1
new file mode 100644
index 0000000..f401e1a
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/blur1
@@ -0,0 +1 @@
+magick $wallpaper -blur "50x30" $used_wallpaper
\ No newline at end of file
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness40 b/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness40
new file mode 100644
index 0000000..d79704a
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness60 b/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness60
new file mode 100644
index 0000000..73028f6
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness80 b/.config/hypr/conf/hypr/effects/wallpaper/blur1-brightness80
new file mode 100644
index 0000000..c1984aa
--- /dev/null
+++ b/.config/hypr/conf/hypr/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/.config/hypr/conf/hypr/effects/wallpaper/blur2 b/.config/hypr/conf/hypr/effects/wallpaper/blur2
new file mode 100644
index 0000000..cb13630
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/blur2
@@ -0,0 +1 @@
+magick $wallpaper -blur "10x30" $used_wallpaper
\ No newline at end of file
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/negate b/.config/hypr/conf/hypr/effects/wallpaper/negate
new file mode 100644
index 0000000..971c7aa
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/negate
@@ -0,0 +1 @@
+magick $wallpaper -negate $used_wallpaper
\ No newline at end of file
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness40 b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness40
new file mode 100644
index 0000000..f6b8bd8
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness40
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness60 b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness60
new file mode 100644
index 0000000..bf45cd6
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness60
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
diff --git a/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness80 b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness80
new file mode 100644
index 0000000..2d342c1
--- /dev/null
+++ b/.config/hypr/conf/hypr/effects/wallpaper/negate-brightness80
@@ -0,0 +1,2 @@
+magick $wallpaper -negate $used_wallpaper
+magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
diff --git a/.config/hypr/conf/hypr/hypridle.conf b/.config/hypr/conf/hypr/hypridle.conf
new file mode 100644
index 0000000..1d2ba37
--- /dev/null
+++ b/.config/hypr/conf/hypr/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 = 1800 # 10min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 3600 # 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 = 4800 # 30min
+ on-timeout = systemctl suspend # suspend pc
+}
diff --git a/.config/hypr/conf/hypr/hyprland.conf b/.config/hypr/conf/hypr/hyprland.conf
new file mode 100644
index 0000000..36261a8
--- /dev/null
+++ b/.config/hypr/conf/hypr/hyprland.conf
@@ -0,0 +1,78 @@
+# _ _ _ _
+# | | | |_ _ _ __ _ __| | __ _ _ __ __| |
+# | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` |
+# | _ | |_| | |_) | | | | (_| | | | | (_| |
+# |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_|
+# |___/|_|
+#
+# -----------------------------------------------------
+# 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 pywal color file
+# -----------------------------------------------------
+source = ~/.config/hypr/colors.conf
+$color8 = $on_primary_fixed
+$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 --all WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+#env = XDG_CURRENT_DESKTOP,hyprland
+exec-once = /usr/lib/xdg-desktop-portal-hyprland
+
+
+# -----------------------------------------------------
+# ML4W Configuration
+# -----------------------------------------------------
+# source = ~/.config/hypr/conf/ml4w.conf
+
+# -----------------------------------------------------
+# Custom
+# -----------------------------------------------------
+source = ~/.config/hypr/conf/custom.conf
+
diff --git a/.config/hypr/conf/hypr/hyprlock.conf b/.config/hypr/conf/hypr/hyprlock.conf
new file mode 100644
index 0000000..913a281
--- /dev/null
+++ b/.config/hypr/conf/hypr/hyprlock.conf
@@ -0,0 +1,98 @@
+# _ _ _
+# | |__ _ _ _ __ _ __| | ___ ___| | __
+# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ /
+# | | | | |_| | |_) | | | | (_) | (__| <
+# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\
+# |___/|_|
+#
+
+source = colors.conf
+
+general {
+ ignore_empty_input = true
+}
+
+background {
+ monitor =
+ path = $HOME/.config/ml4w/cache/blurred_wallpaper.png # only png supported for now
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ outline_thickness = 3
+ 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
+ outer_color = $on_primary
+ inner_color = $on_surface
+ font_color = $surface
+ 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 = 40 # -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
+ fail_transition = 300 # transition time in ms between normal outer_color and fail_color
+ 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 = $on_surface
+ font_size = 55
+ font_family = Fira Semibold
+ position = -100, 70
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+label {
+ monitor =
+ text = $USER
+ color = $on_surface
+ font_size = 20
+ font_family = Fira Semibold
+ position = -100, 160
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+image {
+ monitor =
+ path = $HOME/.config/ml4w/cache/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
+}
diff --git a/.config/hypr/conf/hypr/hyprpaper.conf b/.config/hypr/conf/hypr/hyprpaper.conf
new file mode 100644
index 0000000..9d2c1a3
--- /dev/null
+++ b/.config/hypr/conf/hypr/hyprpaper.conf
@@ -0,0 +1,3 @@
+preload = $HOME/.config/hypr/wallpapers/endeavouros.png
+wallpaper = ,$HOME/.config/hypr/wallpapers/endeavouros.png
+splash = false
diff --git a/.config/hypr/conf/hypr/scripts/cleanup.sh b/.config/hypr/conf/hypr/scripts/cleanup.sh
new file mode 100755
index 0000000..8aaf0d6
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/cleanup.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# ____ _
+# / ___| | ___ __ _ _ __ _ _ _ __
+# | | | |/ _ \/ _` | '_ \| | | | '_ \
+# | |___| | __/ (_| | | | | |_| | |_) |
+# \____|_|\___|\__,_|_| |_|\__,_| .__/
+# |_|
+#
+
+# Remove gamemode flag
+if [ -f ~/.cache/gamemode ]; then
+ rm ~/.cache/gamemode
+ echo ":: ~/.cache/gamemode removed"
+fi
diff --git a/.config/hypr/conf/hypr/scripts/diagnosis.sh b/.config/hypr/conf/hypr/scripts/diagnosis.sh
new file mode 100755
index 0000000..752e4c7
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/diagnosis.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+# ____ _ _
+# | _ \(_) __ _ __ _ _ __ ___ ___(_)___
+# | | | | |/ _` |/ _` | '_ \ / _ \/ __| / __|
+# | |_| | | (_| | (_| | | | | (_) \__ \ \__ \
+# |____/|_|\__,_|\__, |_| |_|\___/|___/_|___/
+# |___/
+#
+
+clear
+sleep 0.5
+figlet -f smslant "Diagnosis"
+echo
+echo "This script will check that essential packages and "
+echo "execution commands are available on your system."
+echo
+
+_commandExists() {
+ package="$1";
+ if ! type $package > /dev/null 2>&1; then
+ echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
+ else
+ echo ":: OK: $package found."
+ fi
+}
+
+_folderExists() {
+ folder="$1";
+ if [ ! -d $folder ]; then
+ echo ":: ERROR: $folder doesn't exists."
+ else
+ echo ":: OK: $folder found."
+ fi
+}
+
+_commandExists "rofi" "rofi-wayland"
+_commandExists "dunst" "dunst"
+_commandExists "waybar" "waybar"
+_commandExists "hyprpaper" "hyprpaper"
+_commandExists "hyprlock" "hyprpaper"
+_commandExists "hypridle" "hyprpaper"
+_commandExists "hyprshade" "hyprshade"
+_commandExists "wal" "python-pywal"
+_commandExists "gum" "gum"
+_commandExists "wlogout" "wlogout"
+_commandExists "ags" "ags"
+_commandExists "magick" "imagemagick"
+_commandExists "figlet" "figlet"
+_commandExists "waypaper" "waypaper"
+
+echo
+echo "Press return to exit"
+read
\ No newline at end of file
diff --git a/.config/hypr/conf/hypr/scripts/disabledm.sh b/.config/hypr/conf/hypr/scripts/disabledm.sh
new file mode 100755
index 0000000..7abe7c3
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/disabledm.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+clear
+figlet -f smslant "Disable DM"
+echo "Hyprland recommends the start with the tty login."
+echo "You can deactivate the current display manager (if exists)."
+echo ""
+echo "-> Do you really want to deactivate the display manager?"
+while true; do
+ read -p "Do you want to enable the sddm display manager and setup theme? (Yy/Nn): " yn
+ case $yn in
+ [Yy]*)
+ if [ -f /etc/systemd/system/display-manager.service ]; then
+ sudo rm /etc/systemd/system/display-manager.service
+ echo "Current display manager removed."
+ else
+ echo "No active display manager found."
+ fi
+ break
+ ;;
+ [Nn]*)
+ exit
+ break
+ ;;
+ *) echo "Please answer yes or no." ;;
+ esac
+done
diff --git a/.config/hypr/conf/hypr/scripts/gamemode.sh b/.config/hypr/conf/hypr/scripts/gamemode.sh
new file mode 100755
index 0000000..283f9a4
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/gamemode.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# ____ _
+# / ___| __ _ _ __ ___ ___ _ __ ___ ___ __| | ___
+# | | _ / _` | '_ ` _ \ / _ \ '_ ` _ \ / _ \ / _` |/ _ \
+# | |_| | (_| | | | | | | __/ | | | | | (_) | (_| | __/
+# \____|\__,_|_| |_| |_|\___|_| |_| |_|\___/ \__,_|\___|
+#
+#
+
+if [ -f $HOME/.config/ml4w/settings/gamemode-enabled ]; then
+ hyprctl reload
+ rm $HOME/.config/ml4w/settings/gamemode-enabled
+ notify-send "Gamemode deactivated" "Animations and blur enabled"
+else
+ 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"
+ touch $HOME/.config/ml4w/settings/gamemode-enabled
+ notify-send "Gamemode activated" "Animations and blur disabled"
+fi
diff --git a/.config/hypr/conf/hypr/scripts/gtk.sh b/.config/hypr/conf/hypr/scripts/gtk.sh
new file mode 100755
index 0000000..5229899
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/gtk.sh
@@ -0,0 +1,53 @@
+#!/bin/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" ]; 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/.config/hypr/conf/hypr/scripts/hypridle.sh b/.config/hypr/conf/hypr/scripts/hypridle.sh
new file mode 100755
index 0000000..9922697
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/hypridle.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# _ _ _ _ _
+# | | | |_ _ _ __ _ __(_) __| | | ___
+# | |_| | | | | '_ \| '__| |/ _` | |/ _ \
+# | _ | |_| | |_) | | | | (_| | | __/
+# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
+# |___/|_|
+#
+
+SERVICE="hypridle"
+if [[ "$1" == "status" ]]; then
+ sleep 1
+ if pgrep -x "$SERVICE" >/dev/null; then
+ echo '{"text": "RUNNING", "class": "active", "tooltip": "Screen locking active\nLeft: Deactivate"}'
+ else
+ echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "Screen locking deactivated\nLeft: Activate"}'
+ fi
+fi
+if [[ "$1" == "toggle" ]]; then
+ if pgrep -x "$SERVICE" >/dev/null; then
+ killall hypridle
+ else
+ hypridle
+ fi
+fi
diff --git a/.config/hypr/conf/hypr/scripts/hyprshade.sh b/.config/hypr/conf/hypr/scripts/hyprshade.sh
new file mode 100755
index 0000000..3430103
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/hyprshade.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+# _ _ _ _
+# | | | |_ _ _ __ _ __ ___| |__ __ _ __| | ___
+# | |_| | | | | '_ \| '__/ __| '_ \ / _` |/ _` |/ _ \
+# | _ | |_| | |_) | | \__ \ | | | (_| | (_| | __/
+# |_| |_|\__, | .__/|_| |___/_| |_|\__,_|\__,_|\___|
+# |___/|_|
+#
+
+if [[ "$1" == "rofi" ]]; then
+
+ # Open rofi to select the Hyprshade filter for toggle
+ options="$(hyprshade ls)\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+S"
+ 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/.config/hypr/conf/hypr/scripts/init-wallpaper-engine.sh b/.config/hypr/conf/hypr/scripts/init-wallpaper-engine.sh
new file mode 100755
index 0000000..483704e
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/init-wallpaper-engine.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# __ ______ _____ _
+# \ \ / / _ \ | ____|_ __ __ _(_)_ __ ___
+# \ \ /\ / /| |_) | | _| | '_ \ / _` | | '_ \ / _ \
+# \ V V / | __/ | |___| | | | (_| | | | | | __/
+# \_/\_/ |_| |_____|_| |_|\__, |_|_| |_|\___|
+# |___/
+#
+
+wallpaper_engine=$(cat $HOME/.config/ml4w/settings/wallpaper-engine.sh)
+if [ "$wallpaper_engine" == "swww" ]; then
+ # swww
+ echo ":: Using swww"
+ swww init
+ swww-daemon --format xrgb
+ sleep 0.5
+ ~/.config/hypr/scripts/wallpaper.sh init
+elif [ "$wallpaper_engine" == "hyprpaper" ]; then
+ # hyprpaper
+ echo ":: Using hyprpaper"
+ sleep 0.5
+ ~/.config/hypr/scripts/wallpaper.sh init
+else
+ echo ":: Wallpaper Engine disabled"
+ ~/.config/hypr/scripts/wallpaper.sh init
+fi
diff --git a/.config/hypr/conf/hypr/scripts/keybindings.sh b/.config/hypr/conf/hypr/scripts/keybindings.sh
new file mode 100755
index 0000000..e6f25e2
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/keybindings.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# _ _ _ _ _
+# | | _____ _ _| |__ (_)_ __ __| (_)_ __ __ _ ___
+# | |/ / _ \ | | | '_ \| | '_ \ / _` | | '_ \ / _` / __|
+# | < __/ |_| | |_) | | | | | (_| | | | | | (_| \__ \
+# |_|\_\___|\__, |_.__/|_|_| |_|\__,_|_|_| |_|\__, |___/
+# |___/ |___/
+#
+# -----------------------------------------------------
+# Get keybindings location based on variation
+# -----------------------------------------------------
+config_file=$(<~/.config/hypr/conf/keybinding.conf)
+config_file=${config_file//source = ~//home/$USER}
+
+# -----------------------------------------------------
+# 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
+rofi -dmenu -i -markup -eh 2 -replace -p "Keybinds" -config ~/.config/rofi/config-compact.rasi <<<"$keybinds"
diff --git a/.config/hypr/conf/hypr/scripts/loadconfig.sh b/.config/hypr/conf/hypr/scripts/loadconfig.sh
new file mode 100755
index 0000000..825fc1b
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/loadconfig.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+hyprctl reload
diff --git a/.config/hypr/conf/hypr/scripts/ml4w-autostart.sh b/.config/hypr/conf/hypr/scripts/ml4w-autostart.sh
new file mode 100755
index 0000000..0566294
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/ml4w-autostart.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+if [ -f ~/.config/ml4w/version/compare.sh ] ;then
+ $HOME/.config/ml4w/version/compare.sh
+fi
+
+if [ ! -f ~/.cache/ml4w-post-install ] ;then
+ if [ ! -f $HOME/.cache/ml4w-welcome-autostart ] ;then
+ echo ":: Autostart of ML4W Welcome App enabled."
+ if [ -f $HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage ] ;then
+ echo ":: Starting ML4W Welcome App ..."
+ sleep 2
+ $HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage
+ else
+ echo ":: ML4W Welcome App not found."
+ fi
+
+ else
+ echo ":: Autostart of ML4W Welcome App disabled."
+ fi
+else
+ rm ~/.cache/ml4w-post-install
+ terminal=$(cat ~/.config/ml4w/settings/terminal.sh)
+ $terminal --class dotfiles-floating -e ~/.config/ml4w/postinstall.sh
+ $HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage
+fi
diff --git a/.config/hypr/conf/hypr/scripts/moveTo.sh b/.config/hypr/conf/hypr/scripts/moveTo.sh
new file mode 100755
index 0000000..a42030e
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/moveTo.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# __ __ _
+# | \/ | _____ _____ | |_ ___
+# | |\/| |/ _ \ \ / / _ \ | __/ _ \
+# | | | | (_) \ V / __/ | || (_) |
+# |_| |_|\___/ \_/ \___| \__\___/
+#
+
+# 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/.config/hypr/conf/hypr/scripts/power.sh b/.config/hypr/conf/hypr/scripts/power.sh
new file mode 100755
index 0000000..d0069db
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/power.sh
@@ -0,0 +1,77 @@
+#!/bin/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
+}
+
+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/.config/hypr/conf/hypr/scripts/restart-hypridle.sh b/.config/hypr/conf/hypr/scripts/restart-hypridle.sh
new file mode 100755
index 0000000..0fe49fe
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/restart-hypridle.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+killall hypridle
+sleep 1
+hypridle &
+notify-send "hypridle has been restarted."
diff --git a/.config/hypr/conf/hypr/scripts/screenshot.sh b/.config/hypr/conf/hypr/scripts/screenshot.sh
new file mode 100755
index 0000000..9e16793
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/screenshot.sh
@@ -0,0 +1,225 @@
+#!/bin/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
+
+# 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/.config/hypr/conf/hypr/scripts/systeminfo.sh b/.config/hypr/conf/hypr/scripts/systeminfo.sh
new file mode 100755
index 0000000..21ad25e
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/systeminfo.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+clear
+figlet -f smslant "Systeminfo"
+echo
+setsid hyprctl systeminfo
+echo
+echo "Press return to exit"
+read
diff --git a/.config/hypr/conf/hypr/scripts/toggle-animations.sh b/.config/hypr/conf/hypr/scripts/toggle-animations.sh
new file mode 100755
index 0000000..5b89d8b
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/toggle-animations.sh
@@ -0,0 +1,13 @@
+#!/bin/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/.config/hypr/conf/hypr/scripts/toggleallfloat.sh b/.config/hypr/conf/hypr/scripts/toggleallfloat.sh
new file mode 100755
index 0000000..dab23c5
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/toggleallfloat.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+# _ _ _ __ _ _
+# / \ | | |/ _| | ___ __ _| |_
+# / _ \ | | | |_| |/ _ \ / _` | __|
+# / ___ \| | | _| | (_) | (_| | |_
+# /_/ \_\_|_|_| |_|\___/ \__,_|\__|
+#
+
+hyprctl dispatch workspaceopt allfloat
+notify-send "Windows on this workspace toggled to floating/tiling"
diff --git a/.config/hypr/conf/hypr/scripts/wallpaper-automation.sh b/.config/hypr/conf/hypr/scripts/wallpaper-automation.sh
new file mode 100755
index 0000000..0db6e40
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/wallpaper-automation.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# _ _ __ ______
+# / \ _ _| |_ ___ \ \ / / _ \
+# / _ \| | | | __/ _ \ \ \ /\ / /| |_) |
+# / ___ \ |_| | || (_) | \ V V / | __/
+# /_/ \_\__,_|\__\___/ \_/\_/ |_|
+#
+
+sec=$(cat ~/.config/ml4w/settings/wallpaper-automation.sh)
+_setWallpaperRandomly() {
+ waypaper --random
+ echo ":: Next wallpaper in 60 seconds..."
+ sleep $sec
+ _setWallpaperRandomly
+}
+
+if [ ! -f ~/.config/ml4w/cache/wallpaper-automation ]; then
+ touch ~/.config/ml4w/cache/wallpaper-automation
+ echo ":: Start wallpaper automation script"
+ notify-send "Wallpaper automation process started" "Wallpaper will be changed every $sec seconds."
+ _setWallpaperRandomly
+else
+ rm ~/.config/ml4w/cache/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/.config/hypr/conf/hypr/scripts/wallpaper-cache.sh b/.config/hypr/conf/hypr/scripts/wallpaper-cache.sh
new file mode 100755
index 0000000..5351e18
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/wallpaper-cache.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+generated_versions="$HOME/.config/ml4w/cache/wallpaper-generated"
+rm $generated_versions/*
+echo ":: Wallpaper cache cleared"
+notify-send "Wallpaper cache cleared"
diff --git a/.config/hypr/conf/hypr/scripts/wallpaper-effects.sh b/.config/hypr/conf/hypr/scripts/wallpaper-effects.sh
new file mode 100755
index 0000000..e861e6c
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/wallpaper-effects.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# __ ______ _____ __ __ _
+# \ \ / / _ \ | ____|/ _|/ _| ___ ___| |_ ___
+# \ \ /\ / /| |_) | | _| | |_| |_ / _ \/ __| __/ __|
+# \ V V / | __/ | |___| _| _| __/ (__| |_\__ \
+# \_/\_/ |_| |_____|_| |_| \___|\___|\__|___/
+#
+
+# Get current wallpaper
+cache_file="$HOME/.config/ml4w/cache/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/.config/hypr/conf/hypr/scripts/wallpaper-restore.sh b/.config/hypr/conf/hypr/scripts/wallpaper-restore.sh
new file mode 100755
index 0000000..8125c7a
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/wallpaper-restore.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# _ _
+# __ ____ _| | |_ __ __ _ _ __ ___ _ __
+# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__|
+# \ V V / (_| | | | |_) | (_| | |_) | __/ |
+# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
+# |_| |_|
+#
+# -----------------------------------------------------
+# Restore last wallpaper
+# -----------------------------------------------------
+
+# -----------------------------------------------------
+# Set defaults
+# -----------------------------------------------------
+
+defaultwallpaper="$HOME/wallpaper/default.jpg"
+cachefile="$HOME/.config/ml4w/cache/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"
+waypaper --wallpaper "$wallpaper"
diff --git a/.config/hypr/conf/hypr/scripts/wallpaper.sh b/.config/hypr/conf/hypr/scripts/wallpaper.sh
new file mode 100755
index 0000000..0476de0
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/wallpaper.sh
@@ -0,0 +1,190 @@
+#!/bin/bash
+# _ __ ____
+# | | /| / /__ _/ / /__ ___ ____ ___ ____
+# | |/ |/ / _ `/ / / _ \/ _ `/ _ \/ -_) __/
+# |__/|__/\_,_/_/_/ .__/\_,_/ .__/\__/_/
+# /_/ /_/
+# -----------------------------------------------------
+# Check to use wallpaper cache
+# -----------------------------------------------------
+
+if [ -f ~/.config/ml4w/settings/wallpaper_cache ]; then
+ use_cache=1
+ echo ":: Using Wallpaper Cache"
+else
+ use_cache=0
+ echo ":: Wallpaper Cache disabled"
+fi
+
+# -----------------------------------------------------
+# Set defaults
+# -----------------------------------------------------
+
+force_generate=0
+generatedversions="$HOME/.config/ml4w/cache/wallpaper-generated"
+waypaperrunning=$HOME/.config/ml4w/cache/waypaper-running
+cachefile="$HOME/.config/ml4w/cache/current_wallpaper"
+blurredwallpaper="$HOME/.config/ml4w/cache/blurred_wallpaper.png"
+squarewallpaper="$HOME/.config/ml4w/cache/square_wallpaper.png"
+rasifile="$HOME/.config/ml4w/cache/current_wallpaper.rasi"
+blurfile="$HOME/.config/ml4w/settings/blur.sh"
+defaultwallpaper="$HOME/wallpaper/default.jpg"
+wallpapereffect="$HOME/.config/ml4w/settings/wallpaper-effect.sh"
+blur="50x30"
+blur=$(cat $blurfile)
+
+# Ensures that the script only run once if wallpaper effect enabled
+if [ -f $waypaperrunning ]; then
+ rm $waypaperrunning
+ exit
+fi
+
+# Create folder with generated versions of wallpaper if not exists
+if [ ! -d $generatedversions ]; then
+ mkdir $generatedversions
+fi
+
+# -----------------------------------------------------
+# 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
+echo ":: 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
+echo ":: Path of current wallpaper copied to $cachefile"
+
+# -----------------------------------------------------
+# Get wallpaper filename
+# -----------------------------------------------------
+wallpaperfilename=$(basename $wallpaper)
+echo ":: 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
+ echo ":: Use cached wallpaper $effect-$wallpaperfilename"
+ else
+ echo ":: 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
+ echo ":: Loading wallpaper $generatedversions/$effect-$wallpaperfilename with effect $effect"
+ echo ":: Setting wallpaper with $used_wallpaper"
+ touch $waypaperrunning
+ waypaper --wallpaper $used_wallpaper
+ else
+ echo ":: Wallpaper effect is set to off"
+ fi
+else
+ effect="off"
+fi
+
+# -----------------------------------------------------
+# Execute matugen
+# -----------------------------------------------------
+
+echo ":: Execute matugen with $used_wallpaper"
+$HOME/.cargo/bin/matugen image $used_wallpaper -m "dark"
+
+# -----------------------------------------------------
+# Execute wallust
+# -----------------------------------------------------
+
+echo ":: Execute wallust with $used_wallpaper"
+$HOME/.cargo/bin/wallust run $used_wallpaper
+
+# -----------------------------------------------------
+# Walcord (NOT SUPPORTED)
+# -----------------------------------------------------
+
+if type walcord >/dev/null 2>&1; then
+ walcord
+fi
+
+# -----------------------------------------------------
+# Reload Waybar
+# -----------------------------------------------------
+
+sleep 2
+$HOME/.config/waybar/launch.sh
+# killall -SIGUSR2 waybar
+
+# -----------------------------------------------------
+# 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
+ echo ":: Use cached wallpaper blur-$blur-$effect-$wallpaperfilename"
+else
+ echo ":: 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
+ echo ":: Resized to 75%"
+ if [ ! "$blur" == "0x0" ]; then
+ magick $blurredwallpaper -blur $blur $blurredwallpaper
+ cp $blurredwallpaper $generatedversions/blur-$blur-$effect-$wallpaperfilename.png
+ echo ":: 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
+# -----------------------------------------------------
+
+echo ":: Generate new cached wallpaper square-$wallpaperfilename"
+magick $tmpwallpaper -gravity Center -extent 1:1 $squarewallpaper
+cp $squarewallpaper $generatedversions/square-$wallpaperfilename.png
diff --git a/.config/hypr/conf/hypr/scripts/xdg.sh b/.config/hypr/conf/hypr/scripts/xdg.sh
new file mode 100755
index 0000000..00a4af6
--- /dev/null
+++ b/.config/hypr/conf/hypr/scripts/xdg.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+# __ ______ ____
+# \ \/ / _ \ / ___|
+# \ /| | | | | _
+# / \| |_| | |_| |
+# /_/\_\____/ \____|
+#
+
+# Setup Timers
+_sleep1="0.1"
+_sleep2="0.5"
+_sleep3="2"
+
+# 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 $_sleep1
+
+# 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
diff --git a/.config/hypr/conf/hypr/shaders/blue-light-filter-25.glsl b/.config/hypr/conf/hypr/shaders/blue-light-filter-25.glsl
new file mode 100644
index 0000000..149b143
--- /dev/null
+++ b/.config/hypr/conf/hypr/shaders/blue-light-filter-25.glsl
@@ -0,0 +1,43 @@
+// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
+
+precision highp float;
+varying vec2 v_texcoord;
+uniform sampler2D tex;
+
+const float temperature = 3000.0;
+const float temperatureStrength = 0.25;
+
+#define WithQuickAndDirtyLuminancePreservation
+const float LuminancePreservationFactor = 1.0;
+
+// function from https://www.shadertoy.com/view/4sc3D7
+// valid from 1000 to 40000 K (and additionally 0 for pure full white)
+vec3 colorTemperatureToRGB(const in float temperature) {
+ // values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
+ mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
+ vec3(0.0, 1669.5803561666639, 2575.2827530017594),
+ vec3(1.0, 1.3302673723350029, 1.8993753891711275))
+ : mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
+ vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
+ vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
+ return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
+ vec3(1.0), smoothstep(1000.0, 0.0, temperature));
+}
+
+void main() {
+ vec4 pixColor = texture2D(tex, v_texcoord);
+
+ // RGB
+ vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
+
+#ifdef WithQuickAndDirtyLuminancePreservation
+ color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
+ LuminancePreservationFactor);
+#endif
+
+ color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
+
+ vec4 outCol = vec4(color, pixColor[3]);
+
+ gl_FragColor = outCol;
+}
diff --git a/.config/hypr/conf/hypr/shaders/blue-light-filter-50.glsl b/.config/hypr/conf/hypr/shaders/blue-light-filter-50.glsl
new file mode 100644
index 0000000..ac5ea21
--- /dev/null
+++ b/.config/hypr/conf/hypr/shaders/blue-light-filter-50.glsl
@@ -0,0 +1,43 @@
+// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
+
+precision highp float;
+varying vec2 v_texcoord;
+uniform sampler2D tex;
+
+const float temperature = 3000.0;
+const float temperatureStrength = 0.5;
+
+#define WithQuickAndDirtyLuminancePreservation
+const float LuminancePreservationFactor = 1.0;
+
+// function from https://www.shadertoy.com/view/4sc3D7
+// valid from 1000 to 40000 K (and additionally 0 for pure full white)
+vec3 colorTemperatureToRGB(const in float temperature) {
+ // values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
+ mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
+ vec3(0.0, 1669.5803561666639, 2575.2827530017594),
+ vec3(1.0, 1.3302673723350029, 1.8993753891711275))
+ : mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
+ vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
+ vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
+ return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
+ vec3(1.0), smoothstep(1000.0, 0.0, temperature));
+}
+
+void main() {
+ vec4 pixColor = texture2D(tex, v_texcoord);
+
+ // RGB
+ vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
+
+#ifdef WithQuickAndDirtyLuminancePreservation
+ color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
+ LuminancePreservationFactor);
+#endif
+
+ color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
+
+ vec4 outCol = vec4(color, pixColor[3]);
+
+ gl_FragColor = outCol;
+}
diff --git a/.config/hypr/conf/hypr/shaders/blue-light-filter-75.glsl b/.config/hypr/conf/hypr/shaders/blue-light-filter-75.glsl
new file mode 100644
index 0000000..c8c1b23
--- /dev/null
+++ b/.config/hypr/conf/hypr/shaders/blue-light-filter-75.glsl
@@ -0,0 +1,43 @@
+// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
+
+precision highp float;
+varying vec2 v_texcoord;
+uniform sampler2D tex;
+
+const float temperature = 3000.0;
+const float temperatureStrength = 0.75;
+
+#define WithQuickAndDirtyLuminancePreservation
+const float LuminancePreservationFactor = 1.0;
+
+// function from https://www.shadertoy.com/view/4sc3D7
+// valid from 1000 to 40000 K (and additionally 0 for pure full white)
+vec3 colorTemperatureToRGB(const in float temperature) {
+ // values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
+ mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
+ vec3(0.0, 1669.5803561666639, 2575.2827530017594),
+ vec3(1.0, 1.3302673723350029, 1.8993753891711275))
+ : mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
+ vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
+ vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
+ return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
+ vec3(1.0), smoothstep(1000.0, 0.0, temperature));
+}
+
+void main() {
+ vec4 pixColor = texture2D(tex, v_texcoord);
+
+ // RGB
+ vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
+
+#ifdef WithQuickAndDirtyLuminancePreservation
+ color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
+ LuminancePreservationFactor);
+#endif
+
+ color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
+
+ vec4 outCol = vec4(color, pixColor[3]);
+
+ gl_FragColor = outCol;
+}
diff --git a/.config/hypr/conf/hypr/shaders/invert-colors.glsl b/.config/hypr/conf/hypr/shaders/invert-colors.glsl
new file mode 100644
index 0000000..a504901
--- /dev/null
+++ b/.config/hypr/conf/hypr/shaders/invert-colors.glsl
@@ -0,0 +1,8 @@
+precision highp float;
+varying vec2 v_texcoord;
+uniform sampler2D tex;
+
+void main() {
+ vec4 pixColor = texture2D(tex, v_texcoord);
+ gl_FragColor = vec4(1.0 - pixColor.r, 1.0 - pixColor.g, 1.0 - pixColor.b, pixColor.a);
+}
diff --git a/.config/hypr/conf/hypr/wallpapers/endeavouros.png b/.config/hypr/conf/hypr/wallpapers/endeavouros.png
new file mode 100644
index 0000000..c581289
Binary files /dev/null and b/.config/hypr/conf/hypr/wallpapers/endeavouros.png differ
diff --git a/.config/hypr/conf/hypr/wallpapers/void.png b/.config/hypr/conf/hypr/wallpapers/void.png
new file mode 100644
index 0000000..6ccbd45
Binary files /dev/null and b/.config/hypr/conf/hypr/wallpapers/void.png differ
diff --git a/.config/hypr/conf/windowrules/default.conf b/.config/hypr/conf/windowrules/default.conf
index 8ee42f1..17c0a04 100644
--- a/.config/hypr/conf/windowrules/default.conf
+++ b/.config/hypr/conf/windowrules/default.conf
@@ -2,13 +2,17 @@
# Window rules
# -----------------------------------------------------
-windowrule = tile, title:^(Microsoft-edge)$
-windowrule = tile, title:^(Brave-browser)$
-windowrule = tile, title:^(Chromium)$
+# 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)$
+windowrule = float, title:^(Qalculate!)$
+
+# Workspaces
+windowrule = workspace 2, class:^(thunar)$
+windowrule = workspace 4, title:^(Zen Browser)$
# Browser Picture in Picture
windowrule = float, title:^(Picture-in-Picture)$
@@ -17,3 +21,6 @@ windowrule = move 69.5% 4%, title:^(Picture-in-Picture)$
# idleinhibit
windowrule = idleinhibit fullscreen,class:([window]) # Available modes: none, always, focus, fullscreen
+
+# Custom
+windowrule = opacity 0.9, class:^(thunar)$
diff --git a/.config/hypr/wallpapers/endeavouros.png b/.config/hypr/wallpapers/endeavouros.png
old mode 100755
new mode 100644
index e5c8aaa..c581289
Binary files a/.config/hypr/wallpapers/endeavouros.png and b/.config/hypr/wallpapers/endeavouros.png differ
diff --git a/.config/qBittorrent/categories.json b/.config/qBittorrent/categories.json
new file mode 100644
index 0000000..2c63c08
--- /dev/null
+++ b/.config/qBittorrent/categories.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/.config/qBittorrent/lockfile b/.config/qBittorrent/lockfile
new file mode 100644
index 0000000..e69de29
diff --git a/.config/qBittorrent/qBittorrent-data.conf b/.config/qBittorrent/qBittorrent-data.conf
new file mode 100644
index 0000000..c882169
--- /dev/null
+++ b/.config/qBittorrent/qBittorrent-data.conf
@@ -0,0 +1,2 @@
+[Stats]
+AllStats="@Variant(\0\0\0\x1c\0\0\0\x2\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0\x44\0L\0\0\0\x4\0\0\0J\x92IM0\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0U\0L\0\0\0\x4\0\0\0\x13\xbcQ\x10=)"
diff --git a/.config/qBittorrent/qBittorrent.conf b/.config/qBittorrent/qBittorrent.conf
new file mode 100644
index 0000000..090c30b
--- /dev/null
+++ b/.config/qBittorrent/qBittorrent.conf
@@ -0,0 +1,83 @@
+[AboutDialog]
+Size=@Size(545 373)
+
+[AddNewTorrentDialog]
+DialogSize=@Size(930 1009)
+DownloadPathHistory=
+RememberLastSavePath=false
+SavePathHistory=/home/patrick/Downloads
+
+[Application]
+FileLogger\Age=1
+FileLogger\AgeType=1
+FileLogger\Backup=true
+FileLogger\DeleteOld=true
+FileLogger\Enabled=true
+FileLogger\MaxSizeBytes=66560
+FileLogger\Path=/home/patrick/.local/share/qBittorrent/logs
+GUI\Notifications\TorrentAdded=false
+
+[BitTorrent]
+Session\MaxActiveDownloads=1
+Session\Port=8906
+Session\QueueingSystemEnabled=true
+Session\SSL\Port=6494
+Session\StartPaused=false
+
+[CookiesDialog]
+Size=@Size(618 369)
+
+[Core]
+AutoDeleteAddedTorrentFile=Never
+
+[DownloadFromURLDialog]
+Size=@Size(544 220)
+
+[GUI]
+DownloadTrackerFavicon=false
+Log\Enabled=false
+MainWindow\FiltersSidebarWidth=228
+Qt6\AddNewTorrentDialog\SplitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1\xc2\0\0\x1\x9e\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
+Qt6\AddNewTorrentDialog\TreeHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x6\x34\0\0\0\x3\0\0\0\x5\0\0\0\x64\0\0\0\x4\0\0\0\x64\0\0\0\x2\0\0\0\x64\0\0\x1\xaf\0\0\0\x6\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\xa1\0\0\0\x1\0\0\0\0\0\0\0\x8d\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x81\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+Qt6\CookiesDialog\ViewState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2$\0\0\0\x5\x1\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x94\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+Qt6\TorrentProperties\FilesListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x6\x64\0\0\0\x6\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\x1\xdc\0\0\0\x1\0\0\0\0\0\0\0\xb1\0\0\0\x1\0\0\0\0\0\0\0\x8d\0\0\0\x1\0\0\0\0\0\0\0\x8d\0\0\0\x1\0\0\0\0\0\0\0\x8d\0\0\0\x1\0\0\0\0\0\0\x2\x30\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+Qt6\TorrentProperties\PeerListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\xf@@\0\0\0\x2\0\0\0\xe\0\0\0\x64\0\0\0\x6\0\0\0\x64\0\0\x5\x14\0\0\0\xf\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\xf\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+Qt6\TorrentProperties\TrackerListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4L\0\0\0\v\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\v\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+Qt6\TransferList\HeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0%\b\x90\xff\x7f\x1f\0\0\0\x17\0\0\0\x13\0\0\0\x64\0\0\0\x17\0\0\0\x64\0\0\0!\0\0\0\x64\0\0\0\x18\0\0\0\x64\0\0\0$\0\0\0\x64\0\0\0\x1d\0\0\0\x64\0\0\0\"\0\0\0\x64\0\0\0\f\0\0\0\x64\0\0\0\xf\0\0\0\x64\0\0\0\x1b\0\0\0\x64\0\0\0\x14\0\0\0\x64\0\0\0\x16\0\0\0\x64\0\0\0 \0\0\0\x64\0\0\0\x12\0\0\0\x64\0\0\0\x3\0\0\0\x64\0\0\0#\0\0\0\x64\0\0\0\x1a\0\0\0\x64\0\0\0\x1c\0\0\0\x64\0\0\0\x10\0\0\0\x64\0\0\0\x1e\0\0\0\x64\0\0\0\x15\0\0\0\x64\0\0\0\x11\0\0\0\x64\0\0\0\x19\0\0\0\x64\0\0\x6\x8c\0\0\0%\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0%\0\0\0\x37\0\0\0\x1\0\0\0\0\0\0\x1\xa5\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
+StartUpWindowState=Hidden
+UIThemeDialog\Size=@Size(451 348)
+
+[LegalNotice]
+Accepted=true
+
+[MainWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xa1\0\0\x3\xf0\0\0\0\0\0\0\0\0\0\0\x3\xa1\0\0\x3\xf0\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xa1\0\0\x3\xf0)
+
+[Meta]
+MigrationVersion=8
+
+[OptionsDialog]
+HorizontalSplitterSizes=147, 606
+LastViewedPage=0
+Size=@Size(779 591)
+
+[Preferences]
+Advanced\TrayIconStyle=MonoDark
+General\CloseToTrayNotified=true
+General\CustomUIThemePath=/home/patrick/.config/qBittorrent/themes/darkstylesheet.qbtheme
+General\Locale=en
+General\MinimizeToTray=true
+General\MinimizeToTrayNotified=true
+General\UseCustomUITheme=true
+
+[RSS]
+AutoDownloader\DownloadRepacks=true
+AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"
+
+[TorrentProperties]
+CurrentTab=4
+SplitterSizes="262,626"
+Visible=true
+
+[TransferListFilters]
+selectedFilterIndex=1
diff --git a/.config/qBittorrent/rss/feeds.json b/.config/qBittorrent/rss/feeds.json
new file mode 100644
index 0000000..2c63c08
--- /dev/null
+++ b/.config/qBittorrent/rss/feeds.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/.config/qBittorrent/rss/storage.lock b/.config/qBittorrent/rss/storage.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.config/qBittorrent/themes/darkstylesheet.qbtheme b/.config/qBittorrent/themes/darkstylesheet.qbtheme
new file mode 100644
index 0000000..4242e79
Binary files /dev/null and b/.config/qBittorrent/themes/darkstylesheet.qbtheme differ
diff --git a/.config/qBittorrent/watched_folders.json b/.config/qBittorrent/watched_folders.json
new file mode 100644
index 0000000..2c63c08
--- /dev/null
+++ b/.config/qBittorrent/watched_folders.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/.zshrc b/.zshrc
index 416f276..2736135 100644
--- a/.zshrc
+++ b/.zshrc
@@ -112,7 +112,7 @@ alias xi="sudo xbps-install -Sy"
alias xu="sudo xbps-install -Syu"
alias xr="sudo xbps-remove -y"
alias xq="sudo xbps-query -Rs"
-alias pi="paru -S"
+alias pi="paru -Syu"
alias py="paru -Syy"
alias pu="paru -Syyu"
alias pr="paru -Rns"
@@ -124,6 +124,13 @@ alias fi="sudo flatpak install"
alias fr="sudo flatpak remove"
alias fu="sudo flatpak update"
alias se="sudoedit"
-alias rb="sudo reboot"
-alias sd="sudo shutdown -h now"
+
+# Void
+# alias rb="sudo reboot"
+# alias sd="sudo shutdown -h now"
+
+
+# Arch
+alias rb="reboot"
+alias sd="shutdown now"