Technical logbook
Tips, fixes and research notes from my day-to-day as a freelance IT consultant — diagnosed, solved and written up so the next person (often me) doesn't have to start from scratch. Newest first.
-
Extension Manager (and every other Flatpak app) hangs forever at launch with unkillable processes. The cause is not the app: it is the Keybase redirector's dead FUSE mount on /keybase, which Flatpak stats while building its sandbox. How to identify it, unblock it without rebooting, and remove Keybase for good.
-
Turn the two Framework Laptop 16 LED Matrix input modules into stable left/right displays showing live CPU, memory, temperature and fan metrics — as bars, as figures or as pictograms — configured from a TOML file, re-read on the fly, with power-aware blanking and a systemd user service.
-
Docked with the lid shut, every sudo/su/polkit prompt still tries the unreachable fingerprint reader first and makes you wait. Put a tiny lid check in front of pam_fprintd via pam_exec so PAM skips fingerprint and goes straight to the password prompt when the lid is closed — instantly, no daemon, reusing your existing enrolled prints.
-
Recreate the terminal experience from ML4W (My Linux for Work) — Kitty with native tabs and splits, a powerline tab bar, a JetBrainsMono Nerd Font, the Tokyo Night theme, and the Fastfetch system-info greeting on launch — on a plain Fedora GNOME desktop, no Hyprland or tmux required.
-
Turn Fedora's default Ptyxis terminal into a polished setup: a JetBrainsMono Nerd Font, a Starship powerline prompt, and a leading OS glyph swapped from the Fedora mark to the Tux penguin.
-
Google Chrome silently fails to launch after a hostname change. The cause is a stale SingletonLock symlink in the user profile that still encodes the old machine name; deleting the Singleton* lock files restores normal startup. Applies to every Chromium-based browser and Electron app.
-
Set up a complete Flutter toolchain on Fedora 44 / GNOME using mise as the runtime version manager, with the Android SDK in the default ~/Android/Sdk so flutter doctor detects it without extra configuration — ending with 'No issues found' across Android, web and Linux desktop targets.
-
Replicate the macOS screenshot key bindings (Cmd+Shift+3/4/5) on GNOME so muscle memory carries over from a MacBook — including the non-obvious part: Dash to Dock silently steals Super+Shift+N, and the pre-GNOME 42 gsettings keys no longer exist.
-
Install Claude Code on Fedora from Anthropic's signed dnf repository (the recommended method on Fedora/RHEL), configure it for zsh, migrate off a curl|bash native install, and demystify the "Update available!" banner that the stable channel triggers.
-
The desktop session uses the right keyboard layout, but the display manager greeter is still QWERTY. On Debian and Ubuntu the system-wide layout lives in /etc/default/keyboard and is applied by console-setup — localectl set-x11-keymap is deliberately disabled on these distributions.
-
The greeter of GDM, SDDM or LightDM ignores the layout configured in the desktop session. On localectl-driven distributions the fix is a single command that writes /etc/X11/xorg.conf.d/00-keyboard.conf — which Wayland greeters read too, via xkbcommon.
-
Add a 'Fedora Linux snapshots' submenu to the GRUB boot screen so you can boot directly into a snapper snapshot when the system won't start after a bad update — the recovery case plain snapper can't cover because it needs a working system to log into. grub-btrfs is not in Fedora's repos, so it comes from the kylegospo COPR; a grub-btrfs watcher unit regenerates the menu whenever snapper adds/removes a snapshot. Fedora gotcha covered: the packaged grub-btrfs.path unit binds to a .snapshots.mount that doesn't exist on Fedora's nested-/.snapshots layout, so it needs a local systemd override before it will start. Includes the important separate-/boot caveat (kernel/initramfs live on an ext4 partition and are NOT snapshotted), read-only snapshot boot, and how to make a rollback permanent. Optional follow-on to the snapper setup; verified working on this machine.
-
Install and configure snapper on a Fedora Btrfs-on-LUKS system to create filesystem restore points: a root config with hourly timeline snapshots and auto-cleanup, plus automatic pre/post snapshots around every dnf transaction. Fedora 44 uses dnf5, which has no snapper plugin, so the dnf hook is wired up with the libdnf5 'actions' plugin calling a small wrapper script that labels snapshots by operation (dnf install / upgrade / remove). Includes browse, diff, file-restore and rollback commands.
-
Since fullscreen rendering, Claude Code captures the mouse — clicking in the prompt moves the cursor and a stray click can hit 'Ask something' or a menu option (very easy to do by accident in the JetBrains/IntelliJ terminal). Disable click/drag/hover while keeping wheel scroll with CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1, or kill mouse capture entirely with CLAUDE_CODE_DISABLE_MOUSE=1. There is no settings.json field and no CLI flag — only these environment variables — and a running session must be restarted to pick them up.
-
fwupdmgr refuses the UEFI dbx (Secure Boot revocation list) update with "does not currently allow updates: Not enough efivarfs space, requested 30,7 kB and got 20,0 kB". The NVRAM variable store is full of legitimate, fragmented Secure Boot key data — the new dbx is larger than the free slot. Diagnose it safely with efivar/efibootmgr, understand why deleting boot entries or efivars does not help, and apply the proven fix: erase and restore Secure Boot keys to defaults in the BIOS, which repacks (defragments) the variable store. Tested on a Framework 16 AMD 7040 / Fedora 44, fwupd 2.1.5.
-
Read the running BIOS/UEFI firmware version of a Framework Laptop from Linux with dmidecode — install it on Ubuntu or Fedora, interpret every field (vendor, version, release date, ROM size, CPU family.model.stepping), cross-check with lshw and sysfs, and compare against the latest Framework release with fwupd before flashing.
-
Build an auto-deploying static blog: Astro + a private content repo + OVH (GitHub Actions over SFTP)
End-to-end recipe for a 100% static Astro blog whose content lives in a separate private GitHub repo, auto-cleaned at build time and deployed to OVH shared hosting over SFTP via GitHub Actions — covering OVH multisite, DNS/SSL, secrets, a push-to-publish loop, and the gotchas that actually bite.
-
Remap the Super key so Super+C/V/X copy/paste/cut in every app and in the Ptyxis terminal on Fedora GNOME Wayland, just like Cmd+C/V on macOS.
-
git/ssh to GitHub hangs because GNOME's gcr-ssh-agent freezes when signing passphrase-protected keys and keeps re-hijacking SSH_AUTH_SOCK; fix by running an OpenSSH ssh-agent user service, exporting its socket via environment.d, and masking gcr-ssh-agent.
-
The FW16 white keyboard backlight self-toggles because of the QMK breathing effect; disable it with qmk_hid (built from source on Fedora).
-
Wire the FW16's separate QMK keyboard backlight into native GNOME control (Quick Settings slider + brightness keys) via a kernel uleds virtual LED and a qmk_hid bridge daemon.
-
Ghostty 1.3.1 crashes at startup on Fedora 44 (a Linux-only bundled-fontconfig/glycin symbol clash); switch to Ptyxis — Starship is shell-side so it carries over, only login-shell and a Nerd Font need setting.
-
Ghostty segfaults when a TUI app prints glyphs that need font fallback, caused by a corrupt user fontconfig cache holding mismatched cache-N versions; clear ~/.cache/fontconfig and rebuild to fix.
-
After fingerprint login GNOME repeatedly prompts to unlock the password-encrypted Login keyring; the practical workaround (LUKS required) is to remove the keyring password so it auto-unlocks at session start.
-
Change a Fedora LUKS2 full-disk-encryption passphrase on a live, mounted system (header backup, luksChangeKey or add-then-kill keyslot) with no reboot or reinstall required.
-
Cascading method to pinpoint the process, device, or protocol family responsible for abnormally low Internet throughput on Fedora (speedtest, nethogs, iftop, iw).
-
Diagnose and fix broken IPv6 (slow browsing via Happy Eyeballs) on Fedora behind an Orbi in double NAT on a Proximus BBx, from the NetworkManager workaround to the Orbi pass-through fix and PMTUD.
-
Get an 'online-only' Dropbox (equivalent to Smart Sync on Mac/Windows) on Fedora via an rclone FUSE mount driven by a systemd-user service, with on-demand VFS cache and automatic upload.