From a34b1710a22bc25557ef3b1d797452641dda24b7 Mon Sep 17 00:00:00 2001 From: Mikko Nyman Date: Fri, 24 Apr 2026 17:55:04 +0300 Subject: [PATCH 1/2] Add ASUS ExpertBook B9406 display and touchpad fixes for Panther Lake --- bin/omarchy-hw-asus-expertbook-b9406 | 5 ++++ install/config/all.sh | 2 ++ .../asus/fix-asus-ptl-b9406-display.sh | 21 +++++++++++++++++ .../asus/fix-asus-ptl-b9406-touchpad.sh | 23 +++++++++++++++++++ migrations/1777040047.sh | 22 ++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100755 bin/omarchy-hw-asus-expertbook-b9406 create mode 100644 install/config/hardware/asus/fix-asus-ptl-b9406-display.sh create mode 100644 install/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh create mode 100644 migrations/1777040047.sh diff --git a/bin/omarchy-hw-asus-expertbook-b9406 b/bin/omarchy-hw-asus-expertbook-b9406 new file mode 100755 index 0000000000..fa936a7023 --- /dev/null +++ b/bin/omarchy-hw-asus-expertbook-b9406 @@ -0,0 +1,5 @@ +#!/bin/bash + +# Detect ASUS ExpertBook B9406 series laptops on Intel Panther Lake. + +omarchy-hw-match "B9406" && omarchy-hw-intel-ptl diff --git a/install/config/all.sh b/install/config/all.sh index 6926719579..526449fa2b 100644 --- a/install/config/all.sh +++ b/install/config/all.sh @@ -47,6 +47,8 @@ run_logged $OMARCHY_INSTALL/config/hardware/intel/fix-wifi7-eht.sh run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh +run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-display.sh +run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-audio-mixer.sh run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-mic.sh diff --git a/install/config/hardware/asus/fix-asus-ptl-b9406-display.sh b/install/config/hardware/asus/fix-asus-ptl-b9406-display.sh new file mode 100644 index 0000000000..de03d286d7 --- /dev/null +++ b/install/config/hardware/asus/fix-asus-ptl-b9406-display.sh @@ -0,0 +1,21 @@ +# Display fixes for ASUS ExpertBook B9406 (Panther Lake / Xe3 iGPU). +# +# Panel Replay is Xe3-new, default-on in the xe driver, and has a broken +# exit/wake path on this eDP panel: the panel latches the last-presented +# frame in self-refresh and never wakes for subsequent atomic commits, so +# the screen only updates on a full modeset (e.g. a VT switch). The older +# xe.enable_psr=0 knob does not cover Panel Replay. +# +# The panel's EDID on eDP-1 reads as empty, so xe takes backlight type from +# VBT (which says PWM) but the panel actually wants DPCD AUX backlight. +# Without xe.enable_dpcd_backlight=1, intel_backlight sysfs writes succeed +# but produce no visible change; brightness is effectively binary. + +if omarchy-hw-asus-expertbook-b9406; then + sudo mkdir -p /etc/limine-entry-tool.d + cat </dev/null +# ASUS ExpertBook B9406 (Panther Lake / Xe3) display workarounds +KERNEL_CMDLINE[default]+=" xe.enable_panel_replay=0" +KERNEL_CMDLINE[default]+=" xe.enable_dpcd_backlight=1" +EOF +fi diff --git a/install/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh b/install/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh new file mode 100644 index 0000000000..d39da070bf --- /dev/null +++ b/install/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh @@ -0,0 +1,23 @@ +# Touchpad quirks for ASUS ExpertBook B9406 (Pixart 093A:4F05 on i2c-hid). +# +# The kernel produces perfect Precision Touchpad reports but libinput's +# jump-detection heuristic discards every motion event as "kernel bug: +# Touch jump detected and discarded" because the pad reports pressure +# values of 0-1, confusing the contact stability check. Button events +# still pass, so clicks register but motion does not. +# +# Mask the pressure axes with a quirks override, same pattern as the +# Asus UX302LA entry in libinput's shipped 50-system-asus.quirks. + +if omarchy-hw-asus-expertbook-b9406; then + sudo mkdir -p /etc/libinput + sudo tee /etc/libinput/asus-expertbook-b9406.quirks >/dev/null </dev/null < "$DROP_IN" + fi + + sudo limine-update +fi From e28d4955caac33ecda8bf8b50f8d0c1c90325762 Mon Sep 17 00:00:00 2001 From: Mikko Nyman Date: Sun, 26 Apr 2026 17:59:00 +0300 Subject: [PATCH 2/2] Drop B9406 migration Per DHH's review: the migration's audience is essentially nobody. Anyone running Omarchy on B9406 today is doing so via nomodeset manually at every boot, not via a working unmodified install. Fresh installs after this PR ships will pick up the fixes through the hardware-match install hook; no migration needed. Co-Authored-By: Claude Opus 4.7 (1M context) --- migrations/1777040047.sh | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 migrations/1777040047.sh diff --git a/migrations/1777040047.sh b/migrations/1777040047.sh deleted file mode 100644 index fca4cffa98..0000000000 --- a/migrations/1777040047.sh +++ /dev/null @@ -1,22 +0,0 @@ -echo "Apply display and touchpad fixes for ASUS ExpertBook B9406 (Panther Lake)" - -source "$OMARCHY_PATH/install/config/hardware/asus/fix-asus-ptl-b9406-display.sh" -source "$OMARCHY_PATH/install/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh" - -if omarchy-hw-asus-expertbook-b9406; then - DROP_IN="/etc/limine-entry-tool.d/asus-expertbook-b9406-display.conf" - DEFAULT_LIMINE="/etc/default/limine" - - # Keep /etc/default/limine in sync with the drop-in. Install-time this is - # handled by install/login/limine-snapper.sh; migrations have to do it - # themselves. Idempotent: skip if the drop-in's header comment is already - # present (a unique-to-this-drop-in marker, so it doesn't collide with - # manual cmdline tweaks a user may have made). - HEADER='# ASUS ExpertBook B9406 (Panther Lake / Xe3) display workarounds' - if [[ -f $DROP_IN && -f $DEFAULT_LIMINE ]] && \ - ! grep -Fxq "$HEADER" "$DEFAULT_LIMINE"; then - sudo tee -a "$DEFAULT_LIMINE" >/dev/null < "$DROP_IN" - fi - - sudo limine-update -fi