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:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,10 @@
|
||||
# Install Wi-Fi drivers for Broadcom chips found in some MacBooks, as well as other systems:
|
||||
# - BCM4360 (2013–2015 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
if omarchy-hw-framework16; then
|
||||
omarchy-pkg-add qmk-hid
|
||||
fi
|
||||
@@ -0,0 +1,2 @@
|
||||
# Give this user privileged input access for dictation tools + xbox controllers to work
|
||||
usermod -aG input "$OMARCHY_INSTALL_USER"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
if omarchy-hw-surface; then
|
||||
omarchy-pkg-add linux-firmware-marvell
|
||||
fi
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user