summaryrefslogtreecommitdiff
path: root/config/Config.qml
blob: f95e38f6013aeeedda52f7b1767b439b310b1d81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
pragma Singleton

import qs.utils
import Quickshell
import Quickshell.Io

Singleton {
    id: root

    property alias bar: adapter.bar
    property alias border: adapter.border
    property alias dashboard: adapter.dashboard
    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 paths: adapter.paths

    FileView {
        path: `${Paths.stringify(Paths.config)}/shell.json`
        watchChanges: true
        onFileChanged: reload()
        onAdapterUpdated: writeAdapter()

        JsonAdapter {
            id: adapter

            property JsonObject bar: BarConfig {}
            property JsonObject border: BorderConfig {}
            property JsonObject dashboard: DashboardConfig {}
            property JsonObject launcher: LauncherConfig {}
            property JsonObject notifs: NotifsConfig {}
            property JsonObject osd: OsdConfig {}
            property JsonObject session: SessionConfig {}
            property JsonObject winfo: WInfoConfig {}
            property JsonObject lock: LockConfig {}
            property JsonObject paths: UserPaths {}
        }
    }
}