summaryrefslogtreecommitdiff
path: root/config/BarConfig.qml
blob: 727c376e2619dbfcab23554464d367765665d91d (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
pragma Singleton
pragma ComponentBehavior: Bound

import Quickshell
import QtQuick

Singleton {
    id: root

    property bool vertical: true
    property Preset preset: presets.pills

    readonly property Sizes sizes: preset.sizes
    readonly property Workspaces workspaces: preset.workspaces
    readonly property Tray tray: preset.tray
    readonly property Presets presets: Presets {}

    component Sizes: QtObject {
        property int exclusiveZone: totalHeight
        property int totalHeight: height
        property int height: 40
        property int innerHeight: 30
        property int floatingGap: 15
        property int maxLabelWidth: 600
        property int maxLabelHeight: 400
    }

    component Workspaces: QtObject {
        property int shown: root.vertical ? 5 : 10
        property bool rounded: true
        property bool activeIndicator: true
        property bool occupiedBg: false
        property bool showWindows: true
        property bool activeTrail: !showWindows // Doesn't work well with variable sized workspaces
        property string label: "  "
        property string occupiedLabel: "󰮯 "
        property string activeLabel: "󰮯 "
    }

    component Tray: QtObject {
        property bool recolourIcons: false
    }

    component Preset: QtObject {
        required property string name
        property Sizes sizes: Sizes {}
        property Workspaces workspaces: Workspaces {}
        property Tray tray: Tray {}
    }

    component Presets: QtObject {
        readonly property Preset pills: Preset {
            name: "pills"
            sizes: Sizes {
                totalHeight: height + floatingGap * 2
                exclusiveZone: totalHeight - floatingGap
            }
        }
        readonly property Preset panel: Preset {
            name: "panel"
            sizes: Sizes {
                height: 30
            }
            workspaces: Workspaces {
                rounded: false
                showWindows: false
                label: ""
                occupiedLabel: ""
                activeLabel: ""
            }
            tray: Tray {
                recolourIcons: true
            }
        }
    }
}