{myConfig, ...}: { imports = [ ./config/binds.nix ./config/execs.nix ./config/rules.nix ]; home.file.".config/hypr/scripts/wsaction.fish" = { source = builtins.toPath ./scripts/wsaction.fish; executable = true; }; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd.enable = true; settings = { "$mod" = "SUPER"; "$term" = "kitty --single-instance"; "$browser" = "firefox"; "$wsaction" = "fish -c ./scripts/wsaction.fish"; monitor = myConfig.nixos.Hyprland.monitors; general = { gaps_in = 2; gaps_out = 5; border_size = 2; # col.active_border = "#0DB7D4FF"; # col.inactive_border = "#31313600"; # col = { # "inactive_border" = "rgba(595959aa)"; # "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; # }; resize_on_border = false; 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; preserve_split = true; }; master = { new_status = "master"; }; misc = { force_default_wallpaper = -1; disable_hyprland_logo = true; }; input = { kb_layout = "us"; follow_mouse = 1; sensitivity = 0; force_no_accel = true; repeat_delay = 250; repeat_rate = 35; touchpad = { natural_scroll = false; }; numlock_by_default = true; }; gestures = { workspace_swipe = false; }; binds = { workspace_back_and_forth = true; 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-.*" ]; }; }; }