import QtQuick import Quickshell import "." as M import "../services" as S import "../applets" as C M.BarModule { id: root spacing: S.Theme.moduleSpacing opacity: S.Modules.bluetooth.enable && S.BluetoothService.state !== "unavailable" ? 1 : 0 visible: opacity > 0 tooltip: { if (S.BluetoothService.state === "connected") return "Bluetooth: " + S.BluetoothService.device; if (S.BluetoothService.state === "off") return "Bluetooth: off"; return "Bluetooth: on"; } panelNamespace: "nova-bluetooth" panelTitle: "Bluetooth" panelContentWidth: 250 titleActionsComponent: Component { Item { width: 20 height: 20 Text { anchors.centerIn: parent text: "\uF011" color: S.BluetoothService.enabled ? root.accentColor : S.Theme.base04 font.pixelSize: S.Theme.fontSize font.family: S.Theme.iconFontFamily Behavior on color { ColorAnimation { duration: 100 } } } HoverHandler { cursorShape: Qt.PointingHandCursor } TapHandler { onTapped: S.BluetoothService.setPower(!S.BluetoothService.enabled) } } } panelComponent: Component { C.BluetoothApplet { width: parent.width accentColor: root.accentColor } } Connections { target: S.BluetoothService function onDevicesChanged() { root.keepPanelOpen(500); } } M.BarIcon { icon: "\uF294" color: S.BluetoothService.state === "off" ? S.Theme.base04 : root.accentColor anchors.verticalCenter: parent.verticalCenter } M.BarLabel { visible: S.BluetoothService.state === "connected" label: S.BluetoothService.device + (S.BluetoothService.batteryPct >= 0 ? " " + S.BluetoothService.batteryPct + "%" : "") anchors.verticalCenter: parent.verticalCenter } }