nixos/home/hyprland/hyprland.nix
2024-03-03 07:16:13 +01:00

145 lines
3.5 KiB
Nix

{ inputs, pkgs, lib, config, ... }: {
options.hyprland.enable = lib.mkEnableOption "Hyprland";
config = {
home.packages = with pkgs; [
cliphist
dunst
hyprlock
hyprpaper
rofi-wayland
slurp
swww
waybar
wl-clipboard
];
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mainMod" = "SUPER";
"$shiftMainMod" = "SUPER_SHIFT";
"$term" = "kitty";
monitor = [
"DP-3,1920x1080@60,2560x0,1" # top
"DP-8,2560x1440@75,0x1080,1" # left
"DP-2,2560x1440@120,2560x1080,1" # main
"DP-7,2560x1440@75,5120x1080,1" # right
];
input = {
kb_layout = "no";
follow_mouse = 1;
};
env = [
"LIBVA_DRIVER_NAME,nvidia"
"XDG_SESSION_TYPE,wayland"
"GBM_BACKEND,nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"WLR_NO_HARDWARE_CURSORS,1"
];
decoration = {
rounding = 0;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
enabled = true;
size = 3;
passes = 1;
xray = true;
};
};
general = {
gaps_in = 4;
gaps_out = 10;
border_size = 2;
layout = "dwindle";
};
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 = {
pseudotile = true;
preserve_split = true;
};
master.new_is_master = true;
misc.force_default_wallpaper = -1;
windowrulev2 = [
"opacity 0.95 override 0.7 override,class:^(Alacritty)$"
"opacity 0.95 override 0.7 override,class:^(kitty)$"
];
bindm = [
"ALT,mouse:272,movewindow"
];
bindr = [
# mumble ptt release
",code:202,exec,mumble rpc stoptalking"
];
bind = [
# term
"$mainMod,Return,exec,$term"
# rofi
"$mainMod,D,exec,rofi-launcher"
"$mainMod,P,exec,rofi-rbw"
# hyprland
"$mainMod,Q,killactive,"
"CTRLALT,Delete,exit,"
"$mainMod,Space,togglefloating,"
"$mainMod,F,fullscreen,"
# focus
"$mainMod,l,movefocus,l"
"$mainMod,h,movefocus,r"
"$mainMod,k,movefocus,u"
"$mainMod,j,movefocus,d"
# move
"$mainMod,h,movewindow,l"
"$mainMod,l,movewindow,r"
"$mainMod,k,movewindow,u"
"$mainMod,j,movewindow,d"
# Force opacity
"$shiftMainMod,o,exec, hl-no-opacity"
# mumble ptt click
",code:202,exec,mumble rpc starttalking"
] ++ (builtins.concatLists (builtins.genList
(x:
let
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
in
[
"$mainMod, ${ws}, workspace, ${toString (x + 1)}"
]) 10));
exec-once = [
"waybar"
"hyprpaper"
"easy-effects --gapplication-service"
# "dunst"
];
};
};
};
}