diff --git a/dotfiles/.config/hypr/anim-00-default.lua b/dotfiles/.config/hypr/anim-00-default.lua new file mode 100644 index 0000000..f37ccdc --- /dev/null +++ b/dotfiles/.config/hypr/anim-00-default.lua @@ -0,0 +1,22 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Ported from animations/00-default.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 100, bezier = "liner", style = "loop" }) -- used by rainbow borders and rotating colors; speed clamped from 180 -> Lua hl.animation caps speed at 100 +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" }) + +-- animations for -git or version >0.42.0 +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) diff --git a/dotfiles/.config/hypr/anim-01-default-v2.lua b/dotfiles/.config/hypr/anim-01-default-v2.lua new file mode 100644 index 0000000..bce0367 --- /dev/null +++ b/dotfiles/.config/hypr/anim-01-default-v2.lua @@ -0,0 +1,25 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- old animations +-- Ported from animations/01-default - v2.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("linear", { type = "bezier", points = { { 0.0, 0.0 }, { 1.0, 1.0 } } }) +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("slow", { type = "bezier", points = { { 0, 0.85 }, { 0.3, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.7, 0.6 }, { 0.1, 1.1 } } }) +hl.curve("bounce", { type = "bezier", points = { { 1.1, 1.6 }, { 0.1, 0.85 } } }) +hl.curve("sligshot", { type = "bezier", points = { { 1, -1 }, { 0.15, 1.25 } } }) +hl.curve("nice", { type = "bezier", points = { { 0, 6.9 }, { 0.5, -4.20 } } }) + +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "slow", style = "popin" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "popin" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "linear" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 100, bezier = "linear", style = "loop" }) -- used by rainbow borders and rotating colors; speed clamped from 180 -> Lua hl.animation caps speed at 100 +hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "overshot" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "bounce", style = "popin" }) diff --git a/dotfiles/.config/hypr/anim-03-disable.lua b/dotfiles/.config/hypr/anim-03-disable.lua new file mode 100644 index 0000000..bb006d7 --- /dev/null +++ b/dotfiles/.config/hypr/anim-03-disable.lua @@ -0,0 +1,4 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Ported from animations/03- Disable Animation.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = false } }) diff --git a/dotfiles/.config/hypr/anim-end-4.lua b/dotfiles/.config/hypr/anim-end-4.lua new file mode 100644 index 0000000..5217451 --- /dev/null +++ b/dotfiles/.config/hypr/anim-end-4.lua @@ -0,0 +1,39 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "End-4" +-- credit https://github.com/end-4/dots-hyprland +-- Ported from animations/END-4.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +-- Animation curves +hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } }) -- use with .2s duration + +-- Animation configs +hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "md3_accel", style = "popin 60%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" }) +-- hl.animation({ leaf = "layers", enabled = true, speed = 2, bezier = "md3_decel", style = "slide" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" }) +-- hl.animation({ leaf = "workspaces", enabled = true, speed = 2.5, bezier = "softAcDecel", style = "slide" }) +-- hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slidefade 15%" }) +-- hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidefadevert 15%" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/dotfiles/.config/hypr/anim-hyde-default.lua b/dotfiles/.config/hypr/anim-hyde-default.lua new file mode 100644 index 0000000..efebaf1 --- /dev/null +++ b/dotfiles/.config/hypr/anim-hyde-default.lua @@ -0,0 +1,21 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Default" +-- credit https://github.com/prasanthrangan/hyprdots +-- Ported from animations/HYDE - default.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 5, bezier = "wind", style = "slidevert" }) diff --git a/dotfiles/.config/hypr/anim-hyde-minimal-1.lua b/dotfiles/.config/hypr/anim-hyde-minimal-1.lua new file mode 100644 index 0000000..718baa6 --- /dev/null +++ b/dotfiles/.config/hypr/anim-hyde-minimal-1.lua @@ -0,0 +1,20 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Minimal-1" +-- credit https://github.com/prasanthrangan/hyprdots +-- Ported from animations/HYDE - minimal-1.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/dotfiles/.config/hypr/anim-hyde-minimal-2.lua b/dotfiles/.config/hypr/anim-hyde-minimal-2.lua new file mode 100644 index 0000000..4c53136 --- /dev/null +++ b/dotfiles/.config/hypr/anim-hyde-minimal-2.lua @@ -0,0 +1,14 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Minimal-2" +-- credit https://github.com/prasanthrangan/hyprdots +-- Ported from animations/HYDE - minimal-2.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("quart", { type = "bezier", points = { { 0.25, 1 }, { 0.5, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "quart", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "fade", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "quart" }) diff --git a/dotfiles/.config/hypr/anim-hyde-optimized.lua b/dotfiles/.config/hypr/anim-hyde-optimized.lua new file mode 100644 index 0000000..21726e3 --- /dev/null +++ b/dotfiles/.config/hypr/anim-hyde-optimized.lua @@ -0,0 +1,40 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Optimized" +-- credit https://github.com/prasanthrangan/hyprdots +-- Ported from animations/HYDE - optimized.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.85 }, { 0.03, 0.97 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.07, 0.88 }, { 0.04, 0.99 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.20, -0.15 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.12, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.80 }, { 0.10, 0.97 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.80, 0.08 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.85 }, { 0.07, 1.04 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.22 }, { 0.68, 0.98 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.82 }, { 0.03, 0.94 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.05, 0.82 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.82, 0.10 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.75, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.48 }, { 0.38, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.10, 0.94 }, { 0.23, 0.98 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.20, 0.20 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.30, 0 }, { 0.15, 1 } } }) + +hl.curve("OutBack", { type = "bezier", points = { { 0.28, 1.40 }, { 0.58, 1 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.78, 0 }, { 0.15, 1 } } }) + +hl.animation({ leaf = "border", enabled = true, speed = 1.6, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 82, bezier = "liner", style = "once" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3.2, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 2.8, bezier = "easeOutCirc" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 3.0, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "fade", enabled = true, speed = 1.8, bezier = "md3_decel" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 1.8, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.6, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.8, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 4.0, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2.3, bezier = "md3_decel", style = "slidefadevert 15%" }) diff --git a/dotfiles/.config/hypr/anim-hyde-vertical.lua b/dotfiles/.config/hypr/anim-hyde-vertical.lua new file mode 100644 index 0000000..6f26d4a --- /dev/null +++ b/dotfiles/.config/hypr/anim-hyde-vertical.lua @@ -0,0 +1,32 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Vertical" +-- credit https://github.com/prasanthrangan/hyprdots +-- Ported from animations/HYDE - Vertical.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("fluent_decel", { type = "bezier", points = { { 0, 0.2 }, { 0.4, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutCubic", { type = "bezier", points = { { 0.33, 1 }, { 0.68, 1 } } }) +hl.curve("easeinoutsine", { type = "bezier", points = { { 0.37, 0 }, { 0.63, 1 } } }) + +-- Windows +hl.animation({ leaf = "windowsIn", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin 60%" }) -- window open +hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.5, bezier = "easeOutCubic", style = "popin 60%" }) -- window close. +hl.animation({ leaf = "windowsMove", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "slide" }) -- everything in between, moving, dragging, resizing. + +-- Fading +hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "fluent_decel" }) + +hl.animation({ leaf = "fadeLayersIn", enabled = false }) +hl.animation({ leaf = "border", enabled = false }) + +-- Layers +hl.animation({ leaf = "layers", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin" }) + +-- Workspaces +-- styles: slide, slidevert, fade, slidefade, slidefadevert +-- hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "fluent_decel", style = "slidefade 30%" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "fluent_decel", style = "slidefadevert 30%" }) + +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2, bezier = "fluent_decel", style = "slidefade 10%" }) diff --git a/dotfiles/.config/hypr/anim-mahaveer-1.lua b/dotfiles/.config/hypr/anim-mahaveer-1.lua new file mode 100644 index 0000000..5ba2670 --- /dev/null +++ b/dotfiles/.config/hypr/anim-mahaveer-1.lua @@ -0,0 +1,52 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Me-1" +-- credit https://github.com/mahaveergurjar +-- Ported from animations/Mahaveer - me-1.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +-- Animation curves +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +-- hl.curve("linear", { type = "bezier", points = { {0,0}, {1,1} } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } }) -- use with .2s duration + +-- Animation configs +-- hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +-- hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +-- hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "md3_accel", style = "popin 60%" }) +-- hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) + +-- hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" }) +-- hl.animation({ leaf = "layers", enabled = true, speed = 2, bezier = "md3_decel", style = "slide" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +-- hl.animation({ leaf = "workspaces", enabled = true, speed = 2.5, bezier = "softAcDecel", style = "slide" }) +-- hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slidefade 15%" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidefadevert 15%" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/dotfiles/.config/hypr/anim-mahaveer-2.lua b/dotfiles/.config/hypr/anim-mahaveer-2.lua new file mode 100644 index 0000000..e0d29b4 --- /dev/null +++ b/dotfiles/.config/hypr/anim-mahaveer-2.lua @@ -0,0 +1,27 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Me-2" +-- credit https://github.com/mahaveergurjar +-- Ported from animations/Mahaveer - me-2.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 100, bezier = "liner", style = "loop" }) -- used by rainbow borders and rotating colors; speed clamped from 180 -> Lua hl.animation caps speed at 100 +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" }) + +-- animations for -git or version >0.42.0 +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-classic.lua b/dotfiles/.config/hypr/anim-ml4w-classic.lua new file mode 100644 index 0000000..95d2972 --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-classic.lua @@ -0,0 +1,15 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Classic" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - classic.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-dynamic.lua b/dotfiles/.config/hypr/anim-ml4w-dynamic.lua new file mode 100644 index 0000000..ed39fa0 --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-dynamic.lua @@ -0,0 +1,20 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Dynamic" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - dynamic.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "loop" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-fast.lua b/dotfiles/.config/hypr/anim-ml4w-fast.lua new file mode 100644 index 0000000..0dd1b26 --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-fast.lua @@ -0,0 +1,24 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Fast" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - fast.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("fluent_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "md3_decel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 3.5, bezier = "easeOutExpo", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-high.lua b/dotfiles/.config/hypr/anim-ml4w-high.lua new file mode 100644 index 0000000..3a8bd5b --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-high.lua @@ -0,0 +1,20 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "High" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - high.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-moving.lua b/dotfiles/.config/hypr/anim-ml4w-moving.lua new file mode 100644 index 0000000..0800a63 --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-moving.lua @@ -0,0 +1,19 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Moving" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - moving.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "overshot", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "smoothIn", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 5, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "smoothIn" }) +hl.animation({ leaf = "fadeDim", enabled = true, speed = 5, bezier = "smoothIn" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/dotfiles/.config/hypr/anim-ml4w-standard.lua b/dotfiles/.config/hypr/anim-ml4w-standard.lua new file mode 100644 index 0000000..ddbf260 --- /dev/null +++ b/dotfiles/.config/hypr/anim-ml4w-standard.lua @@ -0,0 +1,15 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- name "Standard" +-- credit https://github.com/mylinuxforwork/dotfiles +-- Ported from animations/ML4W - standard.conf (unused preset — not required by anything) + +hl.config({ animations = { enabled = true } }) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/dotfiles/.config/hypr/animations.lua b/dotfiles/.config/hypr/animations.lua new file mode 100644 index 0000000..e5d3b7c --- /dev/null +++ b/dotfiles/.config/hypr/animations.lua @@ -0,0 +1,33 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Ported from UserConfigs/UserAnimations.conf (the active preset) +-- +-- The 14 alternative presets from animations/*.conf were also ported, flat, as +-- anim-*.lua (see the plan) — none of them are wired in. To switch styles, replace +-- the body of this file with `require("anim-")`, e.g. require("anim-ml4w-classic"). + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 100, bezier = "liner", style = "loop" }) -- used by rainbow borders and rotating colors; speed clamped from 180 -> Lua hl.animation caps speed at 100 +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" }) + +-- animations for -git or version >0.42.0 +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) diff --git a/dotfiles/.config/hypr/colors.lua b/dotfiles/.config/hypr/colors.lua new file mode 100644 index 0000000..446a467 --- /dev/null +++ b/dotfiles/.config/hypr/colors.lua @@ -0,0 +1,26 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- HyprFlux static color palette +-- Ported from colours/hyprflux-colors.conf + +local M = {} + +M.background = "rgb(010102)" +M.foreground = "rgb(FDF8FE)" +M.color0 = "rgb(313131)" +M.color1 = "rgb(09050C)" +M.color2 = "rgb(221647)" +M.color3 = "rgb(2C1A40)" +M.color4 = "rgb(5E3887)" +M.color5 = "rgb(7344A6)" +M.color6 = "rgb(BAB0BD)" +M.color7 = "rgb(F3ECF5)" +M.color8 = "rgb(AAA5AC)" +M.color9 = "rgb(0B0711)" +M.color10 = "rgb(2D1D5F)" +M.color11 = "rgb(3B2355)" +M.color12 = "rgb(7D4AB4)" +M.color13 = "rgb(9A5BDD)" +M.color14 = "rgb(F8EAFC)" +M.color15 = "rgb(F3ECF5)" + +return M diff --git a/dotfiles/.config/hypr/decorations.lua b/dotfiles/.config/hypr/decorations.lua new file mode 100644 index 0000000..0d6374e --- /dev/null +++ b/dotfiles/.config/hypr/decorations.lua @@ -0,0 +1,65 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Decoration Settings +-- Ported from UserConfigs/UserDecorations.conf +-- +-- Hyprland Wiki Links +-- Animation - https://wiki.hyprland.org/Configuring/Animations/ +-- Decoration - https://wiki.hyprland.org/Configuring/Variables/#decoration + +local colors = require("colors") + +hl.config({ + general = { + border_size = 2, + gaps_in = 2, + gaps_out = 4, + + col = { + active_border = colors.color12, + inactive_border = colors.color10, + }, + }, + + decoration = { + rounding = 10, + + active_opacity = 1.0, + inactive_opacity = 0.9, + fullscreen_opacity = 1.0, + + dim_inactive = true, + dim_strength = 0.1, + dim_special = 0.8, + + shadow = { + enabled = false, + range = 3, + render_power = 1, + + color = colors.color12, + color_inactive = colors.color10, + }, + + blur = { + enabled = true, + size = 6, + passes = 2, + ignore_opacity = true, + new_optimizations = true, + special = true, + popups = true, + }, + }, + + group = { + col = { + border_active = colors.color15, + }, + + groupbar = { + col = { + active = colors.color0, + }, + }, + }, +}) diff --git a/dotfiles/.config/hypr/env.lua b/dotfiles/.config/hypr/env.lua new file mode 100644 index 0000000..7300c88 --- /dev/null +++ b/dotfiles/.config/hypr/env.lua @@ -0,0 +1,87 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Environment variables. See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/ +-- Ported from UserConfigs/ENVariables.conf + +-- Toolkit Backend Variables +hl.env("GDK_BACKEND", "wayland,x11,*") +hl.env("QT_QPA_PLATFORM", "wayland;xcb") +hl.env("CLUTTER_BACKEND", "wayland") + +-- Run SDL2 applications on Wayland. +-- Remove or set to x11 if games that provide older versions of SDL cause compatibility issues +-- hl.env("SDL_VIDEODRIVER", "wayland") + +-- xdg Specifications +hl.env("XDG_CURRENT_DESKTOP", "Hyprland") +hl.env("XDG_SESSION_DESKTOP", "Hyprland") +hl.env("XDG_SESSION_TYPE", "wayland") + +-- QT Variables +hl.env("QT_AUTO_SCREEN_SCALE_FACTOR", "1") +hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1") +hl.env("QT_QPA_PLATFORMTHEME", "qt5ct") +hl.env("QT_QPA_PLATFORMTHEME", "qt6ct") + +-- hyprland-qt-support +hl.env("QT_QUICK_CONTROLS_STYLE", "org.hyprland.style") + +-- xwayland apps scale fix (useful if you use monitor scaling). +-- Set same value if you use scaling in monitors.lua +-- 1 is 100% 1.5 is 150% +-- see https://wiki.hyprland.org/Configuring/XWayland/ +hl.env("GDK_SCALE", "1") +hl.env("QT_SCALE_FACTOR", "1") + +-- Bibata-Modern-Ice-Cursor +-- NOTE! You must have the hyprcursor version to activate this. +-- https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/ +hl.env("HYPRCURSOR_THEME", "Bibata-Modern-Classic") +hl.env("HYPRCURSOR_SIZE", "24") + +-- firefox +hl.env("MOZ_ENABLE_WAYLAND", "1") + +-- electron >28 apps (may help) ## +-- https://www.electronjs.org/docs/latest/api/environment-variables +hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto") -- auto selects Wayland if possible, X11 otherwise + +-- NVIDIA +-- This is from the Hyprland wiki. Uncomment below if an nvidia GPU is detected. +-- See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables + +-- hl.env("LIBVA_DRIVER_NAME", "nvidia") +-- hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia") +-- hl.env("NVD_BACKEND", "direct") +-- hl.env("GSK_RENDERER", "ngl") + +-- additional ENV's for nvidia. Caution, activate with care +-- hl.env("GBM_BACKEND", "nvidia-drm") + +-- hl.env("__GL_GSYNC_ALLOWED", "1") -- adaptive Vsync +-- hl.env("__NV_PRIME_RENDER_OFFLOAD", "1") +-- hl.env("__VK_LAYER_NV_optimus", "NVIDIA_only") +-- hl.env("WLR_DRM_NO_ATOMIC", "1") + +-- FOR VM and POSSIBLY NVIDIA +-- LIBGL_ALWAYS_SOFTWARE software mesa rendering +-- hl.env("LIBGL_ALWAYS_SOFTWARE", "1") -- Warning. May cause hyprland to crash +-- hl.env("WLR_RENDERER_ALLOW_SOFTWARE", "1") + +-- nvidia firefox (for hardware acceleration on FF)? +-- check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration +-- hl.env("MOZ_DISABLE_RDD_SANDBOX", "1") +-- hl.env("EGL_PLATFORM", "wayland") + +---- Aquamarine Environment Variables ---- ( Hyprland > 0.45 ) +-- https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables +-- hl.env("AQ_TRACE", "1") -- Enables more verbose logging. +-- hl.env("AQ_DRM_DEVICES", "/dev/dri/card1:/dev/dri/card0") -- explicit list of DRM devices (GPUs) to use. +-- hl.env("AQ_MGPU_NO_EXPLICIT", "1") -- Disables explicit syncing on mgpu buffers +-- hl.env("AQ_NO_MODIFIERS", "1") -- Disables modifiers for DRM buffers + +---- Hyprland Environment Variables ---- +-- https://wiki.hyprland.org/Configuring/Environment-variables/#hyprland-environment-variables +-- hl.env("HYPRLAND_TRACE", "1") -- Enables more verbose logging. +-- hl.env("HYPRLAND_NO_RT", "1") -- Disables realtime priority setting by Hyprland. +-- hl.env("HYPRLAND_NO_SD_NOTIFY", "1") -- If systemd, disables the 'sd_notify' calls. +-- hl.env("HYPRLAND_NO_SD_VARS", "1") -- Disables management of variables in systemd and dbus activation environments. diff --git a/dotfiles/.config/hypr/hyprland.lua b/dotfiles/.config/hypr/hyprland.lua new file mode 100644 index 0000000..dfcbf5b --- /dev/null +++ b/dotfiles/.config/hypr/hyprland.lua @@ -0,0 +1,38 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Ported from hyprland.conf — see https://wiki.hyprland.org/ +-- +-- This mirrors the old source= chain 1:1, just as require()'d Lua modules instead +-- of hyprlang includes. See each file for its origin. The animations/ preset library +-- (anim-*.lua) is also ported but intentionally not required from here — only the +-- currently-active style (animations.lua) is wired in, exactly like before. + +-- Initial boot script: applies initial wallpapers, theming, new settings etc. +-- suggest not changing/deleting this, including the reference file at ~/.config/hypr/.initial_startup_done +-- as long as that reference file is present, initial-boot.sh will not execute +hl.on("hyprland.start", function() + hl.exec_cmd(os.getenv("HOME") .. "/.config/hypr/initial-boot.sh") +end) + +-- ## This is where you want to start tinkering +require("startup") -- put your start-up packages in startup.lua +require("env") -- Environment variables to load +require("windowrules") -- all about Hyprland Window Rules and Layer Rules +require("decorations") -- Decorations config +require("animations") -- Animation config +require("keybinds") -- Put your own keybinds here +require("settings") -- Main Hyprland Settings + +-- nwg-displays / hyprdynamicmonitors +require("monitors") +require("workspaces") + +-- NOTE: the original hyprland.conf used a plain `exec` (not `exec-once`) here, so it +-- re-ran on every `hyprctl reload`, not just at startup. hl.on("hyprland.start", ...) +-- only fires once at actual compositor start — close enough for a one-shot gsettings +-- call, but worth knowing if you relied on the reload-time re-apply. +hl.on("hyprland.start", function() + hl.exec_cmd("gsettings set org.gnome.desktop.interface cursor-theme Future-black Cursors") +end) + +-- HyprMod managed settings +require("hyprmod") diff --git a/dotfiles/.config/hypr/hyprmod.lua b/dotfiles/.config/hypr/hyprmod.lua new file mode 100644 index 0000000..aecc459 --- /dev/null +++ b/dotfiles/.config/hypr/hyprmod.lua @@ -0,0 +1,29 @@ +-- Generated by HyprMod +-- Ported from hyprland-gui.conf +-- +-- HyprMod isn't currently installed on this machine, so this is a straight syntax port of +-- whatever it last wrote. If you reinstall HyprMod, prefer letting its own "Migrate to Lua…" +-- wizard take over managing this file instead of hand-editing it going forward. + +hl.config({ + general = { + allow_tearing = true, + snap = { + enabled = false, + }, + }, + misc = { + vrr = 1, + }, +}) + +-- Monitors +hl.monitor({ output = "DP-2", mode = "1920x1080@165.00Hz", position = "0x0", scale = 1, bitdepth = 10, cm = "wide" }) + +-- Keybinds +-- (unbind = SUPER SHIFT, Print / unbind = SUPER, up from the source .conf have no Lua equivalent needed — +-- we just don't define a conflicting bind elsewhere; SUPER + up -> movefocus u below is otherwise identical +-- to the one already in keybinds.lua, kept here too for parity with the original file) +hl.bind("SUPER + Print", hl.dsp.exec_cmd("hyprshot -o " .. os.getenv("HOME") .. "/Pictures/Screenshots-Linux -m region")) +hl.bind("SUPER + up", hl.dsp.focus({ direction = "u" })) +hl.bind("SUPER + SHIFT + Print", hl.dsp.exec_cmd("hyprshot -o " .. os.getenv("HOME") .. "/Pictures/Screenshots-Linux -m window")) diff --git a/dotfiles/.config/hypr/keybinds.lua b/dotfiles/.config/hypr/keybinds.lua new file mode 100644 index 0000000..8d218fe --- /dev/null +++ b/dotfiles/.config/hypr/keybinds.lua @@ -0,0 +1,176 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Ported from UserConfigs/Keybinds.conf +-- See https://wiki.hypr.land/Configuring/Basics/Binds/ and .../Basics/Dispatchers/ + +local mainMod = "SUPER" +local scriptsDir = os.getenv("HOME") .. "/.config/hypr/scripts" +local userScripts = os.getenv("HOME") .. "/.config/hypr/UserScripts" + +-- settings for user default apps +local edit = os.getenv("EDITOR") or "nvim" + +-- These two are for UserKeybinds.conf & Waybar Modules +local term = "foot" -- Terminal +local files = "thunar" -- File Manager + +-- Default Search Engine for ROFI Search (SUPER S) +local searchEngine = "https://www.google.com/search?q={}" + +-- common shortcuts +hl.bind(mainMod .. " + SPACE", hl.dsp.exec_cmd(".config/rofi/launchers/type-4/launcher.sh")) -- desktop overview (if installed) +hl.bind(mainMod .. " + Q", hl.dsp.window.close()) -- close active (not kill) +hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.exec_cmd(scriptsDir .. "/KillActiveProcess.sh")) -- Kill active process +hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(term)) -- terminal +hl.bind(mainMod .. " + F", hl.dsp.exec_cmd(files)) -- file manager +hl.bind(mainMod .. " + B", hl.dsp.exec_cmd("zen-browser")) -- Launch Zen Browser New Everytime +hl.bind(mainMod .. " + V", hl.dsp.exec_cmd(scriptsDir .. "/ClipManager.sh")) -- Clipboard Manager +hl.bind(mainMod .. " + C", hl.dsp.exec_cmd("code --ozone-platform=x11")) -- Visual Studio Code +hl.bind(mainMod .. " + O", hl.dsp.exec_cmd("obsidian --ozone-platform=x11")) -- Obsidian +hl.bind(mainMod .. " + X", hl.dsp.exec_cmd("vesktop")) -- Vesktop(Discord) +hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("fdm")) -- Free Download Manager +hl.bind(mainMod .. " + W", hl.dsp.exec_cmd("waypaper")) -- Wayland Wallpaper Setter +hl.bind(mainMod .. " + L", hl.dsp.exec_cmd("hyprlock")) -- Screen Locker +hl.bind(mainMod .. " + DELETE", hl.dsp.exec_cmd("~/.config/rofi/powermenu/type-2/powermenu.sh")) -- Power Menu +hl.bind(mainMod .. " + S", hl.dsp.exec_cmd("cd /home/thomas/hyprmod && uv run hyprmod")) -- Hyprmod - A Hyprland settings manager (if installed) +hl.bind(mainMod .. " + SHIFT + R", hl.dsp.exec_cmd(scriptsDir .. "/Refresh.sh")) -- Refresh waybar, swaync, rofirrr +hl.bind(mainMod .. " + N", hl.dsp.exec_cmd("swaync-client -t -sw")) -- swayNC notification panel + +-- FEATURES / EXTRAS +hl.bind(mainMod .. " + SHIFT + F", hl.dsp.window.fullscreen({ mode = "fullscreen" })) -- whole full screen +hl.bind(mainMod .. " + SHIFT + SPACE", hl.dsp.window.float({ action = "toggle" })) -- Float Mode + +-- Desktop zooming or magnifier +hl.bind(mainMod .. " + ALT + mouse_down", hl.dsp.exec_cmd([[hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"]])) +hl.bind(mainMod .. " + ALT + mouse_up", hl.dsp.exec_cmd([[hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"]])) + +-- Waybar / Bar related +hl.bind(mainMod .. " + CTRL + ALT + B", hl.dsp.exec_cmd("pkill -SIGUSR1 waybar")) -- Toggle hide/show waybar + +-- FEATURES / EXTRAS (UserScripts) +hl.bind(mainMod .. " + SHIFT + A", hl.dsp.exec_cmd(scriptsDir .. "/Animations.sh")) -- hyprland animations menu +hl.bind(mainMod .. " + SHIFT + Z", hl.dsp.exec_cmd(userScripts .. "/ZshChangeTheme.sh")) -- Change oh-my-zsh theme + +-------------------------------------------------------------------------------------- +-- Default Keybinds +-------------------------------------------------------------------------------------- + +hl.bind("CTRL + ALT + Delete", hl.dsp.exit()) -- exit Hyprland + +-- Master Layout +hl.bind(mainMod .. " + CTRL + D", hl.dsp.layout("removemaster")) +hl.bind(mainMod .. " + I", hl.dsp.layout("addmaster")) +hl.bind(mainMod .. " + J", hl.dsp.layout("cyclenext")) +hl.bind(mainMod .. " + K", hl.dsp.layout("cycleprev")) +hl.bind(mainMod .. " + CTRL + Return", hl.dsp.layout("swapwithmaster")) + +-- Dwindle Layout +hl.bind(mainMod .. " + P", hl.dsp.window.pseudo()) -- dwindle + +-- Special Keys / Hot Keys +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd(scriptsDir .. "/Volume.sh --inc"), { repeating = true, locked = true }) -- volume up +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd(scriptsDir .. "/Volume.sh --dec"), { repeating = true, locked = true }) -- volume down +hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd(scriptsDir .. "/Volume.sh --toggle-mic"), { locked = true }) -- mic mute +hl.bind("XF86AudioMute", hl.dsp.exec_cmd(scriptsDir .. "/Volume.sh --toggle"), { locked = true }) -- mute +hl.bind("XF86Sleep", hl.dsp.exec_cmd("systemctl suspend"), { locked = true }) -- sleep button +hl.bind("XF86RFKill", hl.dsp.exec_cmd(scriptsDir .. "/AirplaneMode.sh"), { locked = true }) -- Airplane mode + +-- media controls using keyboards +hl.bind("XF86MediaPlayPause", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --pause"), { locked = true }) +hl.bind("XF86AudioPause", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --pause"), { locked = true }) +hl.bind("XF86AudioPlay", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --pause"), { locked = true }) +hl.bind("XF86AudioNext", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --nxt"), { locked = true }) +hl.bind("XF86AudioPrev", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --prv"), { locked = true }) +hl.bind("XF86AudioStop", hl.dsp.exec_cmd(scriptsDir .. "/MediaCtrl.sh --stop"), { locked = true }) + +-- Resize windows +hl.bind(mainMod .. " + SHIFT + left", hl.dsp.window.resize({ x = -50, y = 0, relative = true }), { repeating = true }) +hl.bind(mainMod .. " + SHIFT + right", hl.dsp.window.resize({ x = 50, y = 0, relative = true }), { repeating = true }) +hl.bind(mainMod .. " + SHIFT + up", hl.dsp.window.resize({ x = 0, y = -50, relative = true }), { repeating = true }) +hl.bind(mainMod .. " + SHIFT + down", hl.dsp.window.resize({ x = 0, y = 50, relative = true }), { repeating = true }) + +-- Move windows +hl.bind(mainMod .. " + CTRL + left", hl.dsp.window.move({ direction = "l" })) +hl.bind(mainMod .. " + CTRL + right", hl.dsp.window.move({ direction = "r" })) +hl.bind(mainMod .. " + CTRL + up", hl.dsp.window.move({ direction = "u" })) +hl.bind(mainMod .. " + CTRL + down", hl.dsp.window.move({ direction = "d" })) + +-- Swap windows +hl.bind(mainMod .. " + ALT + left", hl.dsp.window.swap({ direction = "l" })) +hl.bind(mainMod .. " + ALT + right", hl.dsp.window.swap({ direction = "r" })) +hl.bind(mainMod .. " + ALT + up", hl.dsp.window.swap({ direction = "u" })) +hl.bind(mainMod .. " + ALT + down", hl.dsp.window.swap({ direction = "d" })) + +-- Move focus with mainMod + arrow keys +hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "l" })) +hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "r" })) +hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "u" })) +hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "d" })) + +-- Workspaces related +hl.bind(mainMod .. " + tab", hl.dsp.focus({ workspace = "m+1" })) +hl.bind(mainMod .. " + SHIFT + tab", hl.dsp.focus({ workspace = "m-1" })) + +-- Special workspace +-- hl.bind(mainMod .. " + SHIFT + U", hl.dsp.window.move({ workspace = "special" })) +-- hl.bind(mainMod .. " + U", hl.dsp.workspace.toggle_special()) +hl.bind(mainMod .. " + U", hl.dsp.workspace.toggle_special("nyx")) +hl.bind(mainMod .. " + SHIFT + U", hl.dsp.window.move({ workspace = "special:nyx" })) + +-- The following mappings use key codes to better support various keyboard layouts +-- 1 is code:10, 2 is code:11, etc +-- Switch workspaces with mainMod + [0-9] +for i, code in ipairs({ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }) do + hl.bind(mainMod .. " + code:" .. code, hl.dsp.focus({ workspace = i })) -- code:10 = key 1 ... code:19 = key 0 +end + +-- Move active window and follow to workspace mainMod + SHIFT + [0-9] +for i, code in ipairs({ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }) do + hl.bind(mainMod .. " + SHIFT + code:" .. code, hl.dsp.window.move({ workspace = i, follow = true })) +end +hl.bind(mainMod .. " + SHIFT + bracketleft", hl.dsp.window.move({ workspace = -1, follow = true })) -- brackets [ +hl.bind(mainMod .. " + SHIFT + bracketright", hl.dsp.window.move({ workspace = 1, follow = true })) -- brackets ] + +-- Move active window to a workspace silently mainMod + CTRL + [0-9] +for i, code in ipairs({ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }) do + hl.bind(mainMod .. " + CTRL + code:" .. code, hl.dsp.window.move({ workspace = i, follow = false })) +end +hl.bind(mainMod .. " + CTRL + bracketleft", hl.dsp.window.move({ workspace = -1, follow = false })) -- brackets [ +hl.bind(mainMod .. " + CTRL + bracketright", hl.dsp.window.move({ workspace = 1, follow = false })) -- brackets ] + +-- Scroll through existing workspaces with mainMod + scroll +hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" })) +hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" })) +hl.bind(mainMod .. " + period", hl.dsp.focus({ workspace = "e+1" })) +hl.bind(mainMod .. " + comma", hl.dsp.focus({ workspace = "e-1" })) + +-- Move/resize windows with mainMod + LMB/RMB and dragging +hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) -- mouse:272 = left click +hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) -- mouse:273 = right click + +-------------------------------------------------------------------------------------- +-- Laptop specific keybinds +-------------------------------------------------------------------------------------- + +-- for disabling Touchpad. hyprctl devices to get device name. +local touchpadDevice = "asue1209:00-04f3:319f-touchpad" + +hl.bind("XF86KbdBrightnessDown", hl.dsp.exec_cmd(scriptsDir .. "/BrightnessKbd.sh --dec"), { repeating = true }) -- decrease keyboard brightness +hl.bind("XF86KbdBrightnessUp", hl.dsp.exec_cmd(scriptsDir .. "/BrightnessKbd.sh --inc"), { repeating = true }) -- increase keyboard brightness +hl.bind("XF86Launch1", hl.dsp.exec_cmd("rog-control-center")) -- ASUS Armory crate button +hl.bind("XF86Launch3", hl.dsp.exec_cmd("asusctl led-mode -n")) -- FN+F4 Switch keyboard RGB profile +hl.bind("XF86Launch4", hl.dsp.exec_cmd("asusctl profile -n")) -- FN+F5 change of fan profiles (Quiet, Balance, Performance) +hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd(scriptsDir .. "/Brightness.sh --dec"), { repeating = true }) -- decrease monitor brightness +hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd(scriptsDir .. "/Brightness.sh --inc"), { repeating = true }) -- increase monitor brightness +hl.bind("XF86TouchpadToggle", hl.dsp.exec_cmd(scriptsDir .. "/TouchPad.sh")) -- disable touchpad + +-- Screenshot keybindings using F6 (no PrintSrc button) +-- hl.bind(mainMod .. " + F6", hl.dsp.exec_cmd(scriptsDir .. "/ScreenShot.sh --now")) -- screenshot +-- hl.bind(mainMod .. " + SHIFT + F6", hl.dsp.exec_cmd(scriptsDir .. "/ScreenShot.sh --area")) -- screenshot (area) +-- hl.bind(mainMod .. " + CTRL + F6", hl.dsp.exec_cmd(scriptsDir .. "/ScreenShot.sh --in5")) -- screenshot (5 secs delay) +-- hl.bind(mainMod .. " + ALT + F6", hl.dsp.exec_cmd(scriptsDir .. "/ScreenShot.sh --in10")) -- screenshot (10 secs delay) +-- hl.bind("ALT + F6", hl.dsp.exec_cmd(scriptsDir .. "/ScreenShot.sh --active")) -- screenshot (active window only) + +hl.device({ + name = touchpadDevice, + enabled = true, +}) diff --git a/dotfiles/.config/hypr/monitors.lua b/dotfiles/.config/hypr/monitors.lua new file mode 100644 index 0000000..f8212a1 --- /dev/null +++ b/dotfiles/.config/hypr/monitors.lua @@ -0,0 +1,14 @@ +-- Generated with hyprdynamicmonitors freeze. +-- This is a template that you can edit, it is just a starter that pulled your current monitor setup, +-- adjust as needed. +-- You can use templates here etc, see https://github.com/fiffeek/hyprdynamicmonitors/blob/main/examples/basic/hyprconfigs/template.go.tmpl. +-- Monitors are given arbitrary tags (the "monitor" prefix and the ID coming from hyprland). +-- If you are using the TUI to edit, leave this at the end of the file (the last monitor config applies) +-- and leave the markers. +-- Ported from UserConfigs/monitors.conf — hyprdynamicmonitors already supports writing this file +-- directly as monitors.lua once hyprland.lua is active, so re-running it should stay compatible. +-- <<<<< TUI AUTO START +hl.monitor({ output = "desc:LG Electronics LG ULTRAWIDE 0x0002E68A", mode = "2560x1080@60.00000", position = "1920x-740", scale = 1.00000000, transform = 3, vrr = 0 }) +hl.monitor({ output = "desc:HP Inc. HP 524pf VNG447017D", mode = "1920x1080@100.00000", position = "-1920x0", scale = 1.00000000, transform = 0, vrr = 0 }) +hl.monitor({ output = "desc:Acer Technologies VG240Y S 0x126191DE", mode = "1920x1080@165.00301", position = "0x0", scale = 1.00000000, transform = 0, vrr = 1, bitdepth = 10, cm = "wide" }) +-- <<<<< TUI AUTO END diff --git a/dotfiles/.config/hypr/settings.lua b/dotfiles/.config/hypr/settings.lua new file mode 100644 index 0000000..7af6595 --- /dev/null +++ b/dotfiles/.config/hypr/settings.lua @@ -0,0 +1,120 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- User Settings +-- Ported from UserConfigs/UserSettings.conf +-- +-- refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/ +-- NOTE: some settings are in animations.lua / decorations.lua + +hl.config({ + dwindle = { + preserve_split = true, + -- smart_split = true, + special_scale_factor = 1, + }, + + master = { + new_status = "master", + new_on_top = true, + mfact = 0.5, + }, + + general = { + resize_on_border = true, + layout = "dwindle", + }, + + input = { + kb_layout = "gb", + kb_variant = "", + kb_model = "", + kb_options = "", + kb_rules = "", + repeat_rate = 50, + repeat_delay = 300, + sensitivity = 0.6, -- mouse sensitivity + -- accel_profile = "", -- flat or adaptive or blank or EMPTY means libinput's default mode + numlock_by_default = true, + left_handed = false, + follow_mouse = 1, + float_switch_override_focus = false, + + touchpad = { + disable_while_typing = true, + natural_scroll = true, + clickfinger_behavior = false, + middle_button_emulation = false, + tap_to_click = true, + drag_lock = false, + }, + + -- below for devices with touchdevice ie. touchscreen + touchdevice = { + enabled = true, + }, + + -- below is for tablet, see link above for proper variables + tablet = { + transform = 0, + left_handed = false, + }, + }, + + -- "gestures" here only holds the tuning knobs. workspace_swipe/workspace_swipe_fingers + -- were removed from this category upstream in favor of hl.gesture() (see below) — and + -- were already commented out in the source .conf, so the swipe gesture itself stays + -- disabled here too, ported as-is. + gestures = { + 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, + -- workspace_swipe_use_r = true, -- uncomment if wanted a forever create a new workspace with swipe right + }, + + misc = { + disable_hyprland_logo = true, + disable_splash_rendering = true, + vrr = 2, + mouse_move_enables_dpms = true, + enable_swallow = false, + swallow_regex = "^(kitty)$", + focus_on_activate = false, + initial_workspace_tracking = 0, + middle_click_paste = false, + enable_anr_dialog = true, -- Application not Responding (ANR) + anr_missed_pings = 15, -- ANR Threshold default 1 is too low + }, + + -- opengl = { + -- nvidia_anti_flicker = true, + -- }, + + binds = { + workspace_back_and_forth = true, + allow_workspace_cycles = true, + pass_mouse_when_bound = false, + }, + + -- Could help when scaling and not pixelating + xwayland = { + enabled = true, + force_zero_scaling = true, + }, + + render = { + direct_scanout = false, + }, + + cursor = { + sync_gsettings_theme = true, + no_hardware_cursors = 2, -- change to 1 if you want to disable + enable_hyprcursor = true, + warp_on_change_workspace = 2, + no_warps = true, + }, +}) + +-- Uncomment to actually enable the touchpad workspace-swipe gesture (see the note above): +-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" }) diff --git a/dotfiles/.config/hypr/startup.lua b/dotfiles/.config/hypr/startup.lua new file mode 100644 index 0000000..6824928 --- /dev/null +++ b/dotfiles/.config/hypr/startup.lua @@ -0,0 +1,49 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- Commands and Apps to be executed at launch +-- Ported from UserConfigs/Startup_Apps.conf +-- See https://wiki.hypr.land/Configuring/Basics/Autostart/ + +local scriptsDir = os.getenv("HOME") .. "/.config/hypr/scripts" + +hl.on("hyprland.start", function() + -- wallpaper stuff + hl.exec_cmd("awww-daemon --format xrgb") + -- hl.exec_cmd("mpvpaper '*' -o \"load-scripts=no no-audio --loop\" $livewallpaper") + + -- Startup + hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") + hl.exec_cmd("systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") + + -- Polkit (Polkit Gnome / KDE) + hl.exec_cmd(scriptsDir .. "/Polkit.sh") + + -- startup apps + hl.exec_cmd("nm-applet --indicator") + hl.exec_cmd("swaync") + -- hl.exec_cmd("ags") + -- hl.exec_cmd("blueman-applet") + -- hl.exec_cmd("rog-control-center") + hl.exec_cmd("waybar") + hl.exec_cmd("qs") -- quickshell AGS Desktop Overview alternative + + -- clipboard manager + hl.exec_cmd("wl-paste --type text --watch cliphist store") + hl.exec_cmd("wl-paste --type image --watch cliphist store") + + -- Starting hypridle to start hyprlock + hl.exec_cmd("hypridle") + + hl.dispatch(hl.dsp.focus({ workspace = 3 })) + + -- NOTE: the trailing "&&" here is a stray leftover from the original .conf (dangling, does nothing) — ported as-is + hl.exec_cmd("/usr/bin/Plexamp.AppImage &&") + hl.exec_cmd("sleep 3 && vesktop") + hl.dispatch(hl.dsp.focus({ workspace = 1 })) + hl.exec_cmd("bitwarden-desktop --ozone-platform-hint=auto --silent") + + -- Here are a list of features available but disabled by default + -- hl.exec_cmd("awww-daemon --format xrgb && awww img " .. os.getenv("HOME") .. "/Pictures/wallpapers/mecha-nostalgia.png") -- persistent wallpaper + + -- xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start) + -- hl.exec_cmd(scriptsDir .. "/PortalHyprland.sh") +end) diff --git a/dotfiles/.config/hypr/windowrules.lua b/dotfiles/.config/hypr/windowrules.lua new file mode 100644 index 0000000..521c97b --- /dev/null +++ b/dotfiles/.config/hypr/windowrules.lua @@ -0,0 +1,203 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- For window rules and layer rules +-- Ported from UserConfigs/WindowRules.conf +-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/ + +-- windowrule - tags - add apps under appropriate tag to use the same settings +-- browser tags +hl.window_rule({ name = "windowrule-1", tag = "+browser", match = { class = "^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$" } }) +hl.window_rule({ name = "rustdesk", tag = "+rustdesk", match = { class = "^(rustdesk)$", xwayland = true } }) +hl.window_rule({ name = "windowrule-2", tag = "+browser", match = { class = "^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$" } }) +hl.window_rule({ name = "windowrule-3", tag = "+browser", match = { class = "^(chrome-.+-Default)$" } }) -- Chrome PWAs +-- hl.window_rule({ name = "browser-chromium", tag = "+browser", match = { class = "^([Cc]hromium)$" } }) +hl.window_rule({ name = "windowrule-4", tag = "+browser", match = { class = "^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$" } }) +hl.window_rule({ name = "windowrule-5", tag = "+browser", match = { class = "^(Brave-browser(-beta|-dev|-unstable)?)$" } }) +hl.window_rule({ name = "windowrule-6", tag = "+browser", match = { class = "^([Tt]horium-browser|[Cc]achy-browser)$" } }) +hl.window_rule({ name = "windowrule-7", tag = "+browser", match = { class = "^(zen-alpha|zen)$" } }) + +-- notif tags +hl.window_rule({ name = "windowrule-8", tag = "+notif", match = { class = "^(swaync-control-center|swaync-notification-window|swaync-client|class)$" } }) + +-- HyprFlux settings tag +hl.window_rule({ name = "windowrule-9", tag = "+HyprFlux_Cheat", match = { title = "^(HyprFlux Quick Cheat Sheet)$" } }) +hl.window_rule({ name = "windowrule-10", tag = "+HyprFlux_Settings", match = { title = "^(HyprFlux Settings)$" } }) +hl.window_rule({ name = "windowrule-11", tag = "+HyprFlux-Settings", match = { class = "^(nwg-displays|nwg-look)$" } }) + +-- terminal tags +hl.window_rule({ name = "windowrule-12", tag = "+terminal", match = { class = "^(Alacritty|kitty|kitty-dropterm)$" } }) + +-- email tags +hl.window_rule({ name = "windowrule-13", tag = "+email", match = { class = "^([Tt]hunderbird|org.gnome.Evolution)$" } }) +hl.window_rule({ name = "windowrule-14", tag = "+email", match = { class = "^(eu.betterbird.Betterbird)$" } }) + +-- project tags +hl.window_rule({ name = "windowrule-15", tag = "+projects", match = { class = "^(codium|codium-url-handler|VSCodium)$" } }) +hl.window_rule({ name = "windowrule-16", tag = "+projects", match = { class = "^(VSCode|code-url-handler)$" } }) +hl.window_rule({ name = "windowrule-17", tag = "+projects", match = { class = "^(jetbrains-.+)$" } }) -- JetBrains IDEs + +-- screenshare tags +hl.window_rule({ name = "windowrule-18", tag = "+screenshare", match = { class = "^(com.obsproject.Studio)$" } }) + +-- IM tags +-- hl.window_rule({ tag = "+im", match = { class = "^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$" } }) +hl.window_rule({ + name = "windowrule-19", + tag = "+im", + center = true, + float = true, + size = "monitor_w*0.6 monitor_h*0.7", + match = { class = "^([Ff]erdium)$" }, +}) +hl.window_rule({ name = "windowrule-20", tag = "+im", match = { class = "^([Ww]hatsapp-for-linux)$" } }) +hl.window_rule({ name = "windowrule-21", tag = "+im", match = { class = "^(ZapZap|com.rtosta.zapzap)$" } }) +hl.window_rule({ name = "windowrule-22", tag = "+im", match = { class = "^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$" } }) +hl.window_rule({ name = "windowrule-23", tag = "+im", match = { class = "^(teams-for-linux)$" } }) +hl.window_rule({ name = "windowrule-24", tag = "+im", match = { class = "^(im.riot.Riot|Element)$" } }) -- Element Matrix client + +-- game tags +hl.window_rule({ name = "windowrule-25", tag = "+games", match = { class = "^(gamescope)$" } }) +hl.window_rule({ name = "windowrule-26", tag = "+games", match = { class = "^(steam_app_\\d+)$" } }) + +-- gamestore tags +hl.window_rule({ name = "windowrule-27", tag = "+gamestore", match = { class = "^([Ss]team)$" } }) +hl.window_rule({ name = "windowrule-28", tag = "+gamestore", match = { title = "^([Ll]utris)$" } }) +hl.window_rule({ name = "windowrule-29", tag = "+gamestore", match = { class = "^(com.heroicgameslauncher.hgl)$" } }) + +-- file-manager tags +hl.window_rule({ name = "windowrule-30", tag = "+file-manager", match = { class = "^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$" } }) +hl.window_rule({ name = "windowrule-31", tag = "+file-manager", match = { class = "^(app.drey.Warp)$" } }) + +-- wallpaper tags +hl.window_rule({ name = "windowrule-32", tag = "+wallpaper", match = { class = "^([Ww]aytrogen)$" } }) + +-- multimedia tags +hl.window_rule({ name = "windowrule-33", tag = "+multimedia", match = { class = "^([Aa]udacious)$" } }) + +-- multimedia-video tags +hl.window_rule({ name = "windowrule-34", tag = "+multimedia_video", match = { class = "^([Mm]pv|vlc)$" } }) + +-- settings tags +hl.window_rule({ name = "windowrule-35", tag = "+settings", center = true, match = { title = "^(ROG Control)$" } }) +hl.window_rule({ name = "windowrule-36", tag = "+settings", match = { class = "^(wihotspot(-gui)?)$" } }) -- wifi hotspot +hl.window_rule({ name = "windowrule-37", tag = "+settings", match = { class = "^([Bb]aobab|org.gnome.[Bb]aobab)$" } }) -- Disk usage analyzer +hl.window_rule({ name = "windowrule-38", tag = "+settings", match = { class = "^(gnome-disks|wihotspot(-gui)?)$" } }) +hl.window_rule({ name = "windowrule-39", tag = "+settings", match = { title = "(Kvantum Manager)" } }) +hl.window_rule({ name = "windowrule-40", tag = "+settings", match = { class = "^(file-roller|org.gnome.FileRoller)$" } }) -- archive manager +hl.window_rule({ name = "windowrule-41", tag = "+settings", match = { class = "^(nm-applet|nm-connection-editor|blueman-manager)$" } }) +hl.window_rule({ name = "windowrule-42", tag = "+settings", center = true, match = { class = "^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$" } }) +hl.window_rule({ name = "windowrule-43", tag = "+settings", match = { class = "^(qt5ct|qt6ct|[Yy]ad)$" } }) +hl.window_rule({ name = "windowrule-44", tag = "+settings", match = { class = "(xdg-desktop-portal-gtk)" } }) +hl.window_rule({ name = "windowrule-45", tag = "+settings", match = { class = "^(org.kde.polkit-kde-authentication-agent-1)$" } }) +hl.window_rule({ name = "windowrule-46", tag = "+settings", match = { class = "^([Rr]ofi)$" } }) + +-- Custom rule +hl.window_rule({ name = "windowrule-47", tile = true, match = { class = "^([Cc]hromium)$" } }) +hl.window_rule({ name = "windowrule-48", size = "monitor_w*0.25 monitor_h*0.55", float = true, match = { class = "^(com.network.manager)$" } }) +hl.window_rule({ name = "windowrule-49", workspace = "special:nyx", match = { class = "^([Vv]esktop|[Dd]iscord|[Ss]potify)$" } }) +hl.window_rule({ name = "windowrule-255", size = "monitor_w*0.75 monitor_h*0.80", float = true, match = { class = "^([Bb]itwarden)$" } }) + +-- viewer tags +hl.window_rule({ name = "windowrule-50", tag = "+viewer", match = { class = "^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$" } }) -- system monitor +hl.window_rule({ name = "windowrule-51", tag = "+viewer", match = { class = "^(evince)$" } }) -- document viewer +hl.window_rule({ name = "windowrule-52", tag = "+viewer", match = { class = "^(eog|org.gnome.Loupe)$" } }) -- image viewer + +-- Some special override rules +hl.window_rule({ name = "windowrule-53", no_blur = true, opacity = "1.0", match = { tag = "multimedia_video*" } }) + +-- POSITION +-- hl.window_rule({ center = true, match = { float = true } }) -- warning, it cause even the menu to float and center. +hl.window_rule({ name = "windowrule-54", center = true, float = true, size = "monitor_w*0.65 monitor_h*0.9", match = { tag = "HyprFlux_Cheat*" } }) +hl.window_rule({ name = "windowrule-55", center = true, float = true, match = { class = "([Tt]hunar)", title = "negative:(.*[Tt]hunar.*)" } }) +hl.window_rule({ name = "windowrule-56", center = true, float = true, match = { tag = "HyprFlux-Settings*" } }) +hl.window_rule({ name = "windowrule-57", center = true, match = { title = "^(Keybindings)$" } }) +hl.window_rule({ name = "windowrule-58", center = true, size = "monitor_w*0.6 monitor_h*0.7", match = { class = "^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$" } }) +hl.window_rule({ + name = "windowrule-59", + move = "monitor_w*0.61 monitor_h*0.07", + float = true, + size = "monitor_w*0.38 monitor_h*0.38", + pin = true, + keep_aspect_ratio = true, + match = { title = "^(Picture-in-Picture)$" }, +}) + +-- hl.window_rule({ move = "72% 7%", match = { title = "^(Firefox)$" } }) + +-- windowrule to avoid idle for fullscreen apps +-- hl.window_rule({ idle_inhibit = "fullscreen", match = { class = "^(*)$" } }) +-- hl.window_rule({ idle_inhibit = "fullscreen", match = { title = "^(*)$" } }) +hl.window_rule({ name = "windowrule-60", idle_inhibit = "fullscreen", match = { fullscreen = true } }) + +-- Discord to workspace 3 +-- NOTE: these two used the old single-line windowrule syntax in the source .conf (match packed +-- oddly with the rule); windowrule-49 above already sends the same apps to special:nyx, so this +-- looks like a pre-existing conflict in the original config rather than something introduced here — +-- ported literally, last-defined-wins as before. +hl.window_rule({ workspace = "3", match = { class = "^([Vv]esktop|[Dd]iscord|[Ss]potify|[Pp]lexamp)$" } }) +hl.window_rule({ size = "20% 20%", match = { class = "^([Pp]lexamp)" } }) + +-- FLOAT +hl.window_rule({ name = "windowrule-75", float = true, opacity = "0.9 0.7", size = "monitor_w*0.7 monitor_h*0.7", match = { tag = "wallpaper*" } }) +hl.window_rule({ name = "windowrule-76", float = true, opacity = "0.8 0.7", size = "monitor_w*0.7 monitor_h*0.7", match = { tag = "settings*" } }) +hl.window_rule({ name = "windowrule-77", float = true, match = { tag = "viewer*" } }) +hl.window_rule({ name = "windowrule-78", float = true, match = { class = "([Zz]oom|onedriver|onedriver-launcher)$" } }) +hl.window_rule({ name = "windowrule-79", float = true, match = { class = "(org.gnome.Calculator)", title = "(Calculator)" } }) +hl.window_rule({ name = "windowrule-80", float = true, match = { class = "^(mpv|com.github.rafostar.Clapper)$" } }) +hl.window_rule({ name = "windowrule-81", float = true, match = { class = "^([Qq]alculate-gtk)$" } }) +-- hl.window_rule({ float = true, match = { class = "^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$" } }) +-- hl.window_rule({ float = true, match = { title = "^(Firefox)$" } }) +hl.window_rule({ name = "windowrule-82", float = true, match = { class = "^(fdm|freedownloadmanager)$" } }) +hl.window_rule({ name = "windowrule-83", float = true, match = { class = "^(proton-authenticator)$" } }) +hl.window_rule({ name = "windowrule-84", float = true, match = { class = "^([Ww]indscribe)$" } }) + +-- windowrule - ######### float popups and dialogue ####### +hl.window_rule({ name = "windowrule-85", float = true, center = true, match = { title = "^(Authentication Required)$" } }) +hl.window_rule({ name = "windowrule-86", float = true, match = { class = "(codium|codium-url-handler|VSCodium)", title = "negative:(.*codium.*|.*VSCodium.*)" } }) +hl.window_rule({ name = "windowrule-87", float = true, match = { class = "^(com.heroicgameslauncher.hgl)$", title = "negative:(Heroic Games Launcher)" } }) +hl.window_rule({ name = "windowrule-88", float = true, match = { class = "^([Ss]team)$", title = "negative:^([Ss]team)$" } }) +hl.window_rule({ name = "windowrule-89", float = true, size = "monitor_w*0.7 monitor_h*0.6", center = true, match = { title = "^(Add Folder to Workspace)$" } }) +hl.window_rule({ name = "windowrule-90", float = true, size = "monitor_w*0.7 monitor_h*0.6", center = true, match = { title = "^(Save As)$" } }) +hl.window_rule({ name = "windowrule-91", float = true, size = "monitor_w*0.7 monitor_h*0.6", match = { initial_title = "(Open Files)" } }) +hl.window_rule({ name = "windowrule-92", float = true, center = true, size = "monitor_w*0.16 monitor_h*0.12", match = { title = "^(SDDM Background)$" } }) -- HyprFlux YAD for setting SDDM background +-- END of float popups and dialogue ####### + +-- OPACITY +-- hl.window_rule({ opacity = "0.9 0.7", match = { tag = "browser*" } }) +-- hl.window_rule({ opacity = "0.9 0.8", match = { tag = "projects*" } }) +-- hl.window_rule({ opacity = "0.94 0.86", match = { tag = "im*" } }) +-- hl.window_rule({ opacity = "0.94 0.86", match = { tag = "multimedia*" } }) +-- hl.window_rule({ opacity = "0.9 0.8", match = { tag = "file-manager*" } }) +hl.window_rule({ name = "windowrule-93", opacity = "0.8 0.7", match = { tag = "terminal*" } }) +-- hl.window_rule({ opacity = "0.82 0.75", match = { tag = "viewer*" } }) +hl.window_rule({ name = "windowrule-94", opacity = "0.8 0.7", match = { class = "^(gedit|org.gnome.TextEditor|mousepad)$" } }) +hl.window_rule({ name = "windowrule-95", opacity = "0.9 0.8", match = { class = "^(deluge)$" } }) +hl.window_rule({ name = "windowrule-96", opacity = "0.9 0.8", match = { class = "^(seahorse)$" } }) -- gnome-keyring gui +-- hl.window_rule({ opacity = "0.95 0.75", match = { title = "^(Picture-in-Picture)$" } }) + +-- SIZE +-- hl.window_rule({ size = "25% 25%", match = { title = "^(Firefox)$" } }) + +-- PINNING +-- hl.window_rule({ pin = true, match = { title = "^(Firefox)$" } }) + +-- windowrule - extras + +-- BLUR & FULLSCREEN +-- hl.window_rule({ active_border_color = "rgb(EE4B55)", inactive_border_color = "rgb(880808)", match = { fullscreen = true } }) +-- hl.window_rule({ active_border_color = "rgb(282737)", inactive_border_color = "rgb(1E1D2D)", match = { float = true } }) +-- hl.window_rule({ opacity = "0.8 0.8", match = { pin = true } }) + +-------------------------------------------------------------------------------------- +-- LAYER RULES +-------------------------------------------------------------------------------------- + +hl.layer_rule({ name = "layerrule-1", blur = true, ignore_alpha = 0, match = { namespace = "rofi" } }) +hl.layer_rule({ name = "layerrule-2", blur = true, ignore_alpha = 0, match = { namespace = "notifications" } }) +hl.layer_rule({ name = "layerrule-3", blur = true, ignore_alpha = 0.5, match = { namespace = "quickshell:overview" } }) + +-- hl.layer_rule({ ignore_alpha = 0.5, match = { tag = "notif*" } }) +-- hl.layer_rule({ no_anim = true (unset), match = { class = "^([Rr]ofi)$" } }) +-- hl.layer_rule({ blur = true, match = { class = "^([Rr]ofi)$" } }) +-- hl.layer_rule({ ignore_alpha = 0, match = { class = "" } }) +-- hl.layer_rule({ ignore_alpha = 0, match = { namespace = "overview" } }) +-- hl.layer_rule({ blur = true, match = { namespace = "overview" } }) diff --git a/dotfiles/.config/hypr/workspaces.lua b/dotfiles/.config/hypr/workspaces.lua new file mode 100644 index 0000000..6d05c9b --- /dev/null +++ b/dotfiles/.config/hypr/workspaces.lua @@ -0,0 +1,29 @@ +-- HyprFlux — https://github.com/ahmad9059/HyprFlux +-- NOTE: This will be overwritten by NWG-Displays +-- once you use it and click apply. +-- (nwg-displays already supports writing this file directly as workspaces.lua once +-- hyprland.lua is active, so re-running it should stay compatible.) +-- +-- Ported from UserConfigs/workspaces.conf +-- You can set workspace rules to achieve workspace-specific behaviors. +-- For instance, you can define a workspace where all windows are drawn without borders or gaps. +-- https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/ + +-- Assigning workspace to a certain monitor. Below are just examples +hl.workspace_rule({ workspace = 1, monitor = "DP-2", default = true }) +hl.workspace_rule({ workspace = 2, monitor = "DP-1", default = true }) +hl.workspace_rule({ workspace = 3, monitor = "HDMI-A-1", default = true }) +-- hl.workspace_rule({ workspace = 4, monitor = "eDP-1" }) +-- hl.workspace_rule({ workspace = 5, monitor = "DP-2" }) +-- hl.workspace_rule({ workspace = 6, monitor = "DP-2" }) +-- hl.workspace_rule({ workspace = 7, monitor = "DP-2" }) +-- hl.workspace_rule({ workspace = 8, monitor = "DP-2" }) + +-- example rules (from wiki) +-- hl.workspace_rule({ workspace = 3, rounding = false, decorate = false }) +-- hl.workspace_rule({ workspace = "name:coding", rounding = false, decorate = false, gaps_in = 0, gaps_out = 0, border = false, monitor = "DP-1" }) +-- hl.workspace_rule({ workspace = 8, border_size = 8 }) +-- hl.workspace_rule({ workspace = "name:Hello", monitor = "DP-1", default = true }) +-- hl.workspace_rule({ workspace = "name:gaming", monitor = "desc:Chimei Innolux Corporation 0x150C", default = true }) +-- hl.workspace_rule({ workspace = 5, on_created_empty = "[float] firefox" }) +-- hl.workspace_rule({ workspace = "special:scratchpad", on_created_empty = "foot" })