Description
On laptops whose internal panel is exposed as LVDS-* rather than eDP-*, Omarchy's laptop display handling treats the internal panel as an external monitor.
This causes the lid-switch binding to pass the external-monitor check and attempt to disable the only active display on lid close. On my machine this also triggered a Hyprland/Aquamarine crash during the display disable/re-enable sequence.
System
- Omarchy: v3.8.1
- Hyprland: 0.54.3
- Kernel: 7.0.3-arch1-2
- GPU: Intel 3rd Gen Core processor Graphics Controller
[8086:0166]
- Internal monitor name:
LVDS-1
Reproduction
On a laptop with only LVDS-1 connected:
hyprctl monitors
for status in /sys/class/drm/card*-*/status; do echo "$status: $(cat "$status")"; done
omarchy-hw-external-monitors; echo $?
Expected:
LVDS-1 is recognized as the internal panel.
omarchy-hw-external-monitors exits non-zero when no external display is connected.
- Lid close does not attempt to disable the only display.
Actual before the fix:
- Only
eDP-* paths were excluded from the external monitor check.
LVDS-1 was considered external.
- The lid-close binding could call
omarchy-hyprland-monitor-internal off even with no real external display connected.
Workaround
Unbinding the default lid-switch bindings prevents the crash:
unbind = , switch:on:Lid Switch
unbind = , switch:off:Lid Switch
Proposed fix
Detect common internal laptop display connector names more broadly (eDP, LVDS, DSI) in both:
omarchy-hw-external-monitors
omarchy-hyprland-monitor-internal
I have a PR ready with a minimal patch.
Description
On laptops whose internal panel is exposed as
LVDS-*rather thaneDP-*, Omarchy's laptop display handling treats the internal panel as an external monitor.This causes the lid-switch binding to pass the external-monitor check and attempt to disable the only active display on lid close. On my machine this also triggered a Hyprland/Aquamarine crash during the display disable/re-enable sequence.
System
[8086:0166]LVDS-1Reproduction
On a laptop with only
LVDS-1connected:Expected:
LVDS-1is recognized as the internal panel.omarchy-hw-external-monitorsexits non-zero when no external display is connected.Actual before the fix:
eDP-*paths were excluded from the external monitor check.LVDS-1was considered external.omarchy-hyprland-monitor-internal offeven with no real external display connected.Workaround
Unbinding the default lid-switch bindings prevents the crash:
Proposed fix
Detect common internal laptop display connector names more broadly (
eDP,LVDS,DSI) in both:omarchy-hw-external-monitorsomarchy-hyprland-monitor-internalI have a PR ready with a minimal patch.