diff --git a/src-tauri/patterns/macos-to-arch.toml b/src-tauri/patterns/macos-to-arch.toml index c12184a..c40802f 100644 --- a/src-tauri/patterns/macos-to-arch.toml +++ b/src-tauri/patterns/macos-to-arch.toml @@ -8,13 +8,15 @@ 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." +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" @@ -22,7 +24,133 @@ sources = ["journald"] match_text = "unknown public key" severity = "warn" title = "Missing PGP key for AUR package" -body = "The package signature can't be verified. Run: gpg --recv-keys " +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" @@ -38,7 +166,7 @@ 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 that you own the directory: ls -la ~/.local/share/Steam" +body = "Steam can't write to its library folder. Check ownership: ls -la ~/.local/share/Steam" [[patterns]] id = "retroarch-shader-fail" @@ -46,20 +174,4 @@ 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 to a different shader preset in Settings -> Video -> Shaders." - -[[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, try: sudo pacman -S linux-firmware" - -[[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" +body = "A graphical shader couldn't load. Try switching preset in Settings -> Video -> Shaders." diff --git a/src-tauri/patterns/windows-to-debian.toml b/src-tauri/patterns/windows-to-debian.toml index 29ac17d..1858960 100644 --- a/src-tauri/patterns/windows-to-debian.toml +++ b/src-tauri/patterns/windows-to-debian.toml @@ -6,6 +6,9 @@ target_distro_family = "debian" steam = "~/.local/share/Steam/logs/content_log.txt" proton = "~/.local/share/Steam/logs/proton_log.txt" retroarch = "~/.config/retroarch/retroarch.log" +libreoffice = "~/.config/libreoffice/4/user/registrymodifications.xcu" + +# ── Package management ─────────────────────────────────────────────────────── [[patterns]] id = "apt-lock" @@ -13,7 +16,7 @@ sources = ["journald"] match_text = "Could not get lock /var/lib/dpkg/lock" severity = "warn" title = "Package manager is locked" -body = "Another process is using apt. Wait a moment and try again. If it's stuck: sudo rm /var/lib/dpkg/lock-frontend" +body = "Another process is using apt — usually an automatic update running in the background. Wait a minute and try again. If it's been stuck a long time: sudo rm /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock" [[patterns]] id = "apt-unmet-dependency" @@ -23,6 +26,150 @@ severity = "warn" title = "Package dependency conflict" body = "apt can't resolve a dependency. Try: sudo apt --fix-broken install" +[[patterns]] +id = "dpkg-interrupted" +sources = ["journald"] +match_text = "dpkg was interrupted" +severity = "warn" +title = "Package install was interrupted" +body = "A previous install didn't complete cleanly. This is like a Windows installer that got cut off mid-run. Fix it with: sudo dpkg --configure -a — then run your install again." + +# ── 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 system). Try: systemctl --user restart pipewire pipewire-pulse — if sound still doesn't work, log out and back in." + +[[patterns]] +id = "pulseaudio-connect-fail" +sources = ["journald"] +match_text = "Failed to connect to pulseaudio" +severity = "warn" +title = "Audio server not responding" +body = "An app can't reach the audio server. Try: pulseaudio --kill && pulseaudio --start — if that doesn't help, log out and back in." + +# ── Bluetooth ──────────────────────────────────────────────────────────────── + +[[patterns]] +id = "bluetooth-rfkill-blocked" +sources = ["journald"] +match_text = "Blocked through rfkill" +severity = "warn" +title = "Bluetooth is software-blocked" +body = "A software switch is blocking Bluetooth. Run: rfkill unblock bluetooth — if it's showing Hard blocked, there may be a physical switch or BIOS setting involved." + +[[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 audio profile isn't available. Try: sudo apt install pulseaudio-module-bluetooth — then restart pulseaudio." + +# ── Filesystem / storage ────────────────────────────────────────────────────── + +[[patterns]] +id = "ntfs-volume-dirty" +sources = ["kmsg"] +match_text = "volume is dirty" +severity = "warn" +title = "External drive needs Windows check" +body = "An NTFS drive (probably from Windows) wasn't safely ejected and needs a check. Mount it in Windows and run chkdsk, or force-mount on Linux with: sudo mount -o remove_hiberfile /dev/sdX /mnt/point" + +[[patterns]] +id = "ntfs-force-required" +sources = ["kmsg"] +match_text = "Dirty flag is set" +severity = "warn" +title = "Drive mounted read-only (dirty flag)" +body = "Linux mounted this NTFS drive read-only because Windows marked it as needing a check. Boot into Windows and do a safe shutdown, or use: sudo ntfsfix /dev/sdX" + +[[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 error. This could be a failing USB drive, a bad cable, or a corrupted filesystem. Check: sudo smartctl -a /dev/sdX — replace sdX with the device shown in the error." + +[[patterns]] +id = "usb-device-reset" +sources = ["kmsg"] +match_text = "device descriptor read/64, error" +severity = "info" +title = "USB device not recognised" +body = "A USB device is having trouble connecting. Try a different USB port, or unplug and replug. If it's a hub, try plugging directly into the computer." + +# ── 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. On Debian/Ubuntu/Mint: sudo apt install firmware-linux firmware-linux-nonfree — 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 forcibly close a program to free RAM. Windows handles this differently with virtual memory. If this keeps happening, consider adding a swap file or closing more background apps." + +[[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 games or video apps may have crashed. Check for overheating, and make sure your GPU drivers are up to date." + +# ── Network ────────────────────────────────────────────────────────────────── + +[[patterns]] +id = "networkmanager-activation-fail" +sources = ["journald"] +match_text = "Activation failed" +severity = "info" +title = "Network connection failed" +body = "NetworkManager couldn't connect. Common causes: wrong wifi password, a captive portal (hotel/coffee shop wifi), or a driver issue. Check: nmcli device status" + +# ── Printing ────────────────────────────────────────────────────────────────── + +[[patterns]] +id = "cups-server-error" +sources = ["journald"] +match_text = "Unable to connect to CUPS server" +severity = "info" +title = "Printer service not running" +body = "The print server (CUPS) isn't running. Start it: sudo systemctl start cups — and enable it to start automatically: sudo systemctl enable cups" + +# ── 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 Ubuntu/Mint: sudo apt install ubuntu-restricted-extras — this installs common video, audio, and font packages." + +[[patterns]] +id = "snap-confinement" +sources = ["journald"] +match_text = "snap: cannot use strict" +severity = "info" +title = "Snap package permission issue" +body = "A Snap package is having permission trouble. Try running it with --devmode, or look for a Flatpak or apt alternative. Note: Snap is disabled by default on Linux Mint — use apt or Flatpak instead." + +# ── Gaming ──────────────────────────────────────────────────────────────────── + [[patterns]] id = "proton-runtime-missing" sources = ["applog:proton"] @@ -32,25 +179,9 @@ title = "Proton runtime issue" body = "Steam Proton couldn't find a required file. Right-click the game -> Properties -> Local Files -> Verify game files." [[patterns]] -id = "kernel-driver-firmware" -sources = ["kmsg"] -match_text = "firmware: failed to load" +id = "steam-disk-write" +sources = ["applog:steam"] +match_text = "ERROR: failed to write" severity = "warn" -title = "Missing firmware for hardware" -body = "Your system is missing a firmware file. On Debian/Ubuntu/Mint: sudo apt install firmware-linux firmware-linux-nonfree" - -[[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. Try: sudo apt install ubuntu-restricted-extras" - -[[patterns]] -id = "snap-confinement" -sources = ["journald"] -match_text = "snap: cannot use strict" -severity = "info" -title = "Snap package confinement issue" -body = "A Snap package is having permission trouble. Try running it with --devmode, or look for a Flatpak or apt alternative." +title = "Steam disk write error" +body = "Steam can't write to its library folder. Check: ls -la ~/.local/share/Steam"