{ config, custom ? { fontsize = "12"; primary_accent = "cba6f7"; secondary_accent = "89b4fa"; tertiary_accent = "f5f5f5"; background = "11111B"; opacity = ".85"; cursor = "Numix-Cursor"; }, inputs, pkgs, ... }: { wayland.windowManager.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.system}.hyprland; enableNvidiaPatches = true; xwayland.enable = true; systemd.enable = true; settings = { "$mainMod" = "SUPER"; monitor = [ "DP-2, 2560x1440@144, 0x0, 1" ]; exec-once = [ "waybar" "swww init" ''swayidle -w timeout 1800 'swaylock -f -i ${config.home.homeDirectory}/photos/wallpapers/wallpaper.png' timeout 1805 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep "swaylock -f -i ${config.home.homeDirectory}/photos/wallpapers/wallpaper.png"'' "hyprctl setcursor ${custom.cursor} ${custom.fontsize}" "wl-paste --type text --watch cliphist store &" "wl-paste --type image --watch cliphist store &" "swaync" ]; input = { kb_layout = "be"; follow_mouse = 1; force_no_accel = 1; numlock_by_default = true; sensitivity = 0; }; general = { gaps_in = 6; gaps_out = 10; border_size = 2; # "col.active_border" = "rgb(${custom.primary_accent})"; "col.active_border" = "rgba(${custom.palette.tertiary_background_hex}00)"; "col.inactive_border" = "rgba(${custom.background}00)"; #allow_tearing = true; layout = "dwindle"; }; decoration = { rounding = 10; shadow_ignore_window = true; drop_shadow = true; shadow_range = 40; shadow_render_power = 2; # "col.shadow" = "rgb(${custom.primary_accent})"; "col.shadow" = "rgb(${custom.background})"; "col.shadow_inactive" = "rgba(${custom.background}00)"; blur = { enabled = false; size = 6; passes = 3; new_optimizations = true; ignore_opacity = true; noise = 0.0117; contrast = 1.2; xray = false; brightness = 1; }; }; animations = { enabled = true; bezier = "overshot,0.13,0.99,0.29,1.1"; animation = [ "windows,1,6,overshot,slide" "border,1,10,default" "fade,1,10,default" "workspaces,1,6,overshot,slide" ]; }; dwindle = { pseudotile = true; preserve_split = true; force_split = 2; }; master = { new_is_master = true; }; gestures = { workspace_swipe = false; }; misc = { vfr = true; vrr = 0; disable_hyprland_logo = true; disable_splash_rendering = true; }; bind = [ # TODO: Look into using special workspace # Exit to tty "$mainMod SHIFT, X, exit " # Launch "$mainMod, RETURN, exec, foot" "$mainMod, D, exec, wofi" ''$mainMod,P,exec,mkdir -p ${config.home.homeDirectory}/photos/screenshots; grim -t png -g "$(slurp)" ${config.home.homeDirectory}/photos/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png'' "$mainMod SHIFT,N,exec, swaync-client -t -sw" "$mainMod,X,exec, wlogout -b 4" "$mainMod,V,exec, cliphist list | wofi -dmenu | cliphist decode | wl-paste" # Window Options "$mainMod SHIFT, P, pseudo" "$mainMod, S, togglesplit" "$mainMod, F, fullscreen" "$mainMod, Space, togglefloating " "$mainMod, Q, killactive" # Focus Windows "$mainMod, H, movefocus, l" "$mainMod, L, movefocus, r" "$mainMod, K, movefocus, u" "$mainMod, J, movefocus, d" # Move Windows "$mainMod SHIFT,H,movewindow,l" "$mainMod SHIFT,L,movewindow,r" "$mainMod SHIFT,K,movewindow,u" "$mainMod SHIFT,J,movewindow,d" # Switch workspaces "$mainMod, AMPERSAND, workspace, 1" "$mainMod, EACUTE, workspace, 2" "$mainMod, QUOTEDBL, workspace, 3" "$mainMod, APOSTROPHE, workspace, 4" "$mainMod, PARENLEFT, workspace, 5" "$mainMod, SECTION, workspace, 6" "$mainMod, EGRAVE, workspace, 7" "$mainMod, EXCLAM, workspace, 8" "$mainMod, CCEDILLA, workspace, 9" "$mainMod, AGRAVE, workspace, 10" # Switch active window to workspace "$mainMod SHIFT, AMPERSAND, movetoworkspace, 1" "$mainMod SHIFT, EACUTE, movetoworkspace, 2" "$mainMod SHIFT, QUOTEDBL, movetoworkspace, 3" "$mainMod SHIFT, APOSTROPHE, movetoworkspace, 4" "$mainMod SHIFT, PARENLEFT, movetoworkspace, 5" "$mainMod SHIFT, SECTION, movetoworkspace, 6" "$mainMod SHIFT, EGRAVE, movetoworkspace, 7" "$mainMod SHIFT, EXCLAM, movetoworkspace, 8" "$mainMod SHIFT, CCEDILLA, movetoworkspace, 9" "$mainMod SHIFT, AGRAVE, movetoworkspace, 10" # Scroll workspace with mouse scrollwheel "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" ]; bindm = [ # Move and resize windows with mouse too "$mainMod, mouse:272, movewindow" "$mainMod SHIFT, mouse:272, resizewindow" ]; bindle = [ # Volume Keys ",XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +5% " ",XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -5% " ]; windowrulev2 = [ # "opacity ${custom.opacity} ${custom.opacity},class:^(thunar)$" # "opacity ${custom.opacity} ${custom.opacity},class:^(WebCord)$" # "opacity 0.90 0.90,class:^(Brave-browser)$" # "opacity 0.90 0.90,class:^(brave-browser)$" # "opacity 0.90 0.90,class:^(firefox)$" "float,class:^(pavucontrol)$" "float,class:^(file_progress)$" "float,class:^(confirm)$" "float,class:^(dialog)$" "float,class:^(download)$" "float,class:^(notification)$" "float,class:^(error)$" "float,class:^(confirmreset)$" "float,title:^(Open File)$" "float,title:^(branchdialog)$" "float,title:^(Confirm to replace files)$" "float,title:^(File Operation Progress)$" "float,title:^(mpv)$" "float, title:^(Picture-in-Picture)$" # Ensure tearing for specific games # "immediate, class:^(cs2)$" # "immediate, class:^(love)$" # "immediate, title:^(Freesync test)$" ]; layerrule = [ "blur, waybar" "blur, wofi" "ignorezero, wofi" ]; }; # Submaps extraConfig = '' # will switch to a submap called resize bind=$mainMod,R,submap,resize # will start a submap called "resize" submap=resize # sets repeatable binds for resizing the active window binde=,L,resizeactive,15 0 binde=,H,resizeactive,-15 0 binde=,K,resizeactive,0 -15 binde=,J,resizeactive,0 15 # use reset to go back to the global submap bind=,escape,submap,reset bind=$mainMod,R,submap,reset # will reset the submap, meaning end the current one and return to the global one submap=reset # For tearing env = WLR_DRM_NO_ATOMIC,1 ''; }; }