From b650120fd437a05483cd1b3ea89a7f6c0692dd9d Mon Sep 17 00:00:00 2001
From: end-4 <97237370+end-4@users.noreply.github.com>
Date: Tue, 18 Nov 2025 21:28:34 +0100
Subject: [PATCH] action center: toggles barely working
---
.../ii/assets/icons/fluent/alert-filled.svg | 4 +
.../assets/icons/fluent/alert-off-filled.svg | 4 +
.../ii/assets/icons/fluent/alert-off.svg | 4 +
.../icons/fluent/alert-snooze-filled.svg | 4 +
.../ii/assets/icons/fluent/alert-snooze.svg | 4 +
.../ii/assets/icons/fluent/alert.svg | 4 +
.../fluent/bluetooth-connected-filled.svg | 4 +
.../fluent/bluetooth-disabled-filled.svg | 4 +
.../icons/fluent/bluetooth-disabled.svg | 4 +
.../assets/icons/fluent/bluetooth-filled.svg | 4 +
.../ii/assets/icons/fluent/bluetooth.svg | 4 +
.../icons/fluent/chevron-down-filled.svg | 1 +
.../ii/assets/icons/fluent/chevron-down.svg | 2 +-
.../icons/fluent/chevron-left-filled.svg | 1 +
.../ii/assets/icons/fluent/chevron-left.svg | 1 +
.../icons/fluent/chevron-right-filled.svg | 1 +
.../assets/icons/fluent/chevron-up-filled.svg | 1 +
.../ii/assets/icons/fluent/chevron-up.svg | 1 +
.../ii/assets/icons/fluent/cut-filled.svg | 4 +
.../quickshell/ii/assets/icons/fluent/cut.svg | 4 +
.../assets/icons/fluent/dark-theme-filled.svg | 4 +
.../ii/assets/icons/fluent/dark-theme.svg | 4 +
.../assets/icons/fluent/device-eq-filled.svg | 1 +
.../ii/assets/icons/fluent/device-eq.svg | 1 +
.../icons/fluent/drink-coffee-filled.svg | 4 +
.../ii/assets/icons/fluent/drink-coffee.svg | 4 +
.../assets/icons/fluent/eyedropper-filled.svg | 4 +
.../ii/assets/icons/fluent/eyedropper.svg | 4 +
.../ii/assets/icons/fluent/fire-filled.svg | 4 +
.../ii/assets/icons/fluent/fire.svg | 4 +
.../assets/icons/fluent/flash-off-filled.svg | 4 +
.../ii/assets/icons/fluent/flash-off.svg | 4 +
.../ii/assets/icons/fluent/games-filled.svg | 4 +
.../ii/assets/icons/fluent/games.svg | 4 +
.../icons/fluent/globe-shield-filled.svg | 4 +
.../ii/assets/icons/fluent/globe-shield.svg | 4 +
.../icons/fluent/keyboard-dock-filled.svg | 4 +
.../ii/assets/icons/fluent/keyboard-dock.svg | 4 +
.../assets/icons/fluent/keyboard-filled.svg | 4 +
.../ii/assets/icons/fluent/keyboard.svg | 4 +
.../ii/assets/icons/fluent/leaf-two (1).svg | 4 +
.../ii/assets/icons/fluent/leaf-two.svg | 4 +
.../ii/assets/icons/fluent/mic-filled.svg | 4 +
.../ii/assets/icons/fluent/mic-off-filled.svg | 4 +
.../ii/assets/icons/fluent/mic-off.svg | 4 +
.../quickshell/ii/assets/icons/fluent/mic.svg | 4 +
.../icons/fluent/music-note-2-filled.svg | 4 +
.../ii/assets/icons/fluent/music-note-2.svg | 4 +
.../ii/assets/icons/fluent/options-filled.svg | 4 +
.../ii/assets/icons/fluent/options.svg | 4 +
.../fluent/settings-cog-multiple-filled.svg | 4 +
.../icons/fluent/settings-cog-multiple.svg | 4 +
.../assets/icons/fluent/speaker-2-filled.svg | 4 +
.../icons/fluent/weather-moon-filled.svg | 4 +
.../icons/fluent/weather-moon-off-filled.svg | 4 +
.../assets/icons/fluent/weather-moon-off.svg | 4 +
.../ii/assets/icons/fluent/weather-moon.svg | 4 +
.../ii/assets/icons/fluent/wifi-1-filled.svg | 1 +
.../ii/assets/icons/fluent/wifi-1.svg | 13 +-
.../ii/assets/icons/fluent/wifi-2-filled.svg | 1 +
.../ii/assets/icons/fluent/wifi-2.svg | 13 +-
.../ii/assets/icons/fluent/wifi-3-filled.svg | 1 +
.../ii/assets/icons/fluent/wifi-3.svg | 13 +-
.../ii/assets/icons/fluent/wifi-4-filled.svg | 1 +
.../ii/assets/icons/fluent/wifi-4.svg | 13 +-
.../assets/icons/fluent/wifi-lock-filled.svg | 1 +
.../ii/assets/icons/fluent/wifi-lock.svg | 1 +
.../assets/icons/fluent/wifi-off-filled.svg | 1 +
.../icons/fluent/wifi-warning-filled.svg | 1 +
.../quickshell/ii/modules/common/Config.qml | 2 +-
.../modules/common/functions/ColorUtils.qml | 11 +
.../ii/sessionScreen/SessionScreen.qml | 3 +-
.../androidStyle/AndroidQuickToggleButton.qml | 2 +
.../AndroidToggleDelegateChooser.qml | 207 +++++++++---------
.../waffle/actionCenter/ActionCenterBody.qml | 74 +------
.../actionCenter/ActionCenterBodySliders.qml | 45 ++++
.../actionCenter/ActionCenterBodyToggles.qml | 49 +++++
.../actionCenter/ActionCenterToggle.qml | 40 ----
.../toggles/ActionCenterToggleButton.qml | 120 ++++++++++
.../ActionCenterTogglesDelegateChooser.qml | 136 ++++++++++++
.../ii/modules/waffle/bar/UpdatesButton.qml | 1 +
.../ii/modules/waffle/looks/FluentIcon.qml | 3 +-
.../ii/modules/waffle/looks/Looks.qml | 11 +-
.../ii/modules/waffle/looks/WButton.qml | 24 +-
.../ii/modules/waffle/looks/WIcons.qml | 22 +-
85 files changed, 739 insertions(+), 273 deletions(-)
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert-off-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert-off.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/alert.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/bluetooth.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-down-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-left-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-left.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-right-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-up-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/chevron-up.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/cut-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/cut.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/dark-theme-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/dark-theme.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/device-eq-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/device-eq.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/eyedropper-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/eyedropper.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/fire-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/fire.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/flash-off-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/flash-off.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/games-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/games.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/globe-shield-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/globe-shield.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/keyboard-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/keyboard.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/leaf-two (1).svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/leaf-two.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/mic-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/mic-off-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/mic-off.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/mic.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/music-note-2-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/music-note-2.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/options-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/options.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/speaker-2-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/weather-moon.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-1-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-2-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-3-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-4-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-off-filled.svg
create mode 100644 dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning-filled.svg
create mode 100644 dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodySliders.qml
create mode 100644 dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodyToggles.qml
delete mode 100644 dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterToggle.qml
create mode 100644 dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterToggleButton.qml
create mode 100644 dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert-filled.svg
new file mode 100644
index 000000000..644cecc32
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert-off-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert-off-filled.svg
new file mode 100644
index 000000000..8622bb9de
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert-off-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert-off.svg
new file mode 100644
index 000000000..f38d1325c
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert-off.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze-filled.svg
new file mode 100644
index 000000000..0ae53adda
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze.svg
new file mode 100644
index 000000000..b7b56efd8
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert-snooze.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/alert.svg b/dots/.config/quickshell/ii/assets/icons/fluent/alert.svg
new file mode 100644
index 000000000..c81df3324
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/alert.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected-filled.svg
new file mode 100644
index 000000000..051a7d42f
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled-filled.svg
new file mode 100644
index 000000000..ef5797391
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled.svg
new file mode 100644
index 000000000..d8d6f81f7
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-filled.svg
new file mode 100644
index 000000000..b88506177
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth.svg b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth.svg
new file mode 100644
index 000000000..ad46359c3
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/bluetooth.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down-filled.svg
new file mode 100644
index 000000000..604bf9887
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down.svg
index 604bf9887..8c03304ad 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-down.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left-filled.svg
new file mode 100644
index 000000000..fd13789f6
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left.svg
new file mode 100644
index 000000000..5919892ba
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-right-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-right-filled.svg
new file mode 100644
index 000000000..f00691765
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-right-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up-filled.svg
new file mode 100644
index 000000000..05d9a3601
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up.svg b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up.svg
new file mode 100644
index 000000000..b3d90b822
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/chevron-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/cut-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/cut-filled.svg
new file mode 100644
index 000000000..4d236b2e5
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/cut-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/cut.svg b/dots/.config/quickshell/ii/assets/icons/fluent/cut.svg
new file mode 100644
index 000000000..658de7b88
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/cut.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme-filled.svg
new file mode 100644
index 000000000..a594d517e
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme.svg b/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme.svg
new file mode 100644
index 000000000..3dca1bca5
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/dark-theme.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/device-eq-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/device-eq-filled.svg
new file mode 100644
index 000000000..63a51f026
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/device-eq-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/device-eq.svg b/dots/.config/quickshell/ii/assets/icons/fluent/device-eq.svg
new file mode 100644
index 000000000..cb6fa01fd
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/device-eq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee-filled.svg
new file mode 100644
index 000000000..032a49bbe
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee.svg b/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee.svg
new file mode 100644
index 000000000..662c1b675
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/drink-coffee.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper-filled.svg
new file mode 100644
index 000000000..b745573ef
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper.svg b/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper.svg
new file mode 100644
index 000000000..8ee937b34
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/eyedropper.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/fire-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/fire-filled.svg
new file mode 100644
index 000000000..673132565
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/fire-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/fire.svg b/dots/.config/quickshell/ii/assets/icons/fluent/fire.svg
new file mode 100644
index 000000000..83ce5a5a6
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/fire.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/flash-off-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/flash-off-filled.svg
new file mode 100644
index 000000000..dcdd940b5
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/flash-off-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/flash-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/flash-off.svg
new file mode 100644
index 000000000..ce5811dae
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/flash-off.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/games-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/games-filled.svg
new file mode 100644
index 000000000..36e4565fc
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/games-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/games.svg b/dots/.config/quickshell/ii/assets/icons/fluent/games.svg
new file mode 100644
index 000000000..c0b16d23f
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/games.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield-filled.svg
new file mode 100644
index 000000000..b8d3c174a
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield.svg b/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield.svg
new file mode 100644
index 000000000..054ab4638
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/globe-shield.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock-filled.svg
new file mode 100644
index 000000000..cd0b52af1
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock.svg b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock.svg
new file mode 100644
index 000000000..23841da7c
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-dock.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-filled.svg
new file mode 100644
index 000000000..88d34318c
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/keyboard.svg b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard.svg
new file mode 100644
index 000000000..bef233db8
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/keyboard.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two (1).svg b/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two (1).svg
new file mode 100644
index 000000000..0555362dc
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two (1).svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two.svg b/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two.svg
new file mode 100644
index 000000000..0555362dc
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/leaf-two.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/mic-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/mic-filled.svg
new file mode 100644
index 000000000..860a813a8
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/mic-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/mic-off-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/mic-off-filled.svg
new file mode 100644
index 000000000..6e4156d07
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/mic-off-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/mic-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/mic-off.svg
new file mode 100644
index 000000000..6a01b5d2b
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/mic-off.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/mic.svg b/dots/.config/quickshell/ii/assets/icons/fluent/mic.svg
new file mode 100644
index 000000000..c5bbfa4a7
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/mic.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2-filled.svg
new file mode 100644
index 000000000..90f009d82
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2.svg b/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2.svg
new file mode 100644
index 000000000..09367b0c8
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/music-note-2.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/options-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/options-filled.svg
new file mode 100644
index 000000000..7f2b5b132
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/options-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/options.svg b/dots/.config/quickshell/ii/assets/icons/fluent/options.svg
new file mode 100644
index 000000000..3e111563b
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/options.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple-filled.svg
new file mode 100644
index 000000000..cfd8a5fc4
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple.svg b/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple.svg
new file mode 100644
index 000000000..52187eece
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/speaker-2-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-2-filled.svg
new file mode 100644
index 000000000..0fc385664
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/speaker-2-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-filled.svg
new file mode 100644
index 000000000..4a98456d9
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off-filled.svg
new file mode 100644
index 000000000..e79039ba4
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off.svg b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off.svg
new file mode 100644
index 000000000..6bda0d927
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon-off.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon.svg b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon.svg
new file mode 100644
index 000000000..bb972950d
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/weather-moon.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1-filled.svg
new file mode 100644
index 000000000..c82c5c2a5
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1-filled.svg
@@ -0,0 +1 @@
+
\ 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
index 47662e101..a1ff296ab 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg
@@ -1,12 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2-filled.svg
new file mode 100644
index 000000000..35f8a3516
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2-filled.svg
@@ -0,0 +1 @@
+
\ 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
index 9897c5d70..07b1bfc49 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg
@@ -1,12 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3-filled.svg
new file mode 100644
index 000000000..6d51746b9
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3-filled.svg
@@ -0,0 +1 @@
+
\ 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
index 8a4674bd4..1a6f57565 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg
@@ -1,12 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4-filled.svg
new file mode 100644
index 000000000..82153a7d8
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4-filled.svg
@@ -0,0 +1 @@
+
\ 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
index f14828bd8..58073a4a8 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg
@@ -1,12 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock-filled.svg
new file mode 100644
index 000000000..c36df04fc
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock.svg
new file mode 100644
index 000000000..5d9a7e64b
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off-filled.svg
new file mode 100644
index 000000000..3df4ac119
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-off-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning-filled.svg
new file mode 100644
index 000000000..a8f0c9b72
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/wifi-warning-filled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml
index 32d377530..aa46d74fc 100644
--- a/dots/.config/quickshell/ii/modules/common/Config.qml
+++ b/dots/.config/quickshell/ii/modules/common/Config.qml
@@ -581,7 +581,7 @@ Singleton {
property bool leftAlignApps: false
}
property JsonObject actionCenter: JsonObject {
- property list toggles: []
+ property list toggles: [ "network", "bluetooth", "easyEffects", "powerProfile", "idleInhibitor", "antiFlashbang", "nightLight", "darkMode", "cloudflareWarp", "mic", "audio", "musicRecognition", "notifications", "onScreenKeyboard", "gameMode", "screenSnip", "colorPicker" ]
}
}
}
diff --git a/dots/.config/quickshell/ii/modules/common/functions/ColorUtils.qml b/dots/.config/quickshell/ii/modules/common/functions/ColorUtils.qml
index 15c4280a9..165f27754 100644
--- a/dots/.config/quickshell/ii/modules/common/functions/ColorUtils.qml
+++ b/dots/.config/quickshell/ii/modules/common/functions/ColorUtils.qml
@@ -124,4 +124,15 @@ Singleton {
var a = Math.max(0, Math.min(1, alpha));
return Qt.rgba(c.r, c.g, c.b, a);
}
+
+ /**
+ * Returns true if the color is considered "dark" (hslLightness < 0.5).
+ *
+ * @param {string} color - The color to check (any Qt.color-compatible string).
+ * @returns {boolean} True if dark, false otherwise.
+ */
+ function isDark(color) {
+ var c = Qt.color(color);
+ return c.hslLightness < 0.5;
+ }
}
diff --git a/dots/.config/quickshell/ii/modules/ii/sessionScreen/SessionScreen.qml b/dots/.config/quickshell/ii/modules/ii/sessionScreen/SessionScreen.qml
index 11f918c9f..6c8707a23 100644
--- a/dots/.config/quickshell/ii/modules/ii/sessionScreen/SessionScreen.qml
+++ b/dots/.config/quickshell/ii/modules/ii/sessionScreen/SessionScreen.qml
@@ -50,8 +50,7 @@ Scope {
Process {
id: detectPackageManagerProc
- command: ["pidof", "pacman", "yay", "paru", "dnf", "zypper", "apt", "apx", "xbps", "flatpak", "snap", "apk",
- "yum", "epsi", "pikman"]
+ command: ["bash", "-c", "pidof pacman yay paru dnf zypper apt apx xbps flatpak snap apk yum epsi pikman"]
onExited: (exitCode, exitStatus) => {
root.packageManagerRunning = (exitCode === 0);
}
diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidQuickToggleButton.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidQuickToggleButton.qml
index ebaac6930..017d02aa4 100644
--- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidQuickToggleButton.qml
+++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidQuickToggleButton.qml
@@ -146,6 +146,8 @@ GroupButton {
visible: root.expandedSize
active: visible
sourceComponent: Column {
+ spacing: -2
+
StyledText {
anchors {
left: parent.left
diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml
index 43cc712b5..010624926 100644
--- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml
+++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml
@@ -22,7 +22,7 @@ DelegateChooser {
role: "type"
- DelegateChoice { roleValue: "network"; AndroidNetworkToggle {
+ DelegateChoice { roleValue: "antiFlashbang"; AndroidAntiFlashbangToggle {
required property int index
required property var modelData
buttonIndex: root.startingIndex + index
@@ -34,7 +34,23 @@ DelegateChooser {
cellSpacing: root.spacing
cellSize: modelData.size
onOpenMenu: {
- root.openWifiDialog()
+ root.openNightLightDialog()
+ }
+ } }
+
+ DelegateChoice { roleValue: "audio"; AndroidAudioToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ onOpenMenu: {
+ root.openAudioOutputDialog()
}
} }
@@ -54,61 +70,6 @@ DelegateChooser {
}
} }
- DelegateChoice { roleValue: "idleInhibitor"; AndroidIdleInhibitorToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- } }
-
- DelegateChoice { roleValue: "easyEffects"; AndroidEasyEffectsToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- } }
-
- DelegateChoice { roleValue: "nightLight"; AndroidNightLightToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- onOpenMenu: {
- root.openNightLightDialog()
- }
- } }
-
- DelegateChoice { roleValue: "darkMode"; AndroidDarkModeToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- } }
-
DelegateChoice { roleValue: "cloudflareWarp"; AndroidCloudflareWarpToggle {
required property int index
required property var modelData
@@ -122,32 +83,6 @@ DelegateChooser {
cellSize: modelData.size
} }
- DelegateChoice { roleValue: "gameMode"; AndroidGameModeToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- } }
-
- DelegateChoice { roleValue: "screenSnip"; AndroidScreenSnipToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- } }
-
DelegateChoice { roleValue: "colorPicker"; AndroidColorPickerToggle {
required property int index
required property var modelData
@@ -161,7 +96,46 @@ DelegateChooser {
cellSize: modelData.size
} }
- DelegateChoice { roleValue: "onScreenKeyboard"; AndroidOnScreenKeyboardToggle {
+ DelegateChoice { roleValue: "darkMode"; AndroidDarkModeToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ } }
+
+ DelegateChoice { roleValue: "easyEffects"; AndroidEasyEffectsToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ } }
+
+ DelegateChoice { roleValue: "gameMode"; AndroidGameModeToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ } }
+
+ DelegateChoice { roleValue: "idleInhibitor"; AndroidIdleInhibitorToggle {
required property int index
required property var modelData
buttonIndex: root.startingIndex + index
@@ -190,7 +164,20 @@ DelegateChooser {
}
} }
- DelegateChoice { roleValue: "audio"; AndroidAudioToggle {
+ DelegateChoice { roleValue: "musicRecognition"; AndroidMusicRecognition {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ } }
+
+ DelegateChoice { roleValue: "network"; AndroidNetworkToggle {
required property int index
required property var modelData
buttonIndex: root.startingIndex + index
@@ -202,7 +189,23 @@ DelegateChooser {
cellSpacing: root.spacing
cellSize: modelData.size
onOpenMenu: {
- root.openAudioOutputDialog()
+ root.openWifiDialog()
+ }
+ } }
+
+ DelegateChoice { roleValue: "nightLight"; AndroidNightLightToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ onOpenMenu: {
+ root.openNightLightDialog()
}
} }
@@ -219,6 +222,19 @@ DelegateChooser {
cellSize: modelData.size
} }
+ DelegateChoice { roleValue: "onScreenKeyboard"; AndroidOnScreenKeyboardToggle {
+ required property int index
+ required property var modelData
+ buttonIndex: root.startingIndex + index
+ buttonData: modelData
+ editMode: root.editMode
+ expandedSize: modelData.size > 1
+ baseCellWidth: root.baseCellWidth
+ baseCellHeight: root.baseCellHeight
+ cellSpacing: root.spacing
+ cellSize: modelData.size
+ } }
+
DelegateChoice { roleValue: "powerProfile"; AndroidPowerProfileToggle {
required property int index
required property var modelData
@@ -232,7 +248,7 @@ DelegateChooser {
cellSize: modelData.size
} }
- DelegateChoice { roleValue: "musicRecognition"; AndroidMusicRecognition {
+ DelegateChoice { roleValue: "screenSnip"; AndroidScreenSnipToggle {
required property int index
required property var modelData
buttonIndex: root.startingIndex + index
@@ -244,21 +260,4 @@ DelegateChooser {
cellSpacing: root.spacing
cellSize: modelData.size
} }
-
- DelegateChoice { roleValue: "antiFlashbang"; AndroidAntiFlashbangToggle {
- required property int index
- required property var modelData
- buttonIndex: root.startingIndex + index
- buttonData: modelData
- editMode: root.editMode
- expandedSize: modelData.size > 1
- baseCellWidth: root.baseCellWidth
- baseCellHeight: root.baseCellHeight
- cellSpacing: root.spacing
- cellSize: modelData.size
- onOpenMenu: {
- root.openNightLightDialog()
- }
- } }
-
}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBody.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBody.qml
index 6f5a8e031..6a6d75769 100644
--- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBody.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBody.qml
@@ -10,13 +10,6 @@ import qs.modules.waffle.looks
Rectangle {
id: root
- property int currentPage: 0
- property alias columns: grid.columns
- property alias rows: grid.rows
- readonly property int itemsPerPage: columns * rows
- property list toggles: Config.options.waffles.actionCenter.toggles
- property list togglesInCurrentPage: toggles.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage)
-
Layout.fillHeight: true
Layout.fillWidth: true
color: Looks.colors.bgPanelBody
@@ -29,39 +22,10 @@ Rectangle {
anchors.fill: parent
spacing: 0
- Item {
+ ActionCenterBodyToggles {
id: togglesContainer
- property real padding: 22
Layout.fillWidth: true
Layout.bottomMargin: -12
- implicitHeight: grid.implicitHeight + padding * 2
-
- GridLayout {
- id: grid
- anchors {
- fill: parent
- margins: parent.padding
- }
-
- columns: 3
- rows: 2
- rowSpacing: 12
- columnSpacing: 12
- uniformCellHeights: true
- uniformCellWidths: true
-
- Repeater {
- model: ScriptModel {
- values: root.togglesInCurrentPage
- }
- delegate: ActionCenterToggle {
- required property var modelData
- name: modelData
- }
- }
- }
-
- // TODO: pages indicator on the right
}
Rectangle {
@@ -70,44 +34,10 @@ Rectangle {
color: Looks.colors.bg1Border
}
- RowLayout {
+ ActionCenterBodySliders {
Layout.margins: 12
Layout.topMargin: 18
Layout.bottomMargin: 14
- spacing: 4
-
- WPanelIconButton {
- iconName: WIcons.volumeIcon
- onClicked: {
- Audio.sink.audio.muted = !Audio.sink.audio.muted;
- }
- }
- WSlider {
- Layout.fillWidth: true
- value: Audio.sink.audio.volume
- onMoved: {
- Audio.sink.audio.volume = value;
- }
- }
- WPanelIconButton {
- contentItem: Item {
- anchors.centerIn: parent
- Row {
- anchors.centerIn: parent
- spacing: -1
- FluentIcon {
- anchors.verticalCenter: parent.verticalCenter
- implicitSize: 18
- icon: "settings"
- }
- FluentIcon {
- anchors.verticalCenter: parent.verticalCenter
- implicitSize: 12
- icon: "chevron-right"
- }
- }
- }
- }
}
}
}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodySliders.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodySliders.qml
new file mode 100644
index 000000000..852d44075
--- /dev/null
+++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodySliders.qml
@@ -0,0 +1,45 @@
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+import qs
+import qs.services
+import qs.modules.common
+import qs.modules.common.functions
+import qs.modules.waffle.looks
+
+RowLayout {
+ spacing: 4
+
+ WPanelIconButton {
+ iconName: WIcons.volumeIcon
+ onClicked: Audio.toggleMute();
+ }
+
+ WSlider {
+ Layout.fillWidth: true
+ value: Audio.sink.audio.volume
+ onMoved: {
+ Audio.sink.audio.volume = value;
+ }
+ }
+
+ WPanelIconButton {
+ contentItem: Item {
+ anchors.centerIn: parent
+ Row {
+ anchors.centerIn: parent
+ spacing: -1
+ FluentIcon {
+ anchors.verticalCenter: parent.verticalCenter
+ implicitSize: 18
+ icon: "options"
+ }
+ FluentIcon {
+ anchors.verticalCenter: parent.verticalCenter
+ implicitSize: 12
+ icon: "chevron-right"
+ }
+ }
+ }
+ }
+}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodyToggles.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodyToggles.qml
new file mode 100644
index 000000000..e24d0b051
--- /dev/null
+++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterBodyToggles.qml
@@ -0,0 +1,49 @@
+pragma ComponentBehavior: Bound
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+import qs
+import qs.services
+import qs.modules.common
+import qs.modules.common.models.quickToggles
+import qs.modules.common.functions
+import qs.modules.waffle.looks
+import qs.modules.waffle.actionCenter.toggles
+
+Item {
+ id: root
+
+ property int currentPage: 0
+ property alias columns: grid.columns
+ property alias rows: grid.rows
+ readonly property int itemsPerPage: columns * rows
+ property list toggles: Config.options.waffles.actionCenter.toggles
+ property list togglesInCurrentPage: toggles.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage)
+
+ property real padding: 22
+ implicitHeight: grid.implicitHeight + padding * 2
+
+ GridLayout {
+ id: grid
+ anchors {
+ fill: parent
+ margins: parent.padding
+ }
+
+ columns: 3
+ rows: 2
+ rowSpacing: 12
+ columnSpacing: 12
+ uniformCellHeights: true
+ uniformCellWidths: true
+
+ Repeater {
+ model: ScriptModel {
+ values: root.togglesInCurrentPage
+ }
+ delegate: ActionCenterTogglesDelegateChooser {}
+ }
+ }
+
+ // TODO: pages indicator on the right
+}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterToggle.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterToggle.qml
deleted file mode 100644
index cb88b86a4..000000000
--- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterToggle.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import Quickshell
-import qs.modules.common
-import qs.modules.common.functions
-import qs.modules.waffle.looks
-
-// It should be perfectly fine to use just a Column here, but somehow
-// using ColumnLayout prevents weird opening anim stutter
-ColumnLayout {
- id: root
-
- property alias name: toggleNameText.text
-
- Rectangle {
- Layout.fillWidth: true
- implicitWidth: 96
- implicitHeight: 48
- color: "transparent"
- border.width: 1
- border.color: Looks.colors.bg0Border // ???
- radius: Looks.radius.medium
- }
-
- Item {
- implicitHeight: 36
- Layout.fillWidth: true
- WText {
- id: toggleNameText
- anchors {
- verticalCenter: parent.verticalCenter
- left: parent.left
- right: parent.right
- }
- horizontalAlignment: Text.AlignHCenter
- elide: Text.ElideRight
- text: "Toggle"
- }
- }
-}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterToggleButton.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterToggleButton.qml
new file mode 100644
index 000000000..4c1395948
--- /dev/null
+++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterToggleButton.qml
@@ -0,0 +1,120 @@
+pragma ComponentBehavior: Bound
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+import qs
+import qs.services
+import qs.modules.common
+import qs.modules.common.models.quickToggles
+import qs.modules.common.functions
+import qs.modules.common.widgets
+import qs.modules.waffle.looks
+
+// It should be perfectly fine to use just a Column here, but somehow
+// using ColumnLayout prevents weird opening anim stutter
+ColumnLayout {
+ id: root
+
+ required property QuickToggleModel toggleModel
+ property string name: toggleModel?.name ?? ""
+ property string statusText: (toggleModel?.hasStatusText) ? (toggleModel?.statusText || (toggled ? Translation.tr("Active") : Translation.tr("Inactive"))) : ""
+ property string tooltipText: toggleModel?.tooltipText ?? ""
+ required property string icon
+ property bool available: toggleModel?.available ?? true
+ property bool toggled: toggleModel?.toggled ?? false
+ property var mainAction: toggleModel?.mainAction ?? null
+ property var altAction: toggleModel?.hasMenu ? (() => root.openMenu()) : (toggleModel?.altAction ?? null)
+ property bool hasMenu: toggleModel?.hasMenu ?? false
+
+ property color colBackground: toggled ? Looks.colors.accent : Looks.colors.bg2
+ property color colBackgroundHovered: toggled ? Looks.colors.accentHover : Looks.colors.bg2Hover
+ property color colBackgroundActive: toggled ? Looks.colors.accentActive : Looks.colors.bg2Active
+ property color colBorder: toggled ? Looks.colors.accentHover : Looks.colors.bg0Border
+ property color colForeground: toggled ? Looks.colors.accentFg : Looks.colors.fg1
+
+ Rectangle {
+ Layout.fillWidth: true
+ implicitWidth: 96
+ implicitHeight: 48
+ color: root.colBackground
+ border.color: root.colBorder
+ border.width: 1
+ radius: Looks.radius.medium
+
+ RowLayout {
+ anchors.fill: parent
+ uniformCellSizes: true
+ spacing: 0
+
+ WButton {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ inset: 0
+ backgroundOpacity: 0.8
+ checked: root.toggled
+ border.width: 1
+ border.color: root.colBorder
+ topLeftRadius: Looks.radius.medium
+ bottomLeftRadius: Looks.radius.medium
+ topRightRadius: root.hasMenu ? 0 : Looks.radius.medium
+ bottomRightRadius: root.hasMenu ? 0 : Looks.radius.medium
+ onClicked: root.mainAction && root.mainAction()
+ contentItem: Item {
+ anchors.centerIn: parent
+ FluentIcon {
+ anchors.centerIn: parent
+ icon: root.icon
+ implicitSize: 18
+ monochrome: true
+ filled: root.toggled
+ color: root.colForeground
+ }
+ }
+ }
+ FadeLoader {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ shown: root.hasMenu
+ sourceComponent: WButton {
+ inset: 0
+ backgroundOpacity: 0.8
+ checked: root.toggled
+ border.width: 1
+ border.color: root.colBorder
+ topLeftRadius: 0
+ bottomLeftRadius: 0
+ topRightRadius: Looks.radius.medium
+ bottomRightRadius: Looks.radius.medium
+ contentItem: Item {
+ anchors.centerIn: parent
+ FluentIcon {
+ anchors.centerIn: parent
+ icon: "chevron-right"
+ implicitSize: 18
+ monochrome: true
+ color: root.colForeground
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ id: toggleNameWidget
+ implicitHeight: 36
+ Layout.fillWidth: true
+ WText {
+ id: toggleNameText
+ anchors {
+ verticalCenter: parent.verticalCenter
+ left: parent.left
+ right: parent.right
+ }
+ horizontalAlignment: Text.AlignHCenter
+ elide: Text.ElideRight
+ text: root.name
+ }
+
+ }
+}
diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml
new file mode 100644
index 000000000..c413ceb55
--- /dev/null
+++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml
@@ -0,0 +1,136 @@
+pragma ComponentBehavior: Bound
+import qs
+import qs.services
+import qs.modules.common
+import qs.modules.common.models.quickToggles
+import qs.modules.common.widgets
+import qs.modules.waffle.looks
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+
+DelegateChooser {
+ id: root
+
+ // role: "type" is implied by usage
+
+ DelegateChoice {
+ roleValue: "antiFlashbang"
+ ActionCenterToggleButton {
+ toggleModel: AntiFlashbangToggle {}
+ icon: "flash-off"
+ }
+ }
+ DelegateChoice {
+ roleValue: "audio"
+ ActionCenterToggleButton {
+ toggleModel: AudioToggle {}
+ icon: "speaker-2"
+ }
+ }
+ DelegateChoice {
+ roleValue: "bluetooth"
+ ActionCenterToggleButton {
+ toggleModel: BluetoothToggle {}
+ icon: WIcons.bluetoothIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "cloudflareWarp"
+ ActionCenterToggleButton {
+ toggleModel: CloudflareWarpToggle {}
+ icon: "globe-shield"
+ }
+ }
+ DelegateChoice {
+ roleValue: "colorPicker"
+ ActionCenterToggleButton {
+ toggleModel: ColorPickerToggle {}
+ icon: "eyedropper"
+ }
+ }
+ DelegateChoice {
+ roleValue: "darkMode"
+ ActionCenterToggleButton {
+ toggleModel: DarkModeToggle {}
+ icon: "dark-theme*"
+ }
+ }
+ DelegateChoice {
+ roleValue: "easyEffects"
+ ActionCenterToggleButton {
+ toggleModel: EasyEffectsToggle {}
+ icon: "device-eq"
+ }
+ }
+ DelegateChoice {
+ roleValue: "gameMode"
+ ActionCenterToggleButton {
+ toggleModel: GameModeToggle {}
+ icon: "games"
+ }
+ }
+ DelegateChoice {
+ roleValue: "idleInhibitor"
+ ActionCenterToggleButton {
+ toggleModel: IdleInhibitorToggle {}
+ icon: "drink-coffee"
+ }
+ }
+ DelegateChoice {
+ roleValue: "mic"
+ ActionCenterToggleButton {
+ toggleModel: MicToggle {}
+ icon: WIcons.micIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "musicRecognition"
+ ActionCenterToggleButton {
+ toggleModel: MusicRecognitionToggle {}
+ icon: "music-note-2"
+ }
+ }
+ DelegateChoice {
+ roleValue: "network"
+ ActionCenterToggleButton {
+ toggleModel: NetworkToggle {}
+ icon: WIcons.internetIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "nightLight"
+ ActionCenterToggleButton {
+ toggleModel: NightLightToggle {}
+ icon: WIcons.nightLightIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "notifications"
+ ActionCenterToggleButton {
+ toggleModel: NotificationToggle {}
+ icon: WIcons.notificationsIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "onScreenKeyboard"
+ ActionCenterToggleButton {
+ toggleModel: OnScreenKeyboardToggle {}
+ icon: GlobalStates.oskOpen ? "keyboard-dock" : "keyboard"
+ }
+ }
+ DelegateChoice {
+ roleValue: "powerProfile"
+ ActionCenterToggleButton {
+ toggleModel: PowerProfilesToggle {}
+ icon: WIcons.powerProfileIcon
+ }
+ }
+ DelegateChoice {
+ roleValue: "screenSnip"
+ ActionCenterToggleButton {
+ toggleModel: ScreenSnipToggle {}
+ icon: "cut"
+ }
+ }
+}
diff --git a/dots/.config/quickshell/ii/modules/waffle/bar/UpdatesButton.qml b/dots/.config/quickshell/ii/modules/waffle/bar/UpdatesButton.qml
index 54286ac88..7d3df43f3 100644
--- a/dots/.config/quickshell/ii/modules/waffle/bar/UpdatesButton.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/bar/UpdatesButton.qml
@@ -13,6 +13,7 @@ BarIconButton {
padding: 4
iconName: "arrow-sync"
iconSize: 20 // Needed because the icon appears to have some padding
+ iconMonochrome: true
tooltipText: Translation.tr("Get the latest features and security improvements with\nthe newest feature update.\n\n%1 packages").arg(Updates.count)
onClicked: {
diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml b/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml
index 5a7f15902..e4a44d19a 100644
--- a/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml
@@ -6,6 +6,7 @@ import qs.modules.waffle.looks
Kirigami.Icon {
id: root
required property string icon
+ property bool filled: false
property alias monochrome: root.isMask
// 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
@@ -13,7 +14,7 @@ Kirigami.Icon {
implicitWidth: implicitSize
implicitHeight: implicitSize
- source: `${Looks.iconsPath}/${root.icon}.svg`
+ source: `${Looks.iconsPath}/${root.icon}${filled ? "-filled" : ""}.svg`
fallback: root.icon
roundToIconSize: false
color: Looks.colors.fg
diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml
index 70d452fa7..8d864819d 100644
--- a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml
@@ -17,6 +17,12 @@ Singleton {
property real backgroundTransparency: 0.17
property real contentTransparency: 0.25
+ function applyBackgroundTransparency(col) {
+ return ColorUtils.applyAlpha(col, 1 - root.backgroundTransparency)
+ }
+ function applyContentTransparency(col) {
+ return ColorUtils.applyAlpha(col, 1 - root.contentTransparency)
+ }
colors: QtObject {
id: colors
property color ambientShadow: ColorUtils.transparentize("#000000", 0.75)
@@ -41,8 +47,11 @@ Singleton {
property color dangerActive: "#B62D1F"
property color warning: "#FF9900"
// property color accent: root.dark ? "#A5C6D8" : "#5377A3"
- property color accent: Appearance.m3colors.m3primary
+ property color accent: Appearance.colors.colPrimary
+ property color accentHover: Appearance.colors.colPrimaryHover
+ property color accentActive: Appearance.colors.colPrimaryActive
property color accentUnfocused: root.dark ? "#989898" : "#848484"
+ property color accentFg: ColorUtils.isDark(accent) ? "#FFFFFF" : "#000000"
}
radius: QtObject {
diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml b/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml
index 3b48a79e3..dda070a8f 100644
--- a/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml
@@ -9,9 +9,13 @@ import qs.modules.waffle.looks
Button {
id: root
+ property color colBackground: ColorUtils.transparentize(Looks.colors.bg1)
property color colBackgroundHover: Looks.colors.bg2Hover
property color colBackgroundActive: Looks.colors.bg2Active
- property color colBackground: ColorUtils.transparentize(Looks.colors.bg1)
+ property color colBackgroundToggled: Looks.colors.accent
+ property color colBackgroundToggledHover: Looks.colors.accentHover
+ property color colBackgroundToggledActive: Looks.colors.accentActive
+ property alias backgroundOpacity: backgroundRect.opacity
property alias monochromeIcon: buttonIcon.monochrome
property bool forceShowIcon: false
@@ -24,17 +28,33 @@ Button {
bottomInset: inset
leftInset: inset
rightInset: inset
+ property alias radius: backgroundRect.radius
+ property alias topLeftRadius: backgroundRect.topLeftRadius
+ property alias topRightRadius: backgroundRect.topRightRadius
+ property alias bottomLeftRadius: backgroundRect.bottomLeftRadius
+ property alias bottomRightRadius: backgroundRect.bottomRightRadius
+ property alias border: backgroundRect.border
horizontalPadding: 10
verticalPadding: 6
implicitHeight: contentItem.implicitHeight + verticalPadding * 2
implicitWidth: contentItem.implicitWidth + horizontalPadding * 2
background: Rectangle {
+ id: backgroundRect
radius: Looks.radius.medium
color: {
+ if (root.checked) {
+ if (root.down) {
+ return root.colBackgroundToggledActive;
+ } else if (root.hovered && !root.down) {
+ return root.colBackgroundToggledHover;
+ } else {
+ return root.colBackgroundToggled;
+ }
+ }
if (root.down) {
return root.colBackgroundActive;
- } else if ((root.hovered && !root.down) || root.checked) {
+ } else if (root.hovered && !root.down) {
return root.colBackgroundHover;
} else {
return root.colBackground;
diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml
index 21e471489..8fffbffac 100644
--- a/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml
+++ b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml
@@ -1,6 +1,7 @@
pragma Singleton
import QtQuick
import Quickshell
+import Quickshell.Services.UPower
import qs.services
Singleton {
@@ -38,5 +39,24 @@ Singleton {
if (volume < 0.5)
return "speaker-1";
return "speaker";
- }
+ }
+
+ property string micIcon: {
+ const muted = Audio.source?.audio.muted ?? false;
+ return muted ? "mic-off" : "mic";
+ }
+
+ property string bluetoothIcon: BluetoothStatus.connected ? "bluetooth-connected" : BluetoothStatus.enabled ? "bluetooth" : "bluetooth-disabled"
+
+ property string nightLightIcon: Hyprsunset.active ? "weather-moon" : "weather-moon-off"
+
+ property string notificationsIcon: Notifications.silent ? "alert-snooze" : "alert"
+
+ property string powerProfileIcon: {
+ switch(PowerProfiles.profile) {
+ case PowerProfile.PowerSaver: return "leaf-two";
+ case PowerProfile.Balanced: return "settings-cog-multiple";
+ case PowerProfile.Performance: return "fire";
+ }
+ }
}