2026-08-24 10:17:20 -05:00
|
|
|
-- Keep only your personal input overrides here. Uncommented settings below
|
|
|
|
|
-- replace Omarchy's defaults.
|
|
|
|
|
|
2026-09-08 13:01:10 -04:00
|
|
|
-- Key repeat: Omarchy's 250ms delay kept, rate raised 40 -> 50Hz. 200 / 50 was
|
|
|
|
|
-- tried and felt too fast; the "typing lag" it was meant to fix turned out to be the
|
2026-09-08 12:58:41 -04:00
|
|
|
-- Pilot W-Corne's firmware (55d4:0461, Vial/QMK over a 2.4GHz dongle)
|
|
|
|
|
-- resolving its MT(LGUI,SPC) / MT(LCTL,SPC) thumb keys as holds the moment
|
|
|
|
|
-- another key went down. Fixed on the board itself: Vial QMK Settings ->
|
2026-09-08 13:01:10 -04:00
|
|
|
-- Tap-Hold -> "Ignore Mod Tap Interrupt" (qsid 8 bit 1), tapping term 150ms.
|
2026-09-08 11:51:25 -04:00
|
|
|
--
|
2026-09-08 12:58:41 -04:00
|
|
|
-- The rest of the keystroke path was checked and is already optimal: 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).
|
2026-09-08 11:51:25 -04:00
|
|
|
-- Remaining latency is the 60Hz Studio Display refresh and the fcitx5
|
2026-09-08 12:58:41 -04:00
|
|
|
-- input-method hop (see omarchy-fcitx5.service), neither an input option.
|
2026-09-08 13:01:10 -04:00
|
|
|
hl.config({
|
|
|
|
|
input = {
|
|
|
|
|
repeat_delay = 250,
|
|
|
|
|
repeat_rate = 50,
|
|
|
|
|
},
|
|
|
|
|
})
|
2026-09-08 11:51:25 -04:00
|
|
|
|
2026-08-24 10:17:20 -05:00
|
|
|
-- 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 })
|
2026-08-28 14:14:20 -04:00
|
|
|
|
|
|
|
|
-- 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.
|
2026-09-21 16:34:26 -04:00
|
|
|
-- Pen and finger are separate devices; the finger one is the "Touch" entry.
|
2026-08-28 14:14:20 -04:00
|
|
|
hl.device({ name = "elan9008:00-04f3:43c7-stylus", output = "eDP-1" })
|
2026-09-21 16:34:26 -04:00
|
|
|
-- Unbound, Hyprland maps a touch onto whichever monitor is *focused*
|
|
|
|
|
-- (onTouchDown falls back to the focused monitor when the device has no
|
|
|
|
|
-- output), so a tap on the panel landed on the Studio Display. Bound, the tap
|
|
|
|
|
-- focuses eDP-1 and then the window under the finger.
|
|
|
|
|
hl.device({ name = "elan9008:00-04f3:43c7", output = "eDP-1" })
|
|
|
|
|
--
|
|
|
|
|
-- Palm rejection while writing is libinput's job, not Hyprland's: with the
|
|
|
|
|
-- pen in proximity it drops touches on the paired touchscreen (same
|
|
|
|
|
-- LIBINPUT_DEVICE_GROUP) -- *all* of them only if the pen reports no tilt;
|
|
|
|
|
-- with tilt it drops just a 200x250mm rectangle whose side is guessed from
|
|
|
|
|
-- the tilt sign, and this pen reports ABS_TILT_X/Y, so a resting palm kept
|
|
|
|
|
-- landing as taps and scrolls. /etc/libinput/local-overrides.quirks (not
|
|
|
|
|
-- chezmoi-managed; the Flow Z13 stylus section) strips the tilt axes, which
|
|
|
|
|
-- flips arbitration to ignore-all. Cost: no tilt in drawing apps. The 90ms
|
|
|
|
|
-- re-enable after the pen leaves proximity is hard-coded in libinput.
|
2026-08-28 14:14:20 -04:00
|
|
|
|
|
|
|
|
-- 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.
|