Compare commits

...

7 commits

Author SHA1 Message Date
Benjamin Palko
dc63a34fa1 widgets on pywal 2025-07-30 09:47:09 -04:00
Benjamin Palko
fed0d542f7 widgets on pipewire 2025-07-30 09:46:02 -04:00
Benjamin Palko
40742c8b13 widgets on notifications 2025-07-30 09:43:24 -04:00
Benjamin Palko
40c0fa883e widgets on network 2025-07-30 09:41:57 -04:00
Benjamin Palko
6cca8d7c5d memory widgets 2025-07-29 23:59:58 -04:00
Benjamin Palko
6dd436c239 gpu widgets 2025-07-29 23:58:52 -04:00
Benjamin Palko
b453efd778 need ref count 2025-07-29 23:58:42 -04:00
7 changed files with 50 additions and 129 deletions

View file

@ -1,29 +1,25 @@
import qs.config
import qs.constants
import qs.services
import qs.utils
import qs.widgets
import QtQuick import QtQuick
import Quickshell import QtQuick.Layouts
import "../../../config/"
import "../../../constants/"
import "../../../services/"
import "../../../styled/"
import "../../../utils/"
Clickable { StyledButton {
id: root id: root
property bool showTemp: false property bool showTemp: false
implicitWidth: row.width
implicitHeight: Dimensions.gpu.height
Ref {
service: SystemInfo
}
onClicked: { onClicked: {
root.showTemp = !root.showTemp; root.showTemp = !root.showTemp;
} }
Row { content: RowLayout {
id: row id: row
Ref {
service: SystemInfo
}
StyledText { StyledText {
id: icon id: icon
@ -31,19 +27,10 @@ Clickable {
font.pixelSize: Dimensions.gpu.iconSize font.pixelSize: Dimensions.gpu.iconSize
font.bold: true font.bold: true
text: Icons.gpu text: Icons.gpu
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.gpu.verticalPadding
bottomPadding: Dimensions.gpu.verticalPadding
leftPadding: Dimensions.gpu.horizontalPadding
} }
StyledText { StyledText {
id: text id: text
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.gpu.verticalPadding
bottomPadding: Dimensions.gpu.verticalPadding
rightPadding: Dimensions.gpu.horizontalPadding
font.pixelSize: Dimensions.gpu.fontSize font.pixelSize: Dimensions.gpu.fontSize

View file

@ -1,43 +1,26 @@
import qs.config
import qs.constants
import qs.services
import qs.utils
import qs.widgets
import QtQuick import QtQuick
import Quickshell import QtQuick.Layouts
import "../../../config/"
import "../../../constants/"
import "../../../services/"
import "../../../styled/"
import "../../../utils/"
StyledLabel { StyledLabel {
implicitWidth: childrenRect.width RowLayout {
implicitHeight: Dimensions.memory.height
Ref { Ref {
service: SystemInfo service: SystemInfo
} }
Row {
StyledText { StyledText {
id: icon
font.family: Theme.lucide.font.family font.family: Theme.lucide.font.family
font.pixelSize: Dimensions.memory.iconSize font.pixelSize: Dimensions.memory.iconSize
font.bold: true font.bold: true
text: Icons.memoryStick text: Icons.memoryStick
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.memory.verticalPadding
bottomPadding: Dimensions.memory.verticalPadding
leftPadding: Dimensions.memory.horizontalPadding
} }
StyledText { StyledText {
id: text id: text
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.memory.verticalPadding
bottomPadding: Dimensions.memory.verticalPadding
rightPadding: Dimensions.memory.horizontalPadding
font.pixelSize: Dimensions.memory.fontSize font.pixelSize: Dimensions.memory.fontSize
text: ` ${(SystemInfo.memPerc * 100).toFixed()}%` text: ` ${(SystemInfo.memPerc * 100).toFixed()}%`
} }
} }

View file

@ -1,24 +1,16 @@
import qs.config
import qs.constants
import qs.services
import qs.utils
import qs.widgets
import QtQuick import QtQuick
import Quickshell import QtQuick.Layouts
import "../../../config/"
import "../../../constants/"
import "../../../services/"
import "../../../styled/"
import "../../../utils/"
StyledLabel { StyledLabel {
id: root RowLayout {
implicitWidth: row.width
implicitHeight: Dimensions.network.height
Ref { Ref {
id: ref
service: NetworkService service: NetworkService
} }
Row {
id: row
StyledText { StyledText {
id: icon id: icon
@ -27,11 +19,6 @@ StyledLabel {
font.bold: true font.bold: true
text: Icons.wifiOff text: Icons.wifiOff
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.network.verticalPadding
bottomPadding: Dimensions.network.verticalPadding
leftPadding: Dimensions.network.horizontalPadding
states: [ states: [
State { State {
name: "high" name: "high"
@ -65,13 +52,7 @@ StyledLabel {
StyledText { StyledText {
id: text id: text
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.network.verticalPadding
bottomPadding: Dimensions.network.verticalPadding
rightPadding: Dimensions.network.horizontalPadding
font.pixelSize: Dimensions.network.fontSize font.pixelSize: Dimensions.network.fontSize
text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%` text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%`
} }
} }

View file

@ -1,21 +1,17 @@
import qs.config
import qs.constants
import qs.services
import qs.widgets
import QtQuick import QtQuick
import Quickshell.Io
import "../../../config/"
import "../../../constants/"
import "../../../services/"
import "../../../styled/"
Clickable { StyledButton {
id: clickable id: clickable
implicitWidth: text.width
implicitHeight: Dimensions.notifications.height
onClicked: { onClicked: {
Notifications.clear(); Notifications.clear();
} }
StyledText { content: StyledText {
id: text id: text
font.family: Theme.lucide.font.family font.family: Theme.lucide.font.family
@ -25,12 +21,6 @@ Clickable {
color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.notifications.verticalPadding
bottomPadding: Dimensions.notifications.verticalPadding
leftPadding: Dimensions.notifications.horizontalPadding
rightPadding: Dimensions.notifications.horizontalPadding
states: State { states: State {
when: Notifications.hasNotifications when: Notifications.hasNotifications
PropertyChanges { PropertyChanges {

View file

@ -1,16 +1,13 @@
import qs.config
import qs.widgets
import QtQuick import QtQuick
import Quickshell.Services.Pipewire import Quickshell.Services.Pipewire
import "../../../config/"
import "../../../styled/"
Clickable { StyledButton {
id: clickable id: clickable
property var sink: Pipewire.defaultAudioSink property var sink: Pipewire.defaultAudioSink
implicitWidth: text.width
implicitHeight: Dimensions.pipewire.height
PwObjectTracker { PwObjectTracker {
id: bound id: bound
objects: [clickable.sink] objects: [clickable.sink]
@ -18,7 +15,7 @@ Clickable {
onClicked: mouse => { onClicked: mouse => {
if (!sink) { if (!sink) {
return return;
} }
if (mouse.button == Qt.LeftButton) { if (mouse.button == Qt.LeftButton) {
sink.audio.muted = !sink?.audio.muted; sink.audio.muted = !sink?.audio.muted;
@ -56,20 +53,11 @@ Clickable {
} }
] ]
StyledText { content: StyledText {
id: text id: text
property string icon: " " property string icon: " "
text: `${icon} ${(clickable.sink?.audio.volume * 100).toFixed()}%` text: `${icon} ${(clickable.sink?.audio.volume * 100).toFixed()}%`
font.pixelSize: Dimensions.pipewire.fontSize font.pixelSize: Dimensions.pipewire.fontSize
color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.pipewire.verticalPadding
bottomPadding: Dimensions.pipewire.verticalPadding
leftPadding: Dimensions.pipewire.horizontalPadding
rightPadding: Dimensions.pipewire.horizontalPadding
} }
} }

View file

@ -1,20 +1,17 @@
import qs.config
import qs.constants
import qs.widgets
import QtQuick import QtQuick
import Quickshell.Io import Quickshell.Io
import "../../../config/"
import "../../../constants/"
import "../../../styled/"
Clickable { StyledButton {
id: clickable id: clickable
implicitWidth: text.width
implicitHeight: Dimensions.caffeine.height
onClicked: { onClicked: {
process.running = true; process.running = true;
} }
StyledText { content: StyledText {
id: text id: text
font.family: Theme.lucide.font.family font.family: Theme.lucide.font.family
@ -23,12 +20,6 @@ Clickable {
text: Icons.brickWall text: Icons.brickWall
color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent
anchors.verticalCenter: parent.verticalCenter
topPadding: Dimensions.caffeine.verticalPadding
bottomPadding: Dimensions.caffeine.verticalPadding
leftPadding: Dimensions.caffeine.horizontalPadding
rightPadding: Dimensions.caffeine.horizontalPadding
} }
Process { Process {

View file

@ -9,6 +9,7 @@ Singleton {
readonly property list<AccessPoint> networks: [] readonly property list<AccessPoint> networks: []
readonly property AccessPoint active: networks.find(n => n.active) ?? null readonly property AccessPoint active: networks.find(n => n.active) ?? null
property int refCount
reloadableId: "network" reloadableId: "network"