From 50ca7c10d1ab2f775b48bb0521fdb3bcb631ecf5 Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 11:03:15 +0100 Subject: [PATCH 1/6] fix battery icon centering issue --- modules/Bar/Battery.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/Bar/Battery.qml b/modules/Bar/Battery.qml index 6e196e5..184c4ef 100644 --- a/modules/Bar/Battery.qml +++ b/modules/Bar/Battery.qml @@ -22,7 +22,6 @@ Loader { implicitHeight: Settings.config.barHeight Row { anchors.centerIn: batRow - anchors.verticalCenter: batRow.verticalCenter CustomText { id: batText text: Math.round(UPower.displayDevice.percentage * 100) + "%" @@ -30,9 +29,9 @@ Loader { IconImage { id: batIcon - anchors.verticalCenter: batRow.verticalCenter + anchors.verticalCenter: parent.verticalCenter source: Quickshell.iconPath(UPower.displayDevice.iconName) - implicitSize: 14 + implicitSize: 12 } } } From f4f652ed8a3f0daff8096f250f448ca55023c4b0 Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 12:00:55 +0100 Subject: [PATCH 2/6] add systray --- modules/Bar/Bar.qml | 1 + modules/Bar/SystemTray.qml | 18 ++++++++++++++++++ modules/Bar/TrayItem.qml | 36 ++++++++++++++++++++++++++++++++++++ shell.qml | 1 + 4 files changed, 56 insertions(+) diff --git a/modules/Bar/Bar.qml b/modules/Bar/Bar.qml index 113b20b..24d36fa 100644 --- a/modules/Bar/Bar.qml +++ b/modules/Bar/Bar.qml @@ -44,6 +44,7 @@ Variants { anchors.verticalCenter: parent.verticalCenter Clock {} Volume {} + SystemTray {} Battery {} } } diff --git a/modules/Bar/SystemTray.qml b/modules/Bar/SystemTray.qml index e69de29..4f9b638 100644 --- a/modules/Bar/SystemTray.qml +++ b/modules/Bar/SystemTray.qml @@ -0,0 +1,18 @@ +import Quickshell.Services.SystemTray +import QtQuick +import "." +import "../../settings/" + +Item { + id: root + implicitWidth: trayRow.implicitWidth + implicitHeight: Settings.config.barHeight + Row { + id: trayRow + Repeater { + id: trayRepeater + model: SystemTray.items + delegate: TrayItem {} + } + } +} diff --git a/modules/Bar/TrayItem.qml b/modules/Bar/TrayItem.qml index e69de29..94cdd38 100644 --- a/modules/Bar/TrayItem.qml +++ b/modules/Bar/TrayItem.qml @@ -0,0 +1,36 @@ +import QtQuick +import Quickshell +import Quickshell.Services.SystemTray +import Quickshell.Widgets + +MouseArea { + id: root + property var bar: root.QsWindow.window + required property SystemTrayItem modelData + + acceptedButtons: Qt.LeftButton | Qt.RightButton + implicitWidth: 16 + implicitHeight: 16 + + onClicked: event => { + if (event.button === Qt.LeftButton) { + modelData.activate(); + } else if (modelData.hasMenu) { + menu.open(); + } + } + + QsMenuAnchor { + id: menu + menu: root.modelData.hasMenu ? root.modelData.menu : null + anchor.item: root + } + + IconImage { + id: trayIcon + width: parent.implicitWidth + height: parent.implicitHeight + source: root.modelData.icon + anchors.centerIn: parent + } +} diff --git a/shell.qml b/shell.qml index 1d1ac4d..79d7067 100644 --- a/shell.qml +++ b/shell.qml @@ -1,3 +1,4 @@ +//@ pragma UseQApplication import Quickshell import QtQuick import "./settings/" From 051c1815b3afe781e79693746bfbfff48ee2131d Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 14:44:10 +0100 Subject: [PATCH 3/6] add material icons to status --- modules/Bar/Bar.qml | 15 ++++++----- modules/Bar/Battery.qml | 53 ++++++++++++++++++++++++++++---------- modules/Bar/SystemTray.qml | 3 +++ modules/Bar/Title.qml | 5 ++-- modules/Bar/Volume.qml | 43 ++++++++++++++++++++++++++----- modules/Bar/Workspaces.qml | 12 +++++---- reusables/CustomIcon.qml | 11 ++++++++ reusables/CustomText.qml | 1 + settings/Settings.qml | 2 +- settings/config.json | 2 +- 10 files changed, 113 insertions(+), 34 deletions(-) create mode 100644 reusables/CustomIcon.qml diff --git a/modules/Bar/Bar.qml b/modules/Bar/Bar.qml index 24d36fa..e0da133 100644 --- a/modules/Bar/Bar.qml +++ b/modules/Bar/Bar.qml @@ -19,13 +19,14 @@ Variants { right: true } implicitHeight: Settings.config.barHeight - Row { + RowLayout { id: leftStuff spacing: 10 anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter Workspaces { - property var screen: modelData + property var screen: root.modelData + Layout.leftMargin: 10 } Title { anchors.verticalCenter: parent.verticalCenter @@ -35,17 +36,19 @@ Variants { Row { id: centerStuff anchors.centerIn: parent + Clock {} } - Row { + RowLayout { id: rightStuff - spacing: 10 + spacing: 20 anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - Clock {} Volume {} - SystemTray {} Battery {} + SystemTray { + Layout.rightMargin: 10 + } } } } diff --git a/modules/Bar/Battery.qml b/modules/Bar/Battery.qml index 184c4ef..456eca5 100644 --- a/modules/Bar/Battery.qml +++ b/modules/Bar/Battery.qml @@ -12,28 +12,55 @@ Loader { sourceComponent: Item { id: root + + property bool frame1: UPower.displayDevice.percentage <= 0.16 + property bool frame2: UPower.displayDevice.percentage < 0.32 + property bool frame3: UPower.displayDevice.percentage < 0.48 + property bool frame4: UPower.displayDevice.percentage < 0.74 + property bool frame5: UPower.displayDevice.percentage < 0.90 + property bool frame6: UPower.displayDevice.percentage <= 1 + property bool charging: UPower.displayDevice.Charging + + function getBatteryIcon() { + if (charging) { + return "battery_android_frame_bolt" + } + if (frame1) { + return "battery_android_frame_1"; + } + if (frame2) { + return "battery_android_frame_2"; + } + if (frame3) { + return "battery_android_frame_3"; + } + if (frame4) { + return "battery_android_frame_4"; + } + if (frame5) { + return "battery_android_frame_5"; + } + if (frame6) { + return "battery_android_frame_full"; + } + } + implicitWidth: batRow.implicitWidth implicitHeight: Settings.config.barHeight - Rectangle { - id: batRow - implicitWidth: batText.implicitWidth + batIcon.implicitWidth + 10 - color: "transparent" - implicitHeight: Settings.config.barHeight Row { - anchors.centerIn: batRow + anchors.centerIn: parent + id: batRow + spacing: 5 CustomText { id: batText text: Math.round(UPower.displayDevice.percentage * 100) + "%" } - - IconImage { - id: batIcon - anchors.verticalCenter: parent.verticalCenter - source: Quickshell.iconPath(UPower.displayDevice.iconName) - implicitSize: 12 + CustomIcon { + id: batIcon + text: root.getBatteryIcon() } + } } - } } diff --git a/modules/Bar/SystemTray.qml b/modules/Bar/SystemTray.qml index 4f9b638..a1edcbc 100644 --- a/modules/Bar/SystemTray.qml +++ b/modules/Bar/SystemTray.qml @@ -7,8 +7,11 @@ Item { id: root implicitWidth: trayRow.implicitWidth implicitHeight: Settings.config.barHeight + anchors.verticalCenter: parent.verticalCenter + Row { id: trayRow + anchors.verticalCenter: parent.verticalCenter Repeater { id: trayRepeater model: SystemTray.items diff --git a/modules/Bar/Title.qml b/modules/Bar/Title.qml index 94db03f..9244545 100644 --- a/modules/Bar/Title.qml +++ b/modules/Bar/Title.qml @@ -6,13 +6,14 @@ import "../../" import Quickshell.Hyprland Item { - id: textContainer + id: root + readonly property var activeWindow: Hyprland.activeToplevel implicitWidth: text.implicitWidth implicitHeight: Settings.config.barHeight CustomText { id: text anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - text: Hyprland.activeToplevel ? Hyprland.activeToplevel.title : "Desktop" + text: root.activeWindow?.activated ?Hyprland.activeToplevel.title : "Desktop" } } diff --git a/modules/Bar/Volume.qml b/modules/Bar/Volume.qml index a11df03..e67bac4 100644 --- a/modules/Bar/Volume.qml +++ b/modules/Bar/Volume.qml @@ -7,14 +7,45 @@ import "../../" Item { id: root - implicitWidth: volumeText.implicitWidth + 10 + property var sink: Pipewire.defaultAudioSink + function getVolumeIcon() { + // Safety check: if Pipewire is dead or sink is missing + if (!sink) + return "volume_off"; + + // If muted, show the hush icon + if (sink.audio.muted) + return "volume_off"; + + // Volume is usually 0.0 to 1.0 (0% to 100%) + const vol = sink.audio.volume; + + if (vol <= 0.25) + return "volume_mute"; + if (vol < 0.75) + return "volume_down"; + if (vol <= 1.00) + return "volume_up"; + + // If it's loud, prepare the ears! + return "volume_up"; + } + implicitWidth: textRow.implicitWidth + 10 implicitHeight: Settings.config.barHeight - CustomText { - id: volumeText + Row { anchors.centerIn: parent - PwObjectTracker { - objects: Pipewire.ready ? Pipewire.defaultAudioSink : [] + spacing: 5 + id: textRow + CustomText { + id: volumeText + PwObjectTracker { + objects: Pipewire.ready ? Pipewire.defaultAudioSink : [] + } + text: Pipewire.ready ? Math.round(root.sink.audio.volume * 100) + "%" : "failure" + } + CustomIcon { + id: volumeIcon + text: root.getVolumeIcon() } - text: Pipewire.ready ? Pipewire.defaultAudioSink.audio.muted ? "mut: " + Math.round(Pipewire.defaultAudioSink.audio.volume * 100) + "%" : "vol: " + Math.round(Pipewire.defaultAudioSink.audio.volume * 100) + "%" : "failure" } } diff --git a/modules/Bar/Workspaces.qml b/modules/Bar/Workspaces.qml index 8a43e63..399567c 100644 --- a/modules/Bar/Workspaces.qml +++ b/modules/Bar/Workspaces.qml @@ -13,7 +13,7 @@ Item { Row { id: workspaceRow anchors.centerIn: parent - spacing: 0 // Slightly increase spacing between workspace buttons + spacing: 10 // Slightly increase spacing between workspace buttons Repeater { id: wsRepeater @@ -21,6 +21,7 @@ Item { anchors.centerIn: parent Rectangle { id: workspaceNumber + radius: 20 property bool isOnMon: { if (!modelData) return false; @@ -34,14 +35,15 @@ Item { } required property var modelData - width: isOnMon ? Settings.config.barHeight + 10 : 0 - height: isOnMon ? Settings.config.barHeight : 0 - color: modelData.active ? Colors.foreground : "transparent" + width: isOnMon ? Settings.config.barHeight - Settings.config.barHeight / 2 : 0 + height: isOnMon ? Settings.config.barHeight - Settings.config.barHeight / 2 : 0 + color: "transparent" CustomText { anchors.centerIn: workspaceNumber text: parent.modelData.id - color: parent.modelData.active ? Colors.background : Colors.foreground // Set contrasting color for workspace number + color: Colors.foreground // Set contrasting color for workspace number + opacity: workspaceNumber.modelData.focused ? 1 : 0.5 } MouseArea { anchors.fill: parent diff --git a/reusables/CustomIcon.qml b/reusables/CustomIcon.qml new file mode 100644 index 0000000..6fe6e49 --- /dev/null +++ b/reusables/CustomIcon.qml @@ -0,0 +1,11 @@ +import QtQuick +import "../settings/" +import "../" + +Text { + property real fill + font.family: "Material Symbols Rounded" + color: Colors.foreground + font.pixelSize: Settings.config.fontSize + 2 + font.weight: 500 +} diff --git a/reusables/CustomText.qml b/reusables/CustomText.qml index 196d4d0..639e2ff 100644 --- a/reusables/CustomText.qml +++ b/reusables/CustomText.qml @@ -3,6 +3,7 @@ import "../settings/" import "../" Text { + font.weight: 900 color: Colors.foreground font.family: Settings.config.font font.pixelSize: Settings.config.fontSize diff --git a/settings/Settings.qml b/settings/Settings.qml index 0a7e202..1c7c9f7 100644 --- a/settings/Settings.qml +++ b/settings/Settings.qml @@ -22,7 +22,7 @@ Singleton { adapter: JsonAdapter { id: settingsAdapter property var currentWall: "/home/lucy/.walls/faris.jpg" - property var barHeight: 18 + property var barHeight: 28 property var font: "JetBrainsMono Nerd Font" property var fontSize: 12 property var rounding: 10 diff --git a/settings/config.json b/settings/config.json index 03a50c7..6552962 100644 --- a/settings/config.json +++ b/settings/config.json @@ -1,5 +1,5 @@ { - "barHeight": 18, + "barHeight": 28, "currentWall": "/home/lucy/.walls/faris.jpg", "floating": true, "font": "JetBrainsMono Nerd Font", From 32a385bfb75726fb9ffb84dcc465c8bbee7eae2a Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 15:15:44 +0100 Subject: [PATCH 4/6] add charging indicator for statusIcons --- :w | 15 +++++++++++++++ modules/Bar/Bar.qml | 6 ++---- modules/Bar/Battery.qml | 30 ++++++++++++++---------------- modules/Bar/SystemTray.qml | 1 - modules/Bar/Volume.qml | 8 +++++--- reusables/CustomIcon.qml | 6 +++++- reusables/CustomText.qml | 5 ++++- settings/Settings.qml | 4 ++-- settings/config.json | 4 ++-- 9 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 :w diff --git a/:w b/:w new file mode 100644 index 0000000..422c0ce --- /dev/null +++ b/:w @@ -0,0 +1,15 @@ +import QtQuick +import "../settings/" +import "../" + +Text { + property real fill + font.family: "Material Symbols Rounded" + color: Colors.foreground + font.pixelSize: Settings.config.fontSize + 2 + font.variableAxes: { + wght: 700, + + } + +} diff --git a/modules/Bar/Bar.qml b/modules/Bar/Bar.qml index e0da133..1e12357 100644 --- a/modules/Bar/Bar.qml +++ b/modules/Bar/Bar.qml @@ -28,9 +28,7 @@ Variants { property var screen: root.modelData Layout.leftMargin: 10 } - Title { - anchors.verticalCenter: parent.verticalCenter - } + Title {} } Row { @@ -47,7 +45,7 @@ Variants { Volume {} Battery {} SystemTray { - Layout.rightMargin: 10 + Layout.rightMargin: 10 } } } diff --git a/modules/Bar/Battery.qml b/modules/Bar/Battery.qml index 456eca5..004ac50 100644 --- a/modules/Bar/Battery.qml +++ b/modules/Bar/Battery.qml @@ -19,11 +19,10 @@ Loader { property bool frame4: UPower.displayDevice.percentage < 0.74 property bool frame5: UPower.displayDevice.percentage < 0.90 property bool frame6: UPower.displayDevice.percentage <= 1 - property bool charging: UPower.displayDevice.Charging function getBatteryIcon() { - if (charging) { - return "battery_android_frame_bolt" + if (UPower.displayDevice.state == UPowerDeviceState.Charging) { + return "battery_android_frame_bolt"; } if (frame1) { return "battery_android_frame_1"; @@ -48,19 +47,18 @@ Loader { implicitWidth: batRow.implicitWidth implicitHeight: Settings.config.barHeight - Row { - anchors.centerIn: parent - id: batRow - spacing: 5 - CustomText { - id: batText - text: Math.round(UPower.displayDevice.percentage * 100) + "%" - } - CustomIcon { - id: batIcon - text: root.getBatteryIcon() - } - + Row { + id: batRow + anchors.verticalCenter: parent.verticalCenter + spacing: 5 + CustomText { + id: batText + text: Math.round(UPower.displayDevice.percentage * 100) + "%" + } + CustomIcon { + id: batIcon + text: root.getBatteryIcon() } } + } } diff --git a/modules/Bar/SystemTray.qml b/modules/Bar/SystemTray.qml index a1edcbc..73e0737 100644 --- a/modules/Bar/SystemTray.qml +++ b/modules/Bar/SystemTray.qml @@ -7,7 +7,6 @@ Item { id: root implicitWidth: trayRow.implicitWidth implicitHeight: Settings.config.barHeight - anchors.verticalCenter: parent.verticalCenter Row { id: trayRow diff --git a/modules/Bar/Volume.qml b/modules/Bar/Volume.qml index e67bac4..36fc862 100644 --- a/modules/Bar/Volume.qml +++ b/modules/Bar/Volume.qml @@ -33,19 +33,21 @@ Item { implicitWidth: textRow.implicitWidth + 10 implicitHeight: Settings.config.barHeight Row { + id: textRow anchors.centerIn: parent spacing: 5 - id: textRow CustomText { id: volumeText PwObjectTracker { objects: Pipewire.ready ? Pipewire.defaultAudioSink : [] } text: Pipewire.ready ? Math.round(root.sink.audio.volume * 100) + "%" : "failure" + opacity: root.sink.audio.muted ? 0.5 : 1 } CustomIcon { - id: volumeIcon - text: root.getVolumeIcon() + id: volumeIcon + opacity: root.sink.audio.muted ? 0.5 : 1 + text: root.getVolumeIcon() } } } diff --git a/reusables/CustomIcon.qml b/reusables/CustomIcon.qml index 6fe6e49..52f1c9d 100644 --- a/reusables/CustomIcon.qml +++ b/reusables/CustomIcon.qml @@ -7,5 +7,9 @@ Text { font.family: "Material Symbols Rounded" color: Colors.foreground font.pixelSize: Settings.config.fontSize + 2 - font.weight: 500 + font.variableAxes: ({ + FILL: fill.toFixed(1), + GRAD: 200, + wght: 400 + }) } diff --git a/reusables/CustomText.qml b/reusables/CustomText.qml index 639e2ff..1c54b5e 100644 --- a/reusables/CustomText.qml +++ b/reusables/CustomText.qml @@ -3,8 +3,11 @@ import "../settings/" import "../" Text { - font.weight: 900 color: Colors.foreground font.family: Settings.config.font font.pixelSize: Settings.config.fontSize + font.variableAxes: ({ + GRAD: 200, + wght: 400 + }) } diff --git a/settings/Settings.qml b/settings/Settings.qml index 1c7c9f7..92e6f52 100644 --- a/settings/Settings.qml +++ b/settings/Settings.qml @@ -23,8 +23,8 @@ Singleton { id: settingsAdapter property var currentWall: "/home/lucy/.walls/faris.jpg" property var barHeight: 28 - property var font: "JetBrainsMono Nerd Font" - property var fontSize: 12 + property var font: "SauceCodePro Nerd Font Mono" + property var fontSize: 14 property var rounding: 10 property var wallDir: "/home/lucy/.walls" property bool floating: true diff --git a/settings/config.json b/settings/config.json index 6552962..d6ce790 100644 --- a/settings/config.json +++ b/settings/config.json @@ -2,8 +2,8 @@ "barHeight": 28, "currentWall": "/home/lucy/.walls/faris.jpg", "floating": true, - "font": "JetBrainsMono Nerd Font", - "fontSize": 12, + "font": "SauceCodePro Nerd Font Mono", + "fontSize": 14, "paddingSides": 10, "paddingTop": 10, "rounding": 10, From 216bfbaa9fcc21f43956b7a16ea0427013f1acc6 Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 20:39:21 +0100 Subject: [PATCH 5/6] add tweaks to icons and switch to google sans font --- Colors.qml | 38 +++++++++++++++++++------------------- modules/Bar/Title.qml | 2 +- reusables/CustomIcon.qml | 4 +--- settings/Settings.qml | 4 ++-- settings/config.json | 4 ++-- 5 files changed, 25 insertions(+), 27 deletions(-) diff --git a/Colors.qml b/Colors.qml index 42dff64..e26a0dc 100644 --- a/Colors.qml +++ b/Colors.qml @@ -5,25 +5,25 @@ import Quickshell Singleton { id: customColors // Core Backgrounds - readonly property color background: "#1D2021" - readonly property color foreground: "#D5C4A1" - readonly property color cursor: "#D5C4A1" + readonly property color background: "#141B1E" + readonly property color foreground: "#DADADA" + readonly property color cursor: "#DADADA" // The 16 Colors of the Apocalypse - readonly property color color0: "#1D2021" - readonly property color color1: "#FB4934" - readonly property color color2: "#B8BB26" - readonly property color color3: "#FABD2F" - readonly property color color4: "#83A598" - readonly property color color5: "#D3869B" - readonly property color color6: "#8EC07C" - readonly property color color7: "#D5C4A1" - readonly property color color8: "#665C54" - readonly property color color9: "#FB4934" - readonly property color color10: "#B8BB26" - readonly property color color11: "#FABD2F" - readonly property color color12: "#83A598" - readonly property color color13: "#D3869B" - readonly property color color14: "#8EC07C" - readonly property color color15: "#FBF1C7" + readonly property color color0: "#232A2D" + readonly property color color1: "#E57474" + readonly property color color2: "#8CCF7E" + readonly property color color3: "#E5C76B" + readonly property color color4: "#67B0E8" + readonly property color color5: "#C47FD5" + readonly property color color6: "#6CBFBF" + readonly property color color7: "#B3B9B8" + readonly property color color8: "#2D3437" + readonly property color color9: "#EF7E7E" + readonly property color color10: "#96D988" + readonly property color color11: "#F4D67A" + readonly property color color12: "#71BAF2" + readonly property color color13: "#CE89DF" + readonly property color color14: "#67CBE7" + readonly property color color15: "#BDC3C2" } diff --git a/modules/Bar/Title.qml b/modules/Bar/Title.qml index 9244545..453b892 100644 --- a/modules/Bar/Title.qml +++ b/modules/Bar/Title.qml @@ -14,6 +14,6 @@ Item { id: text anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - text: root.activeWindow?.activated ?Hyprland.activeToplevel.title : "Desktop" + text: root.activeWindow?.activated ? Hyprland.activeToplevel.title : "Desktop" } } diff --git a/reusables/CustomIcon.qml b/reusables/CustomIcon.qml index 52f1c9d..f8ddafe 100644 --- a/reusables/CustomIcon.qml +++ b/reusables/CustomIcon.qml @@ -3,12 +3,10 @@ import "../settings/" import "../" Text { - property real fill font.family: "Material Symbols Rounded" color: Colors.foreground - font.pixelSize: Settings.config.fontSize + 2 + font.pixelSize: Settings.config.fontSize + 1 font.variableAxes: ({ - FILL: fill.toFixed(1), GRAD: 200, wght: 400 }) diff --git a/settings/Settings.qml b/settings/Settings.qml index 92e6f52..02dd731 100644 --- a/settings/Settings.qml +++ b/settings/Settings.qml @@ -21,9 +21,9 @@ Singleton { adapter: JsonAdapter { id: settingsAdapter - property var currentWall: "/home/lucy/.walls/faris.jpg" + property var currentWall: "/home/lucy/.walls/frierensuff.png" property var barHeight: 28 - property var font: "SauceCodePro Nerd Font Mono" + property var font: "Google Sans Code" property var fontSize: 14 property var rounding: 10 property var wallDir: "/home/lucy/.walls" diff --git a/settings/config.json b/settings/config.json index d6ce790..e4c5765 100644 --- a/settings/config.json +++ b/settings/config.json @@ -1,8 +1,8 @@ { "barHeight": 28, - "currentWall": "/home/lucy/.walls/faris.jpg", + "currentWall": "/home/lucy/.walls/frierensuff.png", "floating": true, - "font": "SauceCodePro Nerd Font Mono", + "font": "Google Sans Code", "fontSize": 14, "paddingSides": 10, "paddingTop": 10, From 5507646719bb47084ab14e5a6338dd20fc33e090 Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 16 Jan 2026 21:35:03 +0100 Subject: [PATCH 6/6] fix some stuff and simplify shit --- Colors.qml | 38 +++++++++++++++++++------------------- modules/Bar/Bar.qml | 11 ++++++----- modules/Bar/Battery.qml | 2 +- modules/Bar/SystemTray.qml | 1 + modules/Bar/Title.qml | 4 +--- modules/Bar/Volume.qml | 12 ++++++------ 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Colors.qml b/Colors.qml index e26a0dc..c1ba3b8 100644 --- a/Colors.qml +++ b/Colors.qml @@ -5,25 +5,25 @@ import Quickshell Singleton { id: customColors // Core Backgrounds - readonly property color background: "#141B1E" - readonly property color foreground: "#DADADA" - readonly property color cursor: "#DADADA" + readonly property color background: "#161616" + readonly property color foreground: "#FFFFFF" + readonly property color cursor: "#6F6F6F" // The 16 Colors of the Apocalypse - readonly property color color0: "#232A2D" - readonly property color color1: "#E57474" - readonly property color color2: "#8CCF7E" - readonly property color color3: "#E5C76B" - readonly property color color4: "#67B0E8" - readonly property color color5: "#C47FD5" - readonly property color color6: "#6CBFBF" - readonly property color color7: "#B3B9B8" - readonly property color color8: "#2D3437" - readonly property color color9: "#EF7E7E" - readonly property color color10: "#96D988" - readonly property color color11: "#F4D67A" - readonly property color color12: "#71BAF2" - readonly property color color13: "#CE89DF" - readonly property color color14: "#67CBE7" - readonly property color color15: "#BDC3C2" + readonly property color color0: "#262626" + readonly property color color1: "#EE5396" + readonly property color color2: "#42BE65" + readonly property color color3: "#FFE97B" + readonly property color color4: "#33B1FF" + readonly property color color5: "#FF7EB6" + readonly property color color6: "#3DDBD9" + readonly property color color7: "#DDE1E6" + readonly property color color8: "#393939" + readonly property color color9: "#EE5396" + readonly property color color10: "#42BE65" + readonly property color color11: "#FFE97B" + readonly property color color12: "#33B1FF" + readonly property color color13: "#FF7EB6" + readonly property color color14: "#3DDBD9" + readonly property color color15: "#FFFFFF" } diff --git a/modules/Bar/Bar.qml b/modules/Bar/Bar.qml index 1e12357..d5fef64 100644 --- a/modules/Bar/Bar.qml +++ b/modules/Bar/Bar.qml @@ -18,15 +18,18 @@ Variants { left: true right: true } + margins { + left: 10 + right: 10 + } implicitHeight: Settings.config.barHeight RowLayout { id: leftStuff - spacing: 10 + spacing: 20 anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter Workspaces { property var screen: root.modelData - Layout.leftMargin: 10 } Title {} } @@ -44,9 +47,7 @@ Variants { anchors.verticalCenter: parent.verticalCenter Volume {} Battery {} - SystemTray { - Layout.rightMargin: 10 - } + SystemTray {} } } } diff --git a/modules/Bar/Battery.qml b/modules/Bar/Battery.qml index 004ac50..b3a22aa 100644 --- a/modules/Bar/Battery.qml +++ b/modules/Bar/Battery.qml @@ -44,7 +44,7 @@ Loader { } } - implicitWidth: batRow.implicitWidth + implicitWidth: batRow.width implicitHeight: Settings.config.barHeight Row { diff --git a/modules/Bar/SystemTray.qml b/modules/Bar/SystemTray.qml index 73e0737..574ecec 100644 --- a/modules/Bar/SystemTray.qml +++ b/modules/Bar/SystemTray.qml @@ -7,6 +7,7 @@ Item { id: root implicitWidth: trayRow.implicitWidth implicitHeight: Settings.config.barHeight + visible: trayRepeater.count > 0 Row { id: trayRow diff --git a/modules/Bar/Title.qml b/modules/Bar/Title.qml index 453b892..d5a032e 100644 --- a/modules/Bar/Title.qml +++ b/modules/Bar/Title.qml @@ -1,8 +1,6 @@ -import Quickshell import QtQuick import "../../reusables/" import "../../settings/" -import "../../" import Quickshell.Hyprland Item { @@ -14,6 +12,6 @@ Item { id: text anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - text: root.activeWindow?.activated ? Hyprland.activeToplevel.title : "Desktop" + text: root.activeWindow ? Hyprland.activeToplevel.title : "Desktop" } } diff --git a/modules/Bar/Volume.qml b/modules/Bar/Volume.qml index 36fc862..759ecc6 100644 --- a/modules/Bar/Volume.qml +++ b/modules/Bar/Volume.qml @@ -7,6 +7,8 @@ import "../../" Item { id: root + implicitWidth: textRow.width + implicitHeight: Settings.config.barHeight property var sink: Pipewire.defaultAudioSink function getVolumeIcon() { // Safety check: if Pipewire is dead or sink is missing @@ -30,11 +32,9 @@ Item { // If it's loud, prepare the ears! return "volume_up"; } - implicitWidth: textRow.implicitWidth + 10 - implicitHeight: Settings.config.barHeight Row { id: textRow - anchors.centerIn: parent + anchors.verticalCenter: parent.verticalCenter spacing: 5 CustomText { id: volumeText @@ -42,12 +42,12 @@ Item { objects: Pipewire.ready ? Pipewire.defaultAudioSink : [] } text: Pipewire.ready ? Math.round(root.sink.audio.volume * 100) + "%" : "failure" - opacity: root.sink.audio.muted ? 0.5 : 1 + opacity: Pipewire.ready ? root.sink.audio.muted ? 0.5 : 1 : 0 } CustomIcon { id: volumeIcon - opacity: root.sink.audio.muted ? 0.5 : 1 - text: root.getVolumeIcon() + opacity: Pipewire.ready ? root.sink.audio.muted ? 0.5 : 1 : 0 + text: Pipewire.ready ? root.getVolumeIcon() : null } } }