bar: elide active window title

This commit is contained in:
2 * r + 2 * t 2025-04-30 14:31:48 +10:00
parent efd09ae86e
commit bdad4c47c4
4 changed files with 18 additions and 6 deletions

View file

@ -20,6 +20,8 @@ Singleton {
readonly property int innerHeight: 30
readonly property int floatingGap: 10
readonly property int floatingGapLarge: 15
readonly property int maxLabelWidth: 600
readonly property int maxLabelHeight: 400
}
component Workspaces: QtObject {

View file

@ -15,18 +15,28 @@ StyledRect {
MaterialIcon {
id: icon
animate: true
text: Icons.getAppCategoryIcon(Hyprland.activeClient?.wmClass, "desktop_windows")
color: root.colour
}
AnchorText {
prevAnchor: icon
vertical: root.vertical
text: metrics.elidedText
font.pointSize: metrics.font.pointSize
font.family: metrics.font.family
color: root.colour
rotation: vertical ? 90 : 0
}
TextMetrics {
id: metrics
text: Hyprland.activeClient?.title ?? "Desktop"
font.pointSize: Appearance.font.size.smaller
font.family: Appearance.font.family.mono
color: root.colour
rotation: root.vertical ? 90 : 0
elide: Qt.ElideRight
elideWidth: root.vertical ? BarConfig.sizes.maxLabelHeight : BarConfig.sizes.maxLabelWidth
}
}

View file

@ -32,7 +32,6 @@ Item {
readonly property string activeLabel: BarConfig.workspaces.activeLabel || (root.isOccupied ? occupiedLabel : label)
animate: true
animateProp: "scale"
text: Hyprland.activeWsId === root.ws ? activeLabel : root.isOccupied ? occupiedLabel : label
color: BarConfig.workspaces.occupiedBg || root.isOccupied ? Appearance.colours.text : Appearance.colours.subtext0
horizontalAlignment: StyledText.AlignHCenter

View file

@ -7,7 +7,8 @@ Text {
id: root
property bool animate: false
property string animateProp: "opacity"
property string animateProp: "scale"
property int animateDuration: Appearance.anim.durations.normal
renderType: Text.NativeRendering
color: Appearance.colours.text
@ -41,7 +42,7 @@ Text {
component Anim: NumberAnimation {
target: root
property: root.animateProp
duration: Appearance.anim.durations.small
duration: root.animateDuration / 2
easing.type: Easing.BezierSpline
}
}