Commit graph

349 commits

Author SHA1 Message Date
f55f97481c macbook: terminus 6x12 console font for browsh
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 17:27:58 +01:00
afab4a1cab macbook: drop helium, add browsh
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 16:52:47 +01:00
9447413fa1 quickshell: open wallpaper dropdown on hover-switch like other menus
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 17:50:59 +01:00
d8029c5657 macbook: raise mbpfan thresholds so the fan stays quiet at idle
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:53:20 +01:00
744a2c2ed4 kayla: seed chrome's GTK theme via initial_preferences next to the binary 2026-08-10 10:18:10 +01:00
9f4650b798 kayla: force chrome onto the GTK backend via --ui-toolkit 2026-08-10 10:10:48 +01:00
dfc6855a55 kayla: GTK theme for chrome via dconf + initial_preferences; add kaylavm alias 2026-08-10 09:51:24 +01:00
ea08e8fd30 kayla: hide fred from the SDDM greeter 2026-08-10 09:44:17 +01:00
2631dc907e kayla: drop Discover for Bazaar+flatpak, pin Breeze Dark palette, unmanage Chrome 2026-08-10 09:39:53 +01:00
55ca901e14 kayla: add kayla-vm variant for trying the Plasma session in a window 2026-08-10 09:26:14 +01:00
d336d31824 kayla: let her set her own wallpaper, enable openssh for remote rebuilds 2026-08-10 08:52:28 +01:00
0e1c540cca hosts: add FredOS-Kayla — plain KDE Plasma desktop for kayla 2026-08-10 08:44:52 +01:00
789c5115b4 macbook: mbpfan back with early ramp; SMC idles fan at 79C
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 09:18:06 +01:00
c385cd3713 macbook: drop nom, store auto-optimise, halve substitution jobs
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 09:08:00 +01:00
2c65cf1138 macbook: drop mascots and mbpfan; SMC already ramps
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 14:36:46 +01:00
8067676713 macbook: fan control, thermald, earlyoom; cheaper compositor
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 14:20:57 +01:00
e5fd60a5ae gaming: watchdog + sysrq so a GPU hang reboots itself 2026-08-06 21:07:49 +01:00
bc10b078c6 mediaserver-vm: offset forwarded host ports to avoid live services
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 14:08:54 +01:00
0235bc9875 flake: add mediaserver-vm host for testing services from scratch
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 14:07:34 +01:00
748a345ea9 qs-ask: log outcomes to journal; launcher: spinner while Claude answers
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 11:27:08 +01:00
ba9558ba30 qs-ask: answer bare keyword queries instead of replying UNKNOWN
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 10:46:55 +01:00
992cf8cb2e Add protonplus 2026-08-01 22:29:01 +01:00
946c631f2a hosts: drop duplicate adwaita-icon-theme (desktop.nix already installs it)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 22:25:01 +01:00
a927cf6ba9 qs-ask: name the session to drop a redundant API call
Profiled the second model call visible in modelUsage: it is
`source=generate_session_title`, inventing a title for a session that
--no-session-persistence immediately discards. It costs no wall time —
both requests dispatch ~1ms apart and run concurrently, which is why
duration_api_ms was roughly double duration_ms — but it spent 507 input
tokens against 153 for the actual question.

--name qs-ask removes it: one request instead of two, 660 input tokens
down to 153 per question. No latency change, 77% less input token spend,
which is what actually matters when the budget is a subscription rate
limit rather than a bill.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 17:56:36 +01:00
aee59ff0b2 qs-ask: disable thinking — 2.4x faster, same answers
Profiled where the ~6s actually went, and it was not where I assumed.
Haiku defaults to extended thinking, so it spent 225 output tokens and
1.9s deliberating before emitting an 80-character answer about the height
of a tower. MAX_THINKING_TOKENS=0: 43 output tokens, time-to-first-text
2657ms -> 1122ms, wall clock 5.7s -> ~2.4s, answer unchanged.

Two things measured NOT to be the bottleneck, recorded in the comment so
nobody optimises them later: process startup (0.12s boot plus 28ms to
fire the request, so a warm/persistent process saves nothing) and prompt
size (184 input tokens, no bloat to trim).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 17:49:44 +01:00
309c54d31b qs-ask: answer via Claude Code on the subscription, not an API key
No API key and no separate billing: qs-ask now shells out to `claude -p`,
which draws on the existing subscription already authenticated on this
host. The trade is latency — Claude Code boots a Node process per
question, ~6s measured against the raw API's ~1s — so the launcher now
races Wikipedia and Claude instead of chaining them. Wikipedia fills the
card in under a second and Claude supersedes it on arrival; chaining
would have left the card blank for six seconds on every question.

