* feature: Add Dell haptic touchpad control, update default intensity
* fix: polish Dell haptic touchpad package
Use an MIT license file for the packaged scripts and prefer the active loginctl user in the install hook so the initial intensity setup targets the live desktop session instead of an arbitrary regular account.
* fix: clean up Dell haptic touchpad package metadata
Drop the bundled license file and align the package metadata so the package contents still build cleanly after the maintainer update.
* fix: correct Dell haptic touchpad package URL
Point the package metadata at the canonical omarchy-pkgs repository so users see the source location maintained under the omacom-io project.
* feature: package Dell XPS haptics as standalone service
* fix: tighten Dell haptics package setup
Mainline libfprint (1.94.x) does not yet ship the open-source
focaltech_moc driver. The driver lives in libfprint master under
LGPL but the official Arch package builds from the v1.94.10 tag,
so the driver is unavailable on Arch / Omarchy.
The driver is otherwise complete; it just needs USB ID 2808:a97a
added to id_table[] for the FocalTech FT9349 ESS sensor shipped in
the ASUS ExpertBook Ultra B9406CAA. The upstream MR with that
one-line addition is in flight at gitlab.freedesktop.org/libfprint/libfprint.
This package builds libfprint master, applies the one-line patch,
and installs as libfprint-git. provides=libfprint conflicts=libfprint
so it cleanly replaces the stock package.
Tested locally: makepkg -s succeeds; built lib contains the
focaltech_moc driver; id_table[] in the build tree includes 0xA97A.
The same patched build has been running on tuli (B9406CAA) since
2026-04-25 with enrollment, verification, suspend/resume all working.
Once upstream lands and Arch's libfprint catches up to a release
that includes both, this package can be removed from OPR.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: add nautilus-open-any-terminal
* Make this a normal edge package
* Move to correct package list
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* linux-ptl: add package with audio, wifi, and Panel Replay SU patches
Adds the linux-ptl Omarchy package for Panther Lake (PTL) hardware.
The stock Arch linux kernel on PTL is missing: SDCA audio class
driver backports, an iwlwifi generation-data fix, and Panel Replay
SU enablement + cursor-lag workaround. Ship them in this package
until they land upstream and Arch picks them up.
Patch sets
==========
Audio (SDCA backports on 6.19.10)
0001-0005, 0007-0008, 0010, 0012-0014, 0017
Cirrus CS35L57 amps and SDCA jack on Dell XPS OLED require the
SDCA class driver plus a NULL-pointer fix (0017). Without these
the sound card never registers. 0006/0009/0011/0015/0016 from the
full upstream series are already in 6.19.10 stable and not needed.
WiFi
0018-wifi-iwlwifi-mld-correctly-set-wifi-generation-data.patch
Backport from wifi-next to fix wifi generation data reporting on
Intel AX/BE radios in PTL.
Display (PSR2 + Panel Replay SU)
0019-drm-i915-psr-accept-early-transport-for-psr2.patch
0020-drm-i915-psr-fix-su-granularity-source-for-psr2.patch
0022-drm-i915-psr-allow-psr-with-vrr-on-ptl.patch
Enable PSR2 Early Transport and fix the SU-granularity DPCD
source so PSR2 is not rejected at compute_config on OLED
panels (LGD 2880x1800 etc). Also allow PSR with VRR on PTL.
0026-drm-i915-psr-handle-Panel-Replay-full-line-SU-granul.patch
PR SU can advertise X granularity = 0xFFFF (full-line).
Without this the modulo check rejects PR SU.
0027-drm-i915-trans-push-frame-change-for-panel-replay.patch
Program TRANS_PUSH Frame Change path so PR SU cursor/plane
updates actually trigger selective updates.
0028-drm-i915-psr-exit-Panel-Replay-for-ALPM-lag.patch
Workaround for the LGD OLED panel (Dell XPS 14 DA14260,
sink OUI 00:22:b9). PR ALPM AUX-Less wake/sleep cycling on
this panel cannot resume selective updates at frame rate,
producing ~15 Hz visible motion from a 120 Hz source.
The workaround exits PR in frontbuffer_flush() and uses the
existing dc3co_work delayed_work as a 50 ms idle timer.
During continuous motion the timer is re-armed by each flush,
so the link stays awake and motion is smooth; after 50 ms of
genuine idle, dc3co_work fires and PR re-activates with ALPM
for power savings.
Compared to a per-commit exit/re-enter approach (earlier
revision of this PR), the delayed re-entry keeps video and
animation playback smooth: per-commit cycling pays the panel's
wake-to-display latency on every frame, which is visible as
playback stutter. 50 ms was chosen empirically against 100 ms
and 200 ms on the same device; 50 ms gives the best idle and
cursor-motion power while remaining subjectively identical in
smoothness to the longer delays.
Power on Dell XPS 14 OLED (LGD 2880x1800 @ 120 Hz, battery,
brightness 268/512, 10-run averaged idle):
PR SU + delayed-re-entry WA : 3268 mW (smooth)
PR SU stock (cursor laggy) : 3384 mW
PR SU + WA 100 ms : 3436 mW
PR SU + WA 200 ms : 3484 mW
PSR2 : 4060 mW (baseline)
config.x86_64 changes
=====================
Required for the kernel to boot cleanly on this hardware:
CONFIG_PINCTRL_INTEL_PLATFORM=y (was =m)
Without this the PTL GPIO controller is a late-loaded module
and early probe of CS35L57 audio amps (spk-id-gpios) and the
I2C touchpad time out with EPROBE_DEFER / -110 ETIMEDOUT.
CONFIG_VFAT_FS=y, CONFIG_FAT_FS=y, CONFIG_MSDOS_FS=y,
CONFIG_NLS_ISO8859_1=y (all were =m)
Required for the ESP /boot to mount in the initramfs / UKI
boot flow. Without these the box drops to emergency mode.
CONFIG_RUST is disabled in this package because Arch Rust 1.94.1
is too new for kernel 6.19.x Rust code.
* Backport DisplayID adaptive sync VRR parsing
* add vrr patch
* fix linux-ptl patch indentation
* linux-ptl: renumber DisplayID VRR patch
---------
Co-authored-by: Gaggery Tsai <gaggery.tsai@gmail.com>
Co-authored-by: Spencer Bull <Spencer.Bull@Dell.com>
When the last camera reader disconnects, cycle the output pipeline
(v4l2sink) through READY → PLAYING to reset v4l2loopback's format
state. Without this, switching between camera apps that use different
PipeWire paths (e.g. Chromium → GNOME Snapshot) fails with "no more
input formats" because v4l2loopback retains stale format state from
the previous session.
The reset is guarded by an input_was_active flag so it only triggers
after an actual streaming session, not during PipeWire's brief device
probes on startup.
Tested on Dell XPS 16 (Panther Lake) with PipeWire 1.6.2:
- Snapshot → Zoom → Snapshot: working
- Suspend → resume → Snapshot: working
- Boot → first Snapshot: 30fps