{ wayland.windowManager.hyprland = { settings = { # autostart exec-once = [ "picokontroller" "systemctl --user start hyprpolkitagent" "busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 4000" "hyprshade on bluelight" "fcitx5" "webcord" ]; input = { kb_layout = "de"; numlock_by_default = true; follow_mouse = 1; sensitivity = 0; # 0 means no modification touchpad = { natural_scroll = true; }; }; general = { "$mainMod" = "SUPER"; "$terminal" = "alacritty"; "$menu" = "wofi --show drun --allow-images --no-actions"; layout = "dwindle"; gaps_in = 5; gaps_out = 10; border_size = 2; border_part_of_window = false; no_border_on_floating = false; }; plugin = { hyprsplit = { num_workspaces = 10; }; }; misc = { disable_hyprland_logo = true; always_follow_on_dnd = true; layers_hog_keyboard_focus = true; animate_manual_resizes = false; enable_swallow = true; focus_on_activate = true; new_window_takes_over_fullscreen = 2; middle_click_paste = false; }; dwindle = { pseudotile = true; preserve_split = true; }; master = { new_status = "master"; }; decoration = { rounding = 10; blur = { enabled = true; size = 3; passes = 1; vibrancy = 0.1696; }; shadow = { enabled = true; range = 4; render_power = 3; }; }; animations = { enabled = true; # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = [ "easeOutQuint,0.23,1,0.32,1" "easeInOutCubic,0.65,0.05,0.36,1" "linear,0,0,1,1" "almostLinear,0.5,0.5,0.75,1.0" "quick,0.15,0,0.1,1" ]; animation = [ "global, 1, 10, default" "border, 1, 5.39, easeOutQuint" "windows, 1, 4.79, easeOutQuint" "windowsIn, 1, 4.1, easeOutQuint, popin 87%" "windowsOut, 1, 1.49, linear, popin 87%" "fadeIn, 1, 1.73, almostLinear" "fadeOut, 1, 1.46, almostLinear" "fade, 1, 3.03, quick" "layers, 1, 3.81, easeOutQuint" "layersIn, 1, 4, easeOutQuint, fade" "layersOut, 1, 1.5, linear, fade" "fadeLayersIn, 1, 1.79, almostLinear" "fadeLayersOut, 1, 1.39, almostLinear" "workspaces, 1, 1.94, almostLinear, fade" "workspacesIn, 1, 1.21, almostLinear, fade" "workspacesOut, 1, 1.94, almostLinear, fade" ]; }; bind = [ "$mainMod, Return, exec, $terminal" "$mainMod SHIFT, C, killactive" "$mainMod SHIFT, Q, exit" "$mainMod, V, togglefloating" "$mainMod, Space, exec, $menu" "$mainMod, P, pseudo" # dwindle "$mainMod, J, togglesplit" # dwindle # Move focus with mainMod + arrow keys "$mainMod, left, movefocus, l" "$mainMod, right, movefocus, r" "$mainMod, up, movefocus, u" "$mainMod, down, movefocus, d" # Switch workspaces with mainMod + [0-9] "$mainMod, 1, split:workspace, 1" "$mainMod, 2, split:workspace, 2" "$mainMod, 3, split:workspace, 3" "$mainMod, 4, split:workspace, 4" "$mainMod, 5, split:workspace, 5" "$mainMod, 6, split:workspace, 6" "$mainMod, 7, split:workspace, 7" "$mainMod, 8, split:workspace, 8" "$mainMod, 9, split:workspace, 9" "$mainMod, 0, split:workspace, 10" # Move active window to a workspace with mainMod + SHIFT + [0-9] "$mainMod SHIFT, 1, split:movetoworkspacesilent, 1" "$mainMod SHIFT, 2, split:movetoworkspacesilent, 2" "$mainMod SHIFT, 3, split:movetoworkspacesilent, 3" "$mainMod SHIFT, 4, split:movetoworkspacesilent, 4" "$mainMod SHIFT, 5, split:movetoworkspacesilent, 5" "$mainMod SHIFT, 6, split:movetoworkspacesilent, 6" "$mainMod SHIFT, 7, split:movetoworkspacesilent, 7" "$mainMod SHIFT, 8, split:movetoworkspacesilent, 8" "$mainMod SHIFT, 9, split:movetoworkspacesilent, 9" "$mainMod SHIFT, 0, split:movetoworkspacesilent, 10" # Example special workspace (scratchpad) "$mainMod, S, togglespecialworkspace, magic" "$mainMod SHIFT, S, movetoworkspace, special:magic" # Scroll through existing workspaces with mainMod + scroll "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" # media and volume controls ",XF86AudioPlay,exec, playerctl play-pause" ",XF86AudioNext,exec, playerctl next" ",XF86AudioPrev,exec, playerctl previous" ",XF86AudioStop,exec, playerctl stop" ]; # Move/resize windows with mainMod + LMB/RMB and dragging bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; windowrulev2 = [ "suppressevent maximize, class:.*" # Ignore maximize requests from apps. You'll probably like this. "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" # Fix some dragging issues with XWayland "float, title:^(Picture-in-Picture)$" "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" "pin, title:^(Picture-in-Picture)$" "float,class:^(pavucontrol)$" "float,class:^(SoundWireServer)$" "float,class:^(.sameboy-wrapped)$" "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:^(File Upload)$" "float,title:^(branchdialog)$" "float,title:^(Confirm to replace files)$" "float,title:^(File Operation Progress)$" # workspace setup "workspace 10, class:^(feishin)$" # nextcloud "float,class:^(com.nextcloud.desktopclient.nextcloud)$" "stayfocused,class:^(com.nextcloud.desktopclient.nextcloud)$" # otherwise window immediately closes # Remove context menu transparency in chromium based apps "opaque,class:^()$,title:^()$" "noshadow,class:^()$,title:^()$" "noblur,class:^()$,title:^()$" ]; monitor = [ ",preferred,auto,auto" ]; }; }; }