import QtQuick import Quickshell import "root:/modules/common/functions/color_utils.js" as ColorUtils pragma Singleton pragma ComponentBehavior: Bound Singleton { id: root property QtObject m3colors property QtObject animation property QtObject animationCurves property QtObject colors property QtObject rounding property QtObject font property QtObject sizes property real transparency: 0.5 property real contentTransparency: 0.1 property real workpaceTransparency: 0.8 // property real transparency: 0.15 // property real contentTransparency: 0.5 property string background_image: Directories.config + "/rofi/.current_wallpaper" m3colors: QtObject { property bool darkmode: true property bool transparent: true property color m3background: "#161217" property color m3onBackground: "#EAE0E7" property color m3surfaceContainerLow: "#1F1A1F" property color m3surfaceContainer: "#231E23" property color m3surfaceContainerHigh: "#2D282E" property color m3surfaceContainerHighest: "#383339" property color m3onSurface: "#EAE0E7" property color m3onSurfaceVariant: "#CFC3CD" property color m3outline: "#cba6f7" property color m3scrim: "#000000" property color m3shadow: "#000000" property color m3primary: "#E5B6F2" property color m3primaryContainer: "#5D386A" property color m3secondary: "#D5C0D7" property color m3secondaryContainer: "#534457" property color m3onPrimary: "#452152" property color m3onPrimaryContainer: "#F9D8FF" property color m3onSecondaryContainer: "#F2DCF3" property color m3outlineVariant: "#4C444D" property color colTooltip: "#1e1e2e" property color colOnTooltip: "#F8F9FA" } colors: QtObject { property color colSubtext: m3colors.m3outline property color colLayer0: ColorUtils.transparentize(m3colors.m3background, root.transparency) property color colLayer1: ColorUtils.transparentize(ColorUtils.mix(m3colors.m3surfaceContainerLow, m3colors.m3background, 0.7), root.contentTransparency); property color colOnLayer1: m3colors.m3onSurfaceVariant; property color colLayer2: ColorUtils.transparentize(ColorUtils.mix(m3colors.m3surfaceContainer, m3colors.m3surfaceContainerHigh, 0.55), root.contentTransparency) property color colOnLayer2: m3colors.m3onSurface; property color colLayer1Hover: ColorUtils.transparentize(ColorUtils.mix(colLayer1, colOnLayer1, 0.92), root.contentTransparency) property color colLayer1Active: ColorUtils.transparentize(ColorUtils.mix(colLayer1, colOnLayer1, 0.85), root.contentTransparency); property color colLayer2Hover: ColorUtils.transparentize(ColorUtils.mix(colLayer2, colOnLayer2, 0.90), root.contentTransparency) property color colLayer2Active: ColorUtils.transparentize(ColorUtils.mix(colLayer2, colOnLayer2, 0.80), root.contentTransparency); property color colPrimary: m3colors.m3primary property color colPrimaryHover: ColorUtils.mix(colors.colPrimary, colLayer1Hover, 0.87) property color colPrimaryActive: ColorUtils.mix(colors.colPrimary, colLayer1Active, 0.7) property color colShadow: ColorUtils.transparentize(m3colors.m3shadow, 0.7) } rounding: QtObject { property int unsharpen: 2 property int verysmall: 8 property int small: 12 property int normal: 17 property int large: 23 property int verylarge: 30 property int veryverylarge: 60 property int full: 9999 property int screenRounding: veryverylarge property int windowRounding: veryverylarge } font: QtObject { property QtObject family: QtObject { property string main: "Open Sans" property string title: "JetBrains Mono NF" property string iconMaterial: "FiraConde Nerd Font" property string iconNerd: "SpaceMono NF" property string monospace: "JetBrains Mono NF" property string reading: "Readex Pro" } property QtObject pixelSize: QtObject { property int smallest: 10 property int smaller: 13 property int small: 15 property int normal: 16 property int large: 17 property int larger: 19 property int huge: 22 property int hugeass: 23 property int title: 28 } } animationCurves: QtObject { readonly property list expressiveFastSpatial: [0.42, 1.67, 0.21, 0.90, 1, 1] // Default, 350ms readonly property list expressiveDefaultSpatial: [0.38, 1.21, 0.22, 1.00, 1, 1] // Default, 500ms readonly property list expressiveSlowSpatial: [0.39, 1.29, 0.35, 0.98, 1, 1] // Default, 650ms readonly property list expressiveEffects: [0.34, 0.80, 0.34, 1.00, 1, 1] // Default, 200ms readonly property list emphasized: [0.05, 0, 2 / 15, 0.06, 1 / 6, 0.4, 5 / 24, 0.82, 0.25, 1, 1, 1] readonly property list emphasizedAccel: [0.3, 0, 0.8, 0.15, 1, 1] readonly property list emphasizedDecel: [0.05, 0.7, 0.1, 1, 1, 1] readonly property list standard: [0.2, 0, 0, 1, 1, 1] readonly property list standardAccel: [0.3, 0, 1, 1, 1, 1] readonly property list standardDecel: [0, 0, 0, 1, 1, 1] } animation: QtObject { property QtObject elementMove: QtObject { property int duration: 500 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.expressiveDefaultSpatial property int velocity: 650 property Component numberAnimation: Component { NumberAnimation { duration: root.animation.elementMove.duration easing.type: root.animation.elementMove.type easing.bezierCurve: root.animation.elementMove.bezierCurve } } property Component colorAnimation: Component { ColorAnimation { duration: root.animation.elementMove.duration easing.type: root.animation.elementMove.type easing.bezierCurve: root.animation.elementMove.bezierCurve } } } property QtObject elementMoveEnter: QtObject { property int duration: 400 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.emphasizedDecel property int velocity: 650 property Component numberAnimation: Component { NumberAnimation { duration: root.animation.elementMoveEnter.duration easing.type: root.animation.elementMoveEnter.type easing.bezierCurve: root.animation.elementMoveEnter.bezierCurve } } } property QtObject elementMoveExit: QtObject { property int duration: 200 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.emphasizedAccel property int velocity: 650 property Component numberAnimation: Component { NumberAnimation { duration: root.animation.elementMoveExit.duration easing.type: root.animation.elementMoveExit.type easing.bezierCurve: root.animation.elementMoveExit.bezierCurve } } } property QtObject elementMoveFast: QtObject { property int duration: 200 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.expressiveEffects property int velocity: 850 property Component colorAnimation: Component { ColorAnimation { duration: root.animation.elementMoveFast.duration easing.type: root.animation.elementMoveFast.type easing.bezierCurve: root.animation.elementMoveFast.bezierCurve }} property Component numberAnimation: Component { NumberAnimation { duration: root.animation.elementMoveFast.duration easing.type: root.animation.elementMoveFast.type easing.bezierCurve: root.animation.elementMoveFast.bezierCurve }} } property QtObject clickBounce: QtObject { property int duration: 200 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.expressiveFastSpatial property int velocity: 850 property Component numberAnimation: Component { NumberAnimation { duration: root.animation.clickBounce.duration easing.type: root.animation.clickBounce.type easing.bezierCurve: root.animation.clickBounce.bezierCurve }} } property QtObject scroll: QtObject { property int duration: 400 property int type: Easing.BezierSpline property list bezierCurve: animationCurves.standardDecel } property QtObject menuDecel: QtObject { property int duration: 350 property int type: Easing.OutExpo } } sizes: QtObject { property real barHeight: 40 property real notificationPopupWidth: 410 property real searchWidthCollapsed: 260 property real searchWidth: 450 property real hyprlandGapsOut: 5 property real elevationMargin: 10 property real fabShadowRadius: 5 property real fabHoveredShadowRadius: 7 } }