summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/Appearance.qml86
-rw-r--r--config/AppearanceConfig.qml91
-rw-r--r--config/Config.qml2
3 files changed, 101 insertions, 78 deletions
diff --git a/config/Appearance.qml b/config/Appearance.qml
index 6da7fd9..241c21a 100644
--- a/config/Appearance.qml
+++ b/config/Appearance.qml
@@ -1,84 +1,14 @@
pragma Singleton
import Quickshell
-import QtQuick
Singleton {
- id: root
-
- readonly property Rounding rounding: Rounding {}
- readonly property Spacing spacing: Spacing {}
- readonly property Padding padding: Padding {}
- readonly property FontStuff font: FontStuff {}
- readonly property Anim anim: Anim {}
-
- component Rounding: QtObject {
- readonly property int small: 12
- readonly property int normal: 17
- readonly property int large: 25
- readonly property int full: 1000
- }
-
- component Spacing: QtObject {
- readonly property int small: 7
- readonly property int smaller: 10
- readonly property int normal: 12
- readonly property int larger: 15
- readonly property int large: 20
- }
-
- component Padding: QtObject {
- readonly property int small: 5
- readonly property int smaller: 7
- readonly property int normal: 10
- readonly property int larger: 12
- readonly property int large: 15
- }
-
- component FontFamily: QtObject {
- readonly property string sans: "IBM Plex Sans"
- readonly property string mono: "JetBrains Mono NF"
- readonly property string material: "Material Symbols Rounded"
- }
-
- component FontSize: QtObject {
- readonly property int small: 11
- readonly property int smaller: 12
- readonly property int normal: 13
- readonly property int larger: 15
- readonly property int large: 18
- readonly property int extraLarge: 28
- }
-
- component FontStuff: QtObject {
- readonly property FontFamily family: FontFamily {}
- readonly property FontSize size: FontSize {}
- }
-
- component AnimCurves: QtObject {
- readonly property list<real> emphasized: [0.05, 0, 2 / 15, 0.06, 1 / 6, 0.4, 5 / 24, 0.82, 0.25, 1, 1, 1]
- readonly property list<real> emphasizedAccel: [0.3, 0, 0.8, 0.15, 1, 1]
- readonly property list<real> emphasizedDecel: [0.05, 0.7, 0.1, 1, 1, 1]
- readonly property list<real> standard: [0.2, 0, 0, 1, 1, 1]
- readonly property list<real> standardAccel: [0.3, 0, 1, 1, 1, 1]
- readonly property list<real> standardDecel: [0, 0, 0, 1, 1, 1]
- readonly property list<real> expressiveFastSpatial: [0.42, 1.67, 0.21, 0.9, 1, 1]
- readonly property list<real> expressiveDefaultSpatial: [0.38, 1.21, 0.22, 1, 1, 1]
- readonly property list<real> expressiveEffects: [0.34, 0.8, 0.34, 1, 1, 1]
- }
-
- component AnimDurations: QtObject {
- readonly property int small: 200
- readonly property int normal: 400
- readonly property int large: 600
- readonly property int extraLarge: 1000
- readonly property int expressiveFastSpatial: 350
- readonly property int expressiveDefaultSpatial: 500
- readonly property int expressiveEffects: 200
- }
-
- component Anim: QtObject {
- readonly property AnimCurves curves: AnimCurves {}
- readonly property AnimDurations durations: AnimDurations {}
- }
+ // Literally just here to shorten accessing stuff :woe:
+ // Also kinda so I can keep accessing it with `Appearance.xxx` instead of `Config.appearance.xxx`
+ readonly property AppearanceConfig.Rounding rounding: Config.appearance.rounding
+ readonly property AppearanceConfig.Spacing spacing: Config.appearance.spacing
+ readonly property AppearanceConfig.Padding padding: Config.appearance.padding
+ readonly property AppearanceConfig.FontStuff font: Config.appearance.font
+ readonly property AppearanceConfig.Anim anim: Config.appearance.anim
+ readonly property AppearanceConfig.Transparency transparency: Config.appearance.transparency
}
diff --git a/config/AppearanceConfig.qml b/config/AppearanceConfig.qml
new file mode 100644
index 0000000..c5c07c1
--- /dev/null
+++ b/config/AppearanceConfig.qml
@@ -0,0 +1,91 @@
+import Quickshell.Io
+
+JsonObject {
+ property Rounding rounding: Rounding {}
+ property Spacing spacing: Spacing {}
+ property Padding padding: Padding {}
+ property FontStuff font: FontStuff {}
+ property Anim anim: Anim {}
+ property Transparency transparency: Transparency {}
+
+ component Rounding: JsonObject {
+ property real scale: 1
+ property int small: 12 * scale
+ property int normal: 17 * scale
+ property int large: 25 * scale
+ property int full: 1000 * scale
+ }
+
+ component Spacing: JsonObject {
+ property real scale: 1
+ property int small: 7 * scale
+ property int smaller: 10 * scale
+ property int normal: 12 * scale
+ property int larger: 15 * scale
+ property int large: 20 * scale
+ }
+
+ component Padding: JsonObject {
+ property real scale: 1
+ property int small: 5 * scale
+ property int smaller: 7 * scale
+ property int normal: 10 * scale
+ property int larger: 12 * scale
+ property int large: 15 * scale
+ }
+
+ component FontFamily: JsonObject {
+ property string sans: "IBM Plex Sans"
+ property string mono: "JetBrains Mono NF"
+ property string material: "Material Symbols Rounded"
+ }
+
+ component FontSize: JsonObject {
+ property real scale: 1
+ property int small: 11 * scale
+ property int smaller: 12 * scale
+ property int normal: 13 * scale
+ property int larger: 15 * scale
+ property int large: 18 * scale
+ property int extraLarge: 28 * scale
+ }
+
+ component FontStuff: JsonObject {
+ property FontFamily family: FontFamily {}
+ property FontSize size: FontSize {}
+ }
+
+ component AnimCurves: JsonObject {
+ property list<real> emphasized: [0.05, 0, 2 / 15, 0.06, 1 / 6, 0.4, 5 / 24, 0.82, 0.25, 1, 1, 1]
+ property list<real> emphasizedAccel: [0.3, 0, 0.8, 0.15, 1, 1]
+ property list<real> emphasizedDecel: [0.05, 0.7, 0.1, 1, 1, 1]
+ property list<real> standard: [0.2, 0, 0, 1, 1, 1]
+ property list<real> standardAccel: [0.3, 0, 1, 1, 1, 1]
+ property list<real> standardDecel: [0, 0, 0, 1, 1, 1]
+ property list<real> expressiveFastSpatial: [0.42, 1.67, 0.21, 0.9, 1, 1]
+ property list<real> expressiveDefaultSpatial: [0.38, 1.21, 0.22, 1, 1, 1]
+ property list<real> expressiveEffects: [0.34, 0.8, 0.34, 1, 1, 1]
+ }
+
+ component AnimDurations: JsonObject {
+ property real scale: 1
+ property int small: 200 * scale
+ property int normal: 400 * scale
+ property int large: 600 * scale
+ property int extraLarge: 1000 * scale
+ property int expressiveFastSpatial: 350 * scale
+ property int expressiveDefaultSpatial: 500 * scale
+ property int expressiveEffects: 200 * scale
+ }
+
+ component Anim: JsonObject {
+ property AnimCurves curves: AnimCurves {}
+ property AnimDurations durations: AnimDurations {}
+ }
+
+ component Transparency: JsonObject {
+ property bool enabled: false
+ property real base: 0.85
+ property real layers: 0.4
+ }
+}
diff --git a/config/Config.qml b/config/Config.qml
index a4a4a87..4311286 100644
--- a/config/Config.qml
+++ b/config/Config.qml
@@ -7,6 +7,7 @@ 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
@@ -31,6 +32,7 @@ Singleton {
JsonAdapter {
id: adapter
+ property AppearanceConfig appearance: AppearanceConfig {}
property GeneralConfig general: GeneralConfig {}
property BackgroundConfig background: BackgroundConfig {}
property BarConfig bar: BarConfig {}