nixos_configs/hosts/home/hyprland.nix
2025-01-23 12:39:45 -05:00

180 lines
5.1 KiB
Nix

{
config,
pkgs,
inputs,
...
}: {
imports = [./waybar.nix ./tile.nix];
home.packages = with pkgs; [
iio-hyprland
jq #iio-hyprland needs this
];
programs = {
hyprlock.enable = true;
};
services = {
hyprpaper.enable = true;
batsignal.enable = true;
hypridle = {
enable = true;
package = pkgs.hypridle;
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
xwayland.enable = true;
settings = {
exec-once = [
"${pkgs.iio-hyprland}/bin/iio-hyprland"
"${pkgs.batsignal}/bin/batsignal -n BAT0 -b"
];
monitor = "eDP-1,preferred,auto,1";
general = {
"$mainMod" = "SUPER";
layout = "master";
"$terminal" = "${pkgs.alacritty}/bin/alacritty";
"$menu" = "${pkgs.wofi}/bin/wofi --show drun";
gaps_in = 5;
gaps_out = 10;
border_size = 2;
};
decoration = {
rounding = 15;
blur = {
enabled = true;
size = 2;
passes = 2;
brightness = 1;
noise = 0.3;
new_optimizations = true;
};
};
misc = {
disable_autoreload = true;
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 = true;
vfr = true;
vrr = 1;
};
input = {touchpad = {natural_scroll = true;};};
bind = [
# keybindings
"$mainMod, Return, exec, $terminal"
"$mainMod, D, exec, $menu"
"$mainMod Shift, C, killactive,"
"$mainMod, Space, exec, toggle_float"
"$mainMod, Escape, exec, ${pkgs.hyprlock}/bin/hyprlock"
# switch focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# switch workspace
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# same as above, but switch to the workspace
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
"$mainMod CTRL, c, movetoworkspace, empty"
# window control
"$mainMod SHIFT, left, movewindow, l"
"$mainMod SHIFT, right, movewindow, r"
"$mainMod SHIFT, up, movewindow, u"
"$mainMod SHIFT, down, movewindow, d"
"$mainMod CTRL, left, resizeactive, -80 0"
"$mainMod CTRL, right, resizeactive, 80 0"
"$mainMod CTRL, up, resizeactive, 0 -80"
"$mainMod CTRL, down, resizeactive, 0 80"
"$mainMod ALT, left, moveactive, -80 0"
"$mainMod ALT, right, moveactive, 80 0"
"$mainMod ALT, up, moveactive, 0 -80"
"$mainMod ALT, down, moveactive, 0 80"
# media and volume controls
# ",XF86AudioMute,exec, pamixer -t"
",XF86AudioPlay,exec, playerctl play-pause"
",XF86AudioNext,exec, playerctl next"
",XF86AudioPrev,exec, playerctl previous"
",XF86AudioStop,exec, playerctl stop"
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
windowrule = ["float,mpv" "center,mpv" "pin,wofi" "idleinhibit focus,mpv"];
windowrulev2 = [];
};
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
MOZ_USE_XINPUT2 = "1";
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
_JAVA_AWT_WM_NONREPARENTING = 1;
};
}