Convert the caelestia shell to the NoSignal "design_handoff_quickshell_shell" spec: a slim translucent top bar with floating glass popouts, fixed dark-glass chrome + Material You dynamic accent, square corners, JetBrains Mono. - Theme singleton (services/Theme.qml): design tokens; accent = m3primary (dynamic), fixed glass/text, square radii. - New slim bar as its own PanelWindow (modules/nsbar/NsBar.qml), additive in shell.qml; reuses caelestia services + components. Helpers: BarPill, NsWorkspaces (numbered, active=accent pill), NsOverlay (popout host, one-at-a- time via services/NsShell.qml, outside-click + Esc), components/NsPanel + components/NsSwitch. - Old caelestia frame removed: BarWrapper collapsed; ContentWindow border 0 + borderTop 0; Exclusions zones 0. Drawer engine kept for launcher/OSD/lock. - 9 popouts (modules/nsbar/panels/): Calendar, QuickSettings, Network, Bluetooth, Notifications, Audio, SystemTray, Overview, PowerMenu. - Clock restyled (date muted + time DemiBold). - nexus (Settings) reskinned: dark-glass window + cards, square corners (Nexus.qml, common/ConnectedRect.qml) — keeps all pages/functionality. Launcher kept as-is. Font (JetBrainsMono) + rounding.scale=0 + Super+Alt+Space nexus bind are caelestia/hypr CONFIG and ship in the OS, not this fork. Next: full Material Symbols -> Nerd Font icon remap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
794 B
QML
40 lines
794 B
QML
pragma ComponentBehavior: Bound
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import Caelestia.Config
|
|
import qs.components.containers
|
|
import qs.modules.bar as Bar
|
|
|
|
Scope {
|
|
id: root
|
|
|
|
required property ShellScreen screen
|
|
required property Bar.BarWrapper bar
|
|
|
|
ExclusionZone {
|
|
anchors.left: true
|
|
}
|
|
|
|
ExclusionZone {
|
|
anchors.top: true
|
|
exclusiveZone: 0 // NoSignal: NsBar owns the top exclusive zone
|
|
}
|
|
|
|
ExclusionZone {
|
|
anchors.right: true
|
|
}
|
|
|
|
ExclusionZone {
|
|
anchors.bottom: true
|
|
}
|
|
|
|
component ExclusionZone: StyledWindow {
|
|
screen: root.screen
|
|
name: "border-exclusion"
|
|
exclusiveZone: 0 // NoSignal: no screen-edge frame
|
|
mask: Region {}
|
|
implicitWidth: 1
|
|
implicitHeight: 1
|
|
}
|
|
}
|