Files
dotfiles/quickshell/shell.qml
T
nvrlandClaude Opus 5.5 ecc7d2884c feat(quickshell): dashboard drawer that drops from the bar
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>
2026-10-04 20:19:30 +02:00

97 lines
2.0 KiB
QML

import QtQuick
import Quickshell
import "root:/config"
import "root:/services"
import "root:/bar"
import "root:/launcher"
import "root:/dashboard"
import "root:/ask"
import "root:/overlays"
import "root:/lock"
// Takemi — a YoRHa-dark Quickshell desktop: NieR:Automata's interface
// language, lit like the wallpaper.
//
// bar/ the hull, the top bar, the rail and their modules
// popouts/ hover panels hanging off bar modules
// launcher/ the application launcher
// dashboard/ the drawer that drops from the bar
// ask/ the question panel, dropped from the top edge
// overlays/ power menu, notification toasts, OSD
// lock/ session lock
// services/ data sources (fluxo, pipewire, bluez, upower, mpris, …)
// config/ palette, type, geometry, motion
ShellRoot {
// Services are lazily constructed on first use. The shell wants several of
// them warm from the start — polling, the notification server, the audio
// OSD — so touch them here rather than waiting for a hover.
Component.onCompleted: {
void Sys.cpuUsage;
void Audio.ready;
void Battery.available;
void Brightness.percent;
void Notifs.count;
void Media.hasPlayer;
void Net.wifiEnabled;
void Bt.available;
void Actions.powerMenuOpen;
void Apps.index;
}
Variants {
model: Quickshell.screens
Frame {}
}
Variants {
model: Quickshell.screens
Bar {}
}
Variants {
model: Quickshell.screens
Rail {}
}
Variants {
model: Quickshell.screens
Launcher {}
}
Variants {
model: Quickshell.screens
Dashboard {}
}
Variants {
model: Quickshell.screens
AskPanel {}
}
Variants {
model: Quickshell.screens
PowerMenu {}
}
Variants {
model: Quickshell.screens
Toasts {}
}
Variants {
model: Quickshell.screens
Osd {}
}
Lock {}
}