feat(monitors): main external display, Samsung ultrawide support

monitors.lua picks the main external (Studio Display, else the Samsung
S34CG50 ultrawide, matched on EDID) and reloads the config when it changes.
Workspaces 1-4, the Wacom mapping, and its active-area aspect follow it.
eDP-1 uses auto-right so it sits beside whichever external is connected.

Also unbinds SUPER+RETURN / SUPER+SHIFT+RETURN (terminal and browser live
on SUPER+CTRL+ALT+J/K) and pins the Fastmail/Beeper scratch workspaces'
comments to eDP-1.
This commit is contained in:
Prad Nukala committed 2026-10-15 14:28:18 -04:00
1 parent de202fb5f8
commit 95c8d15814
4 files changed
+85 -27

No files matched your search

+14 -9
View File
@@ -111,18 +111,23 @@ hl.device({ name = "elan9008:00-04f3:43c7", output = "eDP-1" })
-- 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.
-- 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.
-- Wacom Intuos BT S: pinned to the main external display (Studio Display or
-- Samsung ultrawide, see hypr/monitors.lua, which reloads the config when it
-- changes). With neither connected it keeps the Studio Display selector,
-- which matches nothing, so Hyprland maps across the whole layout
-- (undocked: 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).
-- The tablet is 152x95mm (16:10). The active area is cropped to a full-width
-- band with the display's aspect ratio (152x85.5mm for the 16:9 Studio
-- Display, 152x63.6mm for the 3440x1440 ultrawide) to keep strokes
-- undistorted while still reaching every pixel. The band starts at the top
-- edge; below it is dead space (the pen there parks at the screen bottom).
local monitors = require("hypr.monitors")
local external, monitor = monitors.external()
hl.device({
name = "wacom-intuos-bt-s-pen",
output = "desc:Apple Computer Inc StudioDisplay 0x984262A7",
active_area_size = { 152, 85.5 },
output = external or monitors.externals[1],
active_area_size = { 152, monitor and 152 * monitor.height / monitor.width or 85.5 },
active_area_position = { 0, 0 },
})