{ config, pkgs, ... }: { # Enable Hyprland compositor wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; xwayland.enable = true; systemd.variables = ["--all"]; settings = { # 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 ]; # 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; }; }; # bindl = [ # ",switch:off:Lid Switch,exec,hyprctl keyword monitor eDP-2, 2560x1600@165, 0x0, auto" # ",switch:on:Lid Switch,exec,hyprctl keyword monitor eDP-2, disable" # ]; # Allow using SUPER+LEFT to move windows and SUPER+RIGHT to resize windows bindm = [ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" ]; # Declare all keybinds bind = [ # Keybind for setting fullscreen "$mod, F11, fullscreen" # Keybinds for starting programs "$mod, F, exec, firefox" "$mod, 1, exec, alacritty" "$mod, D, exec, vesktop" "$mod, space, exec, zsh -c 'wofi --show drun, run'" # Screenshot tool ", Print, exec, grimblast copy area" # Screen locking tool "$mod, l, exec, hyprlock" # Window management "$mod, x, killactive" "$mod, tab, togglefloating" ]; # Prevent xwayland apps from looking pixellated, cursor scaling to compensate for this is defined in home.nix xwayland = { force_zero_scaling = true; }; }; }; }