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; with nixosConfig.nix-rice.lib;
let let
strPalette = palette.toRgbaShortHex nixosConfig.nix-rice.rice.colorPalette; 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 = { wayland.windowManager.hyprland = {
Description = "User Graphical Login"; enable = true;
Requires = [ "graphical-session.target" ]; settings = {
After = [ "graphical-session.target" ]; 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 = { exec = lib.lists.optionals (nixosConfig.networking.hostName == "thor") [
Description = "Run "; "xrandr --output DP-3 --primary"
}; "noti -t 'Hyprland' -m 'New config loaded\!'"
];
exec-once = [
"swww init"
];
# exec-shutdown = [ ];
xdg.configFile."hypr/hyprland.conf" = { env = [
text = '' "XCURSOR_SIZE,24"
# ];
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# See https://wiki.hyprland.org/Configuring/Monitors/ "$LAPTOP_KEYBOARD_ENABLED" = true;
# monitor=name,resolution,position,scale device = [
monitor=,preferred,auto,auto { name = "at-translated-set-2-keyboard"; enabled = "$LAPTOP_KEYBOARD_ENABLED"; }
monitor=Unknown-1,disable { name = "keychron-k1-max-keyboard"; kb_layout = "us"; }
${ { name = "keychron-k1-max-keyboard-2"; kb_layout = "us"; }
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
""
}
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 misc.disable_hyprland_logo = true;
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
# Source a file (multi-file configs) animations = {
# source = ~/.config/hypr/myColors.conf 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. dwindle = {
env = XCURSOR_SIZE,24 # 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/ master = {
input { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
kb_layout = ${if nixosConfig.networking.hostName == "thor" then "us,it,us" else "it,us,us"} new_status = "master";
kb_variant = ,,colemak };
kb_model =
kb_options = grp:menu_toggle,compose:rctrl
kb_rules =
numlock_by_default = true
follow_mouse = 2 gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true;
};
touchpad { decoration = {
natural_scroll = yes 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 "$mod" = "SUPER";
device {
name = at-translated-set-2-keyboard
enabled = $LAPTOP_KEYBOARD_ENABLED
}
device { bind = [
name=keychron-k1-max-keyboard "SUPER_SHIFT_L, L, exec, hyprctl keyword general:layout dwindle"
kb_layout=us "SUPER_ALT_L, L, exec, hyprctl keyword general:layout master"
}
device { "SUPER, RETURN, exec, kitty"
name=keychron-k1-max-keyboard-2 "SUPER, W, killactive,"
kb_layout=us "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 { # Move focus to relative position
# See https://wiki.hyprland.org/Configuring/Variables/ for more "SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
"SUPER, down, movefocus, d"
gaps_in = 1 # Move window to relative position
gaps_out = 2 "SUPER_SHIFT, left, movewindow, l"
border_size = 2 "SUPER_SHIFT, right, movewindow, r"
col.active_border = rgba(${strPalette.normal.yellow}) rgba(${strPalette.normal.red}) 45deg "SUPER_SHIFT, up, movewindow, u"
col.inactive_border = rgba(${strPalette.bright.black}) "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 { # Move active window to a workspace with mainMod + SHIFT + [0-9]
disable_hyprland_logo = true "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 { # Move workspace to monitor with mainMod + SHIFT + CTRL + [0-9]
# See https://wiki.hyprland.org/Configuring/Variables/ for more "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 { # Scroll through existing workspaces with mainMod + scroll
enabled = true "SUPER, mouse_down, workspace, e+1"
size = 3 "SUPER, mouse_up, workspace, e-1"
passes = 1 "SUPER ALT, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
new_optimizations = true
}
drop_shadow = yes ", XF86AudioNext, exec, playerctl next"
shadow_range = 4 ", XF86AudioPlay, exec, playerctl play-pause"
shadow_render_power = 3 ", XF86AudioPrev, exec, playerctl previous"
col.shadow = rgba(1a1a1aee) "SUPER ALT, Right, exec, playerctl next"
} "SUPER ALT, Down, exec, playerctl play-pause"
"SUPER ALT, Left, exec, playerctl previous"
animations { ", XF86PowerOff, exec, wlogout"
enabled = yes ];
# 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 bindm = [
animation = windowsOut, 1, 7, default, popin 80% # mouse movements
animation = border, 1, 10, default "$mod, mouse:272, movewindow"
animation = borderangle, 1, 8, default "$mod, mouse:273, resizewindow"
animation = fade, 1, 7, default "$mod ALT, mouse:272, resizewindow"
animation = workspaces, 1, 6, default
}
dwindle { # Move/resize windows with mainMod + LMB/RMB and dragging
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more "SUPER, mouse:272, movewindow"
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below "SUPER, mouse:273, resizewindow"
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
'';
}; };
} }

View file

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