Make setup ISO-only

Remove legacy online installer entrypoints, collapse migrations for 4.0, and move setup responsibilities into target-side system, hardware, and user commands.
This commit is contained in:
Ryan Hughes
2026-06-04 18:37:32 -04:00
parent b45e8464ef
commit 75cb4f7195
440 changed files with 790 additions and 4922 deletions
+41
View File
@@ -0,0 +1,41 @@
run_logged "$OMARCHY_INSTALL/hardware/asus-rog.sh"
run_logged "$OMARCHY_INSTALL/hardware/framework16.sh"
run_logged "$OMARCHY_INSTALL/hardware/dell-xps-touchpad-haptics.sh"
run_logged "$OMARCHY_INSTALL/hardware/surface.sh"
run_logged "$OMARCHY_INSTALL/hardware/network.sh"
run_logged "$OMARCHY_INSTALL/hardware/input-group.sh"
run_logged "$OMARCHY_INSTALL/hardware/set-wireless-regdom.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-fkeys.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-synaptic-touchpad.sh"
run_logged "$OMARCHY_INSTALL/hardware/bluetooth.sh"
run_logged "$OMARCHY_INSTALL/hardware/nvidia.sh"
run_logged "$OMARCHY_INSTALL/hardware/vulkan.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/video-acceleration.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/lpmd.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/thermald.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/ipu7-camera.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/ptl-kernel.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/fred.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/fix-wifi7-eht.sh"
run_logged "$OMARCHY_INSTALL/hardware/intel/sof-firmware.sh"
run_logged "$OMARCHY_INSTALL/hardware/asus/fix-asus-ptl-display-backlight.sh"
run_logged "$OMARCHY_INSTALL/hardware/asus/fix-asus-ptl-b9406-display.sh"
run_logged "$OMARCHY_INSTALL/hardware/asus/fix-asus-ptl-b9406-touchpad.sh"
run_logged "$OMARCHY_INSTALL/hardware/asus/fix-z13-touchpad.sh"
run_logged "$OMARCHY_INSTALL/hardware/framework/qmk-hid.sh"
run_logged "$OMARCHY_INSTALL/hardware/apple/fix-spi-keyboard.sh"
run_logged "$OMARCHY_INSTALL/hardware/apple/fix-suspend-nvme.sh"
run_logged "$OMARCHY_INSTALL/hardware/apple/fix-t2.sh"
run_logged "$OMARCHY_INSTALL/hardware/lenovo/fix-yoga-pro7-bass-speakers.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-bcm43xx.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-surface-keyboard.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-yt6801-ethernet-adapter.sh"
run_logged "$OMARCHY_INSTALL/hardware/fix-tuxedo-backlight.sh"
run_logged "$OMARCHY_INSTALL/hardware/pacman.sh"
@@ -0,0 +1,15 @@
# Detect MacBook models that need SPI keyboard modules
product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)"
if [[ $product_name =~ MacBook[89],1|MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
echo "Detected MacBook with SPI keyboard"
omarchy-pkg-add macbook12-spi-driver-dkms
sudo mkdir -p /etc/mkinitcpio.conf.d
if [[ $product_name == "MacBook8,1" ]]; then
echo "MODULES=(applespi spi_pxa2xx_platform spi_pxa2xx_pci)" | \
sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
else
echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | \
sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
fi
fi
@@ -0,0 +1,30 @@
# Fix NVMe suspend issues on MacBook models
# This prevents NVMe drives from failing to wake from sleep properly
MACBOOK_MODEL=$(cat /sys/class/dmi/id/product_name 2>/dev/null || true)
if [[ $MACBOOK_MODEL =~ MacBook(8,1|9,1|10,1)|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
echo "Detected MacBook model: $MACBOOK_MODEL"
NVME_DEVICE="/sys/bus/pci/devices/0000:01:00.0/d3cold_allowed"
if [[ -f $NVME_DEVICE ]]; then
echo "Applying NVMe suspend fix..."
sudo mkdir -p /etc/systemd/system
sudo tee /etc/systemd/system/omarchy-nvme-suspend-fix.service >/dev/null <<'EOF'
[Unit]
Description=Omarchy NVMe Suspend Fix for MacBook
[Service]
ExecStart=/bin/bash -c 'echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed'
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable omarchy-nvme-suspend-fix.service
else
echo "Warning: NVMe device not found at expected PCI address (0000:01:00.0)"
echo "This fix may not be needed for this MacBook model"
fi
fi
+50
View File
@@ -0,0 +1,50 @@
# Detect T2 MacBook models using PCI IDs
# Vendor: 106b (Apple), Device IDs: 1801 or 1802 (T2 Security Chip)
if lspci -nn | grep -q "106b:180[12]"; then
echo "Detected MacBook with T2 chip. Installing support items..."
omarchy-pkg-add \
linux-t2 \
linux-t2-headers \
apple-t2-audio-config \
apple-bcm-firmware \
t2fanrd \
tiny-dfr
# Add user to video group (required for tiny-dfr to access /dev/dri devices)
usermod -aG video "$OMARCHY_INSTALL_USER"
# Enable T2 services
systemctl enable t2fanrd.service
systemctl enable tiny-dfr.service
mkdir -p /etc/modules-load.d
{
echo "apple-bce"
echo "hci_bcm4377"
} > /etc/modules-load.d/t2.conf
mkdir -p /etc/mkinitcpio.conf.d
echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" > \
/etc/mkinitcpio.conf.d/apple-t2.conf
mkdir -p /etc/modprobe.d
cat > /etc/modprobe.d/brcmfmac.conf <<'EOF'
# Fix for T2 MacBook WiFi connectivity issues
options brcmfmac feature_disable=0x82000
EOF
mkdir -p /etc/limine-entry-tool.d
cat > /etc/limine-entry-tool.d/t2-mac.conf <<'EOF'
# Generated by Omarchy installer for T2 Mac support
KERNEL_CMDLINE[default]+=" intel_iommu=on iommu=pt pcie_ports=compat"
EOF
cat > /etc/t2fand.conf <<'EOF'
[Fan1]
low_temp=55
high_temp=75
speed_curve=linear
always_full_speed=false
EOF
fi
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-asus-rog; then
omarchy-pkg-add asusctl
fi
@@ -0,0 +1,15 @@
# Display fix 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.
if omarchy-hw-asus-expertbook-b9406; then
mkdir -p /etc/limine-entry-tool.d
cat > /etc/limine-entry-tool.d/asus-expertbook-b9406-display.conf <<'EOF'
# ASUS ExpertBook B9406 (Panther Lake / Xe3) display workaround
KERNEL_CMDLINE[default]+=" xe.enable_panel_replay=0"
EOF
fi
@@ -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
mkdir -p /etc/libinput
cat > /etc/libinput/asus-expertbook-b9406.quirks <<'EOF'
[ASUS ExpertBook B9406 Touchpad]
MatchBus=i2c
MatchUdevType=touchpad
MatchVendor=0x093A
MatchProduct=0x4F05
MatchDMIModalias=dmi:*svnASUS*:pn*B9406*
AttrEventCode=-ABS_MT_PRESSURE;-ABS_PRESSURE;
EOF
fi
@@ -0,0 +1,16 @@
# Display backlight fix for ASUS Panther Lake / Xe3 iGPU laptops.
# Enabled only for ExpertBook B9406 and Zenbook UX5406AA for now.
# Other models need confirmation whether the issue exists there too.
#
# 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 || omarchy-hw-asus-zenbook-ux5406aa; then
sudo mkdir -p /etc/limine-entry-tool.d
sudo tee /etc/limine-entry-tool.d/asus-ptl-display-backlight.conf >/dev/null <<'EOF'
# ASUS Panther Lake display backlight fix
KERNEL_CMDLINE[default]+=" xe.enable_dpcd_backlight=1"
EOF
fi
+18
View File
@@ -0,0 +1,18 @@
# Fix disable-while-typing on ASUS ROG Flow Z13 detachable keyboard.
#
# The Z13's detachable keyboard touchpad is detected as external by udev,
# which prevents libinput's disable-while-typing (dwt) from pairing it
# with the keyboard. This causes ghost touchpad taps from keyboard
# flex/vibration while typing quickly, jumping the cursor to random positions.
#
# Upstream libinput (50-system-asus.quirks) marks the keyboard as internal
# (AttrKeyboardIntegration=internal), but touchpad integration is controlled
# via udev, not libinput quirks. This udev rule marks the touchpad as internal
# so dwt can properly pair it with the keyboard.
if omarchy-hw-asus-rog && omarchy-hw-match "GZ302"; then
sudo mkdir -p /etc/udev/rules.d
sudo tee /etc/udev/rules.d/99-omarchy-asus-z13-touchpad.rules >/dev/null <<'EOF'
ACTION=="add|change", KERNEL=="event*", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1a30", ENV{ID_INPUT_TOUCHPAD}=="1", ENV{ID_INPUT_TOUCHPAD_INTEGRATION}="internal"
EOF
fi
+6
View File
@@ -0,0 +1,6 @@
systemctl enable bluetooth.service
# Persist last power state across reboots (default AutoEnable=true overrides it)
if [[ -f /etc/bluetooth/main.conf ]]; then
sed -i 's/^#\?AutoEnable=.*/AutoEnable=false/' /etc/bluetooth/main.conf
fi
@@ -0,0 +1,3 @@
if omarchy-hw-dell-xps-haptic-touchpad; then
omarchy-pkg-add dell-xps-touchpad-haptics
fi
+10
View File
@@ -0,0 +1,10 @@
# Install Wi-Fi drivers for Broadcom chips found in some MacBooks, as well as other systems:
# - BCM4360 (20132015 MacBooks)
# - BCM4331 (2012, early 2013 MacBooks)
pci_info=$(lspci -nn)
if (echo "$pci_info" | grep -q "14e4:43a0" || echo "$pci_info" | grep -q "14e4:4331"); then
echo "BCM4360 / BCM4331 detected"
omarchy-pkg-add broadcom-wl dkms linux-headers
fi
+5
View File
@@ -0,0 +1,5 @@
# Ensure that F-keys on Apple-like keyboards (such as Lofree Flow84) are always F-keys
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
sudo mkdir -p /etc/modprobe.d
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf >/dev/null
fi
+23
View File
@@ -0,0 +1,23 @@
# Detect Surface devices which require additional modules for the keyboard to work.
# Module list derived from Chris McLeod's manual install instructions
# https://chrismcleod.dev/blog/installing-arch-linux-with-secure-boot-on-a-microsoft-surface-laptop-studio/
if omarchy-hw-surface; then
product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)"
echo "Detected Surface Device"
# Modules already exist in the rootfs for the default kernel.
if [[ $product_name != "Surface Laptop 3" ]]; then
echo "Untested Surface Device: $product_name, additional modules may be required for your device."
fi
echo "Attempting to autodetect required pinctrl module"
pinctrl_module=$(lsmod | grep pinctrl_ | cut -f 1 -d" " || true)
if [[ -z $pinctrl_module ]]; then
echo "Failed to autodetect pinctrl module."
else
echo "Detected pinctrl module: $pinctrl_module"
mkdir -p /etc/mkinitcpio.conf.d
echo "MODULES=(${pinctrl_module} surface_aggregator surface_aggregator_registry surface_aggregator_hub surface_hid_core surface_hid surface_kbd intel_lpss_pci 8250_dw)" > \
/etc/mkinitcpio.conf.d/surface_device_modules.conf
fi
fi
@@ -0,0 +1,6 @@
# Enable Synaptics InterTouch for confirmed touchpads if not already loaded
if grep -qi synaptics /proc/bus/input/devices \
&& ! lsmod | grep -q '^psmouse'; then
modprobe psmouse synaptics_intertouch=1
fi
+16
View File
@@ -0,0 +1,16 @@
# Install Tuxedo drivers for keyboard backlighting on Tuxedo laptops and
# compatible devices like the Slimbook Executive (Clevo/Tuxedo chassis).
if cat /sys/class/dmi/id/sys_vendor 2>/dev/null | grep -qi "TUXEDO\|Slimbook"; then
omarchy-pkg-add linux-headers tuxedo-drivers-nocompatcheck-dkms
# Blacklist the legacy clevo_xsm_wmi module which conflicts with the tuxedo-drivers
# clevo_wmi module. When clevo_xsm_wmi loads first, it grabs the Clevo WMI GUIDs,
# preventing tuxedo-drivers from initializing the keyboard backlight properly.
mkdir -p /etc/modprobe.d
echo "blacklist clevo_xsm_wmi" > /etc/modprobe.d/blacklist-clevo-xsm-wmi.conf
# Remove any orphaned clevo_xsm_wmi module files not managed by a package
for f in /lib/modules/*/extra/clevo-xsm-wmi.ko; do
[ -f "$f" ] && rm "$f"
done
fi
@@ -0,0 +1,4 @@
# Install drivers for Motorcomm YT6801 ethernet adapter used by the Slimbook Executive
if lspci | grep -i "YT6801\|Motorcomm.*Ethernet"; then
omarchy-pkg-add linux-headers yt6801-dkms
fi
+8
View File
@@ -0,0 +1,8 @@
# Allow unprivileged access to the Framework 16 keyboard for RGB control via qmk_hid.
if omarchy-hw-framework16; then
sudo mkdir -p /etc/udev/rules.d
if [[ ! -f /etc/udev/rules.d/50-framework16-qmk-hid.rules ]]; then
sudo cp -f "$OMARCHY_PATH/default/udev/framework16-qmk-hid.rules" /etc/udev/rules.d/50-framework16-qmk-hid.rules
fi
fi
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-framework16; then
omarchy-pkg-add qmk-hid
fi
+2
View File
@@ -0,0 +1,2 @@
# Give this user privileged input access for dictation tools + xbox controllers to work
usermod -aG input "$OMARCHY_INSTALL_USER"
+16
View File
@@ -0,0 +1,16 @@
# Temporary fix for Dell XPS 14/16 on Panther Lake
# Disable WiFi 7 (EHT/802.11be) on Intel BE200/BE211 cards
# The iwlwifi driver has a broken EHT RX data path — APs drop to MCS 0 NSS 1
# when EHT is negotiated, making WiFi unusable. Disabling EHT falls
# back to WiFi 6 (HE/802.11ax) which works at full speed.
# This should be removed when Intel fixes the firmware/driver.
if lspci -nn | grep -qE '\[8086:(e440|272b)\]'; then
mkdir -p /etc/modprobe.d
cat > /etc/modprobe.d/iwlwifi-disable-eht.conf <<'EOF'
# Temporary fix Dell XPS 14/16 on Panther lake
# Disable WiFi 7 (EHT) on Intel BE200/BE211 — broken RX rate adaptation
# Remove this file when fixes land in the iwlwifi EHT data path
options iwlwifi disable_11be=Y
EOF
fi
+13
View File
@@ -0,0 +1,13 @@
# Enable Flexible Return and Event Delivery on Intel Panther Lake.
DROP_IN="/etc/limine-entry-tool.d/intel-panther-lake-fred.conf"
if omarchy-hw-intel-ptl; then
if [[ ! -f $DROP_IN ]] || ! grep -q 'fred=on' "$DROP_IN"; then
sudo mkdir -p /etc/limine-entry-tool.d
cat <<EOF | sudo tee "$DROP_IN" >/dev/null
# Intel Panther Lake FRED support
KERNEL_CMDLINE[default]+=" fred=on"
EOF
fi
fi
+5
View File
@@ -0,0 +1,5 @@
# Install MIPI camera support for Intel IPU7 hardware
if grep -q "OVTI08F4" /sys/bus/acpi/devices/*/hid 2>/dev/null; then
omarchy-pkg-add intel-ipu7-camera
fi
+11
View File
@@ -0,0 +1,11 @@
# Install Intel Low Power Mode Daemon for supported hybrid Intel CPUs (Alder Lake and newer)
# Supported models: Alder Lake (151/154), Raptor Lake (183/186/191),
# Meteor Lake (170/172), Lunar Lake (189), Panther Lake (204)
if omarchy-hw-intel && omarchy-battery-present; then
cpu_model=$(grep -m1 "^model\s*:" /proc/cpuinfo 2>/dev/null | cut -d: -f2 | tr -d ' ')
if [[ "$cpu_model" =~ ^(151|154|170|172|183|186|189|191|204)$ ]]; then
omarchy-pkg-add intel-lpmd
sudo systemctl enable intel_lpmd.service
fi
fi
+15
View File
@@ -0,0 +1,15 @@
# Install Panther Lake kernel for Dell XPS Panther Lake systems
# The linux-ptl kernel includes audio driver patches not yet in mainline.
if omarchy-hw-match "XPS" && omarchy-hw-intel-ptl; then
echo "Detected Dell XPS Panther Lake, installing PTL kernel..."
omarchy-pkg-add linux-ptl linux-ptl-headers
pacman -Rdd --noconfirm linux linux-headers 2>/dev/null || true
mkdir -p /etc/limine-entry-tool.d
cat > /etc/limine-entry-tool.d/dell-xps-panther-lake.conf <<'EOF'
# Only show Panther Lake kernel in boot menu on Dell XPS Panther Lake
BOOT_ORDER="linux-ptl*, *fallback, Snapshots"
EOF
fi
+8
View File
@@ -0,0 +1,8 @@
# Install Sound Open Firmware for the audio DSP on non-XPS Intel Panther
# Lake systems. XPS PTL stays on linux-ptl, which hard-deps sof-firmware.
# Mainline `linux` only optdeps it, so without this the DSP fails to boot
# and only auto_null shows up in PipeWire.
if omarchy-hw-intel-ptl && ! omarchy-hw-match "XPS"; then
omarchy-pkg-add sof-firmware
fi
+12
View File
@@ -0,0 +1,12 @@
# Enable thermald for Intel laptops (Sandy Bridge and newer)
# Thermald is useful for Intel Sandy Bridge (2nd gen Core, model 42/45) and newer CPUs.
if omarchy-hw-intel; then
# Check if Sandy Bridge or newer (model >= 42). Sandy Bridge: model 42 (mobile), 45 (desktop)
cpu_model=$(grep -m1 "^model\s*:" /proc/cpuinfo 2>/dev/null | cut -d: -f2 | tr -d ' ')
cpu_model=${cpu_model:-0}
if ((cpu_model >= 42)) && omarchy-battery-present; then
omarchy-pkg-add thermald
sudo systemctl enable thermald.service
fi
fi
@@ -0,0 +1,11 @@
# This installs hardware video acceleration for Intel GPUs
if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
# HD Graphics / Iris / Xe / Arc / Non-Arc Panther Lake use intel-media-driver + VPL
if [[ ${INTEL_GPU,,} =~ (hd\ graphics|uhd\ graphics|xe|iris|arc|panther\ lake) ]]; then
omarchy-pkg-add intel-media-driver libvpl vpl-gpu-rt
elif [[ ${INTEL_GPU,,} =~ "gma" ]]; then
# Older generations from 2008 to ~2014-2017 use libva-intel-driver
omarchy-pkg-add libva-intel-driver
fi
fi
@@ -0,0 +1,11 @@
# Fix bass speakers on Lenovo Yoga Pro 7 14IAH10
# The ALC287 codec needs a pin quirk to route audio to both AMP speakers.
# Without this quirk, only one speaker works and bass output is missing.
# Reference: https://wiki.archlinux.org/title/Lenovo_Yoga_9i_2022_(14AiPI7)
if omarchy-hw-match "Yoga Pro 7 14IAH10"; then
sudo mkdir -p /etc/modprobe.d
sudo tee /etc/modprobe.d/lenovo-yoga-pro7-bass.conf >/dev/null <<'EOF'
options snd-sof-intel-hda-generic hda_model=alc287-yoga9-bass-spk-pin
EOF
fi
+6
View File
@@ -0,0 +1,6 @@
# NetworkManager enablement is centralized in enable-services.sh.
systemctl disable iwd.service 2>/dev/null || true
# Prevent systemd-networkd-wait-online timeout on boot
systemctl disable systemd-networkd-wait-online.service
systemctl mask systemd-networkd-wait-online.service
+33
View File
@@ -0,0 +1,33 @@
if lspci | grep -qi 'nvidia'; then
# Check which kernel is installed and set appropriate headers package
KERNEL_PACKAGE=$(pacman -Qqs '^linux(-zen|-lts|-hardened|-t2|-ptl)?$' | head -1 || true)
[[ -n $KERNEL_PACKAGE ]] && omarchy-pkg-add "$KERNEL_PACKAGE-headers"
if omarchy-hw-nvidia-gsp; then
PACKAGES=(nvidia-open-dkms nvidia-utils lib32-nvidia-utils libva-nvidia-driver)
elif omarchy-hw-nvidia-without-gsp; then
PACKAGES=(nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils)
fi
# Bail if no supported GPU
if [[ -z ${PACKAGES+x} ]]; then
echo "No compatible driver for your NVIDIA GPU. See: https://wiki.archlinux.org/title/NVIDIA"
exit 0
fi
omarchy-pkg-add "${PACKAGES[@]}"
# Per-session Hyprland NVIDIA env vars are handled by default/hypr/nvidia.lua.
# Configure modprobe for early KMS
mkdir -p /etc/modprobe.d
cat > /etc/modprobe.d/nvidia.conf <<'EOF'
options nvidia_drm modeset=1
EOF
# Configure mkinitcpio for early loading
mkdir -p /etc/mkinitcpio.conf.d
cat > /etc/mkinitcpio.conf.d/nvidia.conf <<'EOF'
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
EOF
fi
+12
View File
@@ -0,0 +1,12 @@
# Hardware-specific pacman repository extensions that must survive the final
# pacman.conf restore.
if lspci -nn | grep -q "106b:180[12]"; then
if ! grep -q '^\[arch-mact2\]' /etc/pacman.conf; then
cat >> /etc/pacman.conf <<'EOF'
[arch-mact2]
Server = https://github.com/NoaHimesaka1873/arch-mact2-mirror/releases/download/release
SigLevel = Never
EOF
fi
fi
+24
View File
@@ -0,0 +1,24 @@
# Persist wireless regulatory domain based on the target timezone. Install is
# followed by reboot, so don't mutate live Wi-Fi state with `iw reg set`.
regdom_file=/etc/conf.d/wireless-regdom
[[ -f $regdom_file ]] || exit 0
if grep -q '^WIRELESS_REGDOM=' "$regdom_file"; then
exit 0
fi
timezone=""
if [[ -e /etc/localtime ]]; then
timezone=$(readlink -f /etc/localtime || true)
timezone=${timezone#/usr/share/zoneinfo/}
fi
country="${timezone%%/*}"
zone_tab=/usr/share/zoneinfo/zone.tab
if [[ ! $country =~ ^[A-Z]{2}$ && -n $timezone && -f $zone_tab ]]; then
country=$(awk -v tz="$timezone" '$3 == tz {print $1; exit}' "$zone_tab")
fi
if [[ $country =~ ^[A-Z]{2}$ ]]; then
echo "WIRELESS_REGDOM=\"$country\"" | sudo tee -a "$regdom_file" >/dev/null
fi
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-surface; then
omarchy-pkg-add linux-firmware-marvell
fi
+20
View File
@@ -0,0 +1,20 @@
# Install Vulkan drivers matching detected GPU hardware
# (NVIDIA Vulkan is handled by nvidia.sh via nvidia-utils)
declare -A VULKAN_DRIVERS=(
[Intel]=vulkan-intel
[AMD]=vulkan-radeon
[Apple]=vulkan-asahi
)
PACKAGES=()
for vendor in "${!VULKAN_DRIVERS[@]}"; do
if lspci | grep -iE "(VGA|Display).*$vendor" > /dev/null; then
PACKAGES+=("${VULKAN_DRIVERS[$vendor]}")
fi
done
if (( ${#PACKAGES[@]} > 0 )); then
omarchy-pkg-add "${PACKAGES[@]}"
fi