Commit graph

2101 commits

Author SHA1 Message Date
10b38f5405 Keep Valheim endpoint public on LAN 2026-09-15 15:04:48 +01:00
214845d71e Reflect Pelican game ports for LAN clients 2026-09-15 14:59:40 +01:00
85b1c3ecbf Order network jobs after DNS readiness 2026-09-15 13:55:48 +01:00
23e1fa7a0c Send greeter and desktop startup output to the journal 2026-09-15 09:53:32 +01:00
forgejo-actions[bot]
3a34bc8706 Update flake inputs 2026-09-15 04:00:51 +00:00
0eaf97d134 Make boot greeter frameless and match Gaming display mode 2026-09-14 19:37:31 +01:00
7bc5a4c852 Include Git in the deployment worker runtime 2026-09-14 15:21:14 +01:00
02382f8446 Decommission Homepage dashboard and update history hooks 2026-09-14 15:07:40 +01:00
7145a35927 Harden deployment, authentication, firewall and media storage failure paths 2026-09-14 11:51:04 +01:00
forgejo-actions[bot]
64ede7bd05 Update flake inputs 2026-09-14 04:00:47 +00:00
forgejo-actions[bot]
f10fbfc11b Update flake inputs 2026-09-13 04:00:49 +00:00
6a461267a2 arr-interconnect: record why qBittorrent's localhost auth is off
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 17:34:10 +01:00
4015626030 router: un-isolate the camera
Isolation also cut the vendor cloud tunnel the phone app uses for
viewing from outside the house. The isolated flag stays available.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 17:23:33 +01:00
4ae946d64e mediaserver: add tcpdump and conntrack-tools
Router host had no packet-level diagnostics, so firewall rules
couldn't be verified against actual traffic.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 13:09:51 +01:00
1f472fcafe router: count isolated-device drops so the rule is verifiable
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 12:59:22 +01:00
33db456c4c go2rtc: bind to loopback; isolate the camera from routing
The go2rtc API is unauthenticated and echoes producer URLs, so
GET /api/streams handed out the camera's RTSP password to anything
on the LAN. Bind api/rtsp/webrtc to 127.0.0.1 and add an `isolated`
device flag that drops the camera in the forward chain.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 12:52:27 +01:00
d9b4c34b6b owncast: let Owncast's own auth guard /admin, not nginx's
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 12:19:11 +01:00
5f85d611c9 owncast: relay Twitch/YouTube for synced watch parties
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 12:04:31 +01:00
forgejo-actions[bot]
843d0d12c1 Update flake inputs 2026-09-12 04:00:49 +00:00
285ee1aaaf valheim: wait for an empty server, notify on install and recovery
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 17:24:39 +01:00
8312873c0d valheim: restart only when a new Steam build ships
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 17:07:27 +01:00
forgejo-actions[bot]
667a3debe1 Update flake inputs 2026-09-11 04:00:49 +00:00
d14dccd8b8 zen: correct the color-scheme comment — it's light-dark(), not system colours
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 09:52:44 +01:00
f9d13aa533 zen: declare dark color-scheme so menu text isn't dark-on-dark
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 09:47:23 +01:00
forgejo-actions[bot]
8965511181 Update flake inputs 2026-09-10 04:00:47 +00:00
42b1f16938 flake: export nixosModules.gaming for guests with their own hardware
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 19:10:06 +01:00
forgejo-actions[bot]
7be860ad0c Update flake inputs 2026-09-09 04:00:47 +00:00
1100bd460b quickshell: detect NetworkManager down, add restart button
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 20:00:24 +01:00
220f65064a quickshell: battery + now playing on lock screen
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 17:29:03 +01:00
forgejo-actions[bot]
04311d733b Update flake inputs 2026-09-08 04:00:50 +00:00
forgejo-actions[bot]
f65774f93c Update flake inputs 2026-09-07 04:00:47 +00:00
67942d6570 Revert "gtk: shorten double-click time to 250ms"
This reverts commit e9df1a7118.
2026-09-06 21:57:16 +01:00
e9df1a7118 gtk: shorten double-click time to 250ms 2026-09-06 21:46:38 +01:00
forgejo-actions[bot]
408e19b6f6 Update flake inputs 2026-09-06 04:00:52 +00:00
5195c60fb5 quickshell: suspend in session menu, lock-before-sleep on Gaming
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 11:56:51 +01:00
forgejo-actions[bot]
c9b69bf86f Update flake inputs 2026-09-05 04:00:49 +00:00
forgejo-actions[bot]
aa6fc4f761 Update flake inputs 2026-09-04 04:00:49 +00:00
5398669a4b gaming: add unrar and p7zip
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 12:02:02 +01:00
b85429fb76 nginx: stop stripping cookies on qbittorrent vhost
qBit 5.2 caches uploaded .torrent metadata in the session; without QBT_SID the follow-up torrents/add fails 400.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 10:43:32 +01:00
forgejo-actions[bot]
f6c4a6b663 Update flake inputs 2026-09-03 04:00:49 +00:00
57e27aad52 quickshell: drop server monitor and Archie
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 13:33:36 +01:00
ad1f50814f quickshell: revert today's performance work back to 7f858b2
Restores Archie, the server monitor and the full-width bar surface. None of
today's changes fixed the stutter, and the surface refactor regressed it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:39:25 +01:00
af9ca8f212 quickshell: restore the full-width bar surface
Reverting the diagnostic. The narrow surface is still the right destination
but it needs the frame band drawn without adding a second full-screen
surface, which is what the reverted attempt got wrong.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:34:05 +01:00
9a873dacae Revert "quickshell: bar surface is the bar column, frame moves to its own background layer"
This reverts commit 89eaeca2f9.
2026-09-02 12:33:21 +01:00
89eaeca2f9 quickshell: bar surface is the bar column, frame moves to its own background layer
The bar's PanelWindow was screen-sized because the frame band and every
panel drew into it. Hyprland blurs that namespace, and blur is recomputed
whenever what is behind the surface changes — with a game underneath, that
is every pixel every frame. Measured at 3440x1440 it cost a third of the
card; the diagnostic shrink took game-running GPU 57% -> 38% and made the
stutter unprovokable.

