{ host , config , pkgs , ... }: let in { home.packages = with pkgs; [ swww grim slurp wl-clipboard swappy ydotool hyprpolkitagent hyprland-qtutils # needed for banners and ANR messages ]; systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ]; wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; systemd = { enable = true; enableXdgAutostart = true; variables = [ "--all" ]; }; xwayland = { enable = true; }; settings = { input = { kb_layout = "se"; kb_options = [ "caps:esc" ]; numlock_by_default = true; repeat_delay = 300; follow_mouse = 1; float_switch_override_focus = 0; sensitivity = 0; touchpad = { natural_scroll = true; disable_while_typing = true; scroll_factor = 0.8; }; }; gestures = { workspace_swipe = 1; workspace_swipe_fingers = 3; workspace_swipe_distance = 500; workspace_swipe_invert = 1; workspace_swipe_min_speed_to_force = 30; workspace_swipe_cancel_ratio = 0.5; workspace_swipe_create_new = 1; workspace_swipe_forever = 1; }; general = { "$modifier" = "SUPER"; layout = "dwindle"; gaps_in = 6; gaps_out = 8; border_size = 2; resize_on_border = true; }; misc = { layers_hog_keyboard_focus = true; initial_workspace_tracking = 0; mouse_move_enables_dpms = true; key_press_enables_dpms = false; disable_hyprland_logo = true; disable_splash_rendering = true; enable_swallow = false; vfr = true; # Variable Frame Rate vrr = 2; #Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES # Screen flashing to black momentarily or going black when app is fullscreen # Try setting vrr to 0 # Application not responding (ANR) settings enable_anr_dialog = true; anr_missed_pings = 15; }; dwindle = { pseudotile = true; preserve_split = true; force_split = 2; }; decoration = { rounding = 10; blur = { enabled = true; size = 5; passes = 3; ignore_opacity = false; new_optimizations = true; }; shadow = { enabled = true; range = 4; render_power = 3; color = "rgba(1a1a1aee)"; }; }; ecosystem = { no_donation_nag = true; no_update_news = false; }; cursor = { sync_gsettings_theme = true; no_hardware_cursors = 2; # change to 1 if want to disable enable_hyprcursor = false; warp_on_change_workspace = 2; no_warps = true; }; render = { # Disabling as no longer supported #explicit_sync = 1; # Change to 1 to disable #explicit_sync_kms = 1; direct_scanout = 0; }; master = { new_status = "master"; new_on_top = 1; mfact = 0.5; }; # Ensure Xwayland windows render at integer scale; compositor scales them xwayland = { force_zero_scaling = true; }; }; }; }