[meta] source_os = "macos" target_distro_family = "arch" [log_paths] steam = "~/.local/share/Steam/logs/content_log.txt" proton = "~/.local/share/Steam/logs/proton_log.txt" retroarch = "~/.config/retroarch/retroarch.log" lutris = "~/.cache/lutris/logs/lutris.log" # ── AUR / package management ──────────────────────────────────────────────── [[patterns]] id = "aur-build-failure" sources = ["journald"] match_text = "error: failed to build" severity = "warn" title = "AUR package build failed" body = "A package failed to compile from source. This usually means a missing dependency or a broken AUR package. Check the output for the specific error, or look up the package comments on aur.archlinux.org." [[patterns]] id = "aur-pgp-key" sources = ["journald"] match_text = "unknown public key" severity = "warn" title = "Missing PGP key for AUR package" body = "The package signature can't be verified. The key ID will be in the error — run: gpg --recv-keys " [[patterns]] id = "pacman-db-lock" sources = ["journald"] match_text = "could not lock database: File exists" severity = "warn" title = "Pacman database is locked" body = "Another pacman process left a lock file behind. If nothing is running: sudo rm /var/lib/pacman/db.lck — then retry your command." [[patterns]] id = "pacman-dep-conflict" sources = ["journald"] match_text = "conflicting dependencies" severity = "warn" title = "Package dependency conflict" body = "Two packages need incompatible versions of something. On Arch this sometimes happens with AUR packages. Read the conflict message carefully — one of the packages usually has to be replaced or manually removed first." [[patterns]] id = "dkms-build-fail" sources = ["journald"] match_text = "Error! Build of" severity = "warn" title = "Kernel module failed to build" body = "A DKMS kernel module didn't compile after a kernel update. This can break hardware that needs out-of-tree drivers (e.g. some wifi cards, VirtualBox, NVIDIA). Check: dkms status — then reinstall the failing module package." # ── Audio ──────────────────────────────────────────────────────────────────── [[patterns]] id = "pipewire-connect-fail" sources = ["journald"] match_text = "Failed to connect to PipeWire" severity = "warn" title = "Audio server not responding" body = "An app can't reach PipeWire (the audio server). Try: systemctl --user restart pipewire pipewire-pulse — if that doesn't help, log out and back in." [[patterns]] id = "wireplumber-fail" sources = ["journald"] match_text = "Failed to activate" severity = "warn" title = "Audio session manager error" body = "WirePlumber (the audio session manager) had a problem activating a device. Try: systemctl --user restart wireplumber — if audio devices keep disappearing, check that your user is in the 'audio' group: groups $USER" # ── Bluetooth ──────────────────────────────────────────────────────────────── [[patterns]] id = "bluetooth-rfkill-blocked" sources = ["journald"] match_text = "Blocked through rfkill" severity = "warn" title = "Bluetooth is blocked by rfkill" body = "The system's radio kill switch is blocking Bluetooth. Run: rfkill list — if Bluetooth shows 'Hard blocked: no, Soft blocked: yes', run: rfkill unblock bluetooth" [[patterns]] id = "bluetooth-profile-unavailable" sources = ["journald"] match_text = "br-connection-profile-unavailable" severity = "info" title = "Bluetooth profile not available" body = "A Bluetooth device connected but a required profile isn't available. This often means missing codecs. Try: sudo pacman -S pulseaudio-bluetooth (if using PulseAudio) or check that pipewire-bluetooth is installed." # ── GPU / display ───────────────────────────────────────────────────────────── [[patterns]] id = "gpu-hang" sources = ["kmsg"] match_text = "GPU HANG" severity = "warn" title = "GPU hang detected" body = "The graphics card stopped responding. Linux recovered, but this can cause game crashes and display glitches. Common causes: overheating, or a driver bug with the current kernel. Check GPU temperature and consider updating mesa or your GPU driver package." [[patterns]] id = "xwayland-crash" sources = ["journald"] match_text = "XWayland server terminated unexpectedly" severity = "warn" title = "XWayland crashed" body = "The compatibility layer for older X11 apps crashed. Apps using X11 (not Wayland-native) will stop working until you restart your session. If this keeps happening, try running the affected app with WAYLAND_DISPLAY= cleared to force X11 mode." # ── Hardware / kernel ───────────────────────────────────────────────────────── [[patterns]] id = "kernel-driver-firmware" sources = ["kmsg"] match_text = "firmware: failed to load" severity = "warn" title = "Missing firmware for hardware" body = "Your system is missing a firmware file for a hardware component. On Arch: sudo pacman -S linux-firmware — then reboot." [[patterns]] id = "oom-killer" sources = ["kmsg"] match_text = "Out of memory: Kill process" severity = "warn" title = "System ran out of memory" body = "Linux had to kill a process because RAM was exhausted. On macOS, the system compresses memory instead. On Linux you can add swap space as a safety net: consider a swapfile if your machine has limited RAM." [[patterns]] id = "disk-io-error" sources = ["kmsg"] match_text = "Buffer I/O error on device" severity = "warn" title = "Disk read/write error" body = "A storage device had an I/O error. This can mean a failing drive, a bad cable, or a filesystem problem. Check the device with: sudo smartctl -a /dev/sdX — replace sdX with the device from the error." # ── Network ────────────────────────────────────────────────────────────────── [[patterns]] id = "networkmanager-activation-fail" sources = ["journald"] match_text = "Activation failed" severity = "info" title = "Network connection failed to activate" body = "NetworkManager couldn't connect to a network. Common causes: wrong wifi password, a driver issue, or the network requiring a login page. Check: nmcli device status" # ── Media ──────────────────────────────────────────────────────────────────── [[patterns]] id = "missing-codec" sources = ["journald"] match_text = "GStreamer: Failed to find plugin" severity = "info" title = "Missing media codec" body = "A media codec isn't installed. On Arch: sudo pacman -S gst-plugins-good gst-plugins-bad gst-libav" # ── Gaming ──────────────────────────────────────────────────────────────────── [[patterns]] id = "proton-runtime-missing" sources = ["applog:proton"] match_text = "wine: cannot find" severity = "warn" title = "Proton runtime issue" body = "Steam Proton couldn't find a required file. Try: right-click the game -> Properties -> Local Files -> Verify game files." [[patterns]] id = "steam-disk-write" sources = ["applog:steam"] match_text = "ERROR: failed to write" severity = "warn" title = "Steam disk write error" body = "Steam can't write to its library folder. Check ownership: ls -la ~/.local/share/Steam" [[patterns]] id = "retroarch-shader-fail" sources = ["applog:retroarch"] match_text = "Failed to compile shader" severity = "info" title = "RetroArch shader failed to compile" body = "A graphical shader couldn't load. Try switching preset in Settings -> Video -> Shaders."