- Vertical bar on DP-2 with rounded-square pills throughout - Per-monitor workspace groups sorted by screen x position, with Nerd Font icons for named workspaces and apex-neon red active indicator - Bar layout: datetime+weather top, workspaces centered, gamemode+media+notif+system bottom - Popouts anchor to triggering icon (top-right for datetime/weather, bottom-right for media/notif/system) - Lock command switched from hyprlock to swaylock - Hyprland blur/ignore_alpha layerrules for quickshell namespace Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.2 KiB
QML
44 lines
1.2 KiB
QML
import Quickshell.Hyprland
|
|
import QtQuick
|
|
import "../shared" as Shared
|
|
|
|
// Compact active window title, rotated vertically to fit the narrow bar
|
|
Item {
|
|
id: root
|
|
|
|
readonly property string title: {
|
|
let w = Hyprland.focusedWindow;
|
|
if (!w) return "";
|
|
let t = w.title || "";
|
|
let c = w.wlClass || "";
|
|
// Show class if title is too long or empty
|
|
if (t.length === 0) return c;
|
|
if (t.length > 30) return c || t.substring(0, 20);
|
|
return t;
|
|
}
|
|
|
|
visible: title !== ""
|
|
implicitWidth: Shared.Theme.barInnerWidth
|
|
implicitHeight: Math.min(label.implicitWidth + 8, 120)
|
|
|
|
Text {
|
|
id: label
|
|
anchors.centerIn: parent
|
|
rotation: -90
|
|
width: root.implicitHeight
|
|
text: root.title
|
|
color: Shared.Theme.subtext0
|
|
font.pixelSize: Shared.Theme.fontSmall
|
|
font.family: Shared.Theme.fontFamily
|
|
elide: Text.ElideRight
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
Behavior on text {
|
|
enabled: false // no animation on text change
|
|
}
|
|
}
|
|
|
|
opacity: title !== "" ? 0.7 : 0
|
|
Behavior on opacity { NumberAnimation { duration: Shared.Theme.animFast } }
|
|
}
|