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 @@ - - - - ic_fluent_wifi_1_24_regular - Created with Sketch. - - - - - - - \ 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 @@ - - - - ic_fluent_wifi_2_24_regular - Created with Sketch. - - - - - - - \ 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 @@ - - - - ic_fluent_wifi_3_24_regular - Created with Sketch. - - - - - - - \ 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 @@ - - - - ic_fluent_wifi_4_24_regular - Created with Sketch. - - - - - - - \ 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"; + } + } }