Merge branch 'dev' into defer/kernel-modules-hook

This commit is contained in:
David Heinemeier Hansson
2026-02-20 21:56:41 +01:00
committed by GitHub
235 changed files with 2158 additions and 304 deletions
+10
View File
@@ -7,6 +7,7 @@ run_logged $OMARCHY_INSTALL/config/timezones.sh
run_logged $OMARCHY_INSTALL/config/increase-sudo-tries.sh
run_logged $OMARCHY_INSTALL/config/increase-lockout-limit.sh
run_logged $OMARCHY_INSTALL/config/ssh-flakiness.sh
run_logged $OMARCHY_INSTALL/config/increase-file-watchers.sh
run_logged $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
run_logged $OMARCHY_INSTALL/config/xcompose.sh
run_logged $OMARCHY_INSTALL/config/mise-work.sh
@@ -20,6 +21,9 @@ run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
run_logged $OMARCHY_INSTALL/config/input-group.sh
run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh
run_logged $OMARCHY_INSTALL/config/kernel-modules-hook.sh
run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh
run_logged $OMARCHY_INSTALL/config/wifi-powersave-rules.sh
run_logged $OMARCHY_INSTALL/config/hibernation.sh
run_logged $OMARCHY_INSTALL/config/hardware/network.sh
run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
@@ -29,9 +33,15 @@ run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
run_logged $OMARCHY_INSTALL/config/hardware/legacy-gpu-terminal.sh
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
run_logged $OMARCHY_INSTALL/config/hardware/vulkan.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-bcm43xx.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-suspend-nvme.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-surface-keyboard.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-audio-mixer.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-mic.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-yt6801-ethernet-adapter.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-synaptic-touchpad.sh
run_logged $OMARCHY_INSTALL/config/hardware/framework16-qmk-hid.sh
+2 -2
View File
@@ -16,8 +16,8 @@ sudo mkdir -p /etc/systemd/resolved.conf.d
echo -e '[Resolve]\nDNSStubListenerExtra=172.17.0.1' | sudo tee /etc/systemd/resolved.conf.d/20-docker-dns.conf >/dev/null
sudo systemctl restart systemd-resolved
# Start Docker automatically
sudo systemctl enable docker
# Start Docker on-demand
sudo systemctl enable docker.socket
# Give this user privileged Docker access
sudo usermod -aG docker ${USER}
+1 -5
View File
@@ -1,7 +1,3 @@
sudo mkdir -p /etc/systemd/system.conf.d
cat <<EOF | sudo tee /etc/systemd/system.conf.d/10-faster-shutdown.conf
[Manager]
DefaultTimeoutStopSec=5s
EOF
sudo cp "$OMARCHY_PATH/default/systemd/faster-shutdown.conf" /etc/systemd/system.conf.d/10-faster-shutdown.conf
sudo systemctl daemon-reload
@@ -0,0 +1,13 @@
# Fix audio volume on Asus ROG laptops by using a soft mixer.
if omarchy-hw-asus-rog; then
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
cp $OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf ~/.config/wireplumber/wireplumber.conf.d/
rm -rf ~/.local/state/wireplumber/default-routes
# Unmute the Master control on the ALC285 card (often muted by default)
card=$(aplay -l 2>/dev/null | grep -i "ALC285" | head -1 | sed 's/card \([0-9]*\).*/\1/')
if [[ -n "$card" ]]; then
amixer -c "$card" set Master 80% unmute 2>/dev/null
fi
fi
@@ -0,0 +1,15 @@
# Fix internal mic gain on ASUS ROG laptops with Realtek ALC285.
# The mic boost is way too high by default, causing clipping.
# Sets levels and stores ALSA state so it persists across reboots.
if omarchy-hw-asus-rog; then
for card in /proc/asound/card*/codec*; do
if grep -q "ALC285" "$card" 2>/dev/null; then
cardnum=$(echo "$card" | grep -oP 'card\K\d+')
amixer -c "$cardnum" set 'Internal Mic Boost' 0 >/dev/null 2>&1 || true
amixer -c "$cardnum" set 'Capture' 70% >/dev/null 2>&1 || true
sudo alsactl store "$cardnum" 2>/dev/null || true
break
fi
done
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,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,9 @@
# Allow unprivileged access to the Framework 16 keyboard for RGB control via qmk_hid.
if omarchy-hw-framework16; then
if [[ ! -f /etc/udev/rules.d/50-framework16-qmk-hid.rules ]]; then
sudo cp "$OMARCHY_PATH/default/udev/framework16-qmk-hid.rules" /etc/udev/rules.d/50-framework16-qmk-hid.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
fi
fi
+20 -7
View File
@@ -4,12 +4,14 @@ if [ -n "$NVIDIA" ]; then
# Check which kernel is installed and set appropriate headers package
KERNEL_HEADERS="$(pacman -Qqs '^linux(-zen|-lts|-hardened)?$' | head -1)-headers"
if echo "$NVIDIA" | grep -qE "RTX [2-9][0-9]|GTX 16"; then
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
# Turing+ (GTX 16xx, RTX 20xx-50xx, Quadro RTX, datacenter A/H/T/L series) have GSP firmware
if echo "$NVIDIA" | grep -qE "GTX 16[0-9]{2}|RTX [2-5][0-9]{3}|Quadro RTX|RTX A[0-9]{4}|A[1-9][0-9]{2}|H[1-9][0-9]{2}|T4|L[0-9]+"; then
PACKAGES=(nvidia-open-dkms nvidia-utils lib32-nvidia-utils libva-nvidia-driver)
elif echo "$NVIDIA" | grep -qE "GTX 9|GTX 10|Quadro P"; then
# Pascal (10xx or Quadro Pxxx) and Maxwell (9xx) use legacy branch that can only be installed from AUR
GPU_ARCH="turing_plus"
# Maxwell (GTX 9xx), Pascal (GT/GTX 10xx, Quadro P, MX series), Volta (Titan V, Tesla V100, Quadro GV100) lack GSP
elif echo "$NVIDIA" | grep -qE "GTX (9[0-9]{2}|10[0-9]{2})|GT 10[0-9]{2}|Quadro [PM][0-9]{3,4}|Quadro GV100|MX *[0-9]+|Titan (X|Xp|V)|Tesla V100"; then
PACKAGES=(nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils)
GPU_ARCH="maxwell_pascal_volta"
fi
# Bail if no supported GPU
if [ -z "${PACKAGES+x}" ]; then
@@ -29,12 +31,23 @@ EOF
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
EOF
# Add NVIDIA environment variables
cat >>$HOME/.config/hypr/envs.conf <<'EOF'
# Add NVIDIA environment variables based on GPU architecture
if [ "$GPU_ARCH" = "turing_plus" ]; then
# Turing+ (RTX 20xx, GTX 16xx, and newer) with GSP firmware support
cat >>"$HOME/.config/hypr/envs.conf" <<'EOF'
# NVIDIA
# NVIDIA (Turing+ with GSP firmware)
env = NVD_BACKEND,direct
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
EOF
elif [ "$GPU_ARCH" = "maxwell_pascal_volta" ]; then
# Maxwell/Pascal/Volta (GTX 9xx/10xx, GT 10xx, Quadro P/M/GV, MX series, Titan X/Xp/V) lack GSP firmware
cat >>"$HOME/.config/hypr/envs.conf" <<'EOF'
# NVIDIA (Maxwell/Pascal/Volta without GSP firmware)
env = NVD_BACKEND,egl
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
EOF
fi
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[@]} -gt 0 ]; then
omarchy-pkg-add "${PACKAGES[@]}"
fi
+2
View File
@@ -0,0 +1,2 @@
# Enable hibernation
omarchy-hibernation-setup --force
+3
View File
@@ -0,0 +1,3 @@
# Increase inotify file watchers for VS Code, webpack, and other dev tools (default 8192 is too low)
echo "fs.inotify.max_user_watches=524288" | sudo tee /etc/sysctl.d/90-omarchy-file-watchers.conf >/dev/null
sudo sysctl --system >/dev/null 2>&1
+3
View File
@@ -1,6 +1,9 @@
omarchy-refresh-applications
update-desktop-database ~/.local/share/applications
# Open directories in file manager
xdg-mime default org.gnome.Nautilus.desktop inode/directory
# Open all images with imv
xdg-mime default imv.desktop image/png
xdg-mime default imv.desktop image/jpeg
+22
View File
@@ -0,0 +1,22 @@
if omarchy-battery-present; then
mapfile -t profiles < <(omarchy-powerprofiles-list)
if [[ ${#profiles[@]} -gt 1 ]]; then
# Default AC profile:
# 3 profiles → performance
# 2 profiles → balanced
ac_profile="${profiles[2]:-${profiles[1]}}"
# Default Battery profile (balanced)
battery_profile="${profiles[1]}"
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/bin/powerprofilesctl set $battery_profile"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/bin/powerprofilesctl set $ac_profile"
EOF
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=power_supply
fi
fi
+5
View File
@@ -4,6 +4,10 @@
mkdir -p ~/.config/autostart/
cp $OMARCHY_PATH/default/walker/walker.desktop ~/.config/autostart/
# And is restarted if it crashes or is killed
mkdir -p ~/.config/systemd/user/app-walker@autostart.service.d/
cp $OMARCHY_PATH/default/walker/restart.conf ~/.config/systemd/user/app-walker@autostart.service.d/restart.conf
# Create pacman hook to restart walker after updates
sudo mkdir -p /etc/pacman.d/hooks
sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF
@@ -23,3 +27,4 @@ EOF
# Link the visual theme menu config
mkdir -p ~/.config/elephant/menus
ln -snf $OMARCHY_PATH/default/elephant/omarchy_themes.lua ~/.config/elephant/menus/omarchy_themes.lua
ln -snf $OMARCHY_PATH/default/elephant/omarchy_background_selector.lua ~/.config/elephant/menus/omarchy_background_selector.lua
+9
View File
@@ -0,0 +1,9 @@
if omarchy-battery-present; then
cat <<EOF | sudo tee "/etc/udev/rules.d/99-wifi-powersave.rules"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave on"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave off"
EOF
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=power_supply
fi
+1
View File
@@ -1,5 +1,6 @@
# Set default XCompose that is triggered with CapsLock
tee ~/.XCompose >/dev/null <<EOF
# Run omarchy-restart-xcompose to apply changes
include "%H/.local/share/omarchy/default/xcompose"
# Identification
+1 -3
View File
@@ -1,10 +1,8 @@
if ls /sys/class/power_supply/BAT* &>/dev/null; then
# This computer runs on a battery
if omarchy-battery-present; then
powerprofilesctl set balanced || true
# Enable battery monitoring timer for low battery notifications
systemctl --user enable --now omarchy-battery-monitor.timer
else
# This computer runs on power outlet
powerprofilesctl set performance || true
fi
+4 -1
View File
@@ -5,6 +5,7 @@
1password-cli
aether
alacritty
alsa-utils
asdcontrol
avahi
bash-completion
@@ -13,6 +14,7 @@ bluetui
bolt
brightnessctl
btop
chromium
clang
cups
cups-browsed
@@ -79,6 +81,7 @@ mariadb-libs
mise
mpv
nautilus
nautilus-python
gnome-disk-utility
noto-fonts
noto-fonts-cjk
@@ -88,7 +91,6 @@ nss-mdns
nvim
obs-studio
obsidian
omarchy-chromium
omarchy-nvim
omarchy-walker
opencode
@@ -119,6 +121,7 @@ swayosd
system-config-printer
tldr
tree-sitter-cli
tmux
tobi-try
ttf-cascadia-mono-nerd
ttf-ia-writer
+7
View File
@@ -2,6 +2,7 @@
# Utilized by ISO builder to ensure package availability in the ISO
autoconf-archive
asusctl
base
base-devel
broadcom-wl
@@ -44,8 +45,14 @@ snapper
webp-pixbuf-loader
wget
yay-debug
yt6801-dkms
zram-generator
# Vulkan drivers (auto-detected by hardware)
vulkan-intel
vulkan-radeon
vulkan-asahi
# T2 MacBook support packages
apple-bcm-firmware
apple-t2-audio-config
+2
View File
@@ -4,3 +4,5 @@ run_logged $OMARCHY_INSTALL/packaging/nvim.sh
run_logged $OMARCHY_INSTALL/packaging/icons.sh
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
run_logged $OMARCHY_INSTALL/packaging/tuis.sh
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
run_logged $OMARCHY_INSTALL/packaging/framework16.sh
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-asus-rog; then
omarchy-pkg-add asusctl
fi
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-framework16; then
omarchy-pkg-add qmk-hid
fi
+2 -8
View File
@@ -1,12 +1,6 @@
# Configure pacman
if [[ ${OMARCHY_MIRROR:-} == "edge" ]] ; then
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-edge.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
else
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-stable.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
fi
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-${OMARCHY_MIRROR:-stable}.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-${OMARCHY_MIRROR:-stable} /etc/pacman.d/mirrorlist
if lspci -nn | grep -q "106b:180[12]"; then
cat <<EOF | sudo tee -a /etc/pacman.conf >/dev/null
+2 -8
View File
@@ -3,13 +3,8 @@ if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
sudo pacman -S --needed --noconfirm base-devel
# Configure pacman
if [[ ${OMARCHY_MIRROR:-} == "edge" ]] ; then
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-edge.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
else
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-stable.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
fi
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-${OMARCHY_MIRROR:-stable}.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-${OMARCHY_MIRROR:-stable} /etc/pacman.d/mirrorlist
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
@@ -17,7 +12,6 @@ if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
sudo pacman -Sy
sudo pacman -S --noconfirm --needed omarchy-keyring
# Refresh all repos
sudo pacman -Syyu --noconfirm
fi