add attwm support
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import QtQuick
|
||||
import "../config"
|
||||
|
||||
// One workspace/tag chip. Every backend renders through this, so the left end
|
||||
// of the bar looks the same whichever window manager is driving it.
|
||||
//
|
||||
// `dimmed` and `dot` are presentational rather than semantic on purpose: what
|
||||
// counts as "empty" differs per backend (i3 only lists workspaces that exist,
|
||||
// attwm always publishes all nine tags), so each call site decides and this
|
||||
// stays a plain renderer.
|
||||
Rectangle {
|
||||
id: chip
|
||||
|
||||
property string label
|
||||
property bool active: false // shown on this monitor
|
||||
property bool focused: false // shown *and* holding input focus
|
||||
property bool urgent: false
|
||||
property bool dimmed: false // exists, but nothing on it
|
||||
property bool dot: false // has windows but isn't shown (dwm's corner square)
|
||||
|
||||
signal clicked(int button)
|
||||
|
||||
implicitWidth: Math.max(implicitHeight, text.implicitWidth + 16)
|
||||
implicitHeight: Theme.barHeight - Theme.gap * 2
|
||||
width: implicitWidth
|
||||
height: implicitHeight
|
||||
radius: Theme.radius
|
||||
|
||||
color: urgent ? Theme.red
|
||||
: focused ? Theme.blue
|
||||
: active ? Theme.surface1
|
||||
: Theme.surface0
|
||||
|
||||
Text {
|
||||
id: text
|
||||
anchors.centerIn: parent
|
||||
text: chip.label
|
||||
font.family: Theme.font
|
||||
font.pixelSize: Theme.fontSize
|
||||
font.bold: chip.focused || chip.urgent
|
||||
color: (chip.focused || chip.urgent) ? Theme.mantle
|
||||
: chip.dimmed ? Theme.overlay
|
||||
: Theme.text
|
||||
}
|
||||
|
||||
// dwm puts this in the tag's top-left corner, but the chip is only as wide
|
||||
// as one digit -- a corner mark lands on the glyph. Underlining it says the
|
||||
// same thing and suits the rounded chips.
|
||||
Rectangle {
|
||||
visible: chip.dot
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 4
|
||||
width: 6
|
||||
height: 2
|
||||
radius: 1
|
||||
color: Theme.blue
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
|
||||
onClicked: event => chip.clicked(event.button)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user