Files
homelab/dotfiles/quickshell/widgets/systray/SysTrayItem.qml
T
darmanandClaude Sonnet 5 6e9d588f00 terra: migrate quickshell config into repo, add quickshell + opencode packages
Config was symlinked from ~/.dots/quickshell (separate dotfiles repo); now
tracked here and applied via home-manager xdg.configFile.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 23:22:03 +02:00

66 lines
1.7 KiB
QML

import Quickshell
import Quickshell.Services.SystemTray
import QtQuick
import QtQuick.Shapes
// A single tray icon, chamfered to match the Slant (launcher V6 / SideBar)
// visual language instead of a plain rectangular hit target.
MouseArea {
id: root
required property SystemTrayItem modelData
implicitWidth: 36
implicitHeight: 36
acceptedButtons: Qt.LeftButton | Qt.RightButton
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: event => {
if (event.button === Qt.LeftButton) {
modelData.activate();
} else if (modelData.hasMenu) {
const window = root.QsWindow?.window;
modelData.display(window, window.width, root.mapToItem(null, 0, 0).y);
}
event.accepted = true;
}
readonly property int chamfer: 6
Shape {
anchors.fill: parent
preferredRendererType: Shape.CurveRenderer
ShapePath {
strokeWidth: 1
strokeColor: root.containsMouse ? "#FFD063" : "#7A7B7D"
fillColor: "#292C30"
startX: root.chamfer
startY: 0
PathLine { x: root.width; y: 0 }
PathLine { x: root.width; y: root.height - root.chamfer }
PathLine { x: root.width - root.chamfer; y: root.height }
PathLine { x: 0; y: root.height }
PathLine { x: 0; y: root.chamfer }
PathLine { x: root.chamfer; y: 0 }
Behavior on strokeColor {
ColorAnimation {
duration: 150
}
}
}
}
Image {
anchors.centerIn: parent
source: modelData.icon
fillMode: Image.PreserveAspectFit
width: 20
height: 20
}
}