forked from Shinonome/dots-hyprland
43 lines
1.3 KiB
QML
43 lines
1.3 KiB
QML
pragma Singleton
|
|
import QtQuick
|
|
import Quickshell
|
|
import qs.services
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
property string internetIcon: {
|
|
if (Network.ethernet) return "ethernet";
|
|
if (Network.wifiEnabled) {
|
|
const strength = Network.networkStrength;
|
|
if (strength > 75) return "wifi-1";
|
|
if (strength > 50) return "wifi-2";
|
|
if (strength > 25) return "wifi-3";
|
|
return "wifi-4";
|
|
}
|
|
if (Network.wifiStatus === "connecting") return "wifi-4";
|
|
if (Network.wifiStatus === "disconnected") return "wifi-off";
|
|
if (Network.wifiStatus === "disabled") return "wifi-off";
|
|
return "wifi-warning";
|
|
}
|
|
|
|
property string batteryIcon: {
|
|
if (Battery.isCharging) return "battery-charge";
|
|
if (Battery.isCriticalAndNotCharging) return "battery-warning";
|
|
if (Battery.percentage >= 0.9) return "battery-full";
|
|
return `battery-${Math.ceil(Battery.percentage * 10)}`;
|
|
}
|
|
|
|
property string volumeIcon: {
|
|
const muted = Audio.sink?.audio.muted ?? false;
|
|
const volume = Audio.sink?.audio.volume ?? 0;
|
|
if (muted)
|
|
return volume > 0 ? "speaker-off" : "speaker-none";
|
|
if (volume == 0)
|
|
return "speaker-none";
|
|
if (volume < 0.5)
|
|
return "speaker-1";
|
|
return "speaker";
|
|
}
|
|
}
|