nix/home-manager/common/desktops/hyprland/components/hyprland.nix

162 lines
5.2 KiB
Nix
Raw Normal View History

2024-01-05 08:13:22 +01:00
{ ... }: {
2024-01-03 15:33:36 +01:00
wayland.windowManager.hyprland = {
enable = true;
2024-01-03 15:33:36 +01:00
settings = {
layerrule = "blur, waybar";
xwayland.force_zero_scaling = true;
general = {
gaps_in = "8";
gaps_out = "8";
border_size = "2";
resize_on_border = "true";
extend_border_grab_area = "15";
layout = "dwindle";
};
input = {
kb_layout = "us";
follow_mouse = "1";
touchpad = {
natural_scroll = true;
disable_while_typing = true;
tap-to-click = true;
clickfinger_behavior = true;
drag_lock = true;
};
sensitivity = 0;
};
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = 3;
workspace_swipe_numbered = false;
};
misc = {
disable_hyprland_logo = true;
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
};
decoration = {
rounding = 5;
active_opacity = 0.8;
inactive_opacity = 0.6;
fullscreen_opacity = 1.0;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
size = 8;
passes = 3;
ignore_opacity = true;
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows,1,7,myBezier"
"windowsOut,1,7,default,popin 80%"
"border,1,10,default"
"borderangle,1,8,default"
"fade,1,7,default"
"workspaces,1,6,default"
];
};
dwindle = {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true;# you probably want this
no_gaps_when_only = 1;
};
master.new_is_master = true;
windowrule = [
"noblur,^(firefox)$" # disables blur for firefox
"opacity 1.0 override,^(firefox)$"
"noblur,^(steam)$" # disables blur for steam
"opacity 1.0 override,^(steam)$"
];
2024-01-03 15:33:36 +01:00
bind = [
''SUPER, Q, exec, kitty''
''SUPER, C, killactive,''
''SUPER, M, exit,''
''SUPER, V, togglefloating,''
''SUPER, P, pseudo, # dwindle''
''SUPER, J, togglesplit, # dwindle''
2023-09-23 09:09:53 +02:00
# Move focus with mainMod + arrow keys
2024-01-03 15:33:36 +01:00
''SUPER_ALT, left, movefocus, l''
''SUPER_ALT, right, movefocus, r''
''SUPER_ALT, up, movefocus, u''
''SUPER_ALT, down, movefocus, d''
2023-11-14 11:31:56 +01:00
2024-01-03 15:33:36 +01:00
''SUPER_ALT, H, movefocus, l''
''SUPER_ALT, L, movefocus, r''
''SUPER_ALT, K, movefocus, u''
''SUPER_ALT, J, movefocus, d''
2023-09-23 09:09:53 +02:00
# Switch workspaces with mainMod + [0-9]
2024-01-03 15:33:36 +01:00
''SUPER, 1, workspace, 1''
''SUPER, 2, workspace, 2''
''SUPER, 3, workspace, 3''
''SUPER, 4, workspace, 4''
''SUPER, 5, workspace, 5''
''SUPER, 6, workspace, 6''
''SUPER, 7, workspace, 7''
''SUPER, 8, workspace, 8''
''SUPER, 9, workspace, 9''
''SUPER, 0, workspace, 10''
2023-09-23 09:09:53 +02:00
# Move active window to a workspace with mainMod + SHIFT + [0-9]
2024-01-03 15:33:36 +01:00
''SUPER SHIFT, 1, movetoworkspace, 1''
''SUPER SHIFT, 2, movetoworkspace, 2''
''SUPER SHIFT, 3, movetoworkspace, 3''
''SUPER SHIFT, 4, movetoworkspace, 4''
''SUPER SHIFT, 5, movetoworkspace, 5''
''SUPER SHIFT, 6, movetoworkspace, 6''
''SUPER SHIFT, 7, movetoworkspace, 7''
''SUPER SHIFT, 8, movetoworkspace, 8''
''SUPER SHIFT, 9, movetoworkspace, 9''
''SUPER SHIFT, 0, movetoworkspace, 10''
2023-09-23 09:09:53 +02:00
# Scroll through existing workspaces with mainMod + scroll
2024-01-03 15:33:36 +01:00
''SUPER, mouse_down, workspace, e+1''
''SUPER, mouse_up, workspace, e-1''
2023-09-23 09:09:53 +02:00
2024-01-03 15:33:36 +01:00
# Resize
''SUPER, R, exec, notify-send "Entered resize mode. Press ESC to quit."''
''SUPER, R, submap, resize''
2023-09-23 09:09:53 +02:00
#############################################################################
# Custom keybinds
# Show Rofi on SUPER-SPACE
2024-01-03 15:33:36 +01:00
''SUPER, space, exec, rofi -show combi -show-icons''
# ''SUPER, space, exec, rofi -show drun -show-icons
# Take a screenshot with the Print key''
'', Print, exec, grim -g "$(slurp)" | wl-copy -t image/png''
2023-09-23 09:09:53 +02:00
# Move to the previous / next workspace with SUPER-LEFT and SUPER-RIGHT
2024-01-03 15:33:36 +01:00
''SUPER , right, workspace, e+1''
''SUPER , left , workspace, e-1''
''SUPER SHIFT, right, movetoworkspace, e+1''
''SUPER SHIFT, left , movetoworkspace, e-1''
''SHIFT ALT, L, workspace, e+1''
''SHIFT ALT, H, workspace, e-1''
2023-09-23 09:09:53 +02:00
# Lock the screen, send to swaylock and pause music
2024-01-03 15:33:36 +01:00
''SUPER, L, exec, swaylock''
''SUPER, L, exec, playerctl pause''
2023-11-14 11:31:56 +01:00
# to switch between windows in a floating workspace
2024-01-03 15:33:36 +01:00
''SUPER ,Tab, cyclenext, # change focus to another window''
''SUPER ,Tab, bringactivetotop, # bring it to the top''
2023-09-23 09:09:53 +02:00
2024-01-03 15:33:36 +01:00
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
''SUPER, mouse:272, movewindow''
''SUPER, mouse:273, resizewindow''
];
exec-once = ''bash ~/.config/hypr/start.sh'';
2023-09-23 09:09:53 +02:00
};
2024-01-03 15:34:00 +01:00
};
2023-09-23 09:09:53 +02:00
}