263 lines
8.9 KiB
Nix
263 lines
8.9 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
lib.mkIf config.desktop.hyprland.enable {
|
|
home-manager.users.willifan = {
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
systemd.variables = [ "--all" ];
|
|
package = pkgs.hyprland;
|
|
settings = {
|
|
|
|
|
|
"$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts";
|
|
|
|
misc = {
|
|
disable_hyprland_logo = true;
|
|
};
|
|
|
|
monitor = [
|
|
", preffered, auto, 1"
|
|
] ++ lib.optionals config.desktop.hyprland.hardware.Lenni.enable [
|
|
"eDP-1, preferred, 0x0, 1.6"
|
|
] ++ lib.optionals config.desktop.hyprland.hardware.Puenktchen.enable [
|
|
"desc:ViewSonic Corporation VX2705-2KP W6Z205100250, 2560x1440@144Hz, 0x384, 1.25"
|
|
"desc:ViewSonic Corporation VX2705-2KP W6Z210400766, 2560x1440@144Hz, 2048x384, 1.25"
|
|
"desc:BNQ BenQ BL2283 CAM01567019, 1920x1080@60Hz, 4096x0, 1.0, transform, 3"
|
|
];
|
|
# Execute your favorite apps at launch
|
|
exec-once = [
|
|
''hyprctl dispatch exec "[workspace 1 silent] zen"''
|
|
''hyprctl dispatch exec "[workspace 2 silent] kitty"''
|
|
#''hyprctl dispatch exec "[workspace 3 silent] "''
|
|
#''hyprctl dispatch exec "[workspace 4 silent] "''
|
|
#''hyprctl dispatch exec "[workspace 8 silent] "''
|
|
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
|
|
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
|
|
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
|
|
#''hyprctl dispatch exec "[workspace special:altgr silent]"''
|
|
#''hyprctl dispatch exec "[workspace special:strg silent] "''
|
|
];
|
|
|
|
xwayland.force_zero_scaling = true;
|
|
|
|
input = {
|
|
kb_layout = "eu";
|
|
kb_variant = "";
|
|
kb_model = "";
|
|
kb_options = "";
|
|
kb_rules = "";
|
|
|
|
|
|
follow_mouse = 1;
|
|
|
|
touchdevice.transform = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable 3;
|
|
|
|
touchpad.natural_scroll = "yes";
|
|
|
|
sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification.
|
|
numlock_by_default = 1;
|
|
special_fallthrough = true;
|
|
};
|
|
|
|
|
|
|
|
general = {
|
|
|
|
gaps_in = 2;
|
|
gaps_out = 5;
|
|
border_size = 2;
|
|
# "col.active_border" = "rgba(ffa44bee)";
|
|
# "col.inactive_border" = "rgba(595959aa)";
|
|
|
|
layout = "dwindle";
|
|
|
|
resize_on_border = true;
|
|
};
|
|
|
|
decoration = {
|
|
|
|
rounding = 10;
|
|
|
|
blur = {
|
|
enabled = false;
|
|
size = 3;
|
|
passes = 1;
|
|
new_optimizations = 1;
|
|
};
|
|
|
|
shadow.enabled = true;
|
|
shadow.range = 4;
|
|
shadow.render_power = 3;
|
|
# "col.shadow" = "rgba(1a1a1aee)";
|
|
};
|
|
|
|
misc = {
|
|
vfr = true;
|
|
mouse_move_enables_dpms = true;
|
|
};
|
|
|
|
animations = {
|
|
enabled = "yes";
|
|
|
|
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"
|
|
"specialWorkspace, 1, 8, default, slidefadevert 20%"
|
|
];
|
|
};
|
|
|
|
dwindle = {
|
|
pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
preserve_split = "yes"; # you probably want this
|
|
};
|
|
|
|
gestures = {
|
|
workspace_swipe = "on";
|
|
workspace_swipe_create_new = "false";
|
|
workspace_swipe_touch = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable "true";
|
|
};
|
|
|
|
device = lib.mkIf config.desktop.hyprland.hardware.Lenni.enable {
|
|
name = "pixa3854:00-093a:0274-touchpad";
|
|
sensitivity = 0;
|
|
natural_scroll = "yes";
|
|
};
|
|
|
|
windowrule = [
|
|
"idleinhibit fullscreen, ^(firefox)$"
|
|
"float, ^(thunar)$"
|
|
"stayfocused, title:^(Enpass Assistant)$"
|
|
"pin, title:^(Enpass Assistant)$"
|
|
"center, title:^(Enpass Assistant)$"
|
|
"float, ^(Enpass)$"
|
|
"center, ^(Enpass)$"
|
|
];
|
|
|
|
windowrulev2 = [
|
|
"center, xwayland:(1)"
|
|
"nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$"
|
|
''workspace +0, workspace:name:special:ctrl, floating:0''
|
|
''float, workspace:name:special:altgr, onworkspace:w[2]''
|
|
''float, workspace:name:special:strg, onworkspace:w[1]''
|
|
''workspace +0, workspace:name:special:strg, floating:0''
|
|
];
|
|
|
|
"$mainMod" = "SUPER";
|
|
|
|
bind = [
|
|
''$mainMod, Q, exec, kitty''
|
|
''$mainMod, C, killactive, ''
|
|
''$mainMod, M, exit, ''
|
|
''$mainMod, E, exec, thunar''
|
|
''$mainMod, V, togglefloating, ''
|
|
''$mainMod, R, exec, fuzzel''
|
|
''$mainMod, P, exec, Enpass''
|
|
''$mainMod, F, fullscreen''
|
|
|
|
# Move focus with mainMod + arrow keys
|
|
''$mainMod, h, movefocus, l''
|
|
''$mainMod, l, movefocus, r''
|
|
''$mainMod, k, movefocus, u''
|
|
''$mainMod, j, movefocus, d''
|
|
|
|
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
|
|
'', XF86AudioPrev, exec, playerctl previous''
|
|
'', XF86AudioPlay, exec, playerctl play-pause''
|
|
'', XF86AudioNext, exec, playerctl next''
|
|
'', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png''
|
|
|
|
# Switch workspaces with mainMod + [0-9]
|
|
''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1''
|
|
''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2''
|
|
''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3''
|
|
''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4''
|
|
''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5''
|
|
''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6''
|
|
''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7''
|
|
''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8''
|
|
''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9''
|
|
|
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
''$mainMod SHIFT, 1, movetoworkspace, 1''
|
|
''$mainMod SHIFT, 2, movetoworkspace, 2''
|
|
''$mainMod SHIFT, 3, movetoworkspace, 3''
|
|
''$mainMod SHIFT, 4, movetoworkspace, 4''
|
|
''$mainMod SHIFT, 5, movetoworkspace, 5''
|
|
''$mainMod SHIFT, 6, movetoworkspace, 6''
|
|
''$mainMod SHIFT, 7, movetoworkspace, 7''
|
|
''$mainMod SHIFT, 8, movetoworkspace, 8''
|
|
''$mainMod SHIFT, 9, movetoworkspace, 9''
|
|
|
|
# Monitor focus
|
|
''$mainMod ALT, 1, focusmonitor, 0''
|
|
''$mainMod ALT, 2, focusmonitor, 1''
|
|
''$mainMod ALT, 3, focusmonitor, 2''
|
|
''$mainMod ALT, 4, focusmonitor, 3''
|
|
''$mainMod ALT, 5, focusmonitor, 4''
|
|
''$mainMod ALT, 6, focusmonitor, 5''
|
|
''$mainMod ALT, 7, focusmonitor, 6''
|
|
''$mainMod ALT, 8, focusmonitor, 7''
|
|
''$mainMod ALT, 9, focusmonitor, 8''
|
|
''$mainMod ALT, 0, focusmonitor, 9''
|
|
|
|
# Scroll through existing workspaces with mainMod + scroll
|
|
''$mainMod, mouse_down, workspace, e+1''
|
|
''$mainMod, mouse_up, workspace, e-1''
|
|
];
|
|
|
|
binde = [
|
|
'', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5''
|
|
'', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5''
|
|
];
|
|
|
|
bindel = [
|
|
'', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800''
|
|
'', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800''
|
|
];
|
|
|
|
bindr = [
|
|
''SUPERCTRL, Control_L, togglespecialworkspace, ctrl''
|
|
''SUPERALT, Alt_L, togglespecialworkspace, alt''
|
|
''SUPERALT, ALT_R, togglespecialworkspace, altgr''
|
|
''SUPERCTRL, Control_R, togglespecialworkspace, strg''
|
|
];
|
|
|
|
bindm = [
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
''$mainMod, mouse:272, movewindow''
|
|
''$mainMod, mouse:273, resizewindow''
|
|
];
|
|
|
|
# ------------------------------------------
|
|
# ########################################
|
|
# ####### Workspaces ###########
|
|
# ########################################
|
|
# ------------------------------------------
|
|
|
|
workspace = [
|
|
"1, persistent:true"
|
|
"2, persistent:true"
|
|
"3, persistent:true"
|
|
"4, persistent:true"
|
|
"5, persistent:true"
|
|
"6, persistent:true"
|
|
"7, persistent:true"
|
|
"8, persistent:true"
|
|
"8, persistent:true"
|
|
"9, persistent:true"
|
|
|
|
"name:special:ctrl, persistent:true"
|
|
"name:special:alt, persistent:true"
|
|
"name:special:altgr, persistent:true"
|
|
"name:special:strg, persistent:true"
|
|
];
|
|
|
|
};
|
|
};
|
|
};
|
|
}
|