Commit graph

672 commits

Author SHA1 Message Date
0a6a23aa8a quickshell: bury melt joints by a full corner radius
Panels buried only 8px into the bar while their corner radius was 24,
so 16px of rounded corner stuck out past the joint: the outline pinched
where the corner turned, then the fillet bulged back out. That is the
balloon at the connection point.

meltInto now tracks Theme.radius, so the whole corner ends up inside
the band it merges with and only straight edges reach the junction —
which is what smin is meant to fillet. Applies to the panel, toast and
launcher. meltK follows radius / 2 so the fillet scales with the one
rounding knob instead of drifting out of step.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 14:05:39 +01:00
b2e4e9863b ui: single rounding knob, fix balloon-shaped cards
New settings/ui.nix holds `radius` as the one source of truth. Theme
derives radiusCard/Small/Tiny from it and hyprland's decoration.rounding
reads the same value, so one number rescales the whole desktop —
previously the shell and the window corners were unrelated constants,
which is why doubling Theme.radius left windows at 8.

Cards were using the SAME radius as the panel containing them. Nested
corners need outer − gap; matching them makes the inner corner
over-round for its size, which is the inflated/balloon look. All nine
inner surfaces now use radiusCard (radius − panelGap). Invisible at
r=8, obvious at r=32.

Radius 32 -> 24.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:58:28 +01:00
a36a3f35b7 quickshell: 2x rounding again, card padding, session menu as a dropdown
Radii doubled a second time (32/24/16).

Dropdown panels were +16 on the cross axis while the shader insets 8
top and bottom, leaving the panel edge flush with the content (0
padding) against a 4px overhang on the growth axis. Now +24 with the
content offset 12, giving 4px above and below to match the right.

Session menu becomes a real BarDropdown instead of its own surface:
it shares the morphing chrome with the other bar menus, so switching
between it and e.g. volume glides rather than cross-fading. Drops its
dedicated SDF surface, shader uniform and mask region, and the power
button gains the same hover-to-switch the other widgets have. Moved
beside volDropdown so it sits after the component declaration.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:50:27 +01:00
8c549e1422 quickshell: melt edge-adjacent panels into the frame, centre night icon
Panels near a frame band left a visible seam instead of merging. The
clamp now targets the frame's inner edge and the shader extends any
surface within snapDist 4px INTO the band, so the SDF fuses them into
one swollen shape — the launcher's launchBot trick, generalised to
dropdowns, the session menu and the toast.

Reverts the panelGap inset from the previous commit, which pushed in
the wrong direction.

qsIcon used anchors.verticalCenter and was centred only because the
cell was qsIcon.width; at barWidth it sat at x=0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:38:38 +01:00
2cf3004fc4 quickshell: fix bottom cluster pile-up, vertical workspace slide
trayArea kept anchors.verticalCenter from when it was a Row inside a
Row. A Column refuses to position ANY child when one sets a vertical
anchor ("Column will not function"), so volume/network/night-mode/
tray/power all fell to y=0 and stacked unclickably in the corner.

Workspace switch animation gets style = "slidevert" so it slides up/
down to match the vertical workspace column.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:31:12 +01:00
4717d1e08f quickshell: inset clamped panels from the frame, widen bottom cluster
A dropdown that hits the clamp landed exactly on frameWidth, fusing
into the frame band in the SDF and losing its rounded corner — that
is what the calendar was doing at the top. Clamp now insets by
panelGap at both ends.

Bottom cluster spacing 12 -> 16, separators 5 -> 10.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:22:51 +01:00
fdd44e64b2 quickshell: anchor calendar to the clock, space out the bottom cluster
Calendar was left on dropdownY: bar.height / 2 from the rotation, so
it opened at screen centre instead of next to the clock it comes from.
It now maps the clock's position like every other dropdown.

Bottom cluster reads as one clump: bumped its spacing to 12 to match
the top and split status icons / tray / power with separators.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:15:06 +01:00
33b729c560 quickshell: vertical left bar, 2x rounding, left-aligned surfaces
Bar moves from a horizontal top band to a vertical left column
(Theme.barHeight -> barWidth, 46px for the stacked HH/mm clock).
Every panel now grows rightward out of the bar instead of down:
the dropdown chrome's morph axis, the SDF surface geometry and the
session menu all swap x/y. The launcher is the one surface left at
bottom-centre, as asked.

