Compare commits

..

No commits in common. "9b87c7047710627fed00bf3292a0ecee633be039" and "fa7c0106aef1fc32cda2f772016d8ddbad3d1549" have entirely different histories.

5 changed files with 5 additions and 94 deletions

View file

@ -50,7 +50,6 @@ PanelWindow {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
spacing: M.Theme.barSpacing spacing: M.Theme.barSpacing
M.Workspaces { visible: M.Modules.workspaces }
M.Tray { M.Tray {
bar: bar bar: bar
visible: M.Modules.tray visible: M.Modules.tray

View file

@ -33,7 +33,7 @@ PanelWindow {
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: M.Theme.base00 color: M.Theme.base00
opacity: Math.max(M.Theme.barOpacity, 0.85) opacity: M.Theme.barOpacity
topLeftRadius: 0 topLeftRadius: 0
topRightRadius: 0 topRightRadius: 0
bottomLeftRadius: M.Theme.radius bottomLeftRadius: M.Theme.radius

View file

@ -7,7 +7,6 @@ import Quickshell.Io
QtObject { QtObject {
id: root id: root
property bool workspaces: true
property bool tray: true property bool tray: true
property bool windowTitle: true property bool windowTitle: true
property bool clock: true property bool clock: true

View file

@ -1,93 +1,7 @@
import QtQuick import QtQuick
import Quickshell.Io import QtQuick.Layouts
import "." as M
Row { // Placeholder Quickshell.Services.Niri not yet available
id: root RowLayout {
spacing: 4 spacing: M.Theme.moduleSpacing
property var _workspaces: []
property int _activeId: -1
// Initial state
Process {
id: initProc
running: true
command: ["niri", "msg", "--json", "workspaces"]
stdout: StdioCollector {
onStreamFinished: {
try {
const ws = JSON.parse(text);
root._workspaces = ws.sort((a, b) => a.idx - b.idx);
for (const w of ws) {
if (w.is_focused)
root._activeId = w.id;
}
} catch (e) {}
}
}
}
// Live updates
Process {
id: eventStream
running: true
command: ["niri", "msg", "--json", "event-stream"]
stdout: SplitParser {
splitMarker: "\n"
onRead: line => {
try {
const ev = JSON.parse(line);
if (ev.WorkspacesChanged !== undefined) {
root._workspaces = ev.WorkspacesChanged.workspaces
.sort((a, b) => a.idx - b.idx);
} else if (ev.WorkspaceActivated !== undefined) {
if (ev.WorkspaceActivated.focused)
root._activeId = ev.WorkspaceActivated.id;
}
} catch (e) {}
}
}
}
Process {
id: switchProc
property int wsId: -1
command: ["niri", "msg", "action", "focus-workspace", String(wsId)]
}
Repeater {
model: root._workspaces
delegate: Rectangle {
id: pill
required property var modelData
readonly property bool active: modelData.id === root._activeId
width: 20
height: 20
radius: M.Theme.radius
color: pill.active ? M.Theme.base0D : M.Theme.base02
Text {
anchors.centerIn: parent
text: pill.modelData.idx
color: pill.active ? M.Theme.base00 : M.Theme.base04
font.pixelSize: M.Theme.fontSize - 2
font.family: M.Theme.fontFamily
font.bold: pill.active
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
switchProc.wsId = pill.modelData.id;
switchProc.running = true;
}
}
}
}
} }

View file

@ -58,7 +58,6 @@ in
type = lib.types.submodule { type = lib.types.submodule {
options = lib.genAttrs options = lib.genAttrs
[ [
"workspaces"
"tray" "tray"
"windowTitle" "windowTitle"
"clock" "clock"