Hyprland: switch to HM configuration

This commit is contained in:
Filippo Berto 2024-10-26 16:15:48 +02:00
parent f62164c1cf
commit d863c04cec
Signed by: bertof
GPG key ID: 9DBF7E6A1D2CE9ED
2 changed files with 189 additions and 235 deletions

View file

@ -1,4 +1,4 @@
{ nixosConfig, pkgs, ... }:
{ nixosConfig, lib, pkgs, ... }:
with nixosConfig.nix-rice.lib;
let
strPalette = palette.toRgbaShortHex nixosConfig.nix-rice.rice.colorPalette;
@ -40,268 +40,221 @@ in
;
};
# wayland.windowManager.hyprland = { };
services.network-manager-applet.enable = true;
services.blueman-applet.enable = true;
systemd.user.targets."hyprland-login".Unit = {
Description = "User Graphical Login";
Requires = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
wayland.windowManager.hyprland = {
enable = true;
settings = {
input = {
kb_layout = if nixosConfig.networking.hostName == "thor" then "us,it,us" else "it,us,us";
kb_options = "grp:menu_toggle,compose:rctrl";
kb_variant = ",,colemak";
kb_model = "";
kb_rules = "";
numlock_by_default = true;
follow_mouse = 2;
touchpad.natural_scroll = true;
};
systemd.user.services."swaynotificationcenter".Unit = {
Description = "Run ";
};
exec = lib.lists.optionals (nixosConfig.networking.hostName == "thor") [
"xrandr --output DP-3 --primary"
"noti -t 'Hyprland' -m 'New config loaded\!'"
];
exec-once = [
"swww init"
];
# exec-shutdown = [ ];
xdg.configFile."hypr/hyprland.conf" = {
text = ''
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
env = [
"XCURSOR_SIZE,24"
];
# See https://wiki.hyprland.org/Configuring/Monitors/
# monitor=name,resolution,position,scale
monitor=,preferred,auto,auto
monitor=Unknown-1,disable
${
if nixosConfig.networking.hostName == "thor" then
''
monitor=DP-3,preferred,1080x420,auto
monitor=HDMI-A-1,preferred,0x0,auto,transform,3
''
else if nixosConfig.networking.hostName == "odin" then
''
monitor=eDP-1,preferred,320x1440,1
monitor=DP-1,preferred,0x0,1
''
else
""
}
"$LAPTOP_KEYBOARD_ENABLED" = true;
device = [
{ name = "at-translated-set-2-keyboard"; enabled = "$LAPTOP_KEYBOARD_ENABLED"; }
{ name = "keychron-k1-max-keyboard"; kb_layout = "us"; }
{ name = "keychron-k1-max-keyboard-2"; kb_layout = "us"; }
];
general = {
gaps_in = 1;
gaps_out = 2;
border_size = 2;
"col.active_border" = "rgba(${strPalette.normal.yellow}) rgba(${strPalette.normal.red}) 45deg";
"col.inactive_border" = "rgba(${strPalette.bright.black})";
layout = "dwindle";
};
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
monitor = [
",preferred,auto,auto"
"Unknown-1,disable"
] ++ lib.lists.optionals (nixosConfig.networking.hostName == "thor") [
"DP-3,preferred,1080x420,auto"
"HDMI-A-1,preferred,0x0,auto,transform,3"
] ++ lib.lists.optionals (nixosConfig.networking.hostName == "odin") [
"eDP-1,preferred,320x1440,1"
"DP-1,preferred,0x0,1"
];
# Execute your favorite apps at launch
exec-once = ${
if nixosConfig.networking.hostName == "thor" then "xrandr --output DP-2 --primary" else "true"
} & swww init & nm-applet & blueman-applet & systemctl --user start hyprland-login.target
misc.disable_hyprland_logo = true;
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
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"
];
};
# Some default env vars.
env = XCURSOR_SIZE,24
dwindle = {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/
# master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
pseudotile = true;
preserve_split = true; # you probably want this
};
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ${if nixosConfig.networking.hostName == "thor" then "us,it,us" else "it,us,us"}
kb_variant = ,,colemak
kb_model =
kb_options = grp:menu_toggle,compose:rctrl
kb_rules =
numlock_by_default = true
master = {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = "master";
};
follow_mouse = 2
gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true;
};
touchpad {
natural_scroll = yes
}
decoration = {
rounding = 10;
blur = {
enabled = true;
size = 3;
passes = 1;
new_optimizations = true;
};
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
"col.shadow" = "rgba(1a1a1aee)";
};
$LAPTOP_KEYBOARD_ENABLED = true
device {
name = at-translated-set-2-keyboard
enabled = $LAPTOP_KEYBOARD_ENABLED
}
"$mod" = "SUPER";
device {
name=keychron-k1-max-keyboard
kb_layout=us
}
bind = [
"SUPER_SHIFT_L, L, exec, hyprctl keyword general:layout dwindle"
"SUPER_ALT_L, L, exec, hyprctl keyword general:layout master"
device {
name=keychron-k1-max-keyboard-2
kb_layout=us
}
"SUPER, RETURN, exec, kitty"
"SUPER, W, killactive,"
"SUPER, M, exec, wl-lockscreen"
"SUPER_ALT_L, Q, exit,"
"SUPER, E, exec, nautilus"
"SUPER, L, exec, env -u WAYLAND_DISPLAY logseq"
"SUPER_SHIFT, E, exec, nemo"
"SUPER, V, togglefloating,"
"SUPER, SPACE, exec, sirula"
"SUPER, F, fullscreen,"
"SUPER, P, pseudo, # dwindle"
"SUPER, J, togglesplit, # dwindle"
"SUPER ALT, E, exec, wofi-emoji"
"SUPER ALT, P, exec, wl-clipedit"
"SUPER, B, exec, wl-update-background"
",Print, exec, grimblast copy"
"SHIFT, Print, exec, grimblast copy area"
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
# Move focus to relative position
"SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
"SUPER, down, movefocus, d"
gaps_in = 1
gaps_out = 2
border_size = 2
col.active_border = rgba(${strPalette.normal.yellow}) rgba(${strPalette.normal.red}) 45deg
col.inactive_border = rgba(${strPalette.bright.black})
# Move window to relative position
"SUPER_SHIFT, left, movewindow, l"
"SUPER_SHIFT, right, movewindow, r"
"SUPER_SHIFT, up, movewindow, u"
"SUPER_SHIFT, down, movewindow, d"
layout = dwindle
}
# Switch workspaces with mainMod + [0-9]
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER, 5, workspace, 5"
"SUPER, 6, workspace, 6"
"SUPER, 7, workspace, 7"
"SUPER, 8, workspace, 8"
"SUPER, 9, workspace, 9"
"SUPER, 0, workspace, 10"
misc {
disable_hyprland_logo = true
}
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
"SUPER SHIFT, 0, movetoworkspace, 10"
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
# Move workspace to monitor with mainMod + SHIFT + CTRL + [0-9]
"SUPER SHIFT CTRL, 1, movecurrentworkspacetomonitor, 0"
"SUPER SHIFT CTRL, 2, movecurrentworkspacetomonitor, 1"
"SUPER SHIFT CTRL, 3, movecurrentworkspacetomonitor, 2"
"SUPER SHIFT CTRL, 4, movecurrentworkspacetomonitor, 3"
"SUPER SHIFT CTRL, 5, movecurrentworkspacetomonitor, 4"
"SUPER SHIFT CTRL, 6, movecurrentworkspacetomonitor, 5"
"SUPER SHIFT CTRL, 7, movecurrentworkspacetomonitor, 6"
"SUPER SHIFT CTRL, 8, movecurrentworkspacetomonitor, 7"
"SUPER SHIFT CTRL, 9, movecurrentworkspacetomonitor, 8"
"SUPER SHIFT CTRL, 0, movecurrentworkspacetomonitor, 9"
rounding = 10
"ALT, Tab, cyclenext"
"ALT SHIFT, Tab, cyclenext, prev"
blur {
enabled = true
size = 3
passes = 1
new_optimizations = true
}
# Scroll through existing workspaces with mainMod + scroll
"SUPER, mouse_down, workspace, e+1"
"SUPER, mouse_up, workspace, e-1"
"SUPER ALT, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
", XF86AudioNext, exec, playerctl next"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
"SUPER ALT, Right, exec, playerctl next"
"SUPER ALT, Down, exec, playerctl play-pause"
"SUPER ALT, Left, exec, playerctl previous"
animations {
enabled = yes
", XF86PowerOff, exec, wlogout"
];
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bindel = [
", XF86MonBrightnessUp, exec, brillo -A 10"
", XF86MonBrightnessDown, exec, brillo -U 10"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
];
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
bindl = [
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
bindm = [
# mouse movements
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# device:epic-mouse-v1 {
# sensitivity = -0.5
# }
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# $mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = SUPER, RETURN, exec, kitty
bind = SUPER, W, killactive,
bind = SUPER, M, exec, wl-lockscreen
bind = SUPER_ALT_L, Q, exit,
bind = SUPER, E, exec, nautilus
bind = SUPER, L, exec, env -u WAYLAND_DISPLAY logseq
bind = SUPER_SHIFT, E, exec, nemo
bind = SUPER, V, togglefloating,
bind = SUPER, SPACE, exec, sirula
bind = SUPER, F, fullscreen,
bind = SUPER, P, pseudo, # dwindle
bind = SUPER, J, togglesplit, # dwindle
bind = SUPER ALT, E, exec, wofi-emoji
bind = SUPER ALT, P, exec, wl-clipedit
bind = SUPER, B, exec, wl-update-background
bind = ,Print, exec, grimblast copy
bind = SHIFT, Print, exec, grimblast copy area
# Move focus to relative position
bind = SUPER, left, movefocus, l
bind = SUPER, right, movefocus, r
bind = SUPER, up, movefocus, u
bind = SUPER, down, movefocus, d
# Move window to relative position
bind = SUPER_SHIFT, left, movewindow, l
bind = SUPER_SHIFT, right, movewindow, r
bind = SUPER_SHIFT, up, movewindow, u
bind = SUPER_SHIFT, down, movewindow, d
# Switch workspaces with mainMod + [0-9]
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, 10
# Move workspace to monitor with mainMod + SHIFT + CTRL + [0-9]
bind = SUPER SHIFT CTRL, 1, movecurrentworkspacetomonitor, 0
bind = SUPER SHIFT CTRL, 2, movecurrentworkspacetomonitor, 1
bind = SUPER SHIFT CTRL, 3, movecurrentworkspacetomonitor, 2
bind = SUPER SHIFT CTRL, 4, movecurrentworkspacetomonitor, 3
bind = SUPER SHIFT CTRL, 5, movecurrentworkspacetomonitor, 4
bind = SUPER SHIFT CTRL, 6, movecurrentworkspacetomonitor, 5
bind = SUPER SHIFT CTRL, 7, movecurrentworkspacetomonitor, 6
bind = SUPER SHIFT CTRL, 8, movecurrentworkspacetomonitor, 7
bind = SUPER SHIFT CTRL, 9, movecurrentworkspacetomonitor, 8
bind = SUPER SHIFT CTRL, 0, movecurrentworkspacetomonitor, 9
bind = ALT, Tab, cyclenext
bind = ALT SHIFT, Tab, cyclenext, prev
# Scroll through existing workspaces with mainMod + scroll
bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+
bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = SUPER ALT, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPrev, exec, playerctl previous
bind = SUPER ALT, Right, exec, playerctl next
bind = SUPER ALT, Down, exec, playerctl play-pause
bind = SUPER ALT, Left, exec, playerctl previous
bind = , XF86PowerOff, exec, wlogout
bind = , XF86MonBrightnessUp, exec, brillo -A 10
bind = , XF86MonBrightnessDown, exec, brillo -U 10
'';
# Move/resize windows with mainMod + LMB/RMB and dragging
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
};
};
}

View file

@ -21,6 +21,7 @@ in
programs.waybar = {
enable = true;
systemd.enable = true;
systemd.target = "hyprland-session.target";
settings = {
mainBar = {
layer = "top";