Container images and build caches (anotherim-js's build images alone
are several GB each) had filled the root filesystem, and a NDK unzip
in an image build failed with the disk full. Point
rootless_storage_path at the data disk. Existing storage was moved
there with its libpod database paths rewritten.
Assisted-by: Claude:opus-5
thinkpad_acpi ignores writes to /proc/acpi/ibm/fan unless loaded
with fan_control=1. Enable it so the fan can be set to a level (0-7)
or full-speed by hand; the firmware stays in charge while the level
is "auto". Applies from the next boot or a reload of the module.
Assisted-by: Claude:opus-5
Register vsmartcard's vpcd with pcscd as "Virtual PCD", so the
Remote Smart Card Reader app on a phone can serve the ID card over
NFC as a PC/SC reader. Over USB the link is an adb port reverse
(adb reverse tcp:35963 tcp:35963), hence android-tools.
Assisted-by: Claude:opus-5
An AI pair-programming CLI to use beside Claude Code. It talks to
OpenRouter through the ~/.local/bin/aider wrapper, which holds the
model and key settings outside the store.
Assisted-by: Claude:opus-5
The crash is mutter issue #4871, a regression from !5057, and
!5375 ("wayland/touch: Do not crash on empty focus surface") carries
the same NULL check as our patch. Say so in the overlay and the
patch, so it is clear when the patch can go.
Assisted-by: Claude:opus-5
With pinentry-curses the passphrase prompt needs a terminal, so a
signed commit made from an editor or any tool without one fails with
"gpg: signing failed: No such file or directory". pinentry-gnome3
asks in a GNOME dialog instead (and still falls back to curses
without a display).
Assisted-by: Claude:opus-5
meta_wayland_touch_cancel() clears focus_surface on active touches
but keeps their serials until the finger lifts. A client asking for
a move/resize grab with such a serial (anotherim-js's resize edges
by touch) makes touch_can_grab_surface() dereference NULL and takes
down gnome-shell (four crashes on 2026-10-13, same address).
Carry a one-line NULL check until nixpkgs' mutter has a fix; it is
not upstream as of mutter 50.2 / main.
Assisted-by: Claude:opus-5
gnome-shell keeps segfaulting in libmutter, and with the PAM core
limit at 0 systemd-coredump threw every dump away, so there was no
backtrace to work from. Raise the limit to unlimited; dumps land
root-owned in /var/lib/systemd/coredump, readable only by their
owner. Enable nixseparatedebuginfod2 so gdb/coredumpctl can fetch
symbols for store paths on demand.
The user manager inherits the limit at its first login, so it takes
a reboot (or a full logout) to apply.
Assisted-by: Claude:opus-5
Add modules/hostel-wifi.nix: per-SSID MAC randomization (iwd), disable
mDNS/LLMNR/NetBIOS, reject hostile IPv6 RAs, firewall LAN-side probing,
an nftables killswitch target allowing only tunnel egress + captive-portal
endpoints, NTS-secured time via chrony, and a captive-portal helper.
Import left commented out; toggle via 'untrusted on|off'.
acpi.ec_no_wakeup=1 stops EC interrupts from thrashing s2idle, and a
dconf system-db override disables gsd-power's sleep handlers so logind
owns all sleep/idle policy (gsd was re-waking before HibernateDelaySec).
Split lid/suspend policy by power source (s-t-h on battery, plain suspend
on AC), map power key to hibernate, drop HibernateDelaySec to 15min while
re-validating thermals, and disable USB-device wakeup via udev.
Add opensc (PKCS#11) and pcsc-tools, enable pcscd, and add a udev rule
granting access to the built-in reader (2ce3:9563), which the shipped
CCID rules miss (pcscd hit LIBUSB_ERROR_ACCESS). Configure Firefox to
load the OpenSC PKCS#11 module for TLS client-cert auth and force-install
the Web eID extension.
Add nix-flatpak flake input and modules/gaming.nix managing Flatpak
remotes/packages declaratively: Bolt (Jagex launcher for RS3/OSRS) and
Sober (Roblox). Add Heroic and hyperplay-ext, plus Proton-GE for Steam.
Drops the old imperative runescape-launcher.