nixconf/home-manager/hyprland.nix
Gabriella Bere 661356a198 fixed workspace keybind, nvf uses system clipboard
had to do the system clipboard thing so i could share my solution to the
workspace thing lmao, good to get the motivation

also installed vim sleuth which sets the relevant tab options to use the
correct indentation style depending on existing code and swap to
autocomplete when it doesnt make sense to press tab, its great
2025-06-03 22:20:23 +01:00

99 lines
3.2 KiB
Nix

{ ... }:
{
# Enable Hyprland compositor
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.variables = [ "--all" ];
settings = {
misc = {
enable_anr_dialog = false;
};
# Monitor config for home desk layout
monitor = [
"eDP-2, 2560x1600@165, 0x0, auto" # main laptop monitor
"desc:Lenovo Group Limited LEN G24-10 U5B4KL78, 1920x1080@119.98, -960x-1080, auto" # left external monitor
"desc:Lenovo Group Limited LEN G24-10 U5B4ZAM2, 1920x1080@119.98, 960x-1080, auto" # right external monitor
];
workspace = [
"name:comms, monitor:desc:Lenovo Group Limited LEN G24-10 U5B4KL78, default:true, persistent:true"
"name:bg_noise, monitor:desc:Lenovo Group Limited LEN G24-10 U5B4ZAM2, default:true, persistent:true"
"name:main, monitor:eDP-2, default:true, persistent:true"
];
# Define SUPER key as mod key
"$mod" = "SUPER";
# Set keyboard layout
input = {
kb_layout = "gb";
follow_mouse = 1;
mouse_refocus = false;
touchpad = {
disable_while_typing = true;
};
};
gestures = {
workspace_swipe = true;
};
# Allow using SUPER + left click to move windows and SUPER + right click to resize windows
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
exec-once = [
"[workspace name:comms silent; move -100%,100%] telegram-desktop"
"[workspace name:comms silent; move -100%,-100%] signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland"
"[workspace name:comms silent; move 100%,100%] floorp https://web.whatsapp.com https://instagram.com"
"[workspace name:comms silent; move 100%,-100%] vesktop"
"[workspace name:bg_noise] floorp https://www.youtube.com/playlist?list=WL"
"[workspace name:main] alacritty"
"nm-applet --indicator"
"blueman-applet"
"trayscale"
];
# Declare all keybinds
bind = [
# Keybind for setting fullscreen
"$mod, F11, fullscreen"
# Keybinds for starting programs
"$mod, F, exec, floorp"
"$mod, 1, exec, alacritty"
"$mod, D, exec, vesktop"
"$mod, space, exec, zsh -c 'wofi --show drun, run'"
# Screenshot tool
", Print, exec, grimblast copy area"
"SHIFT, Print, exec, grimblast save area"
# Screen locking tool
"$mod, l, exec, hyprlock"
# Window management
"$mod, x, killactive"
"$mod, tab, togglefloating"
# workspace swipe but with $mod+scroll
"$mod, mouse_up, workspace, r+1"
"$mod, left, workspace, m-1"
"$mod, mouse_down, workspace, m-1"
"$mod, right, workspace, r+1"
# send window to workspace
"$mod shift, mouse_up, movetoworkspace, r+1"
"$mod shift, left, movetoworkspace, m-1"
"$mod shift, mouse_down, movetoworkspace, m-1"
"$mod shift, right, movetoworkspace, r+1"
];
# Prevent xwayland apps from looking pixellated, cursor scaling to compensate for this is defined in home.nix
xwayland = {
force_zero_scaling = true;
};
};
};
}