Watch
1
0
Fork
You've already forked souveraine
0
souveraine/surfaces/quickshell/shell.qml
Fimeg 19fe6b1d0e shell: dock reorder, fullscreen detection fix, idle-power, sessiond, misc shell work
- Dock drag-to-reorder for pinned apps (insertion gap, quick-slide vs dwell)
- Fullscreen detection: scan all windows via HyprlandData.windowList
- IdleCoordinator, GlobalStates, Session.qml updates
- Deploy script, qmldir, settings, wallpaper, visualizer fixes
- sessiond server, memory module updates

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 22:18:20 -04:00

61 lines
2 KiB
QML

//@ pragma UseQApplication
//@ pragma Env QS_NO_RELOAD_POPUP=1
//@ pragma Env QT_QUICK_CONTROLS_STYLE=Basic
//@ pragma Env QT_QUICK_FLICKABLE_WHEEL_DECELERATION=10000
// Souveraine shell entry — `qs -c souveraine`.
// One family, two modes (desktop and phone), converging over time. Panels
// that differ by form factor are gated on Config.options.souveraine.phone
// inside SouveraineFamily; a panel is "homogenized" when its gate is gone.
// No panelFamily switching: this config loads SouveraineFamily, period.
// ii's tree is borrowed underneath (composed by deploy.sh) until each piece
// is owned outright.
import "modules/common"
import "modules/souveraine/boot"
import "services"
import "panelFamilies"
import QtQuick
import QtQuick.Window
import Quickshell
import Quickshell.Io
import Quickshell.Hyprland
ShellRoot {
id: root
// NOTE: no DeviceConnectNotification here — the phone's ii snapshot
// predates it, and version-dependent types don't belong in the entry file.
ReloadPopup {}
// Boot bloom overlay. Top-level (NOT inside the Config.ready LazyLoader) so
// it maps as Hyprland's first surface, before the rest of the shell loads —
// covering all of Hyprland's boot render and continuing the C splash's
// bloom until the lockscreen is secure. Signals the splash to release DRM
// master on its first frame; LockScreen clears GlobalStates.bootBloomActive.
BootBloom {}
// A normal XDG app window in this process. Its desktop/sidebar launchers
// call the `settings` IPC target; no second Quickshell/session scope is
// created.
SettingsWindow {}
Component.onCompleted: {
MaterialThemeLoader.reapplyTheme()
SessiondBridge.claimAuthority()
SessiondBridge.load()
Hyprsunset.load()
FirstRunExperience.load()
ConflictKiller.load()
CrashReporter.start()
Cliphist.refresh()
Wallpapers.load()
Updates.load()
}
LazyLoader {
active: Config.ready
component: SouveraineFamily {}
}
}