restore niri specifics, gracefully fail

This commit is contained in:
Damocles 2026-04-10 23:32:47 +02:00
parent 61051b7b7b
commit d92a46035d
3 changed files with 45 additions and 2 deletions

View file

@ -38,7 +38,7 @@ PanelWindow {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 8 spacing: 8
// M.Workspaces {} M.Workspaces {}
M.Tray { bar: bar } M.Tray { bar: bar }
M.WindowTitle { Layout.maximumWidth: 400 } M.WindowTitle { Layout.maximumWidth: 400 }
Item { Layout.fillWidth: true } Item { Layout.fillWidth: true }

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)])
}
}
}
}