Compare commits

...

3 commits

Author SHA1 Message Date
Damocles
d92a46035d restore niri specifics, gracefully fail 2026-04-10 23:32:47 +02:00
Damocles
61051b7b7b fix layer 2026-04-10 23:22:22 +02:00
Damocles
b69e7e5c01 fix elements overflowing 2026-04-10 23:16:41 +02:00
3 changed files with 69 additions and 34 deletions

View file

@ -10,6 +10,7 @@ PanelWindow {
required property var screen required property var screen
color: "transparent" color: "transparent"
layer: WlrLayer.Bottom
anchors { anchors {
top: true top: true
@ -33,54 +34,45 @@ PanelWindow {
spacing: 0 spacing: 0
// ---- left ---- // ---- left ----
Item { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true spacing: 8
RowLayout { M.Workspaces {}
anchors.left: parent.left M.Tray { bar: bar }
anchors.verticalCenter: parent.verticalCenter M.WindowTitle { Layout.maximumWidth: 400 }
spacing: 8 Item { Layout.fillWidth: true }
// M.Workspaces {}
M.Tray { bar: bar }
M.WindowTitle { Layout.maximumWidth: 400 }
}
} }
// ---- center ---- // ---- center ----
RowLayout { RowLayout {
spacing: 8 spacing: 8
Layout.alignment: Qt.AlignVCenter
M.Clock {} M.Clock {}
M.Notifications {} M.Notifications {}
} }
// ---- right ---- // ---- right ----
Item { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true spacing: 12
RowLayout { Item { Layout.fillWidth: true }
anchors.right: parent.right M.Mpris {}
anchors.verticalCenter: parent.verticalCenter M.Volume {}
spacing: 12 M.Bluetooth {}
M.Backlight {}
M.Mpris {} M.Network {}
M.Volume {} M.PowerProfile {}
M.Bluetooth {} M.IdleInhibitor {}
M.Backlight {} M.Weather {}
M.Network {} M.Temperature {}
M.PowerProfile {} M.Cpu {}
M.IdleInhibitor {} M.Memory {}
M.Weather {} M.Disk {}
M.Temperature {} M.Battery {}
M.Cpu {} M.Wlogout {}
M.Memory {}
M.Disk {}
M.Battery {}
M.Wlogout {}
}
} }
} }
} }

View file

@ -1,7 +1,14 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
// Niri workspace support disabled Quickshell.Services.Niri not available
RowLayout { RowLayout {
spacing: 4 spacing: 4
Loader {
source: "WorkspacesInner.qml"
onStatusChanged: {
if (status === Loader.Error)
source = "";
}
}
} }

View file

@ -0,0 +1,36 @@
import QtQuick
import QtQuick.Layouts
import Quickshell.Services.Niri
import "." as M
RowLayout {
spacing: 4
Repeater {
model: Niri.workspaces
delegate: Rectangle {
required property var modelData
implicitWidth: 24
implicitHeight: 20
radius: 4
color: modelData.isFocused
? M.Theme.base0D
: (modelData.isActive ? M.Theme.base03 : M.Theme.base02)
Text {
anchors.centerIn: parent
text: modelData.idx ?? modelData.id
color: modelData.isFocused ? M.Theme.base00 : M.Theme.base05
font.pixelSize: M.Theme.fontSize
font.family: M.Theme.fontFamily
}
MouseArea {
anchors.fill: parent
onClicked: Niri.dispatch(["action", "focus-workspace", String(modelData.id)])
}
}
}
}