{ ... }: { # Enable Hyprland compositor wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd.variables = [ "--all" ]; settings = { misc = { enable_anr_dialog = false; # disable application not repsonding dialog as it tends to just get in the way when trying to fix the unresponsive application }; # 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'" # Keybind for toggling touchpad "$mod, j, exec, sh $scripts/hyprland/touchpad_toggle.sh" # 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; }; }; }; }