Isolation, verified: --safe-mode drops CLAUDE.md, skills, hooks, plugins
and MCP while leaving auth working, which matters for correctness and not
just speed — the global CLAUDE.md here asks for caveman-mode replies and
that would have leaked into answers. --no-session-persistence writes no
transcript, and a dedicated empty cwd keeps launcher questions out of any
project's history or auto-memory. Confirmed no project namespace, no
transcript and no memory write after a run.

Not --bare, which looks right and is a trap: its auth is strictly
ANTHROPIC_API_KEY, so it cannot use the subscription at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 17:34:50 +01:00
dbed82bab4 qs-ask: report why it went quiet on stderr
Silence on stdout is the launcher's fall-back-to-Wikipedia signal, so it
has to stay clean — but that made a misconfigured key indistinguishable
from a working fallback. Every reason now prints on stderr, which the
launcher discards and a human running qs-ask by hand can read.

Drops curl -f so a 4xx body's own error message ("API key is invalid.")
surfaces instead of just an exit code, and guards the specific mistake of
pasting the sk-ant-... placeholder literally.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 17:21:05 +01:00
958dc9b333 quickshell: Claude-backed launcher answers via the mediaserver
Adds qs-ask on the mediaserver — the Anthropic key lives there and nowhere
else, so neither desktop holds a credential and there's one place to
rotate it. The launcher pipes the question over the same SSH path the
server monitor already uses; the query goes over stdin because
`ssh host cmd arg` would re-parse arg through the remote shell.

Claude answers first, Wikipedia is the fallback. The script is the
feature gate: with no key it exits silently, which is the same signal as
a failed call or an UNKNOWN reply, so the Wikipedia path stays the
default with zero configuration. The card names whichever answered.

Haiku 4.5, no thinking and no effort (effort errors on Haiku) — a
one-sentence fact needs no reasoning tokens. ~$0.0005 per query.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 17:14:04 +01:00
e68d2d6464 macbook: cap nix download concurrency to stop wl wifi drops 2026-07-29 17:24:25 +01:00
7ea6442a00 gaming: clamp DP-3 gamut to DCI-P3 in compositor
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:20:02 +01:00
a7976205a8 qs-stats: single writer, fix @STAT pipe race
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 20:47:39 +01:00
fb0a724d7e gaming: drop dead garnix cache
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 20:38:46 +01:00
72864463d0 server monitor: qs-stats stream adds cpu temp + wan throughput
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 20:32:43 +01:00
ee86678cb5 gaming: drop arctis-sound-manager, ANC via direct HID script
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 19:35:25 +01:00
027858ff1e gaming: arctis-sound-manager + quickshell ANC switcher
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 19:21:37 +01:00
efd1331823 quickshell: native volume/brightness OSD, drop swayosd + wob
Sixth surface in the SDF chrome shader, melting out of the bottom
frame. Volume is reactive via Pipewire so the OSD also fires for
pavucontrol/mixer changes; brightness routes through a new osd IPC
handler since sysfs backlight only notifies via POLLPRI.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 12:35:44 +01:00
6ef527d03f Add cmatrix 2026-07-28 11:57:01 +01:00
b8113d8183 macbook: pin aquamarine 0.11.0 src under cursor patch 2026-07-26 13:19:41 +01:00
93ec50fe9d macbook: aquamarine immediate legacy cursor moves (patch file) 2026-07-25 09:10:36 +01:00
41cbc1dd6f macbook: patch aquamarine legacy-iface cursor null bug 2026-07-25 08:54:10 +01:00
2244f339c9 macbook: legacy DRM iface for immediate cursor updates 2026-07-25 08:45:11 +01:00
a731bb1732 macbook: pin i965 VA-API driver, drop unusable iHD 2026-07-24 15:52:54 +01:00
ec26df5b80 macbook: add intel VA-API drivers for hw video decode 2026-07-24 15:44:14 +01:00
2aa8e253de macbook: add faugus-launcher 2026-07-22 17:18:15 +01:00
a07759a40d macbook: drop DWT daemon, native libinput DWT works
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:27:56 +01:00
4f99ea2019 macbook: fix native DWT via hwdb touchpad integration override
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:18:56 +01:00
f1212e72c8 macbook: swap fn/left-ctrl via hid_apple
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 11:57:44 +01:00
c1387d4400 macbook: drop unused X11 TearFree option
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:32:17 +01:00
0ea1abd7aa desktop: smooth plymouth handoff + start-hyprland, macbook early KMS
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:13:51 +01:00
a283ab23de ghostty: share warm-instance daemon across desktops
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 14:01:17 +01:00