mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 09:36:46 +00:00
134 lines
6.5 KiB
QML
134 lines
6.5 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
pragma Singleton
|
|
pragma ComponentBehavior: Bound
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
readonly property double durationScale: Config.runtime.appearance.animations.durationScale
|
|
readonly property double roundingScale: Config.runtime.appearance.rounding.factor
|
|
readonly property double fontScale: Config.runtime.appearance.font.scale
|
|
|
|
function spacing(value) { // These will be used with a scale later on...
|
|
return value
|
|
}
|
|
|
|
function padding(value) {
|
|
return value
|
|
}
|
|
|
|
function chronoDuration(value) {
|
|
if (typeof value === "number")
|
|
return value * durationScale
|
|
|
|
switch (value) {
|
|
case "supershort": return Appearance.animation.durations.supershort * durationScale
|
|
case "small": return Appearance.animation.durations.small * durationScale
|
|
case "normal": return Appearance.animation.durations.normal * durationScale
|
|
case "large": return Appearance.animation.durations.large * durationScale
|
|
case "extraLarge": return Appearance.animation.durations.extraLarge * durationScale
|
|
case "expressiveFastSpatial": return Appearance.animation.durations.expressiveFastSpatial * durationScale
|
|
case "expressiveDefaultSpatial": return Appearance.animation.durations.expressiveDefaultSpatial * durationScale
|
|
case "expressiveEffects": return Appearance.animation.durations.expressiveEffects * durationScale
|
|
default: return 0
|
|
}
|
|
}
|
|
|
|
function margin(value) {
|
|
if (typeof value === "number")
|
|
return value
|
|
|
|
switch (value) {
|
|
case "supertiny": return Appearance.margin.supertiny
|
|
case "tinier": return Appearance.margin.tinier
|
|
case "tiny": return Appearance.margin.tiny
|
|
case "verysmall": return Appearance.margin.verysmall
|
|
case "small": return Appearance.margin.small
|
|
case "normal": return Appearance.margin.normal
|
|
case "large": return Appearance.margin.large
|
|
case "verylarge": return Appearance.margin.verylarge
|
|
case "extraLarge": return Appearance.margin.extraLarge
|
|
default: return 0
|
|
}
|
|
}
|
|
|
|
function radius(value) {
|
|
if (typeof value === "number")
|
|
return value * roundingScale
|
|
|
|
switch (value) {
|
|
case "unsharpen": return Appearance.rounding.unsharpen * roundingScale
|
|
case "unsharpenmore": return Appearance.rounding.unsharpenmore * roundingScale
|
|
case "verysmall": return Appearance.rounding.verysmall * roundingScale
|
|
case "small": return Appearance.rounding.small * roundingScale
|
|
case "normal": return Appearance.rounding.normal * roundingScale
|
|
case "large": return Appearance.rounding.large * roundingScale
|
|
case "verylarge": return Appearance.rounding.verylarge * roundingScale
|
|
case "childish": return Appearance.rounding.childish * roundingScale
|
|
case "full": return Appearance.rounding.full * roundingScale
|
|
case "screenRounding": return Appearance.rounding.screenRounding * roundingScale
|
|
case "windowRounding": return Appearance.rounding.windowRounding * roundingScale
|
|
default: return 0
|
|
}
|
|
}
|
|
|
|
function fontSize(value) {
|
|
if (typeof value === "number")
|
|
return value * fontScale
|
|
|
|
switch (value) {
|
|
case "smallest": return Appearance.font.size.smallest * fontScale
|
|
case "smaller": return Appearance.font.size.smaller * fontScale
|
|
case "smallie": return Appearance.font.size.smallie * fontScale
|
|
case "small": return Appearance.font.size.small * fontScale
|
|
case "normal": return Appearance.font.size.normal * fontScale
|
|
case "large": return Appearance.font.size.large * fontScale
|
|
case "larger": return Appearance.font.size.larger * fontScale
|
|
case "big": return Appearance.font.size.big * fontScale
|
|
case "huge": return Appearance.font.size.huge * fontScale
|
|
case "hugeass": return Appearance.font.size.hugeass * fontScale
|
|
case "wildass": return Appearance.font.size.wildass * fontScale
|
|
case "title": return Appearance.font.size.title * fontScale
|
|
default: return Appearance.font.size.normal * fontScale
|
|
}
|
|
}
|
|
|
|
function iconSize(value) {
|
|
if (typeof value === "number")
|
|
return value * fontScale
|
|
|
|
switch (value) {
|
|
case "smallest": return Appearance.font.size.icon.smallest * fontScale
|
|
case "smaller": return Appearance.font.size.icon.smaller * fontScale
|
|
case "smallie": return Appearance.font.size.icon.smallie * fontScale
|
|
case "small": return Appearance.font.size.icon.small * fontScale
|
|
case "normal": return Appearance.font.size.icon.normal * fontScale
|
|
case "large": return Appearance.font.size.icon.large * fontScale
|
|
case "larger": return Appearance.font.size.icon.larger * fontScale
|
|
case "big": return Appearance.font.size.icon.big * fontScale
|
|
case "huge": return Appearance.font.size.icon.huge * fontScale
|
|
case "hugeass": return Appearance.font.size.icon.hugeass * fontScale
|
|
case "wildass": return Appearance.font.size.icon.wildass * fontScale
|
|
case "title": return Appearance.font.size.icon.title * fontScale
|
|
default: return Appearance.font.size.icon.normal * fontScale
|
|
}
|
|
}
|
|
|
|
function fontFamily(value) {
|
|
if (typeof value === "string") {
|
|
switch (value) {
|
|
case "main": return Appearance.font.family.main
|
|
case "title": return Appearance.font.family.title
|
|
case "materialIcons": return Appearance.font.family.materialIcons
|
|
case "nerdIcons": return Appearance.font.family.nerdIcons
|
|
case "monospace": return Appearance.font.family.monospace
|
|
case "reading": return Appearance.font.family.reading
|
|
case "expressive": return Appearance.font.family.expressive
|
|
default: return value
|
|
}
|
|
}
|
|
return Appearance.font.family.main
|
|
}
|
|
}
|