summaryrefslogtreecommitdiffstats
path: root/home-configuration/config/quickshell/modules
diff options
context:
space:
mode:
authorcoast <coasteen@proton.me>2026-09-07 07:22:32 +0330
committercoast <coasteen@proton.me>2026-09-07 07:22:32 +0330
commit38b9470f8d35ff235ecc240105a88b20456ecda9 (patch)
tree6b5238ffd6535b2932650d29b5922978d78e100b /home-configuration/config/quickshell/modules
parent7922ded35ff292e485c3369dab9726b9142ce526 (diff)
downloadnix-38b9470f8d35ff235ecc240105a88b20456ecda9.tar.gz
nix-38b9470f8d35ff235ecc240105a88b20456ecda9.tar.bz2
nix-38b9470f8d35ff235ecc240105a88b20456ecda9.tar.xz
nix-38b9470f8d35ff235ecc240105a88b20456ecda9.tar.zst
git commit -m "suicide"
Diffstat (limited to 'home-configuration/config/quickshell/modules')
-rw-r--r--home-configuration/config/quickshell/modules/bar/QuickControl.qml361
-rw-r--r--home-configuration/config/quickshell/modules/bar/Workspaces.qml26
2 files changed, 61 insertions, 326 deletions
diff --git a/home-configuration/config/quickshell/modules/bar/QuickControl.qml b/home-configuration/config/quickshell/modules/bar/QuickControl.qml
index ffe6f6b..4b54d22 100644
--- a/home-configuration/config/quickshell/modules/bar/QuickControl.qml
+++ b/home-configuration/config/quickshell/modules/bar/QuickControl.qml
@@ -1,7 +1,6 @@
import QtQuick
import QtQuick.Layouts
import Quickshell
-import Quickshell.Services.Pipewire
import Quickshell.Services.SystemTray
import "../../config.js" as Config
@@ -10,7 +9,10 @@ Rectangle {
property bool expanded: false
- implicitWidth: layout.implicitWidth + 24
+ implicitWidth: expanded
+ ? layout.implicitWidth + 24
+ : dotsContainer.implicitWidth + 24
+
implicitHeight: Config.blockHeight
radius: Config.blockRadius
@@ -48,213 +50,19 @@ Rectangle {
}
}
- Component.onCompleted: {
- console.info("QuickControl: loaded")
- console.info(
- "QuickControl: tray items =",
- SystemTray.items.values.length
- )
-
- if (Pipewire.defaultAudioSink) {
- console.info(
- "QuickControl: audio sink =",
- Pipewire.defaultAudioSink.name
- )
-
- if (Pipewire.defaultAudioSink.audio) {
- console.info(
- "QuickControl: volume =",
- Math.round(
- Pipewire.defaultAudioSink.audio.volume * 100
- ) + "%",
- "muted =",
- Pipewire.defaultAudioSink.audio.muted
- )
- }
- } else {
- console.warn("QuickControl: no default audio sink")
- }
- }
-
- onExpandedChanged: {
- console.info(
- "QuickControl: expanded =",
- expanded
- )
- }
-
RowLayout {
id: layout
anchors {
- left: parent.left
right: parent.right
verticalCenter: parent.verticalCenter
- leftMargin: 12
rightMargin: 12
}
- spacing: 6
-
- Text {
- id: volumeIcon
-
- text: Pipewire.defaultAudioSink?.audio?.muted
- ? "󰖁"
- : "󰕾"
-
- visible: root.expanded
-
- color: Config.textDark
-
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
-
- MouseArea {
- anchors.fill: parent
-
- cursorShape: Qt.PointingHandCursor
-
- onClicked: {
- if (!Pipewire.defaultAudioSink?.audio) {
- console.warn(
- "QuickControl: no audio sink"
- )
- return
- }
-
- var audio = Pipewire.defaultAudioSink.audio
-
- audio.muted = !audio.muted
-
- console.info(
- "QuickControl: mute =",
- audio.muted
- )
- }
- }
- }
-
- Text {
- id: volumeText
-
- text: Pipewire.defaultAudioSink?.audio
- ? Math.round(
- Pipewire.defaultAudioSink.audio.volume * 100
- ) + "%"
- : "0%"
-
- visible: root.expanded
-
- color: Config.textDark
-
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
-
- MouseArea {
- anchors.fill: parent
-
- cursorShape: Qt.PointingHandCursor
-
- onClicked: {
- if (!Pipewire.defaultAudioSink?.audio) {
- console.warn(
- "QuickControl: no audio sink"
- )
- return
- }
-
- var audio = Pipewire.defaultAudioSink.audio
-
- audio.volume = Math.min(
- audio.volume + 0.05,
- 1.0
- )
-
- console.info(
- "QuickControl: volume =",
- Math.round(audio.volume * 100) + "%"
- )
- }
- }
- }
-
- Text {
- id: brightnessIcon
-
- text: "󰃠"
-
- visible: root.expanded
-
- color: Config.textDark
-
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
-
- MouseArea {
- anchors.fill: parent
-
- cursorShape: Qt.PointingHandCursor
-
- onClicked: {
- console.info(
- "QuickControl: brightness clicked"
- )
-
- Quickshell.execDetached([
- "brightnessctl",
- "set",
- "+5%"
- ])
- }
- }
- }
-
- Text {
- id: networkIcon
-
- text: {
- var item = SystemTray.items.values.find(function(item) {
- return item.id === "nm-applet"
- })
-
- if (!item)
- return "󰤨"
-
- var title = (item.title || "").toLowerCase()
-
- if (title.indexOf("ethernet") !== -1 ||
- title.indexOf("wired") !== -1 ||
- title.indexOf("lan") !== -1)
- return "󰈀"
-
- return "󰤨"
- }
-
- visible: root.expanded
- color: Config.textDark
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
-
- MouseArea {
- anchors.fill: parent
- cursorShape: Qt.PointingHandCursor
-
- onClicked: {
- console.info("QuickControl: network clicked")
- Quickshell.execDetached(["nm-connection-editor"])
- }
- }
-}
+ spacing: 8
Repeater {
- model: root.expanded
- ? SystemTray.items
- : null
+ model: SystemTray.items
delegate: Item {
id: trayItem
@@ -267,179 +75,98 @@ Rectangle {
Layout.preferredWidth: 18
Layout.preferredHeight: 18
- Component.onCompleted: {
- console.info(
- "QuickControl: tray item:",
- modelData.title,
- "id =",
- modelData.id,
- "hasMenu =",
- modelData.hasMenu,
- "onlyMenu =",
- modelData.onlyMenu
- )
+ opacity: root.expanded ? 1 : 0
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 200
+ easing.type: Easing.OutCubic
+ }
}
+ visible: opacity > 0
+
QsMenuAnchor {
id: menuAnchor
anchor.item: trayItem
-
menu: modelData.menu
-
- onOpened: {
- console.info(
- "QuickControl: context menu opened:",
- modelData.title
- )
- }
-
- onClosed: {
- console.info(
- "QuickControl: context menu closed:",
- modelData.title
- )
- }
}
Image {
anchors.fill: parent
source: modelData.icon
-
sourceSize.width: 18
sourceSize.height: 18
-
fillMode: Image.PreserveAspectFit
}
MouseArea {
anchors.fill: parent
- acceptedButtons:
- Qt.LeftButton |
- Qt.RightButton |
- Qt.MiddleButton
+ enabled: root.expanded
+
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
cursorShape: Qt.PointingHandCursor
onClicked: function(mouse) {
if (mouse.button === Qt.RightButton) {
- console.info(
- "QuickControl: right click:",
- modelData.title,
- "hasMenu =",
- modelData.hasMenu
- )
-
- if (modelData.hasMenu) {
- console.info(
- "QuickControl: opening menu:",
- modelData.title
- )
-
+ if (modelData.hasMenu)
menuAnchor.open()
- } else {
- console.info(
- "QuickControl: no context menu:",
- modelData.title
- )
- }
-
return
}
if (mouse.button === Qt.MiddleButton) {
- console.info(
- "QuickControl: middle click:",
- modelData.title
- )
-
modelData.secondaryActivate()
return
}
- console.info(
- "QuickControl: left click:",
- modelData.title
- )
-
- if (modelData.onlyMenu && modelData.hasMenu) {
- console.info(
- "QuickControl: onlyMenu item, opening menu:",
- modelData.title
- )
-
+ if (modelData.onlyMenu && modelData.hasMenu)
menuAnchor.open()
- } else {
+ else
modelData.activate()
- }
}
}
}
}
- Text {
- id: dots
+ Item {
+ id: dotsContainer
- text: "•••"
-
- color: Config.textDark
-
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
+ implicitWidth: 24
+ implicitHeight: Config.blockHeight
+ Layout.preferredWidth: 24
+ Layout.preferredHeight: Config.blockHeight
Layout.alignment: Qt.AlignVCenter
- MouseArea {
- anchors.fill: parent
+ Text {
+ id: dots
- cursorShape: Qt.PointingHandCursor
+ anchors.centerIn: parent
- onClicked: {
- root.expanded = !root.expanded
+ text: "•••"
- console.info(
- "QuickControl: toggled, expanded =",
- root.expanded
- )
- }
- }
- }
- }
+ color: Config.textDark
- Connections {
- target: SystemTray.items
+ font.family: Config.fontFamily
+ font.pixelSize: Config.fontSize
+ font.bold: true
- function onValuesChanged() {
- console.info(
- "QuickControl: system tray changed, items =",
- SystemTray.items.values.length
- )
- }
- }
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
- Connections {
- target: Pipewire.defaultAudioSink?.audio ?? null
+ MouseArea {
+ anchors.fill: parent
- function onVolumeChanged() {
- if (Pipewire.defaultAudioSink?.audio) {
- console.info(
- "QuickControl: volume changed:",
- Math.round(
- Pipewire.defaultAudioSink.audio.volume * 100
- ) + "%"
- )
- }
- }
+ cursorShape: Qt.PointingHandCursor
- function onMutedChanged() {
- if (Pipewire.defaultAudioSink?.audio) {
- console.info(
- "QuickControl: muted changed:",
- Pipewire.defaultAudioSink.audio.muted
- )
+ onClicked: {
+ root.expanded = !root.expanded
+ }
+ }
}
}
}
diff --git a/home-configuration/config/quickshell/modules/bar/Workspaces.qml b/home-configuration/config/quickshell/modules/bar/Workspaces.qml
index 3962a63..c9c8104 100644
--- a/home-configuration/config/quickshell/modules/bar/Workspaces.qml
+++ b/home-configuration/config/quickshell/modules/bar/Workspaces.qml
@@ -141,17 +141,25 @@ Rectangle {
}
}
- Text {
- anchors.centerIn: parent
+ Item {
+ anchors.fill: parent
+
+ Text {
+ anchors.fill: parent
+
+ text: index
- text: index
- color: model.isActive
- ? Config.textDark
- : Config.textInactive
+ color: model.isActive
+ ? Config.textDark
+ : Config.textInactive
- font.family: Config.fontFamily
- font.pixelSize: Config.fontSize
- font.bold: true
+ font.family: Config.fontFamily
+ font.pixelSize: Config.fontSize
+ font.bold: true
+
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
}
MouseArea {