Compare commits
No commits in common. "9b87c7047710627fed00bf3292a0ecee633be039" and "fa7c0106aef1fc32cda2f772016d8ddbad3d1549" have entirely different histories.
9b87c70477
...
fa7c0106ae
5 changed files with 5 additions and 94 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue