add multimonitor

This commit is contained in:
2026-08-18 21:30:51 +02:00
parent 7d117f4ae5
commit f60dd06e7e
10 changed files with 470 additions and 34 deletions
+10
View File
@@ -59,6 +59,16 @@ Singleton {
return output ? (output.tags & (1 << index)) !== 0 : false;
}
/// Whether a tag belongs to this screen at all.
///
/// With `split_tags` on, each screen owns one slice of the tag set and the
/// rest live on the other monitors, so a bar that drew all nine would be
/// offering tags its screen cannot show. Every tag is owned when the split
/// is off, so the same bar works either way.
function tagOwned(output, index) {
return output ? (output.owned_tags & (1 << index)) !== 0 : true;
}
// A Socket that fails to connect cannot be revived: no state change is
// reported and re-asserting `connected` does not make it try again. So the
// socket lives in a Loader and a retry means building a new one. This is
+5
View File
@@ -49,6 +49,11 @@ ShellRoot {
readonly property bool active: AttWm.tagActive(bar.output, index)
readonly property bool occupied: AttWm.tagOccupied(bar.output, index)
// Tags belonging to another screen are that screen's to
// draw; a hidden item is out of the layout entirely, so
// each bar shows its own slice with no gap.
visible: AttWm.tagOwned(bar.output, index)
Layout.fillHeight: true
implicitWidth: label.implicitWidth + 16
color: active ? "#5294e2" : "transparent"