Commit graph

714 commits

Author SHA1 Message Date
27414dafbc quickshell: pick the accent from the palette, don't trust base0D
Every icon in the bar was already bound to a Theme colour — the problem
was which one. base0D is the accent for 33 sites and every status colour
harmonises toward it, but the generator fills each slot independently:
on wallhaven-5y39p9 all six accent slots come back orange (H=0.08)
except base0D, which comes back blue-grey. Hence a blue NixOS logo and
a blue workspace pill in an amber bar.

Accent now auditions all six slots and takes the one nearest S=0.60.
Nearest, not max: max picks the neon fe5162 on wallhaven-k8dqr6, close
enough to err that errors stop reading as errors. Only 5y39p9 and
k8dqr6 change; the other four keep the colour they already had.

Renamed base0D -> accent since it no longer names the slot it comes from.
2026-08-30 14:57:37 +01:00
559ccc55db quickshell: sliders icon for quick settings, not a cog 2026-08-30 14:46:12 +01:00
7caf7f2541 quickshell: bury a full joint's depth, toast keeps one width
Toast is back to a fixed 320 — it is the same card wherever it appears
and should not restyle itself around whatever menu is open.

The residual indent was never the width step: two rounded boxes stacked
on one edge each contribute a corner that curves away over exactly one
radius, so the outline pinches and bulges at the joint. The curves only
cancel at 2*radius of overlap, where the corner circles coincide.

Burying that deep would drive the cards together, so a fused panel grows
by what it buries. Content is pinned 12px from the panel top, not
centred, so the extra height lands entirely below the cards and the
clearance stays 12px. Geometry now derives from baseH, keeping height
(which depends on fused) out of the position that decides it.
2026-08-30 14:42:46 +01:00
9eb728ca10 quickshell: match toast width to the panel it fuses with
The warp was a width step. Panel and toast are both left-anchored to the
bar, so different widths put a step on the shared right edge, and smin
fillets a step into an S-curve waist.

Toast now takes the open dropdown's drawn width, keyed off its declared
fullWidth so nothing closes a loop through the toast's own height. Below
a 200px floor there is no width worth matching (the power menu is a 64px
icon strip), so those stand off with a gap as before.
2026-08-30 14:29:02 +01:00
e45c9644a1 quickshell: merge menu and toast into one surface, drop the double ease
The bump was two animations stacked: _dropdownRect is positioned off
chrome.y, so chrome already eased the panel to wherever y resolved, and
the Behavior added last commit put an OutExpo behind an OutExpo.

Panels now land ON the toast rather than a panelGap short of it, buried
half a radius so the shader smins them into one outline with a shared
waist. Cards inside still clear each other by ~14px.
2026-08-30 13:56:28 +01:00
6d58055723 quickshell: menus yield to the toast, not the other way round
The toast dodging open dropdowns meant it drifted around the column
depending on which menu was open. Invert it: the toast keeps its band
and melts into the frame as before, and a dropdown treats a live toast
as a shortened screen — its clamp ends short of the toast, so a menu
that would collide opens higher instead.

Snapping still tests against the frame, so a panel stopping above a
toast floats clear of it rather than fusing to its edge.
2026-08-30 13:50:15 +01:00
ddcc5c63be quickshell: snap dropdowns to frame by proximity, toast dodges open menus
alignTop/alignBottom were per-dropdown flags, so the battery menu pinned
to the bottom wherever its icon sat. Both replaced by a distance test
against Theme.snapDist, which the SDF already used to decide melting —
panels now fuse with a band only when they actually reach it, and a menu
that gains or loses a card re-decides on its own.

