-- Keep only your personal input overrides here. Uncommented settings below -- replace Omarchy's defaults. -- Key repeat. Repeat is synthesized by the compositor (wl_keyboard.repeat_info -- -> the client repeats locally), so this costs nothing on the wireless link. -- Omarchy's 250ms / 40Hz already beats Hyprland's 600 / 25; tighten it further -- so held keys (backspace, arrows, vim motions) start and stream sooner. -- -- Everything else in the keystroke path was checked and is already optimal for -- the Pilot W-Corne (55d4:0461, Vial/QMK over a 2.4GHz dongle): the dongle -- advertises bInterval=1 (1000Hz polling), udev pins power/control=on (no USB -- autosuspend), nothing polls its raw-HID interface, WiFi sits on 5GHz, and -- render:new_render_scheduling is off (no triple-buffer frame of latency). -- Remaining latency is the 60Hz Studio Display refresh and the fcitx5 -- input-method hop (see omarchy-fcitx5.service), neither of which is an -- input option. hl.config({ input = { repeat_delay = 200, repeat_rate = 50, }, }) -- Keyboard layout and options. -- See https://wiki.hypr.land/Configuring/Basics/Variables/#input -- hl.config({ -- input = { -- -- Use multiple keyboard layouts and switch between them with Left Alt + Right Alt. -- kb_layout = "us,dk,eu", -- kb_options = "compose:caps,shift:both_capslock_cancel,grp:alts_toggle", -- -- -- Use a specific keyboard variant if needed (e.g. intl for international keyboards). -- kb_variant = "intl", -- -- -- Change speed of keyboard repeat. -- repeat_rate = 40, -- repeat_delay = 250, -- -- -- Start with numlock on by default. -- numlock_by_default = true, -- -- -- Increase sensitivity for mouse/trackpad (default: 0). -- sensitivity = 0.35, -- -- -- Turn off mouse acceleration (default: adaptive). -- accel_profile = "flat", -- -- touchpad = { -- -- Use natural (inverse) scrolling. -- natural_scroll = true, -- -- -- Use two-finger clicks for right-click instead of lower-right corner. -- clickfinger_behavior = true, -- -- -- Control the speed of your scrolling. -- scroll_factor = 0.4, -- -- -- Enable the touchpad while typing. -- disable_while_typing = false, -- -- -- Left-click-and-drag with three fingers. -- drag_3fg = 1, -- }, -- }, -- }) -- App-specific touchpad scroll speeds. -- o.window("(Alacritty|kitty|foot)", { scroll_touchpad = 1.5 }) -- o.window("com.mitchellh.ghostty", { scroll_touchpad = 0.2 }) -- Enable touchpad gestures for changing workspaces. -- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Gestures/ -- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" }) -- Enable touchpad gestures for moving focus (helpful on scrolling layout). -- hl.gesture({ fingers = 3, direction = "left", action = function() hl.dispatch(hl.dsp.focus({ direction = "l" })) end }) -- hl.gesture({ fingers = 3, direction = "right", action = function() hl.dispatch(hl.dsp.focus({ direction = "r" })) end }) -- Tablets / pens. -- Hyprland maps a tablet across the *whole* monitor layout by default -- (input.tablet.output is empty), so a pen stretches over eDP-1 + the external -- display at once. Pin each tablet to a single output instead. -- Device names come from `hyprctl devices` (the "Tablet" entry, not "Tablet Pad"). -- Built-in digitizer of the Flow Z13: it physically *is* the laptop panel. hl.device({ name = "elan9008:00-04f3:43c7-stylus", output = "eDP-1" }) -- Wacom Intuos BT S: pinned to the Studio Display, matched on EDID description -- so it survives a different DP connector after re-docking. With that display -- absent, Hyprland maps across the whole layout, which undocked is just eDP-1. -- -- The tablet is 152x95mm (16:10) and the display is 16:9, so the active area is -- cropped to a 152x85.5mm (16:9) band to keep strokes undistorted while still -- reaching every pixel. The band starts at the top edge, leaving the bottom -- 9.5mm of the tablet as dead space (the pen there parks at the screen bottom). hl.device({ name = "wacom-intuos-bt-s-pen", output = "desc:Apple Computer Inc StudioDisplay 0x984262A7", active_area_size = { 152, 85.5 }, active_area_position = { 0, 0 }, }) -- Left-handed use rotates the tablet 180 degrees: left_handed = true -- The 4 ExpressKeys ("Tablet Pad") cannot be bound from Hyprland; only apps -- that implement the tablet-v2 pad protocol (e.g. Krita) see them.