diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/Appearance.qml | 86 | ||||
| -rw-r--r-- | config/AppearanceConfig.qml | 91 | ||||
| -rw-r--r-- | config/Config.qml | 2 |
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 {} |