So the surface is now barWidth at rest and grows to the screen only while a
dropdown, the toast or the launcher is up. exclusiveZone is unchanged, so
windows never reflow on resize. chromeSdf's cutout derives from
screen.width rather than the surface width, so the shader is identical at
both sizes and the narrow surface simply clips it.

The frame band moves to its own background-layer surface, below windows and
matched by no blur rule. Its shader hides (rather than the window
unmapping, which would flicker) while the bar is wide, since chromeSdf then
draws the frame itself and melts panels into it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:25:13 +01:00
978a198b43 quickshell: remove Archie; DIAGNOSTIC shrink bar surface to the bar column
Archie goes for good — he'd have had to move to the background layer with
the frame band, and that isn't where he belongs. History has him.

The implicitWidth change is a diagnostic, not a design: it clips the frame,
panels, toast and launcher, which all draw into this one screen-sized
surface. Every cost measured today (blur 84->62, SDF 27->17) scales with
that area, so this tests whether shrinking it is worth a real refactor
before committing hours to one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:16:43 +01:00
2450814b36 quickshell: drop the server monitor; restore Archie
The SSH qs-stats stream and the router ping both tick every 2s, and each
tick rewrote six Text items in the bar. That surface is the whole screen,
so every tick repainted 3440x1440, reran the SDF shader and made Hyprland
recompute the blur behind it — one late frame, twice a second. Suppressing
both processes was the only change all day that held the frametime graph
flat under deliberate provocation.

Archie was measured innocent and comes back. The OSD anchored its y to the
glance widget, so it now derives from barBottom instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 11:53:22 +01:00
8b3b7c1117 quickshell: DIAGNOSTIC disable Archie to measure his repaint cost
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 11:07:50 +01:00
forgejo-actions[bot]
28d87d135e Update flake inputs 2026-09-02 04:00:47 +00:00
f49127eab1 Upload files to "walls" 2026-09-01 15:13:37 -07:00