diff --git a/packages/hyprland/config/animation.nix b/packages/hyprland/config/animation.nix index e69de29..223c9f2 100644 --- a/packages/hyprland/config/animation.nix +++ b/packages/hyprland/config/animation.nix @@ -0,0 +1,42 @@ +{ + config, + pkgs, + myConfig, + ... +}: { + wayland.windowManager.hyprland.settings = { + animations = { + enabled = true; + bezier = [ + "linear, 0, 0, 1, 1" + "md3_standard, 0.2, 0, 0, 1" + "md3_decel, 0.05, 0.7, 0.1, 1" + "md3_accel, 0.3, 0, 0.8, 0.15" + "overshot, 0.05, 0.9, 0.1, 1.1" + "crazyshot, 0.1, 1.5, 0.76, 0.92" + "hyprnostretch, 0.05, 0.9, 0.1, 1.0" + "menu_decel, 0.1, 1, 0, 1" + "menu_accel, 0.38, 0.04, 1, 0.07" + "easeInOutCirc, 0.85, 0, 0.15, 1" + "easeOutCirc, 0, 0.55, 0.45, 1" + "easeOutExpo, 0.16, 1, 0.3, 1" + "softAcDecel, 0.26, 0.26, 0.15, 1" + "md2, 0.4, 0, 0.2, 1" + ]; + + animation = [ + "windows, 1, 3, md3_decel, popin 60%" + "windowsIn, 1, 3, md3_decel, popin 60%" + "windowsOut, 1, 3, md3_accel, popin 60%" + "border, 1, 10, default" + "fade, 1, 3, md3_decel" + "layersIn, 1, 3, menu_decel, slide" + "layersOut, 1, 1.6, menu_accel" + "fadeLayersIn, 1, 2, menu_decel" + "fadeLayersOut, 1, 0.5, menu_accel" + "workspaces, 1, 7, menu_decel, slide" + "specialWorkspace, 1, 3, md3_decel, slidevert" + ]; + }; + }; +} diff --git a/packages/hyprland/config/decoration.nix b/packages/hyprland/config/decoration.nix new file mode 100644 index 0000000..4a36395 --- /dev/null +++ b/packages/hyprland/config/decoration.nix @@ -0,0 +1,33 @@ +{ + config, + pkgs, + myConfig, + ... +}: { + wayland.windowManager.hyprland.settings = { + decoration = { + rounding = 10; + rounding_power = 2; + active_opacity = 1.0; + inactive_opacity = 1.0; + + dim_inactive = true; + dim_strength = 0.1; + dim_special = 0.8; + + shadow = { + enabled = true; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + + blur = { + enabled = true; + size = 3; + passes = 1; + vibrancy = 0.1696; + }; + }; + }; +} diff --git a/packages/hyprland/config/decorations.nix b/packages/hyprland/config/decorations.nix deleted file mode 100644 index e69de29..0000000 diff --git a/packages/hyprland/config/rules.nix b/packages/hyprland/config/rules.nix index cce3f4d..4c9256e 100644 --- a/packages/hyprland/config/rules.nix +++ b/packages/hyprland/config/rules.nix @@ -5,12 +5,111 @@ ... }: { wayland.windowManager.hyprland.settings = { + # ######## Window rules ######## + windowrule = [ + "opaque, class:foot|equibop" + "center 1, floating:1, xwayland:0" + + # Float + "float, class:guifetch" + "float, class:yad" + "float, class:zenity" + "float, class:wev" + "float, class:org\\.gnome\\.FileRoller" # Escaped backslash + "float, class:file-roller" + "float, class:blueman-manager" + "float, class:com\\.github\\.GradienceTeam\\.Gradience" # Escaped backslash + "float, class:feh" + "float, class:imv" + "float, class:system-config-printer" + "float, class:quickshell" + + # Float, resize and center + "float, class:foot, title:nmtui" + "size 60% 70%, class:foot, title:nmtui" + "center 1, class:foot, title:nmtui" + "float, class:org\\.gnome\\.Settings" + "size 70% 80%, class:org\\.gnome\\.Settings" + "center 1, class:org\\.gnome\\.Settings" + "float, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" + "size 60% 70%, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" + "center 1, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" + "float, class:nwg-look" + "size 50% 60%, class:nwg-look" + "center 1, class:nwg-look" + + # Special workspaces + "workspace special:sysmon, class:btop" + "workspace special:music, class:feishin|Spotify|Supersonic" + "workspace special:music, initialTitle:Spotify( Free)?" + "workspace special:communication, class:discord|equibop|vesktop|whatsapp" + "workspace special:todo, class:Todoist" + + # Dialogs + "float, title:(Select|Open)( a)? (File|Folder)(s)?" + "float, title:File (Operation|Upload)( Progress)?" + "float, title:.* Properties" + "float, title:Export Image as PNG" + "float, title:GIMP Crash Debug" + "float, title:Save As" + "float, title:Library" + + # Picture in picture (resize and move done via script) + "move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture" + "keepaspectratio, title:Picture(-| )in(-| )[Pp]icture" + "float, title:Picture(-| )in(-| )[Pp]icture" + "pin, title:Picture(-| )in(-| )[Pp]icture" + + # Steam + "rounding 10, title:, class:steam" + "float, title:Friends List, class:steam" + "immediate, class:steam_app_[0-9]+" + "idleinhibit always, class:steam_app_[0-9]+" + + # ATLauncher console + "float, class:com-atlauncher-App, title:ATLauncher Console" + + # Autodesk Fusion 360 + "noblur, title:Fusion360|(Marking Menu), class:fusion360\\.exe" # Escaped backslash + + # Ugh xwayland popups + "nodim, xwayland:1, title:win[0-9]+" + "noshadow, xwayland:1, title:win[0-9]+" + "rounding 10, xwayland:1, title:win[0-9]+" + ]; + + # ######## Workspace rules ######## workspace = [ + "w[tv1]s[false], gapsout:20, gapsin:20" + "f[1]s[false], gapsout:20, gapsin:20" "1, monitor:DP-1, default:true" "2, monitor:DP-1" "3, monitor:DP-1" "4, monitor:DP-1" "5, monitor:DP-1" ]; + + # ######## Layer rules ######## + layerrule = [ + "animation fade, hyprpicker" + "animation fade, logout_dialog" + "animation fade, selection" + "animation fade, wayfreeze" + + # Fuzzel + "animation popin 80%, launcher" + "blur, launcher" + + # Shell + "noanim, caelestia-(launcher|osd|notifications|border-exclusion|area-picker)" + "animation fade, caelestia-(drawers|background)" + "order 1, caelestia-border-exclusion" + "order 2, caelestia-bar" + # The commented out lines below need to remain commented if you don't want them active + #"xray 1, caelestia-(border|launcher|bar|sidebar|navbar|mediadisplay|screencorners)" + #"blur, caelestia-.*" + #"blurpopups, caelestia-.*" + #"ignorealpha 0.57, caelestia-.*" + ]; }; } diff --git a/packages/hyprland/home.nix b/packages/hyprland/home.nix index de02d31..ff33c91 100644 --- a/packages/hyprland/home.nix +++ b/packages/hyprland/home.nix @@ -3,6 +3,8 @@ ./config/binds.nix ./config/execs.nix ./config/rules.nix + ./config/animation.nix + ./config/decoration.nix ]; home.file.".config/hypr/scripts/wsaction.fish" = { @@ -35,64 +37,6 @@ allow_tearing = false; layout = "dwindle"; }; - decoration = { - rounding = 10; - rounding_power = 2; - active_opacity = 1.0; - inactive_opacity = 1.0; - - dim_inactive = true; - dim_strength = 0.1; - dim_special = 0.8; - - shadow = { - enabled = true; - range = 4; - render_power = 3; - color = "rgba(1a1a1aee)"; - }; - - blur = { - enabled = true; - size = 3; - passes = 1; - vibrancy = 0.1696; - }; - }; - - animations = { - enabled = true; - bezier = [ - "linear, 0, 0, 1, 1" - "md3_standard, 0.2, 0, 0, 1" - "md3_decel, 0.05, 0.7, 0.1, 1" - "md3_accel, 0.3, 0, 0.8, 0.15" - "overshot, 0.05, 0.9, 0.1, 1.1" - "crazyshot, 0.1, 1.5, 0.76, 0.92" - "hyprnostretch, 0.05, 0.9, 0.1, 1.0" - "menu_decel, 0.1, 1, 0, 1" - "menu_accel, 0.38, 0.04, 1, 0.07" - "easeInOutCirc, 0.85, 0, 0.15, 1" - "easeOutCirc, 0, 0.55, 0.45, 1" - "easeOutExpo, 0.16, 1, 0.3, 1" - "softAcDecel, 0.26, 0.26, 0.15, 1" - "md2, 0.4, 0, 0.2, 1" - ]; - - animation = [ - "windows, 1, 3, md3_decel, popin 60%" - "windowsIn, 1, 3, md3_decel, popin 60%" - "windowsOut, 1, 3, md3_accel, popin 60%" - "border, 1, 10, default" - "fade, 1, 3, md3_decel" - "layersIn, 1, 3, menu_decel, slide" - "layersOut, 1, 1.6, menu_accel" - "fadeLayersIn, 1, 2, menu_decel" - "fadeLayersOut, 1, 0.5, menu_accel" - "workspaces, 1, 7, menu_decel, slide" - "specialWorkspace, 1, 3, md3_decel, slidevert" - ]; - }; dwindle = { pseudotile = true; @@ -132,118 +76,10 @@ scroll_event_delay = 0; }; - # The 'bind' array is now entirely managed by the imported binds.nix - # You would remove the existing 'bind' section from here: - # bind = ... (remove this section) - - # Similarly, remove other bind sections (bindm, bindel, bindl, bindi, bindin) - # if you've moved them into `binds.nix`. - env = [ "HYPRCURSOR_THEME, Bibata-Original-Classic" "HYPRCURSOR_SIZE, 24" ]; - # ######## Window rules ######## - windowrule = [ - "opaque, class:foot|equibop" - "center 1, floating:1, xwayland:0" - - # Float - "float, class:guifetch" - "float, class:yad" - "float, class:zenity" - "float, class:wev" - "float, class:org\\.gnome\\.FileRoller" # Escaped backslash - "float, class:file-roller" - "float, class:blueman-manager" - "float, class:com\\.github\\.GradienceTeam\\.Gradience" # Escaped backslash - "float, class:feh" - "float, class:imv" - "float, class:system-config-printer" - "float, class:quickshell" - - # Float, resize and center - "float, class:foot, title:nmtui" - "size 60% 70%, class:foot, title:nmtui" - "center 1, class:foot, title:nmtui" - "float, class:org\\.gnome\\.Settings" - "size 70% 80%, class:org\\.gnome\\.Settings" - "center 1, class:org\\.gnome\\.Settings" - "float, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" - "size 60% 70%, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" - "center 1, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser" - "float, class:nwg-look" - "size 50% 60%, class:nwg-look" - "center 1, class:nwg-look" - - # Special workspaces - "workspace special:sysmon, class:btop" - "workspace special:music, class:feishin|Spotify|Supersonic" - "workspace special:music, initialTitle:Spotify( Free)?" - "workspace special:communication, class:discord|equibop|vesktop|whatsapp" - "workspace special:todo, class:Todoist" - - # Dialogs - "float, title:(Select|Open)( a)? (File|Folder)(s)?" - "float, title:File (Operation|Upload)( Progress)?" - "float, title:.* Properties" - "float, title:Export Image as PNG" - "float, title:GIMP Crash Debug" - "float, title:Save As" - "float, title:Library" - - # Picture in picture (resize and move done via script) - "move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture" - "keepaspectratio, title:Picture(-| )in(-| )[Pp]icture" - "float, title:Picture(-| )in(-| )[Pp]icture" - "pin, title:Picture(-| )in(-| )[Pp]icture" - - # Steam - "rounding 10, title:, class:steam" - "float, title:Friends List, class:steam" - "immediate, class:steam_app_[0-9]+" - "idleinhibit always, class:steam_app_[0-9]+" - - # ATLauncher console - "float, class:com-atlauncher-App, title:ATLauncher Console" - - # Autodesk Fusion 360 - "noblur, title:Fusion360|(Marking Menu), class:fusion360\\.exe" # Escaped backslash - - # Ugh xwayland popups - "nodim, xwayland:1, title:win[0-9]+" - "noshadow, xwayland:1, title:win[0-9]+" - "rounding 10, xwayland:1, title:win[0-9]+" - ]; - - # ######## Workspace rules ######## - workspace = [ - "w[tv1]s[false], gapsout:20, gapsin:20" - "f[1]s[false], gapsout:20, gapsin:20" - ]; - - # ######## Layer rules ######## - layerrule = [ - "animation fade, hyprpicker" - "animation fade, logout_dialog" - "animation fade, selection" - "animation fade, wayfreeze" - - # Fuzzel - "animation popin 80%, launcher" - "blur, launcher" - - # Shell - "noanim, caelestia-(launcher|osd|notifications|border-exclusion|area-picker)" - "animation fade, caelestia-(drawers|background)" - "order 1, caelestia-border-exclusion" - "order 2, caelestia-bar" - # The commented out lines below need to remain commented if you don't want them active - #"xray 1, caelestia-(border|launcher|bar|sidebar|navbar|mediadisplay|screencorners)" - #"blur, caelestia-.*" - #"blurpopups, caelestia-.*" - #"ignorealpha 0.57, caelestia-.*" - ]; }; }; }