dotfiles/modules/home-manager/hyprland.nix
2024-09-15 12:41:24 +02:00

160 lines
4.2 KiB
Nix

{
config,
pkgs,
...
}: {
imports = [
./hyprlock.nix
./hyprpaper.nix
];
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = true;
settings = {
# BINDS
"$mod" = "SUPER";
bind =
[
"SUPERSHIFT, E, exit"
"$mod, Q, killactive"
"$mod, B, exec, brave"
"$mod, return, exec, alacritty"
"$mod,E,exec,nautilus"
"$mod,D,exec,killall -q wofi; wofi --show drun -I"
"SUPERSHIFT,R,exec,hyprctl reload"
"$mod,space,togglefloating,"
"ALTSHIFT, L, exec, swaylock"
"$mod,F,fullscreen"
"ALTSHIFT,K,exec,amixer set 'Master' 5%+"
"ALTSHIFT,J,exec,amixer set 'Master' 5%-"
"SUPERSHIFT,N,exec, swaync-client -t -sw"
"$mod, M, exec,hyprctl keyword monitor 'eDP-1, enable'"
"SUPERSHIFT, M, exec,hyprctl keyword monitor 'eDP-1, disable'"
"SUPERSHIFT,P,exec,hyprshot -m region -o ~/Screenshot/"
"SUPERALTSHIFT, P, exec, hyprshot -m window -o ~/Screenshot/"
"$mod,left,movefocus,l"
"$mod, H,movefocus,l"
"SUPERALT, left, movewindow, l"
"SUPERALT, H, movewindow, l"
"$mod,right,movefocus,r"
"$mod, L,movefocus,r"
"SUPERALT, right, movewindow, r"
"SUPERALT, L, movewindow, r"
"$mod,up,movefocus,u"
"$mod, K,movefocus,u"
"SUPERALT, up, movewindow, u"
"SUPERALT, K, movewindow, u"
"$mod,down,movefocus,d"
"$mod, J,movefocus,d"
"SUPERALT, down, movewindow, d"
"SUPERALT, J, movewindow, d"
]
++ (
# workspaces
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
]
)
9)
);
bindm = [
"$mod, mouse:272,movewindow"
"$mod, mouse:273,resizewindow"
];
binde = [
",XF86MonBrightnessDown,exec,brightnessctl --device=intel_backlight s 5%-"
",XF86MonBrightnessUp,exec,brightnessctl --device=intel_backlight s 5%+"
"SUPERSHIFT,right,resizeactive, 10 0"
"SUPERSHIFT,L,resizeactive, 10 0"
"SUPERSHIFT,down,resizeactive, 0 10"
"SUPERSHIFT,J,resizeactive, 0 10"
"SUPERSHIFT,left,resizeactive, -10 0"
"SUPERSHIFT,H,resizeactive, -10 0"
"SUPERSHIFT,up,resizeactive, 0 -10"
"SUPERSHIFT,K,resizeactive, 0 -10"
];
# MONITOR
monitor = [
"eDP-1,2560x1600@165.0,0x0,2"
];
# INPUT
input = {
kb_layout = "us";
kb_options = "compose:ralt,caps:escape";
follow_mouse = 2;
touchpad = {
natural_scroll = "yes";
};
sensitivity = 0.0; # -1.0 - 1.0, 0 means no modification.
};
# GENERAL
general = {
gaps_in = 10;
gaps_out = 20;
border_size = 2;
"col.active_border" = "0xffBF616A";
"col.inactive_border" = "0xffebdbb2";
};
# CURSOR
cursor = {
no_warps = true;
inactive_timeout = 3;
};
# DECORATION
decoration = {
active_opacity = 0.95;
inactive_opacity = 0.95;
rounding = 10;
};
# ANIMATION
animations = {
enabled = 1;
bezier = "overshot,0.13,0.99,0.29,1.1";
animation = [
"windows,1,4,overshot,slide"
"border,1,10,default"
"fade,1,10,default"
"workspaces,1,6,overshot,slide"
];
};
# EXEC ONCE
exec-once = [
"waybar"
"nm-applet"
"swaync"
"whatpulse"
];
# WINDOW RULES
windowrule = [
"move 400 400, float, title:(jetbrains toolbox)"
"float,wofi"
"opacity 1 override,title:^(.*)(Brave)(.*)$"
];
};
};
# Optional, hint Electron apps to use Wayland:
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
}