diff options
| -rw-r--r-- | config/BarConfig.qml | 2 | ||||
| -rw-r--r-- | modules/bar/components/ActiveWindow.qml | 16 | ||||
| -rw-r--r-- | modules/bar/components/workspaces/Workspace.qml | 1 | ||||
| -rw-r--r-- | widgets/StyledText.qml | 5 |
4 files changed, 18 insertions, 6 deletions
diff --git a/config/BarConfig.qml b/config/BarConfig.qml index e5c0711..d33d7dd 100644 --- a/config/BarConfig.qml +++ b/config/BarConfig.qml @@ -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 { diff --git a/modules/bar/components/ActiveWindow.qml b/modules/bar/components/ActiveWindow.qml index 6d8d10e..a4a16e5 100644 --- a/modules/bar/components/ActiveWindow.qml +++ b/modules/bar/components/ActiveWindow.qml @@ -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 } } diff --git a/modules/bar/components/workspaces/Workspace.qml b/modules/bar/components/workspaces/Workspace.qml index 53f7c59..906cf37 100644 --- a/modules/bar/components/workspaces/Workspace.qml +++ b/modules/bar/components/workspaces/Workspace.qml @@ -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 diff --git a/widgets/StyledText.qml b/widgets/StyledText.qml index e8fc714..fc4ad40 100644 --- a/widgets/StyledText.qml +++ b/widgets/StyledText.qml @@ -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 } } |