theme: calm YoRHa lock screen and power menu; nvim and btop follow

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>
This commit is contained in:
nvrlandClaude Opus 5.5 committed 2026-10-04 21:09:07 +02:00
1 parent a8c19961e2
commit 63a910bf14
11 files changed
+581 -565

No files matched your search

-91
View File
@@ -1,91 +0,0 @@
import QtQuick
import "root:/config"
import "root:/components"
// The shared ground for the two full-screen surfaces, in the NieR menu
// pattern: a hairline grid that sweeps in from the left, a darker column down
// the left-hand side for the menu or the clock to stand in, and a dot wash
// over the top.
//
// The lock screen and the power menu both stand on this one component, which
// is what makes them read as the same object seen twice rather than as two
// guesses at the same brief.
Item {
id: root
// 0 = withdrawn, 1 = fully present. Drives the grid slide, the grid
// opacity and the column together, so a caller animates one number instead
// of keeping three in sync. The power menu runs it both ways on open and
// close; the lock runs it once on entry.
property real reveal: 1
property color tone: Theme.accent
// The column: a band of the void, edged by a hairline of the light.
// `wedge*` names are kept from the Persona layout so callers did not have
// to move; there is nothing wedge-shaped left.
property bool wedge: true
property real wedgeOpacity: 0.35
property real wedgeLeft: 0
property real wedgeSpan: 0.34
property bool stripes: true
property real stripeOpacity: 0.05
property bool halftone: true
property real halftoneOpacity: 0.05
property color halftoneColor: Theme.primary
// Hairline grid, sliding in from off-screen left.
Image {
anchors.fill: parent
visible: root.stripes && root.reveal > 0
source: Theme.texGrid
fillMode: Image.Tile
opacity: root.stripeOpacity * root.reveal
smooth: false
layer.enabled: true
layer.effect: TintEffect {
tintColor: root.tone
}
transform: Translate {
x: -root.width * (1 - root.reveal)
}
}
// The column. Drawn after the grid so it reads as a panel laid over it.
Item {
x: root.wedgeLeft * root.width
width: root.wedgeSpan * root.width
height: root.height
visible: root.wedge && root.reveal > 0
opacity: root.reveal
Rectangle {
anchors.fill: parent
color: Theme.alpha(Theme.ink, root.wedgeOpacity)
}
// Its edge, drawn top-down as the column arrives.
Rectangle {
anchors.right: parent.right
width: 1
height: parent.height * root.reveal
color: Theme.alpha(root.tone, 0.35)
}
}
// Dot wash over the whole thing.
Image {
anchors.fill: parent
visible: root.halftone
source: Theme.texDots
fillMode: Image.Tile
opacity: root.halftoneOpacity
smooth: false
layer.enabled: true
layer.effect: TintEffect { tintColor: root.halftoneColor }
}
}