The Super+S scratchpad gets a ring after the workspace pips while it
holds windows, filled while it is open; clicking it toggles it.
Switching keyboard layout flashes the OSD with the short name (US,
Dvorak) and the full keymap underneath.
Each monitor is a row of workspace cards at its own aspect ratio, with
live captures of the windows where they sit, including windows on
hidden workspaces. Alt+Tab opens it with the previous window picked,
further Tabs walk the focus history, and releasing Alt switches.
Super+W opens it without the hold. Hover, click, Enter and the
workspace digits work too.
Group cycling moves from Alt+Tab to Super+Tab and Super+Shift+Tab.
A new GlowText component lights a line from inside: a soft two-layer
halo that breathes slowly, and every 4-14 seconds a short, uneven
stutter like a tube catching. Only opacity and the halo move, so the
glyphs stay on the pixel grid. The lock screen and the power menu use
it; the power menu's stops while it is closed.
- Idle is handled in the shell instead of hypridle: the screen dims
slowly at 4 minutes, locks at 5, powers down at 6, and suspends at 15
on battery. Idle inhibitors hold every stage off; Super+Shift+I does
the same by hand and puts a cup on the rail.
- The shell draws the wallpaper (backdrop/), so hyprpaper is gone. The
picture is drawn a little larger than the screen and drifts with the
workspace a beat after the windows, and dims a shade while windows are
open. The path lives in quickshell/wallpaper.
- The lock screen and power menu say "Take your time." instead of the
NieR slogan.
- hyprpaper is no longer launched twice, the media module keeps the
player that played last instead of an empty browser tab, and grouped
windows show thin untitled tabs with their place in the group (2/3)
in the bar title.
- qt6ct uses Darkly; the package list gains adw-gtk-theme and darkly-bin.
None of these are referenced any more: the shell replaced waybar and
hyprlock, and btop, zathura and the rest now use the YoRHa themes. The
hyprpaper unit is disabled because the shell draws the wallpaper.
Native-rendered glyphs are rasterised at rest size, so anything moved
with `scale` stretched a bitmap and came out blurred and stepped.
- Icons render as curves, so their pulse and bump stay smooth.
- The lock face is laid out at uiScale instead of being drawn at
1080p size and scaled by up to 1.3, and it sits on whole pixels. Its
native labels now land on the pixel grid.
- The OSD rises into place instead of scaling in.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A local zathura/yorha replaces the catppuccin include. Pages are
recoloured onto the hull with bone text while images keep their
colours, the index and completion select with the light slab, and
search hits use a bone wash with the current hit in sand.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GTK moves from Catppuccin Mocha to adw-gtk3-dark, recoloured through the
libadwaita named colours in gtk-3.0/gtk.css and as CSS variables in
gtk-4.0/gtk.css, so Nautilus and other libadwaita apps follow too. The
gtk-4.0 symlinks into the Catppuccin theme are gone, since libadwaita
would load its gtk-dark.css over the overrides.
Qt gets qt6ct/colors/yorha.conf: the same palette in QPalette roles,
with the light slab as the highlight and ink as its text.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The hull moves to the top layer, with its transparent opening and empty input
region, so windows sliding out of the opening during a workspace switch pass
behind the frame like things behind a porthole rim rather than drawing over
the bar. A layer rule keeps the bar and the rail above it on that layer.
The animation tree is redone around that: workspaces drift 18% vertically
and fade on a slow, jolt-free "drift" curve; the SUPER+S scratchpad slides in
whole from under the bar, the same gesture as the dashboard and popouts;
windows and layers keep their calm resolve and fade.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lock screen and the power menu lose the last Persona motion: no split
display type, no grid sweeping in behind a dark column, no tilted slabs, no
skewed password blocks or hard shake. Both are now one small group of type in
the dark — the porthole mark, a line of light display type, a status line, and
either a rounded password field that fills with dots or a NieR menu whose
selected row is a pill of light (rust for the session-ending three). The lock
keeps the wallpaper almost whole; a wrong password nudges the field once and
turns it to rust. P5Backdrop and the grid texture had no users left and go.
Neovim moves to a local yorha colorscheme (nvim submodule) and btop gets a
yorha theme with hairline boxes and grey-to-light gradients.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The square markers, block meters and hard-cornered fills read as boxy
next to the porthole. The desktop is now soft throughout: the porthole
is the shape everything is built around and every smaller surface echoes
it.
- Theme gains radiusS / radiusM / radiusL. radiusL is frameRadius - padS,
so anything inset padS inside one of the frame's curves is concentric
with it.
- P5Panel and Skew draw rounded rectangles (Geom.roundedRect) whenever
they neither lean nor are chopped, which is always now; the polygon
path is kept for shapes brought back on purpose.
- Markers are dots; workspace pips, toggles, transport and media chips,
notification actions and today's date are pills or discs; the slider
handle is round. Meters are one continuous rounded line that glides to
its level instead of a row of segments.
- Album art is rounded with ClippingRectangle in the bar, the media
popout and the dashboard.
- Free-standing panels (launcher, ask) drop the corner brackets and take
the frame radius.
- Fix: a hovered notification's wash was a full-bleed square, so in the
drawer's bottom corner it ran past the drawer's curve. It is inset by
padS/2 and rounded by radiusL, which keeps it inside the curve.
Hyprland: the discord special workspace and its window rule are gone,
SUPER+S stays the only scratchpad, and SUPER+D now opens the dashboard
(it was on SUPER+I).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Notifications were still Persona: separate floating cards with an urgency
slash down the leading edge, action chips that filled with the accent on
hover, and a 60px shove in from the right.
NotifCard is now laid out like an entry in NieR's message log: a square
urgency marker and the sender's name running into a hairline, the summary
and body set in from the marker, and hairline action buttons with their
own small marker that lift on hover instead of inverting. It draws no
panel; rest is bare and hover lifts the row onto the surface tone.
Critical entries take the red into the marker and the sender line only.
The toast stack is one hull drawer docked into the opening's top-right
corner — off the bar through one fillet, onto the rail through the other,
the same construction as a corner-docked popout. It grows with its
entries and slides back behind the frame when the last one goes. Each
entry's countdown is a hairline along its foot, and new entries fade in
place. The history popout lists the same entries flush.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hyprland:
- Windows round at 8px, concentric with the porthole's 18px corners at
the 10px gap, instead of square corners inside a rounded opening.
- Group tabs are solid hull slabs; the titles used to float over the
wallpaper. The current tab is lifted a step with its title in the light.
- Motion rewritten to glide and settle: no overshoot curve, gentler
popin, workspaces slide-fade a short way instead of sweeping the whole
screen, and layers only fade so they never stack on quickshell's own
slides.
Quickshell:
- Album art in the bar and the media popout is square in a hairline frame,
not masked to a leaning chamfered shape; the accent slab under the
popout art is gone, and a track change dips the title instead of
tilting the art.
- The bar's equaliser is a five-hairline signal meter that rests as dots.
- Segment meters (system, battery, OSD) are 4px rows instead of 10-12px
blocks; the toast fuse is a hairline; the clock's accent slab is a
neutral divider.
- No hover pops: rail icons, tray icons, media transport buttons and
P5Button no longer scale up or lunge sideways; the icon bump is reduced.
Terminal: ANSI bright black drops to #464d44. TUIs use it as a panel fill,
and at the outline grey it read as a flat light slab.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Popouts anchored to their trigger item, and Quickshell maps an anchor
rect given in item coordinates through the item's transform. Rail icons
scale to 1.08 on hover, so a panel placed ~360px left of the icon landed
up to ~29px further left still, leaving a strip of desktop between it and
the rail — by however far the hover scale had got when the dwell timer
fired, which is why it only happened sometimes.
Anchor to the trigger window's content item instead, which never
transforms, and place in window coordinates from the trigger's centre,
which a scale about the centre leaves where it is.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hover panels used to float a gap away from their trigger as free-standing
cards. They are now part of the hull: flush against the frame edge they
open from, painted in the hull colour, joined to it through concave
fillets, with the porthole rim carried round their open side, and they
slide out from behind the frame instead of fading and scaling in.
Popout places itself rather than relying on the compositor's slide
adjustment. A panel is centred on its trigger and, if that lands it near
one of the opening's corners, docked into the corner — attached to the
bar and the rail at once — so it never leaves a thin strip of opening
between itself and the rail. The calendar, network and audio panels dock
top-right; notifications dock bottom-right.
PopoutSurface leaves fill, border and corner ticks to the hull when it is
inside a Popout, and keeps them in the launcher and the ask panel. Its
attached fill opacity is 0 rather than a transparent colour, because
P5Panel re-applies fillOpacity to the colour and turned "transparent"
into 97% black.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A drawer lowered out of the underside of the bar, painted in the hull
colour and joined to it by two concave fillets so it reads as more of the
hull rather than as a floating card — caelestia's dashboard idea, in the
YoRHa language. Four columns divided by hairlines: operator and clock, the
month with today as an inverted square, the system meters, and the active
player with a hairline timeline and square transport buttons.
Opened by clicking the bar's clock (which used to pin the calendar), by
SUPER+I, or by `qs ipc call shell dashboard`. Escape or moving focus away
closes it through a HyprlandFocusGrab; Actions.dashboardClosedAt keeps the
clock click that cleared the grab from reopening it. The clock's calendar
hover is suppressed while the drawer is down, since it shows the month.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replaces the Persona x Mocha rice. NieR's menu language is kept whole —
plain rectangles, hairline rules, letter-spaced upright capitals, a square
marker on the current row, corner ticks round panels, and selection shown
by inverting the row — but the colours come from ~/.wallpapers/space-1.jpg
rather than from the game's beige: the grey-green void as the ground, the
suit's sage grey as text, the planet's white as the one accent, and the
hull's red indicator lights as the alarm.
The Persona geometry is switched off rather than ripped out: Theme.skew
and Theme.cut are 0, so P5Panel, Skew and Geom collapse to rectangles.
Overshoot easing, italics and black weights are gone shell-wide.
New, borrowed from caelestia's screen border: bar/Frame.qml draws the bar,
the rail and a thin left/bottom band as one hull on the bottom layer, with
the desktop as a rounded opening cut out of it. Frame also owns all four
exclusive zones, so the bar and rail are placed from the screen edge.
Hyprland moves to 1px borders lit from the planet white into grey, a soft
wide shadow and gaps measured from the opening. Alacritty, fish and dunst
get matching YoRHa palettes. Neovim, GTK/Qt and btop are still Mocha.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mocha's pink is a pastel. Filled at slab size against the near-black
Persona surfaces it went chalky rather than sharp, which is what made
hovered destructive buttons read as a washed-out red. Mauve is saturated
enough to bite against that ground and still cannot be confused with the
blue accent.
Applies across quickshell, Hyprland, dunst, fish and nvim. The GTK
overrides are dropped entirely — stock Catppuccin Mocha Blue already
paints those surfaces, and a hand-written destructive colour there was
one more thing to keep in step for no gain.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Keeps the Takemi geometry — the lean, the chamfer, the slabs — and swaps
the palette wholesale. Mocha carries the ground; blue is the accent for
anything live (focus, selection, borders, hover) and pink is the alarm
for anything destructive or failed, so one hue no longer has to mean
both 'active' and 'wrong'.
Destructive controls rest as a pink keyline and fill solid only when
hovered or selected: Mocha's pink is a pastel, and a resting slab of it
reads as washed-out red rather than as a warning. The load ramp climbs
text -> blue -> pink for the same reason, instead of fading straight
through a muddy mid-tone.
Surfaces covered: quickshell, Hyprland borders, alacritty, fish, dunst,
and nvim (via the catppuccin plugin, submodule branch catppuccin-mocha).
GTK 3/4, Qt and xsettingsd move to catppuccin-mocha-blue and are now
tracked, since nothing else makes non-shell apps match the rice; the
previous Takemi copies are in theme-repair-backups/.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A PowerMenu window exists per screen and every one of them lit up on
open. Latch the focused monitor in Actions at open time — same shape as
launcherScreen — and gate each window's open state on it, so exactly one
copy draws and takes keyboard focus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fuzzel could only answer "which app", so launching Brave at a URL meant
picking the app, waiting for it, then typing the address somewhere else.
The launcher now takes a verb and an object in one line: type
`gitlab.enqs.de` and every app that can open it sorts to the top, default
browser first, ready for Enter — or arrow/hjkl down to Brave's New
Incognito Window, which is offered as a peer of Brave itself rather than
hidden behind a submenu.
services/Apps.qml is the brain and holds no UI: it flattens desktop
entries and their actions into one index, classifies the typed argument
(url / mail / path), ranks by fuzzy match plus handler affinity plus
frecency, and launches. Launching through `uwsm app` keeps each app in its
own scope; entries whose Exec declares no field code (Brave's
`--incognito` action, among others) are launched by tokenising Exec per
the Desktop Entry spec and appending the argument, never via `sh -c`.
Four prefixes reuse the same window, so there is one picker and one set of
keys: `>` runs a command, `=` evaluates arithmetic, `:` is clipboard
history (cliphist, which had been a second fuzzel invocation), and a
dmenu mode is driven over IPC.
quickshell/scripts/takemi-dmenu is the bridge for that last one — a
`fuzzel --dmenu` drop-in for scripts that want a picker, symlinked into
~/.local/bin. fluxo's bt menu now goes through it.
Living in the Quickshell process means the window is on screen on the
frame the bind fires, with no process to spawn.
Removes fuzzel entirely: its config, its theme submodule, the package,
and the last consumers (the bar sigil, fluxo's menu_command). Also drops
hypr/scripts/powermenu.sh, which was fuzzel-based and bound to nothing.