config moved to c++ plugin, removed old qml + fileview implementation

This commit is contained in:
2026-08-13 02:25:26 +02:00
parent c29b91cd26
commit 3cd3209b28
341 changed files with 4851 additions and 3502 deletions
+10 -12
View File
@@ -4,14 +4,14 @@ import Quickshell
import Quickshell.Widgets
import QtQuick
import qs.Components
import qs.Config
import ZShell.Config
import qs.Daemons
import qs.Helpers
Item {
id: root
readonly property int padding: Appearance.padding.smaller
readonly property int padding: Tokens.padding.smaller
required property Item panels
required property PersistentProperties visibilities
@@ -23,7 +23,7 @@ Item {
if (count === 0)
return 0;
let height = (count - 1) * Appearance.spacing.small;
let height = (count - 1) * Tokens.spacing.small;
for (let i = 0; i < count; i++)
height += (list.itemAtIndex(i) as NotifWrapper)?.nonAnimHeight ?? 0;
@@ -31,13 +31,13 @@ Item {
return 0;
if (visibilities.osd) {
const h = panels.osd.y - Appearance.spacing.small * 2 - padding * 2;
const h = panels.osd.y - Tokens.spacing.small * 2 - padding * 2;
if (height > h)
height = h;
}
if (visibilities.session) {
const h = panels.session.y - Appearance.spacing.small * 2 - padding * 2;
const h = panels.session.y - Tokens.spacing.small * 2 - padding * 2;
if (height > h)
height = h;
}
@@ -55,7 +55,7 @@ Item {
anchors.fill: parent
anchors.margins: root.padding
color: "transparent"
radius: Appearance.rounding.normal - root.padding
radius: Tokens.rounding.normal - root.padding
CustomListView {
id: list
@@ -92,8 +92,8 @@ Item {
}
component Anim: NumberAnimation {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
component NotifWrapper: Item {
id: wrapper
@@ -103,7 +103,7 @@ Item {
required property NotifServer.Notif modelData
readonly property alias nonAnimHeight: notif.nonAnimHeight
implicitHeight: notif.implicitHeight + (idx === 0 ? 0 : Appearance.spacing.small)
implicitHeight: notif.implicitHeight + (idx === 0 ? 0 : Tokens.spacing.small)
implicitWidth: notif.implicitWidth
ListView.onRemove: removeAnim.start()
@@ -140,8 +140,6 @@ Item {
}
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
property: "x"
target: notif
to: (notif.x >= 0 ? Config.notifs.sizes.width : -Config.notifs.sizes.width) * 2
@@ -160,7 +158,7 @@ Item {
color: "transparent"
implicitHeight: notif.implicitHeight
implicitWidth: notif.implicitWidth
radius: Appearance.rounding.small
radius: Tokens.rounding.small
Notification {
id: notif
+51 -50
View File
@@ -7,8 +7,9 @@ import Quickshell.Services.Notifications
import ZShell.Components
import qs.Daemons
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Components
import qs.Services
CustomRect {
id: root
@@ -17,16 +18,16 @@ CustomRect {
readonly property bool hasAppIcon: modelData.appIcon.length > 0
readonly property bool hasImage: modelData.image.length > 0
required property NotifServer.Notif modelData
readonly property int nonAnimHeight: summary.implicitHeight + (root.expanded ? Appearance.spacing.extraSmall * 2 + appName.height + body.height + actions.height + actions.anchors.topMargin : bodyPreview.height) + inner.anchors.margins * 2
readonly property int nonAnimHeight: summary.implicitHeight + (root.expanded ? Tokens.spacing.extraSmall * 2 + appName.height + body.height + actions.height + actions.anchors.topMargin : bodyPreview.height) + inner.anchors.margins * 2
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3secondaryContainer : DynamicColors.tPalette.m3surfaceContainer
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3secondaryContainer : Colors.tPalette.m3surfaceContainer
implicitHeight: inner.implicitHeight
radius: Appearance.rounding.small
radius: Tokens.rounding.small
x: implicitWidth
Behavior on x {
Anim {
easing.bezierCurve: Appearance.anim.curves.emphasizedDecel
easing.bezierCurve: Tokens.anim.curves.emphasizedDecel
}
}
@@ -87,7 +88,7 @@ CustomRect {
id: inner
anchors.left: parent.left
anchors.margins: Appearance.padding.normal
anchors.margins: Tokens.padding.normal
anchors.right: parent.right
anchors.top: parent.top
implicitHeight: root.nonAnimHeight
@@ -109,10 +110,10 @@ CustomRect {
width: Config.notifs.sizes.image
sourceComponent: CustomClippingRect {
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3error : root.modelData.urgency === NotificationUrgency.Low ? DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 2) : DynamicColors.palette.m3secondaryContainer
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3error : root.modelData.urgency === NotificationUrgency.Low ? Colors.layer(Colors.palette.m3surfaceContainerHighest, 2) : Colors.palette.m3secondaryContainer
implicitHeight: Config.notifs.sizes.image
implicitWidth: Config.notifs.sizes.image
radius: Appearance.rounding.full
radius: Tokens.rounding.full
Image {
anchors.fill: parent
@@ -139,10 +140,10 @@ CustomRect {
asynchronous: true
sourceComponent: CustomRect {
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3error : root.modelData.urgency === NotificationUrgency.Low ? DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 2) : DynamicColors.palette.m3secondaryContainer
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3error : root.modelData.urgency === NotificationUrgency.Low ? Colors.layer(Colors.palette.m3surfaceContainerHighest, 2) : Colors.palette.m3secondaryContainer
implicitHeight: root.hasImage ? Config.notifs.sizes.badge : Config.notifs.sizes.image
implicitWidth: root.hasImage ? Config.notifs.sizes.badge : Config.notifs.sizes.image
radius: Appearance.rounding.full
radius: Tokens.rounding.full
Loader {
id: icon
@@ -155,7 +156,7 @@ CustomRect {
sourceComponent: ColoredIcon {
anchors.fill: parent
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? DynamicColors.palette.m3onSurface : DynamicColors.palette.m3onSecondaryContainer
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? Colors.palette.m3onSurface : Colors.palette.m3onSecondaryContainer
layer.enabled: root.modelData.appIcon.endsWith("symbolic")
source: Quickshell.iconPath(root.modelData.appIcon)
}
@@ -168,7 +169,7 @@ CustomRect {
asynchronous: true
sourceComponent: MaterialIcon {
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? DynamicColors.palette.m3onSurface : DynamicColors.palette.m3onSecondaryContainer
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? Colors.palette.m3onSurface : Colors.palette.m3onSecondaryContainer
text: Icons.getNotifIcon(root.modelData.summary, root.modelData.urgency)
}
}
@@ -188,7 +189,7 @@ CustomRect {
capStyle: ShapePath.RoundCap
fillColor: "transparent"
strokeColor: DynamicColors.palette.m3primary
strokeColor: Colors.palette.m3primary
strokeWidth: 2
PathAngleArc {
@@ -196,14 +197,14 @@ CustomRect {
centerX: progressIndicator.width / 2
centerY: progressIndicator.height / 2
radiusX: progressIndicator.width / 2 - Appearance.padding.extraSmall / 2
radiusY: progressIndicator.height / 2 - Appearance.padding.extraSmall / 2
radiusX: progressIndicator.width / 2 - Tokens.padding.extraSmall / 2
radiusY: progressIndicator.height / 2 - Tokens.padding.extraSmall / 2
startAngle: -90
sweepAngle: ((root.modelData.hints.value ?? 0) / 100) * 360
Behavior on sweepAngle {
Anim {
easing.bezierCurve: Appearance.anim.curves.emphasizedDecel
easing.bezierCurve: Tokens.anim.curves.emphasizedDecel
}
}
}
@@ -214,10 +215,10 @@ CustomRect {
id: appName
anchors.left: image.right
anchors.leftMargin: Appearance.spacing.small
anchors.leftMargin: Tokens.spacing.small
anchors.top: parent.top
animate: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
maximumLineCount: 1
opacity: root.expanded ? 1 : 0
text: appNameMetrics.elidedText
@@ -233,7 +234,7 @@ CustomRect {
id: appNameMetrics
elide: Text.ElideRight
elideWidth: expandBtn.x - time.width - timeSep.width - summary.x - Appearance.spacing.small * 3
elideWidth: expandBtn.x - time.width - timeSep.width - summary.x - Tokens.spacing.small * 3
font: appName.font
text: root.modelData.appName
}
@@ -242,10 +243,10 @@ CustomRect {
id: summary
anchors.left: image.right
anchors.leftMargin: Appearance.spacing.small
anchors.leftMargin: Tokens.spacing.small
anchors.top: parent.top
animate: true
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
height: implicitHeight
maximumLineCount: 1
text: summaryMetrics.elidedText
@@ -259,9 +260,9 @@ CustomRect {
when: root.expanded
PropertyChanges {
body.anchors.topMargin: Appearance.spacing.extraSmall
bodyPreview.anchors.topMargin: Appearance.spacing.extraSmall
summary.anchors.topMargin: Appearance.spacing.extraSmall
body.anchors.topMargin: Tokens.spacing.extraSmall
bodyPreview.anchors.topMargin: Tokens.spacing.extraSmall
summary.anchors.topMargin: Tokens.spacing.extraSmall
summary.maximumLineCount: undefined
}
@@ -289,7 +290,7 @@ CustomRect {
id: summaryMetrics
elide: Text.ElideRight
elideWidth: expandBtn.x - time.width - timeSep.width - summary.x - Appearance.spacing.small * 3
elideWidth: expandBtn.x - time.width - timeSep.width - summary.x - Tokens.spacing.small * 3
font: summary.font
text: root.modelData.summary
}
@@ -298,9 +299,9 @@ CustomRect {
id: timeSep
anchors.left: summary.right
anchors.leftMargin: Appearance.spacing.small
anchors.leftMargin: Tokens.spacing.small
anchors.top: parent.top
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
text: "•"
states: State {
@@ -322,11 +323,11 @@ CustomRect {
id: time
anchors.left: timeSep.right
anchors.leftMargin: Appearance.spacing.small
anchors.leftMargin: Tokens.spacing.small
anchors.top: parent.top
animate: true
color: DynamicColors.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.small
color: Colors.palette.m3onSurfaceVariant
font.pointSize: Tokens.font.size.small
horizontalAlignment: Text.AlignLeft
text: root.modelData.timeStr
}
@@ -336,13 +337,13 @@ CustomRect {
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: -Appearance.padding.extraSmall
anchors.topMargin: -Tokens.padding.extraSmall
implicitHeight: expandIcon.implicitHeight
implicitWidth: expandIcon.implicitHeight
StateLayer {
color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onSecondaryContainer : DynamicColors.palette.m3onSurface
radius: Appearance.rounding.full
color: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onSecondaryContainer : Colors.palette.m3onSurface
radius: Tokens.rounding.full
onClicked: root.expanded = !root.expanded
}
@@ -371,11 +372,11 @@ CustomRect {
anchors.left: summary.left
anchors.right: expandBtn.left
anchors.rightMargin: Appearance.spacing.small
anchors.rightMargin: Tokens.spacing.small
anchors.top: summary.bottom
animate: true
color: DynamicColors.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.small
color: Colors.palette.m3onSurfaceVariant
font.pointSize: Tokens.font.size.small
opacity: root.expanded ? 0 : 1
text: bodyPreviewMetrics.elidedText
textFormat: Text.MarkdownText
@@ -401,10 +402,10 @@ CustomRect {
anchors.left: summary.left
anchors.right: expandBtn.left
anchors.rightMargin: Appearance.spacing.small
anchors.rightMargin: Tokens.spacing.small
anchors.top: summary.bottom
animate: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
height: text ? implicitHeight : 0
opacity: root.expanded ? 1 : 0
text: root.modelData.body
@@ -432,9 +433,9 @@ CustomRect {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: body.bottom
anchors.topMargin: Appearance.spacing.small
anchors.topMargin: Tokens.spacing.small
opacity: root.expanded ? 1 : 0
spacing: Appearance.spacing.extraSmall
spacing: Tokens.spacing.extraSmall
Behavior on opacity {
Anim {
@@ -446,10 +447,10 @@ CustomRect {
enabled: root.expanded
fillWidth: root.modelData.actions.length === 0
icon: "close"
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3secondary : DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSurfaceVariant
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3secondary : Colors.layer(Colors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onSecondary : Colors.palette.m3onSurfaceVariant
isRound: true
padding: Appearance.padding.extraSmall
padding: Tokens.padding.extraSmall
shapeMorph: true
onClicked: root.modelData.close()
@@ -465,16 +466,16 @@ CustomRect {
fillWidth: true
font: {
const f = Qt.font(font);
f.pointSize = Appearance.font.size.small;
f.pointSize = Tokens.font.size.small;
return f;
}
implicitWidth: label.implicitWidth
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3secondary : DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSurfaceVariant
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3secondary : Colors.layer(Colors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onSecondary : Colors.palette.m3onSurfaceVariant
isRound: true
label.anchors.centerIn: undefined
label.anchors.left: left
label.anchors.margins: Appearance.padding.normal
label.anchors.margins: Tokens.padding.normal
label.anchors.right: right
label.anchors.verticalCenter: verticalCenter
label.elide: Text.ElideRight
@@ -490,11 +491,11 @@ CustomRect {
enabled: root.expanded
fillWidth: root.modelData.actions.length === 0
icon: copyTimer.running ? "inventory" : "content_copy"
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3secondary : DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSurfaceVariant
inactiveColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3secondary : Colors.layer(Colors.palette.m3surfaceContainerHighest, 2)
inactiveOnColor: root.modelData.urgency === NotificationUrgency.Critical ? Colors.palette.m3onSecondary : Colors.palette.m3onSurfaceVariant
isRound: true
label.animate: true
padding: Appearance.padding.extraSmall
padding: Tokens.padding.extraSmall
shapeMorph: true
onClicked: {
+7 -6
View File
@@ -1,7 +1,8 @@
import qs.Components
import qs.Config
import ZShell.Config
import QtQuick
import QtQuick.Layouts
import qs.Services
Item {
id: root
@@ -13,13 +14,13 @@ Item {
id: layout
anchors.fill: parent
spacing: Appearance.spacing.small
spacing: Tokens.spacing.small
CustomRect {
Layout.fillHeight: true
Layout.fillWidth: true
color: DynamicColors.tPalette.m3surfaceContainerLow
radius: Appearance.rounding.smallest
color: Colors.tPalette.m3surfaceContainerLow
radius: Tokens.rounding.smallest
NotifDock {
props: root.props
@@ -29,8 +30,8 @@ Item {
CustomRect {
Layout.fillWidth: true
Layout.topMargin: Appearance.padding.normal - layout.spacing
color: DynamicColors.tPalette.m3outlineVariant
Layout.topMargin: Tokens.padding.normal - layout.spacing
color: Colors.tPalette.m3outlineVariant
implicitHeight: 1
}
}
+7 -8
View File
@@ -1,12 +1,13 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import qs.Daemons
import qs.Modules
import Quickshell
import QtQuick
import QtQuick.Layouts
import qs.Services
CustomRect {
id: root
@@ -19,7 +20,7 @@ CustomRect {
required property var visibilities
color: {
const c = root.modelData?.urgency === "critical" ? DynamicColors.palette.m3secondaryContainer : DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 2);
const c = root.modelData?.urgency === "critical" ? Colors.palette.m3secondaryContainer : Colors.layer(Colors.palette.m3surfaceContainerHigh, 2);
return expanded ? c : Qt.alpha(c, 0);
}
implicitHeight: nonAnimHeight
@@ -28,8 +29,6 @@ CustomRect {
Behavior on implicitHeight {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
states: State {
@@ -63,7 +62,7 @@ CustomRect {
anchors.left: parent.left
anchors.top: parent.top
color: root.modelData?.urgency === "critical" ? DynamicColors.palette.m3onSecondaryContainer : DynamicColors.palette.m3onSurface
color: root.modelData?.urgency === "critical" ? Colors.palette.m3onSecondaryContainer : Colors.palette.m3onSurface
elide: Text.ElideRight
maximumLineCount: 1
text: root.modelData?.summary ?? ""
@@ -90,7 +89,7 @@ CustomRect {
shouldBeActive: !root.expanded
sourceComponent: CustomText {
color: root.modelData?.urgency === "critical" ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3outline
color: root.modelData?.urgency === "critical" ? Colors.palette.m3secondary : Colors.palette.m3outline
elide: Text.ElideRight
text: String(root.modelData?.body ?? "").replace(/\n/g, " ")
textFormat: Text.StyledText
@@ -106,7 +105,7 @@ CustomRect {
sourceComponent: CustomText {
animate: true
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
font.pointSize: 11
text: root.modelData?.timeStr ?? ""
}
@@ -130,7 +129,7 @@ CustomRect {
id: body
Layout.fillWidth: true
color: root.modelData?.urgency === "critical" ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3onSurface
color: root.modelData?.urgency === "critical" ? Colors.palette.m3secondary : Colors.palette.m3onSurface
text: String(root.modelData?.body ?? "").replace(/(.)\n(?!\n)/g, "$1\n\n") || qsTr("No body given")
textFormat: Text.MarkdownText
wrapMode: Text.WordWrap
@@ -1,13 +1,14 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Daemons
import Quickshell
import Quickshell.Widgets
import QtQuick
import QtQuick.Layouts
import qs.Services
Item {
id: root
@@ -49,21 +50,17 @@ Item {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: implicitWidth + (actionStateLayer.pressed ? 18 : 0)
color: DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHighest, 4)
color: Colors.layer(Colors.palette.m3surfaceContainerHighest, 4)
implicitHeight: actionInner.implicitHeight + 5 * 2
implicitWidth: actionInner.implicitWidth + 5 * 2
radius: actionStateLayer.pressed ? 6 / 2 : 6
Behavior on Layout.preferredWidth {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
Behavior on radius {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
@@ -105,7 +102,7 @@ Item {
MaterialIcon {
animate: action.modelData.isCopy ?? false
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
text: action.modelData.isCopy ? "content_copy" : "close"
}
}
@@ -122,7 +119,7 @@ Item {
id: textComp
CustomText {
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
text: action.modelData.text
}
}
+8 -11
View File
@@ -1,13 +1,14 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Daemons
import Quickshell
import Quickshell.Widgets
import QtQuick
import QtQuick.Layouts
import qs.Services
Item {
id: root
@@ -17,7 +18,7 @@ Item {
required property var visibilities
anchors.fill: parent
anchors.margins: Appearance.padding.normal
anchors.margins: Tokens.padding.normal
Component.onCompleted: NotifServer.list.forEach(n => n.popup = false)
@@ -36,7 +37,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: root.notifCount > 0 ? 0 : -width - titleText.anchors.leftMargin
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
font.family: "CaskaydiaCove NF"
font.pointSize: 13
font.weight: 500
@@ -60,7 +61,7 @@ Item {
anchors.leftMargin: 7
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.family: "CaskaydiaCove NF"
font.pointSize: 13
@@ -87,7 +88,6 @@ Item {
Behavior on opacity {
Anim {
duration: MaterialEasing.expressiveEffectsTime
}
}
sourceComponent: ColumnLayout {
@@ -95,7 +95,7 @@ Item {
CustomText {
Layout.alignment: Qt.AlignHCenter
color: DynamicColors.palette.m3outlineVariant
color: Colors.palette.m3outlineVariant
font.family: "CaskaydiaCove NF"
font.pointSize: 18
font.weight: 500
@@ -156,20 +156,17 @@ Item {
Loader {
active: opacity > 0
anchors.bottom: parent.bottom
anchors.margins: Appearance.padding.normal
anchors.margins: Tokens.padding.normal
anchors.right: parent.right
opacity: root.notifCount > 0 ? 1 : 0
scale: root.notifCount > 0 ? 1 : 0.5
Behavior on opacity {
Anim {
duration: MaterialEasing.expressiveEffectsTime
}
}
Behavior on scale {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
sourceComponent: IconButton {
@@ -178,7 +175,7 @@ Item {
font.pointSize: Math.round(18 * 1.2)
icon: "clear_all"
padding: 8
radius: Appearance.rounding.full
radius: Tokens.rounding.full
onClicked: clearTimer.start()
+11 -11
View File
@@ -4,7 +4,7 @@ import Quickshell
import QtQuick
import ZShell.Components
import qs.Components
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Daemons
@@ -21,8 +21,8 @@ LazyListView {
cacheBuffer: 400
implicitHeight: contentHeight
readyDelay: 1
removeDuration: Appearance.anim.durations.normal
spacing: Appearance.spacing.small
removeDuration: Tokens.anim.durations.normal
spacing: Tokens.spacing.small
useCustomViewport: true
viewport: Qt.rect(0, container.contentY, width, container.height)
@@ -59,22 +59,22 @@ LazyListView {
}
Behavior on scale {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
}
Behavior on x {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
}
Behavior on y {
enabled: notif.LazyListView.ready
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
}
@@ -153,8 +153,8 @@ LazyListView {
Anim {
id: contentYAnim
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
property: "contentY"
target: root.container
}
+17 -20
View File
@@ -1,7 +1,7 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Daemons
import qs.Helpers
@@ -9,6 +9,7 @@ import Quickshell
import Quickshell.Services.Notifications
import QtQuick
import QtQuick.Layouts
import qs.Services
CustomRect {
id: root
@@ -41,9 +42,9 @@ CustomRect {
anchors.left: parent?.left
anchors.right: parent?.right
clip: true
color: DynamicColors.layer(DynamicColors.palette.m3surfaceContainer, 2)
color: Colors.layer(Colors.palette.m3surfaceContainer, 2)
implicitHeight: content.implicitHeight + 10 * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
Component.onDestruction: {
if (notifCount === 0 && expanded)
@@ -91,7 +92,7 @@ CustomRect {
id: materialIconComp
MaterialIcon {
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : root.urgency === NotificationUrgency.Low ? DynamicColors.palette.m3onSurface : DynamicColors.palette.m3onSecondaryContainer
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : root.urgency === NotificationUrgency.Low ? Colors.palette.m3onSurface : Colors.palette.m3onSecondaryContainer
font.pointSize: 18
text: Icons.getNotifIcon(root.notifs[0]?.summary, root.urgency)
}
@@ -99,8 +100,8 @@ CustomRect {
CustomClippingRect {
anchors.fill: parent
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3error : root.urgency === NotificationUrgency.Low ? DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 3) : DynamicColors.palette.m3secondaryContainer
radius: Appearance.rounding.full
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3error : root.urgency === NotificationUrgency.Low ? Colors.layer(Colors.palette.m3surfaceContainerHigh, 3) : Colors.palette.m3secondaryContainer
radius: Tokens.rounding.full
Loader {
anchors.centerIn: parent
@@ -114,10 +115,10 @@ CustomRect {
anchors.right: parent.right
sourceComponent: CustomRect {
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3error : root.urgency === NotificationUrgency.Low ? DynamicColors.palette.m3surfaceContainerHigh : DynamicColors.palette.m3secondaryContainer
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3error : root.urgency === NotificationUrgency.Low ? Colors.palette.m3surfaceContainerHigh : Colors.palette.m3secondaryContainer
implicitHeight: Config.notifs.sizes.badge
implicitWidth: Config.notifs.sizes.badge
radius: Appearance.rounding.full
radius: Tokens.rounding.full
CustomIcon {
anchors.centerIn: parent
@@ -151,7 +152,7 @@ CustomRect {
CustomText {
Layout.fillWidth: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
font.pointSize: 11
text: root.modelData
@@ -159,19 +160,19 @@ CustomRect {
CustomText {
animate: true
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
font.pointSize: 11
text: root.notifs.find(n => !n.closed)?.timeStr ?? ""
}
CustomRect {
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3error : DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 3)
implicitHeight: groupCount.implicitHeight + Appearance.padding.small
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3error : Colors.layer(Colors.palette.m3surfaceContainerHigh, 3)
implicitHeight: groupCount.implicitHeight + Tokens.padding.small
implicitWidth: expandBtn.implicitWidth + 7 * 2
radius: Appearance.rounding.full
radius: Tokens.rounding.full
StateLayer {
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : DynamicColors.palette.m3onSurface
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : Colors.palette.m3onSurface
onClicked: {
root.toggleExpand(!root.expanded);
@@ -189,7 +190,7 @@ CustomRect {
Layout.leftMargin: 10 / 2
animate: true
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : DynamicColors.palette.m3onSurface
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : Colors.palette.m3onSurface
font.pointSize: 11
text: root.notifCount
}
@@ -197,20 +198,16 @@ CustomRect {
MaterialIcon {
Layout.rightMargin: -10 / 2
// Layout.topMargin: root.expanded ? -Math.floor(7 / 2) : 0
color: root.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3onError : DynamicColors.palette.m3onSurface
color: root.urgency === NotificationUrgency.Critical ? Colors.palette.m3onError : Colors.palette.m3onSurface
rotation: root.expanded ? 180 : 0
text: "expand_more"
Behavior on Layout.topMargin {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
Behavior on rotation {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
}
@@ -5,7 +5,7 @@ import QtQuick
import QtQuick.Layouts
import ZShell.Components
import qs.Components
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Daemons
@@ -25,8 +25,8 @@ LazyListView {
cacheBuffer: 400
implicitHeight: contentHeight
readyDelay: 1
removeDuration: Appearance.anim.durations.normal
spacing: Math.round(Appearance.spacing.small / 2)
removeDuration: Tokens.anim.durations.normal
spacing: Math.round(Tokens.spacing.small / 2)
useCustomViewport: true
viewport: {
tWatcher.transform; // mapToItem is not reactive so use this to trigger updates
@@ -64,16 +64,12 @@ LazyListView {
}
Behavior on x {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
Behavior on y {
enabled: notif.LazyListView.ready
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
@@ -1,7 +1,8 @@
import qs.Components
import qs.Config
import ZShell.Config
import QtQuick
import QtQuick.Shapes
import qs.Services
ShapePath {
id: root
@@ -12,7 +13,7 @@ ShapePath {
required property var sidebar
required property Wrapper wrapper
fillColor: DynamicColors.palette.m3surface
fillColor: Colors.palette.m3surface
strokeWidth: -1
Behavior on fillColor {
@@ -4,8 +4,9 @@ import Quickshell
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
import ZShell.Config
import qs.Helpers
import qs.Services
CustomRect {
id: root
@@ -14,29 +15,29 @@ CustomRect {
required property PersistentProperties visibilities
Layout.fillWidth: true
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: layout.implicitHeight + layout.anchors.margins * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
ColumnLayout {
id: layout
anchors.fill: parent
anchors.margins: Appearance.padding.large
spacing: Appearance.spacing.normal
anchors.margins: Tokens.padding.large
spacing: Tokens.spacing.normal
RowLayout {
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
z: 1
CustomRect {
color: Recorder.running ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3secondaryContainer
color: Recorder.running ? Colors.palette.m3secondary : Colors.palette.m3secondaryContainer
implicitHeight: {
const h = icon.implicitHeight + Appearance.padding.smaller * 2;
const h = icon.implicitHeight + Tokens.padding.smaller * 2;
return h - (h % 2);
}
implicitWidth: implicitHeight
radius: Appearance.rounding.full
radius: Tokens.rounding.full
MaterialIcon {
id: icon
@@ -44,8 +45,8 @@ CustomRect {
anchors.centerIn: parent
anchors.horizontalCenterOffset: -0.5
anchors.verticalCenterOffset: 1.5
color: Recorder.running ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSecondaryContainer
font.pointSize: Appearance.font.size.large
color: Recorder.running ? Colors.palette.m3onSecondary : Colors.palette.m3onSecondaryContainer
font.pointSize: Tokens.font.size.large
text: "screen_record"
}
}
@@ -57,15 +58,15 @@ CustomRect {
CustomText {
Layout.fillWidth: true
elide: Text.ElideRight
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: qsTr("Screen Recorder")
}
CustomText {
Layout.fillWidth: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: Recorder.paused ? qsTr("Recording paused") : Recorder.running ? qsTr("Recording running") : qsTr("Recording off")
}
}
@@ -132,16 +133,16 @@ CustomRect {
SequentialAnimation {
ParallelAnimation {
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardAccel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardAccel
property: "scale"
target: listOrControls
to: 0.7
}
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardAccel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardAccel
property: "opacity"
target: listOrControls
to: 0
@@ -165,16 +166,16 @@ CustomRect {
ParallelAnimation {
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardDecel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardDecel
property: "scale"
target: listOrControls
to: 1
}
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardDecel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardDecel
property: "opacity"
target: listOrControls
to: 1
@@ -198,13 +199,13 @@ CustomRect {
id: recordingControls
RowLayout {
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
CustomRect {
color: Recorder.paused ? DynamicColors.palette.m3tertiary : DynamicColors.palette.m3error
implicitHeight: recText.implicitHeight + Appearance.padding.smaller * 2
implicitWidth: recText.implicitWidth + Appearance.padding.normal * 2
radius: Appearance.rounding.full
color: Recorder.paused ? Colors.palette.m3tertiary : Colors.palette.m3error
implicitHeight: recText.implicitHeight + Tokens.padding.smaller * 2
implicitWidth: recText.implicitWidth + Tokens.padding.normal * 2
radius: Tokens.rounding.full
Behavior on implicitWidth {
Anim {
@@ -216,15 +217,15 @@ CustomRect {
running: !Recorder.paused
Anim {
duration: Appearance.anim.durations.large
easing.bezierCurve: Appearance.anim.curves.emphasizedAccel
duration: Tokens.anim.durations.large
easing.bezierCurve: Tokens.anim.curves.emphasizedAccel
from: 1
to: 0
}
Anim {
duration: Appearance.anim.durations.extraLarge
easing.bezierCurve: Appearance.anim.curves.emphasizedDecel
duration: Tokens.anim.durations.extraLarge
easing.bezierCurve: Tokens.anim.curves.emphasizedDecel
from: 0
to: 1
}
@@ -235,14 +236,14 @@ CustomRect {
anchors.centerIn: parent
animate: true
color: Recorder.paused ? DynamicColors.palette.m3onTertiary : DynamicColors.palette.m3onError
color: Recorder.paused ? Colors.palette.m3onTertiary : Colors.palette.m3onError
font.family: Appearance.font.family.mono
text: Recorder.paused ? "PAUSED" : "REC"
}
}
CustomText {
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: {
const elapsed = Recorder.elapsed;
@@ -266,7 +267,7 @@ CustomRect {
IconButton {
checked: Recorder.paused
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
icon: Recorder.paused ? "play_arrow" : "pause"
isToggle: true
label.animate: true
@@ -279,10 +280,10 @@ CustomRect {
}
IconButton {
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
icon: "stop"
inactiveColor: DynamicColors.palette.m3error
inactiveOnColor: DynamicColors.palette.m3onError
inactiveColor: Colors.palette.m3error
inactiveOnColor: Colors.palette.m3onError
onClicked: Recorder.stop()
}
@@ -8,7 +8,8 @@ import ZShell.Models
import qs.Components
import qs.Helpers
import qs.Paths
import qs.Config
import ZShell.Config
import qs.Services
ColumnLayout {
id: root
@@ -25,18 +26,18 @@ ColumnLayout {
onClicked: root.props.recordingListExpanded = !root.props.recordingListExpanded
RowLayout {
spacing: Appearance.spacing.smaller
spacing: Tokens.spacing.smaller
MaterialIcon {
Layout.alignment: Qt.AlignVCenter
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
text: "list"
}
CustomText {
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: qsTr("Recordings")
}
@@ -54,9 +55,9 @@ ColumnLayout {
id: list
Layout.fillWidth: true
Layout.rightMargin: -Appearance.spacing.small
Layout.rightMargin: -Tokens.spacing.small
clip: true
implicitHeight: (Appearance.font.size.larger + Appearance.padding.small) * (root.props.recordingListExpanded ? 10 : 3)
implicitHeight: (Tokens.font.size.larger + Tokens.padding.small) * (root.props.recordingListExpanded ? 10 : 3)
CustomScrollBar.vertical: CustomScrollBar {
flickable: list
@@ -82,15 +83,15 @@ ColumnLayout {
anchors.left: list.contentItem.left
anchors.right: list.contentItem.right
anchors.rightMargin: Appearance.spacing.small
spacing: Appearance.spacing.small / 2
anchors.rightMargin: Tokens.spacing.small
spacing: Tokens.spacing.small / 2
Component.onCompleted: baseName = modelData.baseName
CustomText {
Layout.fillWidth: true
Layout.rightMargin: Appearance.spacing.small / 2
color: DynamicColors.palette.m3onSurfaceVariant
Layout.rightMargin: Tokens.spacing.small / 2
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
text: {
const time = recording.baseName;
@@ -165,13 +166,13 @@ ColumnLayout {
}
}
sourceComponent: ColumnLayout {
spacing: Appearance.spacing.small
spacing: Tokens.spacing.small
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
Layout.preferredHeight: root.props.recordingListExpanded ? implicitHeight : 0
color: DynamicColors.palette.m3outline
font.pointSize: Appearance.font.size.extraLarge
color: Colors.palette.m3outline
font.pointSize: Tokens.font.size.extraLarge
opacity: root.props.recordingListExpanded ? 1 : 0
scale: root.props.recordingListExpanded ? 1 : 0
text: "scan_delete"
@@ -191,12 +192,12 @@ ColumnLayout {
}
RowLayout {
spacing: Appearance.spacing.smaller
spacing: Tokens.spacing.smaller
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: !root.props.recordingListExpanded ? implicitWidth : 0
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
opacity: !root.props.recordingListExpanded ? 1 : 0
scale: !root.props.recordingListExpanded ? 1 : 0
text: "scan_delete"
@@ -216,7 +217,7 @@ ColumnLayout {
}
CustomText {
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
text: qsTr("No recordings found")
}
}
@@ -4,9 +4,10 @@ import QtQuick
import QtQuick.Layouts
import ZShell.Components
import qs.Components
import qs.Config
import ZShell.Config
import qs.Helpers
import qs.Daemons
import qs.Services
CustomRect {
id: root
@@ -15,16 +16,16 @@ CustomRect {
required property var visibilities
Layout.fillWidth: true
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: layout.implicitHeight + 18 * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
ButtonRow {
id: layout
anchors.fill: parent
anchors.margins: 18
spacing: Appearance.spacing.extraSmall
spacing: Tokens.spacing.extraSmall
Toggle {
checked: Network.wifiEnabled
@@ -2,7 +2,7 @@ import Quickshell
import QtQuick
import QtQuick.Layouts
import qs.Modules.Notifications.Sidebar.Utils.Cards
import qs.Config
import ZShell.Config
Item {
id: root
@@ -1,22 +1,21 @@
import qs.Components
import qs.Config
import ZShell.Config
import qs.Helpers
import QtQuick
import QtQuick.Layouts
import qs.Services
CustomRect {
id: root
Layout.fillWidth: true
clip: true
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: layout.implicitHeight + (IdleInhibitor.enabled ? activeChip.implicitHeight + activeChip.anchors.topMargin : 0) + 18 * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
Behavior on implicitHeight {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
@@ -30,16 +29,16 @@ CustomRect {
spacing: 10
CustomRect {
color: IdleInhibitor.enabled ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3secondaryContainer
color: IdleInhibitor.enabled ? Colors.palette.m3secondary : Colors.palette.m3secondaryContainer
implicitHeight: icon.implicitHeight + 7 * 2
implicitWidth: implicitHeight
radius: Appearance.rounding.full
radius: Tokens.rounding.full
MaterialIcon {
id: icon
anchors.centerIn: parent
color: IdleInhibitor.enabled ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSecondaryContainer
color: IdleInhibitor.enabled ? Colors.palette.m3onSecondary : Colors.palette.m3onSecondaryContainer
font.pointSize: 18
text: "coffee"
}
@@ -58,7 +57,7 @@ CustomRect {
CustomText {
Layout.fillWidth: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
font.pointSize: 11
text: IdleInhibitor.enabled ? qsTr("Preventing sleep mode") : qsTr("Normal power management")
@@ -85,13 +84,10 @@ CustomRect {
Behavior on anchors.bottomMargin {
Anim {
duration: MaterialEasing.expressiveEffectsTime
easing.bezierCurve: MaterialEasing.expressiveEffects
}
}
Behavior on opacity {
Anim {
duration: MaterialEasing.expressiveEffectsTime
}
}
Behavior on scale {
@@ -99,16 +95,16 @@ CustomRect {
}
}
sourceComponent: CustomRect {
color: DynamicColors.palette.m3primary
color: Colors.palette.m3primary
implicitHeight: activeText.implicitHeight + 10 * 2
implicitWidth: activeText.implicitWidth + 10 * 2
radius: Appearance.rounding.full
radius: Tokens.rounding.full
CustomText {
id: activeText
anchors.centerIn: parent
color: DynamicColors.palette.m3onPrimary
color: Colors.palette.m3onPrimary
font.pointSize: Math.round(11 * 0.9)
text: qsTr("Active since %1").arg(Qt.formatTime(IdleInhibitor.enabledSince, Config.services.useTwelveHourClock ? "hh:mm a" : "hh:mm"))
}
@@ -1,7 +1,7 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import Quickshell
import QtQuick
@@ -30,8 +30,8 @@ Item {
Behavior on offsetScale {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
}
+4 -4
View File
@@ -1,7 +1,7 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import ZShell.Config
import QtQuick
Item {
@@ -21,8 +21,8 @@ Item {
Behavior on offsetScale {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Tokens.anim.curves.expressiveDefaultSpatial
}
}
@@ -37,7 +37,7 @@ Item {
anchors.top: parent.top
sourceComponent: Content {
implicitWidth: Config.sidebar.sizes.width - Appearance.padding.smaller * 2
implicitWidth: Config.sidebar.sizes.width - Tokens.padding.smaller * 2
props: root.props
visibilities: root.visibilities
}
+1 -1
View File
@@ -1,6 +1,6 @@
import QtQuick
import qs.Components
import qs.Config
import ZShell.Config
Item {
id: root