Generate an aerc styleset from config.colorscheme.colors, matching how
tmux, zathura and the rest are themed. Keys are quoted throughout since
unquoted dotted names build nested attrsets and fail the module's type
check.
Home Manager writes the whole aerc.conf, so aerc's shipped filters never
applied: bring back colorize, calendar and html, and point the viewer at
less. Pin the mailbox order per account instead of taking plain
alphabetical, and fold subfolders under their parent.
Assisted-by: pi (claude-opus-5)
Give each host a wallpaper whose derived colorscheme sits at its own position on an evenly spaced hue wheel:
- Atlas: aenami-dawn; Celaeno: mountain-yellow-red
- Alcyone: autumn-leaves-orange; Pleione: plains-flowers-green-red
- Electra: aenami-northern-lights; Merope: aenami-bright-planet
- Maia: deer-lunar-fantasy; Taygeta: nebula-purple-pink
Reserve the remaining turquoise position for a future asterope host, and regenerate the website colorscheme data.
Assisted-by: pi (gpt-5.6-sol)
Keep the appendix heading visible while placing its sustainability fragment table in a details disclosure that is collapsed by default.
Assisted-by: pi (gpt-5.6-sol)
Keep the publications navigation item selected on paper pages and align their DOI links with the publication listing while removing the redundant back link.
Assisted-by: pi (gpt-5.6-sol)
Render publication figures on a stable light surface so their original colors and labels remain legible regardless of the site theme.
Assisted-by: pi (gpt-5.6-sol)
Publish complete Markdown editions of both papers with linked citations, references, tables, original figures, appendices, acknowledgments, and scholarly citation metadata. Include the sustainability fragment table and the updated SESoS ecosystem figure while preserving the PDFs as versions of record.
Assisted-by: pi (gpt-5.6-sol)
Move the RSS link from its brittle absolute position above the blog listing into the global social footer, and remove the obsolete positional selector.
Assisted-by: pi (gpt-5.6-sol)
Increase spark core size, palette contrast, halo, and shimmer range so the ambient layer remains subtle but actually visible.
Assisted-by: pi (gpt-5.6-sol)
Layer sparse palette-tinted sparks behind the site with slow staggered shimmer, no pointer interaction, and explicit reduced-motion and print fallbacks.
Assisted-by: pi (gpt-5.6-sol)
Replace the aliased circular outline with an inset antialiased shadow ring and a faint outer glow for both selection and keyboard focus.
Assisted-by: pi (gpt-5.6-sol)
Use conventional hash markers for heading permalinks, frame the site identity with decorative stars, and render constellation points as luminous star glyphs while preserving their 48px controls and interaction behavior.
Assisted-by: pi (gpt-5.6-sol)
Add accessible self-links to rendered h2-h6 headings without embedding HTML in Markdown. Reveal the star marker on hover or keyboard focus, keep it visible on touch devices, and omit it from print.
Assisted-by: pi (gpt-5.6-sol)
Carry the constellation's glow and motion into links, navigation, and form controls, add palette-lit structural rules, and glint anchored headings on arrival. Respect reduced-motion preferences throughout.
Assisted-by: pi (gpt-5.6-sol)
Mix native light surfaces with each scheme's primary role instead of its near-white primary container, preserving a distinct atmospheric tint across all eight themes.
Assisted-by: pi (gpt-5.6-sol)
Adopt the new top-level colorscheme structure and emit each scheme's native dark and light Material roles directly. Remove the manual light-role remapping and obsolete print scheme, update the legacy colorscheme page, and promote Electra to an interactive constellation theme.
Assisted-by: pi (gpt-5.6-sol)
Align the seven theme stars more closely with the Pleiades reference and add muted, non-interactive Electra and Sterope stars to complete the cluster.
Assisted-by: pi (gpt-5.6-sol)
Give each constellation star dark and light preview roles from its own palette, switching automatically with prefers-color-scheme.
Assisted-by: pi (gpt-5.6-sol)
Mix each selected palette into the light and dark surface hierarchy so theme changes affect the page atmosphere again without altering semantic role mapping.
Assisted-by: pi (gpt-5.6-sol)
Expose each selected scheme as a stable palette, then map that same palette to dark or light semantic roles according to prefers-color-scheme. Preserve constellation selection, persistence, live system changes, and the dedicated print palette without adding a mode switch.
Assisted-by: pi (gpt-5.6-sol)
Remove the explanatory heading and current-theme readout, leaving only a quiet centered invitation beneath the constellation.
Assisted-by: pi (gpt-5.6-sol)
Replace the colorscheme select with a full-width Pleiades constellation whose seven accessible, touch-friendly star buttons preview and apply their matching themes. Keep active state, persistence, keyboard labels, reduced motion, and JavaScript-disabled behavior in sync.
Assisted-by: pi (gpt-5.6-sol)
Keep every page article at the shared content width while constraining only non-listing prose sections to the narrower reading measure.
Assisted-by: pi (gpt-5.6-sol)
Narrow document pages to a comfortable reading measure, tighten the masthead and heading rhythm, reduce display scale, and use regular Fira Sans for friendlier section headings while preserving full-width archive layouts.
Assisted-by: pi (gpt-5.6-sol)
Replace Water.css with a classless technical-editorial design for the about, blog, publications, CV, and post pages. Add responsive document and listing layouts, Fira Sans Condensed display typography, semantic page regions, and a persistent JavaScript-gated colorscheme picker.
Assisted-by: pi (gpt-5.6-sol)
Allow authorization to consume either a raw ID token or the complete Jagex successful-login URL from stdin when no desktop URL handler is available.
Assisted-by: pi (gpt-5.6-sol)
Replace the legacy chained OAuth flow with the official launcher beta's single ID-token exchange and game session API. Register the rshub callback and permit its narrowly scoped qutebrowser handoff.
Assisted-by: pi (gpt-5.6-sol)
MemoryHigh is enforced by reclaim, and reclaiming anonymous pages means
writing them to swap. Holding sabnzbd near 4G resident therefore pushed 5.2G
into the 8G swapfile: the limit did not contain the growth, it converted a
RAM problem into swap exhaustion, which is the failure that actually
threatens the box. Without it sabnzbd grows in RAM, where oomd's pressure
rule can see it stall.
ManagedOOMSwap=kill registers this unit alone as a swap-monitoring
candidate. oomd ranks swap candidates by usage, so scoping it here means the
early trigger at 90% swap can only ever select sabnzbd, while jellyfin's
cold pages stay ineligible. The pressure rule on system.slice remains the
broader net for anything else.
Assisted-by: pi (claude-opus-5)
earlyoom only acts when available memory AND free swap are both under
threshold. During the 2026-08-11 swap exhaustion, swap crossed 5% at 02:14
but RAM did not until 06:10, so it watched the swapfile drain to zero for
four hours. It then sent 88 SIGTERMs without landing a kill: SIGKILL
escalation is gated at half the threshold (2.5%), RAM bottomed at 4.74%,
and sabnzbd's graceful shutdown took 12 minutes under thrash.
systemd-oomd was already running but monitoring zero cgroups, since every
unit defaults to ManagedOOMSwap=auto. It acts on PSI stall time, which does
not distinguish waiting on reclaim from waiting on swap I/O, and it SIGKILLs
the cgroup rather than negotiating. Candidates are ranked by reclaim
activity, so a service holding cold pages in swap is picked last rather
than first.
Set on system.slice directly because systemd.oomd.enableSystemSlice
hardcodes ManagedOOMSwap=kill, which would rank jellyfin's ~1.2G of cold
swap ahead of whatever is actually thrashing.
Assisted-by: pi (claude-opus-5)
earlyoom SIGTERMed sabnzbd at 06:10 after it grew to 4.2G resident plus
5.2G of swap, exhausting the box's 8G swapfile. sabnzbd caught the signal,
saved its queue and exited 0 twelve minutes later, and with Restart=no it
stayed dead for the next three and a half hours.
Restart=on-failure would not have helped: the graceful shutdown path is a
clean exit.
Assisted-by: pi (claude-opus-5)