-- ───────────────────────────────────────────────────────────────────────────── -- Input -- -- Deliberately GNOME-like: click-to-focus, no focus-follows-mouse, no mouse -- acceleration changes. The goal is that muscle memory transfers untouched. -- ───────────────────────────────────────────────────────────────────────────── local prefs = require("prefs") hl.config({ input = { kb_layout = prefs.get("keyboardLayout", "us"), kb_variant = prefs.get("keyboardVariant", ""), kb_model = "", kb_options = prefs.get("keyboardOptions", ""), kb_rules = "", numlock_by_default = prefs.get("numlockByDefault", true), -- GNOME's defaults are 500ms delay / 33Hz repeat. repeat_delay = prefs.get("keyRepeatDelay", 500), repeat_rate = prefs.get("keyRepeatRate", 33), -- 1 = FOLLOW. The window under the pointer takes focus. This comment -- previously claimed 1 was "click to focus, GNOME's behaviour", which -- is the opposite of what Hyprland does -- `hyprctl descriptions` gives -- map: [{"separate":3},{"detached":2},{"follow":1},{"disabled":0}], -- so click-to-focus is 0. Changing the shipped value is a behaviour -- decision rather than a correction, so the value is left alone and -- only the description is fixed; Settings exposes all four. follow_mouse = prefs.getInt("followMouse", 1), -- Softens follow_mouse: with this off, focus changes only when the -- pointer crosses a window boundary, not on every movement inside one. -- Still focus-follows-pointer, just less twitchy. mouse_refocus = false, -- Flat pointer response, no acceleration. Matters for gaming. sensitivity = prefs.get("pointerSensitivity", 0), accel_profile = "flat", -- Clicking a floating window raises and focuses it. float_switch_override_focus = 2, }, }) -- Desktop machine: no touchpad, no gestures worth wiring. If a laptop ever -- runs this config, add touchpad settings in overrides.lua. return true