nixos/home/hyprland/hyprland.nix

139 lines
3.4 KiB
Nix
Raw Normal View History

2024-02-29 08:27:26 +00:00
{ inputs, pkgs, lib, config, ... }: {
2024-02-27 20:52:14 +00:00
options.hyprland.enable = lib.mkEnableOption "Hyprland";
config = {
2024-03-02 20:16:23 +00:00
home.packages = with pkgs; [
cliphist
dunst
hyprlock
hyprpaper
rofi-wayland
slurp
swww
waybar
wl-clipboard
];
2024-02-27 20:52:14 +00:00
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mainMod" = "SUPER";
2024-02-27 21:20:00 +00:00
"$term" = "alacritty";
2024-02-27 20:52:14 +00:00
2024-03-02 20:16:23 +00:00
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
];
2024-02-27 21:20:00 +00:00
input = {
kb_layout = "no";
follow_mouse = 1;
};
2024-02-27 20:52:14 +00:00
2024-03-02 20:16:23 +00:00
env = [
# "LIBVA_DRIVER_NAME,nvidia"
# "XDG_SESSION_TYPE,wayland"
# "GBM_BACKEND,nvidia-drm"
# "__GLX_VENDOR_LIBRARY_NAME,nvidia"
"WLR_NO_HARDWARE_CURSORS,1"
];
2024-02-27 21:20:00 +00:00
decoration = {
rounding = 0;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
enabled = true;
size = 3;
passes = 1;
xray = true;
};
};
2024-02-27 20:52:14 +00:00
2024-02-27 21:20:00 +00:00
general = {
gaps_in = 4;
gaps_out = 10;
border_size = 2;
layout = "dwindle";
};
2024-02-27 20:52:14 +00:00
2024-02-27 21:20:00 +00:00
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;
2024-02-27 20:52:14 +00:00
2024-02-29 08:27:26 +00:00
windowrulev2 = [
2024-03-02 20:16:23 +00:00
"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"
2024-02-29 08:27:26 +00:00
];
2024-02-27 21:20:00 +00:00
bind = [
# term
"$mainMod,Return,exec,$term"
# rofi
"$mainMod,D,exec,rofi -show drun"
# hyprland
"$mainMod,Q,killactive,"
"CTRLALT,Delete,exit,"
"$mainMod,Space,togglefloating,"
"$mainMod,F,fullscreen,"
2024-02-27 20:52:14 +00:00
2024-02-27 21:20:00 +00:00
# focus
"$mainMod,l,movefocus,l"
"$mainMod,h,movefocus,r"
"$mainMod,k,movefocus,u"
"$mainMod,j,movefocus,d"
2024-02-27 20:52:14 +00:00
2024-02-27 21:20:00 +00:00
# move
"$mainMod,h,movewindow,l"
"$mainMod,l,movewindow,r"
"$mainMod,k,movewindow,u"
"$mainMod,j,movewindow,d"
2024-03-02 20:16:23 +00:00
# mumble ptt click
",code:202,exec,mumble rpc starttalking"
2024-02-27 21:48:45 +00:00
] ++ (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)}"
"ALT, ${ws}, workspace, ${toString (x + 1)}"
]) 10));
2024-03-02 20:16:23 +00:00
exec-once = [
"waybar"
"hyprpaper"
"easy-effects --gapplication-service"
# "dunst"
];
2024-02-27 20:52:14 +00:00
};
};
};
}