diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-1.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-1.svg new file mode 100644 index 000000000..caa369c58 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-1.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_1_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-2.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-2.svg new file mode 100644 index 000000000..b939043ea --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-2.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_2_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-3.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-3.svg new file mode 100644 index 000000000..a504a1ed5 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-3.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_3_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-4.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-4.svg new file mode 100644 index 000000000..6567ddf10 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-4.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_4_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-5.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-5.svg new file mode 100644 index 000000000..1bf4d914f --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-5.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_5_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-7.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-7.svg new file mode 100644 index 000000000..a5197ce94 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-7.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_7_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-8.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-8.svg new file mode 100644 index 000000000..c83bc5fb6 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-8.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_8_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-9.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-9.svg new file mode 100644 index 000000000..7f4937b99 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-9.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_9_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-charge.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-charge.svg new file mode 100644 index 000000000..512a78b1b --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-charge.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_charge_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-full.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-full.svg new file mode 100644 index 000000000..4749fc178 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-full.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_full_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-saver.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-saver.svg new file mode 100644 index 000000000..397061caf --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-saver.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_saver_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/battery-warning.svg b/dots/.config/quickshell/ii/assets/icons/fluent/battery-warning.svg new file mode 100644 index 000000000..7ccade277 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/battery-warning.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_battery_warning_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected.svg new file mode 100644 index 000000000..b491276df --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_bluetooth_connected_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-searching.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-searching.svg new file mode 100644 index 000000000..e0d9eab70 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-searching.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_bluetooth_searching_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/ethernet.svg b/dots/.config/quickshell/ii/assets/icons/fluent/ethernet.svg new file mode 100644 index 000000000..904d9720e --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/ethernet.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_cellular_data_1_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/mic-on.svg b/dots/.config/quickshell/ii/assets/icons/fluent/mic-on.svg new file mode 100644 index 000000000..3f680d2e3 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/mic-on.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_mic_on_48_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/speaker-none.svg b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-none.svg new file mode 100644 index 000000000..364af84cb --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-none.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/speaker-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-off.svg new file mode 100644 index 000000000..5fa19e406 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-off.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg new file mode 100644 index 000000000..47662e101 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_wifi_1_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg new file mode 100644 index 000000000..9897c5d70 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_wifi_2_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg new file mode 100644 index 000000000..8a4674bd4 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_wifi_3_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg new file mode 100644 index 000000000..f14828bd8 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg @@ -0,0 +1,12 @@ + + + + ic_fluent_wifi_4_24_regular + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off.svg new file mode 100644 index 000000000..3c247ab12 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning.svg new file mode 100644 index 000000000..d573ddde0 --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/modules/waffle/bar/SystemButton.qml b/dots/.config/quickshell/ii/modules/waffle/bar/SystemButton.qml index 107bb00f6..dcb56c30b 100644 --- a/dots/.config/quickshell/ii/modules/waffle/bar/SystemButton.qml +++ b/dots/.config/quickshell/ii/modules/waffle/bar/SystemButton.qml @@ -16,9 +16,28 @@ BarButton { Row { id: column anchors.centerIn: parent + spacing: 4 FluentIcon { - icon: "speaker" // System icon + icon: WIcons.internetIcon + } + + FluentIcon { + icon: { + 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"; + } + } + + FluentIcon { + icon: { + print(WIcons.batteryIcon) + return WIcons.batteryIcon + } } } } diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml b/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml index 892214cd7..229df0458 100644 --- a/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml +++ b/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml @@ -6,12 +6,15 @@ import qs.modules.waffle.looks Kirigami.Icon { id: root required property string icon - property int implicitSize: 18 // Should be 16, but it appears the icons have some padding + // Should be 16, but it appears the icons have some padding, + // Unlike the Windows-only Segoe UI icons, the open source FluentUI ones are hella small + property int implicitSize: 20 implicitWidth: implicitSize implicitHeight: implicitSize + source: `${Looks.iconsPath}/${root.icon}.svg` roundToIconSize: false color: Looks.colors.fg isMask: true - source: `${Looks.iconsPath}/${root.icon}.svg` + animated: true } diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml index 3b451935f..9020b9d85 100644 --- a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml +++ b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml @@ -42,17 +42,13 @@ Singleton { property QtObject family: QtObject { property string ui: "Noto Sans" } - property QtObject weight: QtObject { - property int regular: Font.Normal + property QtObject weight: QtObject { // Noto is not Segoe, so we might use slightly different weights + property int regular: Font.Medium property int strong: Font.DemiBold property int stronger: Font.Bold - } - property QtObject variableAxes: QtObject { - } property QtObject pixelSize: QtObject { - property int small: 10 - property int normal: 11 + property real normal: 11 } } diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml new file mode 100644 index 000000000..813b0a1ce --- /dev/null +++ b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml @@ -0,0 +1,31 @@ +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)}`; + } + +}