Toast steps clear of an open dropdown instead of drawing over it, and
stops melting into the frame band once it has.
2026-08-30 13:41:39 +01:00
ba4c32d852 quickshell: shared controls under one cog dropdown
Screen recorder was desktop-only, caffeine laptop-only, nightlight in
both places. Cog dropdown now holds recorder + nightlight on every host;
battery dropdown keeps the laptop-only power profile and brightness.
Caffeine stays gated: hypridle is mkIf isMacbook.
2026-08-30 13:20:49 +01:00
02efc0a46d quickshell: give slurp a tty-less stdin it can EOF
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 11:29:30 +01:00
700c85e39a quickshell: pin the focus grab around the recorder's slurp pick
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 10:27:15 +01:00
0d0009ca8e quickshell: run slurp from the recorder card, not inside the script
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 10:19:12 +01:00
11a856800a quickshell: screen recorder card in quick settings
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 22:52:55 +01:00
25319ea033 hyprland: keep Dungeon Runners tiled, suppress its fullscreen requests
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 11:30:16 +01:00
36b66e8654 cliamp: terminal winamp on desktops 2026-08-23 20:27:41 +01:00
ca63bc9544 quickshell: drop redundant keyring unlock, pam already does it in auth
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 19:55:10 +01:00
888eedad39 spotify: start after keyring unlock, not at hyprland startup
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 19:37:40 +01:00
e9ab223891 hypridle: one daemon, not two; battery dropdown pins to bottom
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 10:54:00 +01:00
1979a4957f quickshell: caffeine toggle in battery dropdown
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 10:07:54 +01:00
b851f73090 quickshell: second-precision clock so bar isn't stale after resume 2026-08-23 09:56:40 +01:00
618e0e0d26 quickshell: keyring unlock needs --replace, bare --unlock is a no-op
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 19:12:44 +01:00
bdefae41bc quickshell: unlock login keyring on lockscreen unlock
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 10:21:12 +01:00
6bf3c3909e screenshots: clipboard-only, camera glyph instead of thumbnail 2026-08-21 17:13:12 +01:00
c3e8691c2c quickshell: index all YAMIS dirs, not just apps, for icon tinting
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 16:59:21 +01:00
7c89ab366d quickshell: match mono icons by name, iconPath returns a URI
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 16:47:36 +01:00
d6dd93ea5a quickshell: match mono icons by theme dir name, not store path
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 16:38:04 +01:00
695e51beef quickshell: force Papirus-Fred icon theme, qt5ct bypasses gsettings
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 16:35:05 +01:00
a88ef1e8b2 Merge remote-tracking branch 'origin/main' 2026-08-21 14:44:16 +01:00
1bea54f30c quickshell: tint YAMIS app icons to the wallpaper palette
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EHJfY5Q72punsWX38nY1w
2026-08-21 14:40:02 +01:00
cb7b576a71 theming: YAMIS app icons under Papirus-Fred
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EHJfY5Q72punsWX38nY1w
2026-08-21 14:25:34 +01:00
ab58af9a59 quickshell: pin wallpaper picker to top of screen
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015ARgsKhPrSr4QuNyHvYqyL
2026-08-21 12:52:09 +01:00
2d2dc4a8e4 lock-before-sleep: --any-display, unit env has no WAYLAND_DISPLAY
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0169F2pgebpibASvMLou1awP
2026-08-21 12:03:51 +01:00
466e4bcd74 lock-before-sleep: export HOME, qs needs it to find the config
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0169F2pgebpibASvMLou1awP
2026-08-21 11:59:53 +01:00
35f3828715 quickshell: decode notification previews at thumbnail size
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 09:40:11 +01:00
d82e4cd4bd shell: gpumean should not report renderD nodes as separate GPUs 2026-08-20 20:11:41 +01:00
fffd6bf5b8 shell: gpumean must follow symlinks to find cards 2026-08-20 20:07:09 +01:00
a799be3ae2 screenshots: save to ~/Pictures/Screenshots, update wipes it 2026-08-20 19:42:06 +01:00
3651c7ee2c theming: stop the server repainting SSH clients' terminal palette
base16-fish and stylix's btop theme were only disabled on desktops, so a
login shell on Mediaserver printf'd OSC 4/10/11 back down the SSH pipe and
overwrote the client's wallpaper palette. Off everywhere, server TUIs draw
in the client's 16 ANSI colours instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 17:52:54 +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
e5166187e2 hyprland: don't auto-switch monitor to HDR for fullscreen video 2026-08-20 13:59:17 +01:00
a6b4646f9e theming: write vesktop quickCss in place, live re-theme without Ctrl+R
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 09:37:21 +01:00
955144532e hyprland: terminal scratchpad at 50% 2026-08-19 21:52:00 +01:00
679284ba64 hyprland: size scratchpads with monitor_w/h expressions, percent isn't parsed 2026-08-19 21:42:42 +01:00
5c1e96c6b8 hyprland: Super+E opens yazi via ghostty +new-window, 1.36s -> 39ms 2026-08-19 21:09:42 +01:00
c58c55e627 hyprland: back to ghostty -e yazi, +new-window corrupts the forwarded command 2026-08-19 20:40:52 +01:00
856f6822c6 hyprland: Super+E uses ghostty +new-window so yazi reuses the running instance 2026-08-19 20:36:31 +01:00
c67c3230a8 Revert "hyprland: park yazi on a special workspace so Super+E toggles instead of spawning ghostty"
This reverts commit 6302cc1406.
2026-08-19 20:33:28 +01:00
6302cc1406 hyprland: park yazi on a special workspace so Super+E toggles instead of spawning ghostty 2026-08-19 20:30:38 +01:00
4e3d96256a hyprland: put the terminal scratchpad back at 80% 2026-08-19 19:58:20 +01:00
90db91f178 mc, yazi: two mouse-driven TUI file managers, themed by the terminal
Neither gets per-wallpaper files. Both draw with the 16 ANSI colours, so
they follow ghostty's palette the moment theme-apply reloads it — no
restart and none of the reflow a GTK theme switch causes.

mc uses a -defbg skin (paints on the terminal's own background); yazi gets
an ANSI-named theme and stylix's hex-writing yazi target is disabled.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 19:48:09 +01:00
d83b830c1c hyprland: shrink the terminal scratchpad to 60% 2026-08-19 19:24:23 +01:00