New: NixOS snowflake at the top (recoloured to the accent with the
tray's hidden-Image + ColorOverlay trick), vertical workspace dots
whose focused pill grows on height, an inline OSD slot in the gap
between the two clusters, and a power button in the bottom-left
that opens the session menu.

Dropped the flush-to-far-edge dropdown special case — clamped
tracking plus the SDF melt already covers it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 13:09:49 +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
71c9bfac77 users: add work laptop ssh key
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 08:44:42 +01:00
c422f180b5 users: restore phone ssh key (survived device transfer)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 08:41:54 +01:00
2c2f1c962c users: drop old phone + work PC ssh keys (rotating)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 08:37:25 +01:00
34234ab9e9 quickshell: cache:false on wallpaper images (stale after soft reload)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 12:59:22 +01:00
e49d69c9c3 hyprland: layout toggle super+space (alt_shift collided with swapped super)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 20:31:51 +01:00
be005b7d14 hyprland: complete gnome-keyring init at session start
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 13:16:36 +01:00
acb090fbf5 hyprland: revert macbook blur disable (didn't help latency) 2026-07-25 08:45:11 +01:00
6afd762abf hyprland: disable blur on macbook (haswell igpu frame budget) 2026-07-24 16:19:50 +01:00
e4f2a3008a hyprland: force hardware cursors (fix laggy cursor on macbook i915) 2026-07-24 16:00:32 +01:00
400716c8e8 hyprland: gate alt/super swap to gaming pc 2026-07-24 12:40:56 +01:00
ab2d22063e hyprland: swap left alt and left super 2026-07-24 11:52:53 +01:00
6444a2db97 hyprland: generic steam_app_ tile rule, drop per-game rules 2026-07-21 20:19:46 +01:00
5b0b5b246b hyprland: fix 3-finger swipe, old workspace_swipe keys gone in 0.55, use hl.gesture 2026-07-21 12:35:06 +01:00
94f5e3c64f hyprland: enable 3-finger touchpad workspace swipe 2026-07-21 12:28:09 +01:00
629fd708d7 hyprland: auto-allow screenshare restore tokens
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 12:16:32 +01:00
ef621295d7 desktop: silence start-hyprland VT output to keep retained splash
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:19:33 +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
8efcc4d30c desktop: replace ly with greetd autologin + boot-locked quickshell
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:03:26 +01:00
1158a36d1a quickshell: uniform panelGap token + card-style notifications/toast
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 14:05:05 +01:00
0342cbe59a quickshell: quick-settings — night light with sunset auto, brightness + kbd backlight sliders
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 13:26:08 +01:00
05c09cfad2 hyprland: add hyprsunset night light
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 13:13:02 +01:00
104b9fed3f hyprland: lower scroll_event_delay for rapid workspace scroll
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 13:06:23 +01:00
1a1374a99e hyprland: super+scroll switches workspace
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 12:45:55 +01:00
9239f60549 lockscreen: fix PAM never instantiating (moved out of WlSessionLock)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 12:09:52 +01:00
57d4ea4e0f lockscreen: fix enter key, add confirm button
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:20:23 +01:00
bedb11930f lockscreen: replace hyprlock with quickshell WlSessionLock
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:04:27 +01:00
eb80358748 desktop: drop hyprpaper + speechd, quickshell draws wallpaper
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 10:13:26 +01:00
bfe03e4a19 hyprland: keep WoW tiled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 22:06:25 +01:00
0d1483d02c desktop: silence boot messages for plymouth
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:58:39 +01:00
877e3b6122 desktop: gnome-keyring + PAM unlock via ly
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 10:55:27 +01:00
7cdc627364 hyprland: add hyprpicker + Super+A color picker bind
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 20:56:59 +01:00
c7b3f8a306 hypridle: don't lock/dpms/suspend while MPRIS media is playing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:09:13 +01:00
ee630bac30 hyprland: idle_inhibit fullscreen — no lock during fullscreen apps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:02:49 +01:00
85c230457b hyprland: suppress battle.net activation events that close the launcher
Battle.net (non-Steam shortcut, class steam_app_0) spams window-activation
events that clear quickshell's HyprlandFocusGrab, instantly closing the
launcher / power menu. suppress_event activate activatefocus drops them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 19:24:21 +01:00
23a5ad2914 quickshell: trim hyprshot body, add image preview to toast (shared helper)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:39:11 +01:00
7cd7a0e3dc screenshots: save file for notification previews, fall back to appIcon path
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:20:53 +01:00
f0193eedd3 quickshell: round album art, full-width notifications with app icon + image preview
- album art uses ClippingRectangle so the image follows the radius
- NotifContent gains an app icon + name header
- notifications move to a full-width card spanning both panes, each item
  showing the notification image preview when present

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:56:49 +01:00
c901b9b56d quickshell: media card — title/artist right of art, controls+volume below
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:48:31 +01:00
af35c81514 quickshell: bump media album art to 128x128
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:47:02 +01:00
150f362998 quickshell: restack media card — art+controls row, then title/artist/volume
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:43:09 +01:00
a772034220 quickshell: drop session menu auto-close timer too
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:25:54 +01:00