98 lines
3.2 KiB
Nix
98 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, bash -c 'wofi --show drun, run'"
|
|
|
|
# Screenshot tool
|
|
", Print, exec, hyprshot -m region"
|
|
|
|
# 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;
|
|
};
|
|
};
|
|
};
|
|
}
|