reNixos/hand7s/wayland/hyprland.nix
s0me1newithhand7s 5dab6c5e28
hand7s: fmt
Signed-off-by: s0me1newithhand7s <117505144+s0me1newithhand7s@users.noreply.github.com>
2025-06-13 13:13:26 +03:00

278 lines
11 KiB
Nix

{
inputs,
config,
pkgs,
lib,
...
}: {
wayland = {
windowManager = {
hyprland = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
)
true;
settings = {
monitor = ", 2560x1440@165.00Hz, 0x0, 1";
general = {
gaps_in = "5";
gaps_out = "20";
border_size = "2";
layout = "dwindle";
snap = {
enabled = true;
window_gap = "5";
monitor_gap = "5";
border_overlap = false;
};
};
input = {
kb_layout = "us, ru";
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = "1";
left_handed = false;
sensitivity = "0";
special_fallthrough = true;
focus_on_close = 1;
touchpad = {
disable_while_typing = true;
tap-to-click = true;
};
tablet = {
output = "current";
left_handed = true;
};
};
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = true;
workspace_swipe_distance = 400;
};
group = {
auto_group = true;
insert_after_current = true;
focus_removed_window = true;
drag_into_group = "2";
merge_groups_on_drag = true;
merge_groups_on_groupbar = true;
group_on_movetoworkspace = true;
groupbar = {
enabled = true;
};
};
decoration = {
active_opacity = "0.85";
inactive_opacity = "0.65";
fullscreen_opacity = "1.0";
rounding = "10";
dim_inactive = true;
dim_strength = "0.15";
dim_special = "0.0";
dim_around = "0.05";
shadow = {
enabled = true;
render_power = "4";
range = "4";
ignore_window = false;
};
blur = {
enabled = true;
size = "10";
passes = "5";
};
};
exec-once = [
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpaper.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hypridle.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpolkitagent.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpanel.service"
];
bind = [
"ALT, return, exec, ${lib.getExe pkgs.ghostty}"
"ALT, Q, killactive,"
"ALT SHIFT, Q, closeunfocused,"
"ALT, S, exec, ${lib.getExe pkgs.fuzzel}"
"ALT, F, fullscreen, 0"
"ALT, L, exec, ${lib.getExe pkgs.hyprlock}"
"ALT SHIFT, E, exit,"
"ALT SHIFT, space, togglefloating, active"
"ALT SHIFT, S, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png"
"ALT, left, movefocus, l"
"ALT, right, movefocus, r"
"ALT, up, movefocus, u"
"ALT, down, movefocus, d"
"ALT, 1, split-workspace, 1"
"ALT, 2, split-workspace, 2"
"ALT, 3, split-workspace, 3"
"ALT, 4, split-workspace, 4"
"ALT, 5, split-workspace, 5"
"ALT, 6, split-workspace, 6"
"ALT, 7, split-workspace, 7"
"ALT, 8, split-workspace, 8"
"ALT, 9, split-workspace, 9"
"ALT, 0, split-workspace, 10"
"ALT, H, togglespecialworkspace, special"
"ALT SHIFT, 1, split-movetoworkspace, 1"
"ALT SHIFT, 2, split-movetoworkspace, 2"
"ALT SHIFT, 3, split-movetoworkspace, 3"
"ALT SHIFT, 4, split-movetoworkspace, 4"
"ALT SHIFT, 5, split-movetoworkspace, 5"
"ALT SHIFT, 6, split-movetoworkspace, 6"
"ALT SHIFT, 7, split-movetoworkspace, 7"
"ALT SHIFT, 8, split-movetoworkspace, 8"
"ALT SHIFT, 9, split-movetoworkspace, 9"
"ALT SHIFT, 0, split-movetoworkspace, 10"
"ALT SHIFT, H, split-movetoworkspace, special"
"ALT, mouse_down, workspace, e+1"
"ALT, mouse_up, workspace, e-1"
"ALT, TAB, overview:toggle"
];
bindel = [
", XF86AudioRaiseVolume, exec, ${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, ${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%-"
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set +5%"
];
bindl = [
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
", XF86AudioMute, exec, ${lib.getExe' pkgs.wireplumber "wpctl"} set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
bindm = [
"ALT, mouse:272, movewindow"
"ALT, mouse:273, resizewindow"
];
animation = [
"enabled = true"
"bezier = bez, 0.05, 0.9, 0.1, 1.05"
"animation = windows, 1, 7, bez"
"animation = windowsOut, 1, 7, default, popin 80%"
"animation = border, 1, 10, default"
"animation = borderangle, 1, 10, default"
"animation = fade, 1, 7, default"
"animation = workspaces, 1, 7, default"
];
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
middle_click_paste = false;
animate_manual_resizes = true;
animate_mouse_windowdragging = true;
focus_on_activate = true;
close_special_on_empty = true;
initial_workspace_tracking = "2";
};
binds = {
workspace_back_and_forth = true;
allow_workspace_cycles = true;
workspace_center_on = true;
};
xwayland = {
enabled = true;
use_nearest_neighbor = true;
force_zero_scaling = false;
};
ecosystem = {
no_update_news = true;
no_donation_nag = true;
};
debug = {
suppress_errors = true;
};
plugin = {
split-monitor-workspaces = {
count = 10;
keep_focused = 1;
enable_notifications = 1;
enable_persistent_workspaces = 1;
};
easymotion = {
only_special = false;
};
dynamic-cursors = {
enabled = true;
mode = "strech";
threshold = 2;
stretch = {
limit = 4000;
function = "quadratic";
};
shake = {
enabled = true;
nearest = true;
threshold = 10.0;
effects = true;
};
hyprcursor = {
enabled = true;
nearest = true;
fallback = "clientside";
};
};
touch_gestures = {
sensitivity = 0.0;
workspace_swipe_fingers = 4;
long_press_delay = 400;
resize_on_border_long_press = true;
edge_margin = 10;
emulate_touchpad_swipe = false;
};
};
};
plugins = with inputs; [
hyprsplit.packages.${pkgs.system}.split-monitor-workspaces
hyprcurs.packages.${pkgs.system}.hypr-dynamic-cursors
hypremot.packages.${pkgs.system}.hyprland-easymotion
hyprplugs.packages.${pkgs.system}.xtra-dispatchers
hyprplugs.packages.${pkgs.system}.hyprwinwrap
hyprspace.packages.${pkgs.system}.Hyprspace
hyprgrass.packages.${pkgs.system}.hyprgrass
];
};
};
};
}