import Quickshell import Quickshell.Wayland import QtQuick import qs.Services PanelWindow { id: bar WlrLayershell.namespace: "bar" property bool haveMaximizedWindow: { let currWindowId = Array.from(NiriService.workspaces).find(ws => { return ws.output === bar.screen.name && ws.is_active; })?.active_window_id; let activeWindowTileSize = Array.from(NiriService.windows).find(win => win.id == currWindowId)?.layout?.tile_size; if (!activeWindowTileSize) return false; return activeWindowTileSize[0] >= bar.screen.width && activeWindowTileSize[1] >= bar.screen.height - bar.height; } anchors { top: true left: true right: true } margins { left: bar.haveMaximizedWindow ? 0 : 26 + 8 right: bar.haveMaximizedWindow ? 0 : 26 + 8 } implicitHeight: 21 color: "transparent" Rectangle { color: bar.haveMaximizedWindow ? "black" : Qt.rgba(0, 0, 0, 0.75) anchors.fill: parent // bottomLeftRadius: 8 // bottomRightRadius: 8 } Row { id: left height: parent.height width: childrenRect.width anchors.left: parent.left anchors.leftMargin: 8 anchors.verticalCenter: parent.verticalCenter spacing: 8 WorkspaceSwitcher { screen: bar.screen } } Row { id: center height: parent.height width: childrenRect.width anchors.centerIn: parent spacing: 5 ActiveWindowDisplay { screen: bar.screen maxWidth: bar.width - 2*Math.max(left.width, right.width) - 2*8 } } Row { id: right height: parent.height width: childrenRect.width anchors.right: parent.right anchors.rightMargin: 8 anchors.verticalCenter: parent.verticalCenter spacing: 0 WorktimeWidget {} KeyboardLayout {} Item { visible: privacy.visible height: parent.height width: 8 - 4 } PrivacyWidget { id: privacy } Item { visible: privacy.visible height: parent.height width: 8 - 4 } SystemTray {} PipewireWidget {} BrightnessWidget {} BatteryWidget {} WaylandInhibitorWidget { window: bar } NotificationInhibitorWidget {} LidSwitchInhibitorWidget {} Item { height: parent.height width: 8 - 4 } Clock {} } }