pragma Singleton import qs.utils import Quickshell import Quickshell.Io Singleton { id: root property alias appearance: adapter.appearance property alias general: adapter.general property alias background: adapter.background property alias bar: adapter.bar property alias border: adapter.border property alias dashboard: adapter.dashboard property alias controlCenter: adapter.controlCenter property alias launcher: adapter.launcher property alias notifs: adapter.notifs property alias osd: adapter.osd property alias session: adapter.session property alias winfo: adapter.winfo property alias lock: adapter.lock property alias services: adapter.services property alias paths: adapter.paths FileView { path: `${Paths.stringify(Paths.config)}/shell.json` watchChanges: true onFileChanged: reload() onAdapterUpdated: writeAdapter() JsonAdapter { id: adapter property AppearanceConfig appearance: AppearanceConfig {} property GeneralConfig general: GeneralConfig {} property BackgroundConfig background: BackgroundConfig {} property BarConfig bar: BarConfig {} property BorderConfig border: BorderConfig {} property DashboardConfig dashboard: DashboardConfig {} property ControlCenterConfig controlCenter: ControlCenterConfig {} property LauncherConfig launcher: LauncherConfig {} property NotifsConfig notifs: NotifsConfig {} property OsdConfig osd: OsdConfig {} property SessionConfig session: SessionConfig {} property WInfoConfig winfo: WInfoConfig {} property LockConfig lock: LockConfig {} property ServiceConfig services: ServiceConfig {} property UserPaths paths: UserPaths {} } } }