From 7e02c87b91a7bdcd228b2d87ca69c27a16163e37 Mon Sep 17 00:00:00 2001 From: zach Date: Sun, 23 Aug 2026 17:00:41 +0200 Subject: [PATCH 1/8] README.md --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6612e46..68a0760 100644 --- a/README.md +++ b/README.md @@ -47,16 +47,25 @@ Core requirements: - Hyprland (Wayland session integration) - Python 3 for scheme/wallpaper tooling -Make sure to have the newest Quickshell version! As of writing, version `0.2.0.r136.gfb08ece-1`. +Here's a list of package dependencies, names are from arch-packages so they +might differ slightly depending on your distro. + +``` +python python-pillow python-materialyoucolor libnotify cava +app2unit wl-clipboard dconf cliphist python-typer qt6-canvaspainter +python-build python-installer python-hatch python-hatch-vcs cmake ninja +``` + +Make sure to have the newest Quickshell version! As of writing, version `0.3.1.r1.g0fed22a-1`. Used by major features (install as needed for your setup): - `app2unit` (launcher app execution) - `nmcli` (network integration) - `brightnessctl`, `ddcutil` (brightness controls) -- `wl-copy`, `swappy` (picker/screenshot flow) -- `libqalculate` (launcher calculator) +- `wl-copy` (clipboard integration) - `PipeWire` + audio stack + `aubio`/`cava` paths for media visualization +- `libqalculate` (launcher calculator) - `gsettings` (optional GTK dark/light mode sync) ## Build and Install @@ -180,7 +189,7 @@ Important state/cache files: - `~/.local/state/zshell/apps.sqlite` - `~/.cache/zshell/` -Config is hot-reloaded and saved through `Config/Config.qml` serializers. Top-level sections include: +Config is hot-reloaded and saved through the `Config` singleton. Top-level sections include: - `general` - `appearance` @@ -265,7 +274,6 @@ Note: Template rendering (Jinja2) applies generated colors to `~/.config/zshell/ ### `screenshot` — area picker - `start` — open interactive area picker -- `start-freeze` — freeze screen then pick ### `wallpaper` — wallpaper management From 5598f4f435b87bdb143cd39229e5474852d1c731 Mon Sep 17 00:00:00 2001 From: zach Date: Sun, 23 Aug 2026 17:01:27 +0200 Subject: [PATCH 2/8] README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 68a0760..1ca52b4 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ It includes a configurable top bar, launcher, notifications daemon + sidebar, wa ## Highlights - Multi-window shell layout driven by `Drawers/Windows.qml` and panel/interactions wrappers -- Configurable bar entries and popouts (audio, tray, network, power, resources, clock, active window) - Launcher with app DB frequency tracking, action commands, fuzzy search modes, and wallpaper/scheme flows - Notification server with persistence (`~/.local/state/zshell/notifs.json`) and sidebar UI - Dynamic Material 3 palette generation from wallpaper, optional template rendering, terminal sequence application From 9370284c6beba2abcc25750b8dcadbc4e906bfe0 Mon Sep 17 00:00:00 2001 From: inorishio Date: Sun, 30 Aug 2026 16:35:20 +0200 Subject: [PATCH 3/8] changed old appearance vars for the lockscreen + warning hunting for the polkit --- Modules/Lock/Center.qml | 12 ++++++------ Modules/Lock/InputField.qml | 2 +- Modules/Lock/NotifDock.qml | 4 ++-- Modules/Polkit/Polkit.qml | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Modules/Lock/Center.qml b/Modules/Lock/Center.qml index fc98815..06ad24b 100644 --- a/Modules/Lock/Center.qml +++ b/Modules/Lock/Center.qml @@ -29,7 +29,7 @@ ColumnLayout { Layout.alignment: Qt.AlignVCenter color: Colors.palette.m3secondary font.bold: true - font.family: Appearance.font.family.clock + font.family: Config.appearance.font.family.clock font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale) text: Time.hourStr } @@ -38,7 +38,7 @@ ColumnLayout { Layout.alignment: Qt.AlignVCenter color: Colors.palette.m3primary font.bold: true - font.family: Appearance.font.family.clock + font.family: Config.appearance.font.family.clock font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale) text: ":" } @@ -47,7 +47,7 @@ ColumnLayout { Layout.alignment: Qt.AlignVCenter color: Colors.palette.m3secondary font.bold: true - font.family: Appearance.font.family.clock + font.family: Config.appearance.font.family.clock font.pointSize: Math.floor(Tokens.font.size.extraLarge * 3 * root.centerScale) text: Time.minuteStr } @@ -58,7 +58,7 @@ ColumnLayout { Layout.topMargin: -Tokens.padding.large * 2 color: Colors.palette.m3tertiary font.bold: true - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono font.pointSize: Math.floor(Tokens.font.size.extraLarge * root.centerScale) text: Time.format("dddd, d MMMM yyyy") } @@ -226,7 +226,7 @@ ColumnLayout { anchors.right: parent.right animateProp: "opacity" color: Colors.palette.m3onSurfaceVariant - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono horizontalAlignment: Qt.AlignHCenter lineHeight: 1.2 opacity: shouldBeVisible && !message.msg ? 1 : 0 @@ -295,7 +295,7 @@ ColumnLayout { anchors.left: parent.left anchors.right: parent.right color: Colors.palette.m3error - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono font.pointSize: Tokens.font.size.small horizontalAlignment: Qt.AlignHCenter opacity: 0 diff --git a/Modules/Lock/InputField.qml b/Modules/Lock/InputField.qml index e211280..67511c3 100644 --- a/Modules/Lock/InputField.qml +++ b/Modules/Lock/InputField.qml @@ -41,7 +41,7 @@ Item { anchors.centerIn: parent animate: true color: root.pam.passwd.active ? Colors.palette.m3secondary : Colors.palette.m3outline - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono font.pointSize: Tokens.font.size.normal opacity: root.buffer ? 0 : 1 text: { diff --git a/Modules/Lock/NotifDock.qml b/Modules/Lock/NotifDock.qml index 0511ebf..3b468a9 100644 --- a/Modules/Lock/NotifDock.qml +++ b/Modules/Lock/NotifDock.qml @@ -24,7 +24,7 @@ ColumnLayout { Layout.fillWidth: true color: Colors.palette.m3outline elide: Text.ElideRight - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono font.weight: 500 text: NotifServer.list.length > 0 ? qsTr("%1 notification%2").arg(NotifServer.list.length).arg(NotifServer.list.length === 1 ? "" : "s") : qsTr("Notifications") } @@ -66,7 +66,7 @@ ColumnLayout { CustomText { Layout.alignment: Qt.AlignHCenter color: Colors.palette.m3outlineVariant - font.family: Appearance.font.family.mono + font.family: Config.appearance.font.family.mono font.pointSize: Tokens.font.size.large font.weight: 500 text: qsTr("No Notifications") diff --git a/Modules/Polkit/Polkit.qml b/Modules/Polkit/Polkit.qml index d6e749a..eb57159 100644 --- a/Modules/Polkit/Polkit.qml +++ b/Modules/Polkit/Polkit.qml @@ -130,7 +130,7 @@ Scope { Layout.preferredWidth: Math.min(600, contentWidth) font.bold: true font.pointSize: 16 - text: polkitAgent.flow?.message + text: polkitAgent.flow?.message ?? "" wrapMode: Text.WordWrap } @@ -168,7 +168,7 @@ Scope { id: showPassCheckbox Layout.alignment: Qt.AlignLeft - checked: polkitAgent.flow?.responseVisible + checked: polkitAgent.flow?.responseVisible ?? false text: "Show Password" onCheckedChanged: { From 9df3a6481517d58364aff6599004a8ad90996512 Mon Sep 17 00:00:00 2001 From: zach Date: Sun, 30 Aug 2026 22:20:39 +0200 Subject: [PATCH 4/8] fix: lowercase battery device state --- Modules/Bar/Components/StatusIcons/UPowerWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Bar/Components/StatusIcons/UPowerWidget.qml b/Modules/Bar/Components/StatusIcons/UPowerWidget.qml index 0b1ab6d..8cdc2a7 100644 --- a/Modules/Bar/Components/StatusIcons/UPowerWidget.qml +++ b/Modules/Bar/Components/StatusIcons/UPowerWidget.qml @@ -40,7 +40,7 @@ Item { anchors.centerIn: parent sourceComponent: BatteryIcon { - devState: Battery.deviceStateString + devState: Battery.deviceStateString.toLowerCase() percentage: Battery.currentPerc } } From 42f02f4dd2486176e82ccc26f73ad886c195f0e8 Mon Sep 17 00:00:00 2001 From: zach Date: Sun, 30 Aug 2026 23:33:50 +0200 Subject: [PATCH 5/8] test aur From e5e52802de443cfe5a4755ca0831192b448a639b Mon Sep 17 00:00:00 2001 From: zach Date: Sun, 30 Aug 2026 23:49:53 +0200 Subject: [PATCH 6/8] test aur From ed7ec326b1600b39add954bde1e4fbdb5db9e3aa Mon Sep 17 00:00:00 2001 From: zach Date: Thu, 3 Sep 2026 16:15:55 +0200 Subject: [PATCH 7/8] fix: idlemonitors list value --- Modules/Lock/IdleMonitors.qml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Modules/Lock/IdleMonitors.qml b/Modules/Lock/IdleMonitors.qml index df2f1b0..af75788 100644 --- a/Modules/Lock/IdleMonitors.qml +++ b/Modules/Lock/IdleMonitors.qml @@ -2,6 +2,7 @@ pragma ComponentBehavior: Bound import Quickshell import Quickshell.Wayland +import QtQuick import ZShell.Internal import ZShell.Config import qs.Helpers @@ -30,12 +31,12 @@ Scope { Quickshell.execDetached(action); } - LidWatcher { - onAboutToSleep: root.lock.lock.locked = true - } + LidWatcher { + onAboutToSleep: root.lock.lock.locked = true + } Variants { - model: Config.general.idle.timeouts + model: Config.general.idle.timeouts.values IdleMonitor { required property var modelData From bd699e72a7451bf093892e6c38517bcff33e465a Mon Sep 17 00:00:00 2001 From: zach Date: Fri, 4 Sep 2026 19:43:13 +0200 Subject: [PATCH 8/8] fix: polkit width --- Modules/Polkit/Polkit.qml | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/Modules/Polkit/Polkit.qml b/Modules/Polkit/Polkit.qml index eb57159..7bff94e 100644 --- a/Modules/Polkit/Polkit.qml +++ b/Modules/Polkit/Polkit.qml @@ -73,20 +73,21 @@ Scope { // mask: Region { item: inputPanel } - Rectangle { + CustomRect { id: inputPanel anchors.centerIn: parent color: Colors.tPalette.m3surface - implicitHeight: layout.childrenRect.height + 28 - implicitWidth: layout.childrenRect.width + 32 + implicitHeight: layout.implicitHeight + layout.anchors.margins * 2 + implicitWidth: Math.max(layout.implicitWidth + layout.anchors.margins * 2, 450) opacity: 0 radius: Tokens.rounding.small * 2 ColumnLayout { id: layout - anchors.centerIn: parent + anchors.fill: parent + anchors.margins: Tokens.padding.medium RowLayout { id: contentRow @@ -147,8 +148,8 @@ Scope { TextField { id: passInput + Layout.fillWidth: true Layout.preferredHeight: 40 - Layout.preferredWidth: contentColumn.implicitWidth color: Colors.palette.m3onSurfaceVariant echoMode: polkitAgent.flow?.responseVisible ? TextInput.Normal : TextInput.Password placeholderText: polkitAgent.flow?.failed ? " Incorrect Password" : " Input Password" @@ -189,7 +190,8 @@ Scope { clip: true color: Colors.tPalette.m3surfaceContainerLow implicitHeight: 0 - radius: 16 + implicitWidth: textDetailsColumn.implicitWidth + textDetailsColumn.anchors.margins * 2 + radius: Tokens.rounding.medium visible: true Behavior on open { @@ -197,7 +199,8 @@ Scope { Anim { property: "implicitHeight" target: detailsPanel - to: !detailsPanel.open ? textDetailsColumn.childrenRect.height + 16 : 0 + to: !detailsPanel.open ? textDetailsColumn.implicitHeight + Tokens.padding.small * 2 : 0 + type: Anim.DefaultEffects } Anim { @@ -205,12 +208,6 @@ Scope { target: textDetailsColumn to: !detailsPanel.open ? 1 : 0 } - - Anim { - property: "scale" - target: textDetailsColumn - to: !detailsPanel.open ? 1 : 0.9 - } } } @@ -218,10 +215,9 @@ Scope { id: textDetailsColumn anchors.fill: parent - anchors.margins: 8 + anchors.margins: Tokens.padding.small opacity: 0 - scale: 0.9 - spacing: 8 + spacing: Tokens.spacing.small CustomText { text: `actionId: ${polkitAgent.flow?.actionId}` @@ -239,16 +235,17 @@ Scope { Layout.preferredWidth: contentRow.implicitWidth spacing: 8 - IconTextButton { + IconButton { id: detailsButton Layout.alignment: Qt.AlignLeft + horizontalPadding: Tokens.padding.medium icon: "info" inactiveColor: Colors.palette.m3surfaceContainer inactiveOnColor: Colors.palette.m3onSurface isRound: true shapeMorph: true - text: "Details" + verticalPadding: Tokens.padding.medium onClicked: { panelWindow.detailsOpen = !panelWindow.detailsOpen;