<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/waybar/executable_arch-audit-status.sh, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_arch-audit-status.sh?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_arch-audit-status.sh?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-13T12:43:35Z</updated>
<entry>
<title>feat(arch-audit): daily CVE refresh + waybar reminder</title>
<updated>2026-05-13T12:43:35Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:35Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=bd50d1c05aceb1eecffcb479ab2bf8baa56fe078'/>
<id>urn:sha1:bd50d1c05aceb1eecffcb479ab2bf8baa56fe078</id>
<content type='text'>
Wiring:
  arch-audit.timer (daily, RandomizedDelaySec=1h, Persistent=true)
   → arch-audit.service (After=network-online.target)
       → /run/arch-audit.txt   ('--upgradable' output, atomic via .tmp+mv)
        → custom/arch-audit waybar module (interval 300s)
           → mako 'critical' once/24h while count &gt; 0
           → on-click: `ghostty -e nvim -R /run/arch-audit.txt`

The bar entry stays hidden when there are no fixable CVEs, fades in as
red 'CVE N' the moment arch-audit finds at least one, and the throttled
mako means you'll see exactly one notification per day instead of one
per waybar poll. No -Sy refresh and no auto-update — this only reports
the gap between what's installed and what's already in the repos.

Why /run and not the user's runtime dir: the producer is a system unit
(needs the system's pacman db on the network-online path), the consumer
is a user-scope waybar that just reads it; /run is the canonical 'fast,
volatile, world-readable' system-tmpfs and survives the reboot cycle in
exactly the way we want — fresh empty file on every boot, repopulated
on the next timer fire.
</content>
</entry>
</feed>
