Merge branch 'main' into feat/wallpaper-picker-rework
C++ / fmt (pull_request) Successful in 8s
JS/TS / fmt (pull_request) Successful in 13s
JS/TS / lint (pull_request) Successful in 15s
Python / fmt (pull_request) Successful in 25s
Python / lint (pull_request) Successful in 28s
Python / test (pull_request) Successful in 55s
Python / typecheck (pull_request) Failing after 58s
Rust / fmt (pull_request) Successful in 44s
C++ / build (pull_request) Successful in 3m35s
Rust / build (pull_request) Successful in 1m53s
Python / buildcheck (pull_request) Successful in 2m36s
Rust / clippy (pull_request) Successful in 1m28s
C++ / clang-tidy (pull_request) Successful in 5m15s

This commit is contained in:
2026-08-14 19:18:15 +02:00
359 changed files with 5235 additions and 8203 deletions
+12 -11
View File
@@ -2,7 +2,8 @@ import QtQuick
import qs.Modules.Launcher.Services
import qs.Components
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -15,7 +16,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.modelData?.onClicked(root.list);
@@ -24,21 +25,21 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
MaterialIcon {
id: icon
anchors.verticalCenter: parent.verticalCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: root.modelData?.icon ?? ""
}
Item {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.normal
anchors.leftMargin: Tokens.spacing.normal
anchors.verticalCenter: icon.verticalCenter
implicitHeight: name.implicitHeight + desc.implicitHeight
implicitWidth: parent.width - icon.width
@@ -46,7 +47,7 @@ Item {
CustomText {
id: name
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
@@ -54,11 +55,11 @@ Item {
id: desc
anchors.top: name.bottom
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: root.modelData?.desc ?? ""
width: root.width - icon.width - Appearance.rounding.normal * 2
width: root.width - icon.width - Tokens.rounding.normal * 2
}
}
}
+12 -11
View File
@@ -4,8 +4,9 @@ import QtQuick
import qs.Modules.Launcher.Services
import qs.Components
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Services
Item {
id: root
@@ -18,7 +19,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
Apps.launch(root.modelData);
@@ -28,9 +29,9 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
IconImage {
id: icon
@@ -42,7 +43,7 @@ Item {
Item {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.normal
anchors.leftMargin: Tokens.spacing.normal
anchors.verticalCenter: icon.verticalCenter
implicitHeight: name.implicitHeight + comment.implicitHeight
implicitWidth: parent.width - icon.width
@@ -50,7 +51,7 @@ Item {
CustomText {
id: name
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
@@ -58,11 +59,11 @@ Item {
id: comment
anchors.top: name.bottom
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: (root.modelData?.comment || root.modelData?.genericName || root.modelData?.name) ?? ""
width: root.width - icon.width - Appearance.rounding.normal * 2
width: root.width - icon.width - Tokens.rounding.normal * 2
}
}
@@ -75,7 +76,7 @@ Item {
asynchronous: true
sourceComponent: MaterialIcon {
color: DynamicColors.palette.m3primary
color: Colors.palette.m3primary
fill: 1
text: "favorite"
}
+21 -20
View File
@@ -5,7 +5,8 @@ import QtQuick.Layouts
import qs.Components
import qs.Modules
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -23,7 +24,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.onClicked();
@@ -32,14 +33,14 @@ Item {
RowLayout {
anchors.left: parent.left
anchors.margins: Appearance.padding.larger
anchors.margins: Tokens.padding.larger
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
MaterialIcon {
Layout.alignment: Qt.AlignVCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: "function"
}
@@ -50,10 +51,10 @@ Item {
Layout.fillWidth: true
color: {
if (text.includes("error: ") || text.includes("warning: "))
return DynamicColors.palette.m3error;
return Colors.palette.m3error;
if (!root.math)
return DynamicColors.palette.m3onSurfaceVariant;
return DynamicColors.palette.m3onSurface;
return Colors.palette.m3onSurfaceVariant;
return Colors.palette.m3onSurface;
}
elide: Text.ElideLeft
text: root.math.length > 0 ? Qalculator.eval(root.math) : qsTr("Type an expression to calculate")
@@ -62,21 +63,21 @@ Item {
CustomRect {
Layout.alignment: Qt.AlignVCenter
clip: true
color: DynamicColors.palette.m3tertiary
implicitHeight: Math.max(label.implicitHeight, icon.implicitHeight) + Appearance.padding.small * 2
implicitWidth: (stateLayer.containsMouse ? label.implicitWidth + label.anchors.rightMargin : 0) + icon.implicitWidth + Appearance.padding.normal * 2
radius: Appearance.rounding.normal
color: Colors.palette.m3tertiary
implicitHeight: Math.max(label.implicitHeight, icon.implicitHeight) + Tokens.padding.small * 2
implicitWidth: (stateLayer.containsMouse ? label.implicitWidth + label.anchors.rightMargin : 0) + icon.implicitWidth + Tokens.padding.normal * 2
radius: Tokens.rounding.normal
Behavior on implicitWidth {
Anim {
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
easing.bezierCurve: Tokens.anim.curves.expressiveEffects
}
}
StateLayer {
id: stateLayer
color: DynamicColors.palette.m3onTertiary
color: Colors.palette.m3onTertiary
onClicked: {
Quickshell.execDetached(["app2unit", "--", ...Config.general.apps.terminal, "fish", "-C", `exec qalc -i '${root.math}'`]);
@@ -88,10 +89,10 @@ Item {
id: label
anchors.right: icon.left
anchors.rightMargin: Appearance.spacing.small
anchors.rightMargin: Tokens.spacing.small
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3onTertiary
font.pointSize: Appearance.font.size.normal
color: Colors.palette.m3onTertiary
font.pointSize: Tokens.font.size.normal
opacity: stateLayer.containsMouse ? 1 : 0
text: qsTr("Open in calculator")
@@ -105,10 +106,10 @@ Item {
id: icon
anchors.right: parent.right
anchors.rightMargin: Appearance.padding.normal
anchors.rightMargin: Tokens.padding.normal
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3onTertiary
font.pointSize: Appearance.font.size.large
color: Colors.palette.m3onTertiary
font.pointSize: Tokens.font.size.large
text: "open_in_new"
}
}
+14 -13
View File
@@ -1,7 +1,8 @@
import QtQuick
import qs.Components
import qs.Modules.Launcher.Services
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -14,7 +15,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.modelData?.onClicked(root.list);
@@ -23,36 +24,36 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
MaterialIcon {
id: icon
anchors.verticalCenter: parent.verticalCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: root.modelData?.icon ?? ""
}
Column {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.larger
anchors.leftMargin: Tokens.spacing.larger
anchors.verticalCenter: icon.verticalCenter
spacing: 0
width: parent.width - icon.width - anchors.leftMargin - (current.active ? current.width + Appearance.spacing.normal : 0)
width: parent.width - icon.width - anchors.leftMargin - (current.active ? current.width + Tokens.spacing.normal : 0)
CustomText {
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
CustomText {
anchors.left: parent.left
anchors.right: parent.right
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: root.modelData?.description ?? ""
}
}
@@ -65,8 +66,8 @@ Item {
anchors.verticalCenter: parent.verticalCenter
sourceComponent: MaterialIcon {
color: DynamicColors.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.large
color: Colors.palette.m3onSurfaceVariant
font.pointSize: Tokens.font.size.large
text: "check"
}
}