How Omarchy Hardware Detection Commands Work: A Deep Dive into Sysfs-Based Detection
Omarchy hardware detection commands are lightweight Bash scripts in the bin/ directory that interrogate Linux sysfs and DMI data to identify hardware components, returning exit code 0 for matches and optionally printing values to stdout.
The Omarchy project implements a unique approach to hardware detection that prioritizes speed, reliability, and testability over traditional tool-based methods. This article examines how these detection helpers operate, their design conventions, and practical usage patterns based on the source code in basecamp/omarchy.
Core Design Conventions
Every Omarchy hardware detection script follows a standardized structure to ensure consistency across the toolchain.
Required Script Elements
-
#!/bin/bashheader — Guarantees execution with Bash 5 -
# omarchy:summary=…comment — Provides human-readable descriptions for the command-metadata system -
Exit status semantics —
0indicates hardware match or true condition;1indicates no match -
Stdout output — Scripts that return values (like device names) print to stdout and exit 0
Optional Metadata
# omarchy:hidden=true— Marks internal helpers that run but remain hidden from user-visible listings
Environment-Based Testing
Variables such as OMARCHY_DRM_PATH, OMARCHY_PCI_DEVICES_PATH, and OMARCHY_BACKLIGHT_PATH enable injection of mock sysfs locations. This design makes the entire detection suite testable without requiring actual hardware.
Hardware Detection Patterns
The Omarchy hardware detection commands avoid heavyweight tools, reading directly from kernel-exposed interfaces.
DMI-Based Vendor and Product Detection
Scripts read DMI files under /sys/class/dmi/id/ to identify specific manufacturers and product families.
[[ $(cat /sys/class/dmi/id/sys_vendor) == "ASUSTeK COMPUTER INC." ]] &&
grep -q "ROG" /sys/class/dmi/id/product_family # omarchy-hw-asus-rog
Source: bin/omarchy-hw-asus-rog
Generic Pattern Matching
The omarchy-hw-match helper provides flexible, case-insensitive detection against product names or families:
grep -qi "$1" /sys/class/dmi/id/product_name 2>/dev/null ||
grep -qi "$1" /sys/class/dmi/id/product_family 2>/dev/null
Source: bin/omarchy-hw-match
PCI Device Inspection
Rather than parsing lspci output, scripts examine raw sysfs entries under /sys/bus/pci/devices for vendor, class, and device identifiers:
for device in "$pci_devices_path"/*; do
[[ $(< "$device/vendor") == "0x10de" ]] || continue # NVIDIA vendor
[[ $(< "$device/class") == 0x03* ]] || continue # Display controller class
(( $(< "$device/device") >= 0x1e00 )) && exit 0 # GSP firmware check
done
exit 1
Source: bin/omarchy-hw-nvidia-gsp
External Monitor Detection
The omarchy-hw-external-monitors command enumerates DRM connector status files while excluding internal panel types:
for status in "$drm_path"/card*-*/status; do
[[ -e $status ]] || continue
[[ $status =~ -(eDP|LVDS|DSI)-[^/]+/status$ ]] && continue
[[ $(< $status) == "connected" ]] && exit 0
done
exit 1
Source: bin/omarchy-hw-external-monitors
This pattern filters out eDP, LVDS, and DSI connectors to identify only externally attached displays.
Display Backlight Selection
The omarchy-hw-display command implements a heuristic priority system for identifying the correct backlight control device:
device="$(ls -1 "$backlight_path" 2>/dev/null | grep -vx appletb_backlight | head -n1)"
for candidate in "$backlight_path"/gmux_backlight "$backlight_path"/amdgpu_bl* \
"$backlight_path"/intel_backlight "$backlight_path"/acpi_video*; do
if [[ -e $candidate ]]; then
device="${candidate##*/}"
break
fi
done
printf '%s\n' "$device"
Source: bin/omarchy-hw-display
The priority order favors gmux_backlight (Apple hybrid GPUs), AMD GPU backlights, Intel backlights, and finally ACPI video devices.
Practical Usage Examples
Detecting Specific Hardware Classes
# Example 1 – Detect an Asus ROG machine
if omarchy-hw-asus-rog; then
echo "Running on an Asus ROG laptop"
fi
# Example 2 – Generic product-name match
if omarchy-hw-match "Surface"; then
echo "Surface hardware detected"
fi
Capturing Device Names
# Example 3 – Get the backlight device name for brightness control
display_device=$(omarchy-hw-display) || exit 1
echo "Backlight device: $display_device"
Conditional Configuration Scripts
# Example 4 – Conditional logic in a setup script
if omarchy-hw-nvidia-gsp; then
echo "Enabling GSP-aware NVIDIA configuration"
fi
Key Detection Scripts Reference
| Script | Purpose | Detection Method |
|---|---|---|
bin/omarchy-hw-asus-rog |
Asus ROG laptops | DMI vendor + family strings |
bin/omarchy-hw-match |
Generic pattern matching | Case-insensitive DMI grep |
bin/omarchy-hw-nvidia-gsp |
NVIDIA GSP firmware GPUs | PCI vendor/class/device sysfs |
bin/omarchy-hw-external-monitors |
External display presence | DRM connector status files |
bin/omarchy-hw-display |
Backlight device selection | Prioritized sysfs enumeration |
bin/omarchy-hw-clamshell |
Laptop docked mode | Composite lid + external check |
bin/omarchy-hw-fingerprint |
Fingerprint reader presence | USB sysfs inspection |
bin/omarchy-hw-dell-xps-oled |
Dell XPS OLED models | omarchy-hw-match wrapper |
Architecture Benefits
The Omarchy hardware detection approach provides several advantages over traditional detection methods:
- Speed — Direct sysfs reads eliminate subprocess overhead from tools like
lspci,xrandr, ordmidecode - Reliability — Kernel interfaces are stable and available early in boot sequences
- Testability — Environment variable overrides enable complete mocking without hardware dependencies
- Portability — Pure Bash with no external dependencies beyond standard sysfs paths
- Composability — Exit-code-based design allows easy chaining with shell logical operators
These helpers function as pure functions: they inspect system state, optionally emit values, and delegate action to calling scripts based on exit codes. This separation of detection from policy enables higher-level commands like omarchy-apply-hardware and omarchy-toggle-input-device to make hardware-aware decisions through reliable, fast introspection.
Summary
- Omarchy hardware detection commands reside in
bin/as small Bash scripts following strict conventions - Detection relies exclusively on Linux sysfs and DMI interfaces, avoiding external tool dependencies
- Exit codes communicate match status (
0= match,1= no match) with optional stdout values - Environment variables enable full testability through path injection
- Common patterns include DMI string matching, PCI device enumeration, DRM connector status checks, and prioritized backlight selection
Frequently Asked Questions
How does Omarchy detect hardware without using standard tools like lspci or dmidecode?
Omarchy hardware detection commands read directly from kernel-exposed sysfs interfaces. For PCI devices, scripts examine /sys/bus/pci/devices/*/vendor, class, and device files. For system identification, they parse /sys/class/dmi/id/ files containing vendor, product name, and family strings. This approach eliminates subprocess overhead and removes dependencies on user-space utilities that may not be available in all environments.
Can Omarchy hardware detection be tested without actual hardware?
Yes. The detection scripts accept environment variable overrides such as OMARCHY_DRM_PATH, OMARCHY_PCI_DEVICES_PATH, and OMARCHY_BACKLIGHT_PATH. These variables allow test suites to provide mock sysfs directory structures, enabling full verification of detection logic without physical hardware present.
What is the difference between omarchy-hw-match and vendor-specific scripts like omarchy-hw-asus-rog?
omarchy-hw-match is a generic, reusable helper that performs case-insensitive pattern matching against DMI product name and family fields. Vendor-specific scripts like omarchy-hw-asus-rog encode precise detection logic for particular hardware classes, combining multiple DMI checks for accuracy. The generic helper enables quick prototyping and one-off checks, while dedicated scripts provide rigorous identification for hardware requiring special handling.
How does Omarchy determine which backlight device to control?
The omarchy-hw-display command implements a prioritized search through known backlight class entries. It excludes appletb_backlight (Apple Touch Bar), then searches in order: gmux_backlight for Apple hybrid graphics, amdgpu_bl* for AMD GPUs, intel_backlight for Intel integrated graphics, and finally acpi_video* as fallback. The first match becomes the selected device, returned via stdout.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →