waffles: bar (#2458)
@@ -6,8 +6,8 @@ monitor=,preferred,auto,1
|
||||
# monitor=HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1
|
||||
|
||||
gesture = 3, swipe, move,
|
||||
gesture = 3, pinch, float
|
||||
gesture = 4, horizontal, workspace
|
||||
gesture = 4, pinch, float
|
||||
gesture = 4, up, dispatcher, global, quickshell:overviewToggle
|
||||
gesture = 4, down, dispatcher, global, quickshell:overviewClose
|
||||
gestures {
|
||||
@@ -62,7 +62,7 @@ decoration {
|
||||
brightness = 1
|
||||
noise = 0.04
|
||||
contrast = 1
|
||||
popups = true
|
||||
popups = false
|
||||
popups_ignorealpha = 0.6
|
||||
input_methods = true
|
||||
input_methods_ignorealpha = 0.8
|
||||
|
||||
@@ -53,6 +53,7 @@ bindd = Ctrl+Super, T, Toggle wallpaper selector, global, quickshell:wallpaperSe
|
||||
bindd = Ctrl+Super+Alt, T, Select random wallpaper, global, quickshell:wallpaperSelectorRandom # Random wallpaper
|
||||
bindd = Ctrl+Super, T, Change wallpaper, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/colors/switchwall.sh # [hidden] Change wallpaper (fallback)
|
||||
bind = Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig & # Restart widgets
|
||||
bind = Super+Alt, W, global, quickshell:panelFamilyCycle # Cycle panel family
|
||||
|
||||
##! Utilities
|
||||
# Screenshot, Record, OCR, Color picker, Clipboard history
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
The "search" and "task view" icons are from here, with modifications
|
||||
|
||||
https://www.figma.com/community/file/1123040825921884189/windows-11
|
||||
|
||||
License: CC BY 4.0
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_0_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_0_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_1_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_1_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M6.00298186,8.99875062 L7,8.99875062 C7.51284071,8.99875062 7.93550786,9.3847949 7.99327234,9.88213037 L8,9.99875062 L8,13.9987506 C8,14.5116006 7.61395571,14.9342598 7.11662025,14.9920231 L7,14.9987506 L6.00298186,14.9987506 C5.49014115,14.9987506 5.067474,14.6127236 5.00970952,14.1153746 L5.00298186,13.9987506 L5.00298186,9.99875062 C5.00298186,9.48591919 5.38902615,9.06324409 5.88636161,9.00547842 L6.00298186,8.99875062 L7,8.99875062 L6.00298186,8.99875062 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_2_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_2_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M6,9.00314996 L8,9 C8.51284071,9 8.93550786,9.38604429 8.99327234,9.88337975 L9,10 L9,14 C9,14.51285 8.61395571,14.9355092 8.11662025,14.9932725 L8,15 L6,15.00315 C5.48715929,15.00315 5.06449214,14.6171229 5.00672766,14.1197739 L5,14.00315 L5,10.00315 C5,9.49031853 5.38604429,9.06764343 5.88337975,9.00987776 L6,9.00314996 L8,9 L6,9.00314996 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_3_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_3_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M6.01665635,9 L9,9 C9.51283143,9 9.93550653,9.38604429 9.9932722,9.88337975 L10,10 L10,14 C10,14.51285 9.61396434,14.9355092 9.1166221,14.9932725 L9,15 L6.01665635,15 C5.50382493,15 5.08114982,14.613973 5.02338415,14.1166239 L5.01665635,14 L5.01665635,10 C5.01665635,9.48716857 5.40270064,9.06449347 5.90003611,9.0067278 L6.01665635,9 L9,9 L6.01665635,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_4_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_4_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L10,9 C10.5128407,9 10.9355079,9.38604429 10.9932723,9.88337975 L11,10 L11,14 C11,14.51285 10.6139557,14.9355092 10.1166202,14.9932725 L10,15 L5.99967629,15 C5.48683557,15 5.06416843,14.613973 5.00640394,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L10,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_5_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_5_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L11,9 C11.51285,9 11.9355092,9.38604429 11.9932725,9.88337975 L12,10 L12,14 C12,14.51285 11.613973,14.9355092 11.1166239,14.9932725 L11,15 L5.99967629,15 C5.48684486,15 5.06416975,14.613973 5.00640408,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L11,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_6_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_6_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L12,9 C12.51285,9 12.9355092,9.38604429 12.9932725,9.88337975 L13,10 L13,14 C13,14.51285 12.613973,14.9355092 12.1166239,14.9932725 L12,15 L5.99967629,15 C5.48684486,15 5.06416975,14.613973 5.00640408,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L12,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_7_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_7_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L13,9 C13.51285,9 13.9355092,9.38604429 13.9932725,9.88337975 L14,10 L14,14 C14,14.51285 13.613973,14.9355092 13.1166239,14.9932725 L13,15 L5.99967629,15 C5.48684486,15 5.06416975,14.613973 5.00640408,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L13,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_8_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_8_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L14,9 C14.51285,9 14.9355092,9.38604429 14.9932725,9.88337975 L15,10 L15,14 C15,14.51285 14.613973,14.9355092 14.1166239,14.9932725 L14,15 L5.99967629,15 C5.48683557,15 5.06416843,14.613973 5.00640394,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L14,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_9_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_9_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M5.99967629,9 L15,9 C15.51285,9 15.9355092,9.38604429 15.9932725,9.88337975 L16,10 L16,14 C16,14.51285 15.613973,14.9355092 15.1166239,14.9932725 L15,15 L5.99967629,15 C5.48683557,15 5.06416843,14.613973 5.00640394,14.1166239 L4.99967629,14 L4.99967629,10 C4.99967629,9.48716857 5.38572057,9.06449347 5.88305604,9.0067278 L5.99967629,9 L15,9 L5.99967629,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_charge_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_charge_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M10.75,6 L17,6 C18.597725,6 19.903664,7.24892392 19.9949075,8.82372764 L20,9 L20,10 L21.0006474,10.0178372 C21.1827474,10.0178372 21.3535474,10.0665372 21.5006474,10.1516372 C21.7663363,10.3053261 21.9547511,10.5777705 21.993341,10.8963494 L22.0006474,11.0178372 L22.0006474,13.0178372 C22.0006474,13.3879372 21.7995474,13.7111372 21.5006474,13.8840372 C21.3903224,13.9478622 21.2666662,13.9912122 21.1349099,14.0088981 L21.0006474,14.0178372 L20,14 L20,15 C20,16.597725 18.7511226,17.903664 17.1762773,17.9949075 L17,18 L7.99757206,18 C7.5833585,18 7.24757206,17.6642136 7.24757206,17.25 C7.24757206,16.8703042 7.52972594,16.556509 7.8958015,16.5068466 L7.99757206,16.5 L17,16.5 C17.7796706,16.5 18.4204457,15.9050879 18.4931332,15.1444558 L18.5,15 L18.5,9 C18.5,8.22030118 17.9050879,7.579551 17.1444558,7.50686655 L17,7.5 L10.75,7.5 C10.3357864,7.5 10,7.16421356 10,6.75 C10,6.37030423 10.2821539,6.05650904 10.6482294,6.00684662 L10.75,6 L17,6 L10.75,6 Z M6.251,10.998 L6.25177703,17.25 C6.25177703,17.6642136 5.9159906,18 5.50177703,18 C5.12208127,18 4.80828607,17.7178461 4.75862365,17.3517706 L4.75177703,17.25 L4.75177972,10.9979702 L3.75,10.9988442 C2.78350169,10.9988442 2,10.2153425 2,9.24884419 L2,6.75 C2,6.33578644 2.33578644,6 2.75,6 L3.501,6 L3.50108113,4.75 C3.50108113,4.37030423 3.78323502,4.05650904 4.14931058,4.00684662 L4.25108113,4 C4.6307769,4 4.9445721,4.28215388 4.99423452,4.64822944 L5.00108113,4.75 L5.001,6 L5.996,6 L5.99690138,4.75 C5.99690138,4.37030423 6.27905526,4.05650904 6.64513082,4.00684662 L6.74690138,4 C7.12659715,4 7.44039234,4.28215388 7.49005476,4.64822944 L7.49690138,4.75 L7.496,6 L8.25355407,6 C8.66776763,6 9.00355407,6.33578644 9.00355407,6.75 L9.00355407,9.24884419 C9.00355407,10.2153425 8.22005238,10.9988442 7.25355407,10.9988442 L6.251,10.998 L6.25177703,17.25 L6.251,10.998 Z M7.50355407,7.5 L3.5,7.5 L3.5,9.24884419 C3.5,9.38691538 3.61192881,9.49884419 3.75,9.49884419 L7.25355407,9.49884419 C7.39162526,9.49884419 7.50355407,9.38691538 7.50355407,9.24884419 L7.50355407,7.5 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_full_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_full_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L4.99967629,18 C3.34282629,18 1.99967629,16.6569 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49967629,15 C3.49967629,15.7796706 4.09456182,16.4204457 4.85521583,16.4931332 L4.99967629,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 Z M6,9 L16,9 C16.51285,9 16.9355092,9.38604429 16.9932725,9.88337975 L17,10 L17,14 C17,14.51285 16.613973,14.9355092 16.1166239,14.9932725 L16,15 L6,15 C5.48716857,15 5.06449347,14.613973 5.0067278,14.1166239 L5,14 L5,10 C5,9.48716857 5.38604429,9.06449347 5.88337975,9.0067278 L6,9 L16,9 L6,9 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_saver_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_saver_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M7.37459793,4.34137476 C7.68452344,3.86394559 8.39245135,3.89222013 8.66331348,4.39284588 C10.2179297,7.26619287 11.0037767,9.47715073 11.0037767,11.0803426 C11.0037767,12.765924 10.39257,14.0617927 9.17393508,14.8776553 C8.82973756,15.1080917 8.36390471,15.0158701 8.13346829,14.6716726 C7.90303187,14.3274751 7.99525346,13.8616422 8.33945097,13.6312058 C9.11692763,13.1106938 9.50377671,12.2905038 9.50377671,11.0803426 C9.50377671,10.0215399 9.02452027,8.48168925 8.05662019,6.49081547 L7.88073996,6.13480901 L7.63194361,6.4035557 C7.28858869,6.76131482 6.89874563,7.11683704 6.46262619,7.47062881 L6.12686309,7.73565609 L5.21391139,8.43259362 C3.84736858,9.51102793 3.40808517,10.2260191 3.51452802,11.4863368 C3.61149856,12.6344992 4.25897122,13.3176425 5.61742734,13.6125757 C6.23348697,12.2558744 6.52744481,10.9765033 6.50914153,9.77046715 C6.50285599,9.35630128 6.83350832,9.01545807 7.24767419,9.00917252 C7.66184006,9.00288698 8.00268327,9.33353932 8.00896882,9.74770518 C8.03119281,11.2120845 7.6747993,12.7352778 6.94802584,14.3136874 C6.1847857,15.9712955 4.86911904,17.1883579 3.03599216,17.946947 C2.65325583,18.1053319 2.2145904,17.9234592 2.05620549,17.5407229 C1.89782059,17.1579865 2.07969335,16.7193211 2.46242968,16.5609362 C3.42638213,16.162031 4.1970589,15.6237504 4.78387001,14.94127 C3.1238917,14.4221188 2.16176731,13.2929277 2.01984933,11.6125731 C1.86086676,9.73016828 2.556485,8.62015565 4.29212381,7.24939192 L5.12865455,6.61077824 L5.49812196,6.32152723 C6.33097189,5.64834818 6.95575131,4.986593 7.37459793,4.34137476 Z M11.75,6 L17,6 C18.597725,6 19.903664,7.24892392 19.9949075,8.82372764 L20,9 L20,10 L21.0006474,10.0178372 C21.1827474,10.0178372 21.3535474,10.0665372 21.5006474,10.1516372 C21.7663363,10.3053261 21.9547511,10.5777705 21.993341,10.8963494 L22.0006474,11.0178372 L22.0006474,13.0178372 C22.0006474,13.3879372 21.7995474,13.7111372 21.5006474,13.8840372 C21.3903224,13.9478622 21.2666662,13.9912122 21.1349099,14.0088981 L21.0006474,14.0178372 L20,14 L20,15 C20,16.597725 18.7511226,17.903664 17.1762773,17.9949075 L17,18 L6.75,18 C6.33578644,18 6,17.6642136 6,17.25 C6,16.8703042 6.28215388,16.556509 6.64822944,16.5068466 L6.75,16.5 L17,16.5 C17.7796706,16.5 18.4204457,15.9050879 18.4931332,15.1444558 L18.5,15 L18.5,9 C18.5,8.22030118 17.9050879,7.579551 17.1444558,7.50686655 L17,7.5 L11.75,7.5 C11.3357864,7.5 11,7.16421356 11,6.75 C11,6.37030423 11.2821539,6.05650904 11.6482294,6.00684662 L11.75,6 L17,6 L11.75,6 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_battery_warning_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-System-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_battery_warning_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M8.24396584,11.2000749 C8.47539071,11.3326569 8.66728011,11.5245463 8.79986207,11.7559711 L12.809195,18.754354 C13.2210039,19.4731759 12.9721207,20.3897333 12.2532988,20.8015422 C12.0263081,20.9315838 11.7692547,21 11.5076528,21 L3.48898695,21 C2.66055983,21 1.98898695,20.3284271 1.98898695,19.5 C1.98898695,19.2383981 2.05740315,18.9813447 2.18744475,18.754354 L6.19677768,11.7559711 C6.60858657,11.0371492 7.52514393,10.788266 8.24396584,11.2000749 Z M7.5,18 C7.22385763,18 7,18.2238576 7,18.5 C7,18.7761424 7.22385763,19 7.5,19 C7.77614237,19 8,18.7761424 8,18.5 C8,18.2238576 7.77614237,18 7.5,18 Z M17,6 C18.6569,6 20,7.34315 20,9 L20,10 L21.0003237,10 C21.1824237,10 21.3532237,10.0487 21.5003237,10.1338 C21.7992237,10.3067 22.0003237,10.6299 22.0003237,11 L22.0003237,13 C22.0003237,13.3701 21.7992237,13.6933 21.5003237,13.8662 C21.3532237,13.9513 21.1824237,14 21.0003237,14 L20,14 L20,15 C20,16.6569 18.6569,18 17,18 L13.528987,18 L12.669987,16.5 L16.998153,16.5 C17.7778236,16.5 18.4185987,15.9050879 18.4912862,15.1444558 L18.498153,15 L18.498153,9 C18.498153,8.22030118 17.9032409,7.579551 17.1426088,7.50686655 L16.998153,7.5 L4.99967629,7.5 C4.21997746,7.5 3.57922729,8.09488554 3.50654284,8.85553954 L3.49967629,9 L3.49898695,14.453 L2.36432329,16.4347052 C2.13181384,16.0085155 1.99967629,15.5196934 1.99967629,15 L1.99967629,9 C1.99967629,7.34315 3.34282629,6 4.99967629,6 L17,6 Z M7.49831987,13 C7.25285999,13 7.0487115,13.1768752 7.00637554,13.4101244 L6.99831987,13.5 L6.99831987,16.5 L7.00637554,16.5898756 C7.0487115,16.8231248 7.25285999,17 7.49831987,17 C7.74377976,17 7.94792824,16.8231248 7.99026421,16.5898756 L7.99831987,16.5 L7.99831987,13.5 L7.99026421,13.4101244 C7.94792824,13.1768752 7.74377976,13 7.49831987,13 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_bluetooth_connected_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_bluetooth_connected_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M9.00427018,9.60805953 L9.00427018,3.75341357 C9.00427018,3.10661366 9.75639732,2.778502 10.2293152,3.17231446 L10.3053728,3.24470349 L15.0170462,8.34901634 C15.2838816,8.63808804 15.2788995,9.07799262 15.0222497,9.36090236 L14.9460297,9.43393586 L11.8691709,11.9975127 L14.9463234,14.563993 C15.2482827,14.8158403 15.3005884,15.2523877 15.0831619,15.5662246 L15.0171612,15.6485431 L10.3054878,20.7551719 C9.86683047,21.2305996 9.09146152,20.9615901 9.01105885,20.3513785 L9.00427018,20.2465864 L9.00427018,14.3844903 L7.88374392,15.3180903 C7.56551223,15.5832345 7.0925926,15.5401986 6.82744837,15.2219669 C6.58640815,14.9326654 6.60006224,14.5155226 6.84362905,14.2428626 L6.92357169,14.1656714 L9.00427018,12.4320753 L9.00427018,11.5613045 L6.92327801,9.8256656 C6.60518153,9.56035916 6.56238675,9.08741765 6.82769319,8.76932117 C7.06888086,8.48014256 7.48166776,8.418486 7.79371723,8.60899428 L7.88403761,8.67373635 L9.00427018,9.60805953 L9.00427018,3.75341357 L9.00427018,9.60805953 Z M10.6976156,12.973629 L10.5042702,13.1347205 L10.5042702,18.327709 L13.3800344,15.2108842 L10.6976156,12.973629 Z M16,11 C16.5522847,11 17,11.4477153 17,12 C17,12.5522847 16.5522847,13 16,13 C15.4477153,13 15,12.5522847 15,12 C15,11.4477153 15.4477153,11 16,11 Z M5,11 C5.55228475,11 6,11.4477153 6,12 C6,12.5522847 5.55228475,13 5,13 C4.44771525,13 4,12.5522847 4,12 C4,11.4477153 4.44771525,11 5,11 Z M10.5042702,5.67165144 L10.5042702,10.8591254 L10.6981134,11.0207992 L13.3796242,8.78661831 L10.5042702,5.67165144 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_bluetooth_searching_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_bluetooth_searching_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M9.00427018,9.60805953 L9.00427018,3.75341357 C9.00427018,3.10661366 9.75639732,2.778502 10.2293152,3.17231446 L10.3053728,3.24470349 L15.0170462,8.34901634 C15.2838816,8.63808804 15.2788995,9.07799262 15.0222497,9.36090236 L14.9460297,9.43393586 L11.8691709,11.9975127 L14.9463234,14.563993 C15.2482827,14.8158403 15.3005884,15.2523877 15.0831619,15.5662246 L15.0171612,15.6485431 L10.3054878,20.7551719 C9.86683047,21.2305996 9.09146152,20.9615901 9.01105885,20.3513785 L9.00427018,20.2465864 L9.00427018,14.3844903 L7.88374392,15.3180903 C7.56551223,15.5832345 7.0925926,15.5401986 6.82744837,15.2219669 C6.58640815,14.9326654 6.60006224,14.5155226 6.84362905,14.2428626 L6.92357169,14.1656714 L9.00427018,12.4320753 L9.00427018,11.5613045 L6.92327801,9.8256656 C6.60518153,9.56035916 6.56238675,9.08741765 6.82769319,8.76932117 C7.06888086,8.48014256 7.48166776,8.418486 7.79371723,8.60899428 L7.88403761,8.67373635 L9.00427018,9.60805953 L9.00427018,3.75341357 L9.00427018,9.60805953 Z M10.6976156,12.973629 L10.5042702,13.1347205 L10.5042702,18.327709 L13.3800344,15.2108842 L10.6976156,12.973629 Z M18.2699218,7.37152006 C18.5852349,7.10291159 19.0585969,7.1407732 19.3272054,7.45608633 C20.3983327,8.71345742 20.9971369,10.3089336 20.9971369,11.9948619 C20.9971369,13.68605 20.3945761,15.2861426 19.3173855,16.5451396 C19.0481,16.8598747 18.5746577,16.8967189 18.2599226,16.6274333 C17.9451875,16.3581478 17.9083434,15.8847055 18.1776289,15.5699704 C19.0244721,14.5801985 19.4971369,13.3250431 19.4971369,11.9948619 C19.4971369,10.6688121 19.0274216,9.41728507 18.1853555,8.42880363 C17.9167471,8.1134905 17.9546087,7.64012852 18.2699218,7.37152006 Z M16.2752297,9.18475884 C16.5905429,8.91615037 17.0639049,8.95401198 17.3325133,9.26932511 C17.9761571,10.0248833 18.3362115,10.9842256 18.3362115,11.997158 C18.3362115,13.0132519 17.9738988,13.9753684 17.3266141,14.7319008 C17.0573285,15.0466359 16.5838863,15.0834801 16.2691512,14.8141945 C15.9544161,14.544909 15.9175719,14.0714668 16.1868574,13.7567317 C16.6037948,13.2694243 16.8362115,12.6522449 16.8362115,11.997158 C16.8362115,11.3441041 16.6052459,10.7287109 16.1906635,10.2420424 C15.922055,9.92672928 15.9599166,9.4533673 16.2752297,9.18475884 Z M10.5042702,5.67165144 L10.5042702,10.8591254 L10.6981134,11.0207992 L13.3796242,8.78661831 L10.5042702,5.67165144 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094-.083.094Z" fill="#212121"/></svg>
|
||||
|
After Width: | Height: | Size: 410 B |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_cellular_data_1_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_cellular_data_1_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M3.75,17 C4.12969577,17 4.44349096,17.2821539 4.49315338,17.6482294 L4.5,17.75 L4.5,19.25 C4.5,19.6642136 4.16421356,20 3.75,20 C3.37030423,20 3.05650904,19.7178461 3.00684662,19.3517706 L3,19.25 L3,17.75 C3,17.3357864 3.33578644,17 3.75,17 Z M11.75,11 C12.1296958,11 12.443491,11.2821539 12.4931534,11.6482294 L12.5,11.75 L12.5,19.25 C12.5,19.6642136 12.1642136,20 11.75,20 C11.3703042,20 11.056509,19.7178461 11.0068466,19.3517706 L11,19.25 L11,11.75 C11,11.3357864 11.3357864,11 11.75,11 Z M15.75,8 C16.1296958,8 16.443491,8.28215388 16.4931534,8.64822944 L16.5,8.75 L16.5,19.25 C16.5,19.6642136 16.1642136,20 15.75,20 C15.3703042,20 15.056509,19.7178461 15.0068466,19.3517706 L15,19.25 L15,8.75 C15,8.33578644 15.3357864,8 15.75,8 Z M19.742726,5 C20.1224039,4.99635605 20.4389211,5.27522768 20.492132,5.64050924 L20.4999655,5.74212651 L20.4999655,19.2431626 C20.5039832,19.6570224 20.1714696,19.9957764 19.7572755,19.999897 C19.3775976,20.0034768 19.0610804,19.7245997 19.0078695,19.3593177 L19.000036,19.2577004 L19.000036,5.75666426 C18.9960183,5.3428045 19.3285319,5.00405049 19.742726,5 Z M7.75,14 C8.12969577,14 8.44349096,14.2821539 8.49315338,14.6482294 L8.5,14.75 L8.5,19.2487201 C8.5,19.6629337 8.16421356,19.9987201 7.75,19.9987201 C7.37030423,19.9987201 7.05650904,19.7165662 7.00684662,19.3504907 L7,19.2487201 L7,14.75 C7,14.3357864 7.33578644,14 7.75,14 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_mic_on_48_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_mic_on_48_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M34.5,23.75 C35.1903559,23.75 35.75,24.3096441 35.75,25 C35.75,30.7904522 31.3753005,35.5591386 25.7506989,36.1812617 L25.75,38.75 C25.75,39.4403559 25.1903559,40 24.5,40 C23.8527913,40 23.3204661,39.5081253 23.2564536,38.8778052 L23.25,38.75 L23.2503043,36.1813727 C17.6252197,35.5597057 13.25,30.7907965 13.25,25 C13.25,24.3096441 13.8096441,23.75 14.5,23.75 C15.1903559,23.75 15.75,24.3096441 15.75,25 C15.75,29.8324916 19.6675084,33.75 24.5,33.75 C29.3324916,33.75 33.25,29.8324916 33.25,25 C33.25,24.3096441 33.8096441,23.75 34.5,23.75 Z M24.5,8 C27.5375661,8 30,10.4624339 30,13.5 L30,24.5 C30,27.5375661 27.5375661,30 24.5,30 C21.4624339,30 19,27.5375661 19,24.5 L19,13.5 C19,10.4624339 21.4624339,8 24.5,8 Z M24.5,10.5 C22.8431458,10.5 21.5,11.8431458 21.5,13.5 L21.5,24.5 C21.5,26.1568542 22.8431458,27.5 24.5,27.5 C26.1568542,27.5 27.5,26.1568542 27.5,24.5 L27.5,13.5 C27.5,11.8431458 26.1568542,10.5 24.5,10.5 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_speaker_0_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_speaker_0_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M14.7041458,3.44083881 C14.8951735,3.66654944 15,3.95267225 15,4.24836951 L15,19.75 C15,20.4403559 14.4403559,21 13.75,21 C13.4542072,21 13.1679984,20.8951059 12.9422573,20.7039663 L7.97512872,16.4981973 L4.25,16.4981973 C3.00735931,16.4981973 2,15.490838 2,14.2481973 L2,9.74819733 C2,8.50555664 3.00735931,7.49819733 4.25,7.49819733 L7.97522325,7.49819733 L12.9424693,3.29422373 C13.4694295,2.84823684 14.2581589,2.91387865 14.7041458,3.44083881 Z M13.5,4.78747232 L8.52477675,8.99819733 L4.25,8.99819733 C3.83578644,8.99819733 3.5,9.33398377 3.5,9.74819733 L3.5,14.2481973 C3.5,14.6624109 3.83578644,14.9981973 4.25,14.9981973 L8.52487128,14.9981973 L13.5,19.2107402 L13.5,4.78747232 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_speaker_1_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_speaker_1_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M14.7041458,3.44249572 C14.8951735,3.66820635 15,3.95432916 15,4.25002642 L15,19.7516569 C15,20.4420128 14.4403559,21.0016569 13.75,21.0016569 C13.4542072,21.0016569 13.1679984,20.8967628 12.9422573,20.7056232 L7.97512872,16.4998542 L4.25,16.4998542 C3.00735931,16.4998542 2,15.4924949 2,14.2498542 L2,9.74985424 C2,8.50721355 3.00735931,7.49985424 4.25,7.49985424 L7.97522325,7.49985424 L12.9424693,3.29588063 C13.4694295,2.84989375 14.2581589,2.91553555 14.7041458,3.44249572 Z M13.5,4.78912923 L8.52477675,8.99985424 L4.25,8.99985424 C3.83578644,8.99985424 3.5,9.33564067 3.5,9.74985424 L3.5,14.2498542 C3.5,14.6640678 3.83578644,14.9998542 4.25,14.9998542 L8.52487128,14.9998542 L13.5,19.2123971 L13.5,4.78912923 Z M17.1035389,8.64021534 C17.4571007,8.42442159 17.9186545,8.53610465 18.1344483,8.88966643 C18.7082504,9.82979793 18.995732,10.8818435 18.995732,12.0303956 C18.995732,13.1789477 18.7082504,14.2309932 18.1344483,15.1711247 C17.9186545,15.5246865 17.4571007,15.6363696 17.1035389,15.4205758 C16.7499771,15.2047821 16.6382941,14.7432282 16.8540878,14.3896664 C17.2822376,13.6881753 17.495732,12.9068876 17.495732,12.0303956 C17.495732,11.1539036 17.2822376,10.3726158 16.8540878,9.67112473 C16.6382941,9.31756295 16.7499771,8.85600909 17.1035389,8.64021534 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.395 3.90244C15.1932 3.15384 16.5 3.71986 16.5 4.81425V23.1843C16.5 24.2785 15.1937 24.8446 14.3953 24.0964L9.45832 19.4703C9.134 19.1664 8.70619 18.9973 8.26174 18.9973H5.25C3.45507 18.9973 2 17.5422 2 15.7473V12.2553C2 10.4604 3.45508 9.00529 5.25 9.00529H8.26119C8.70587 9.00529 9.13388 8.836 9.45826 8.53182L14.395 3.90244ZM15 5.39141L10.4843 9.62599C9.8819 10.1909 9.08703 10.5053 8.26119 10.5053H5.25C4.2835 10.5053 3.5 11.2888 3.5 12.2553V15.7473C3.5 16.7138 4.2835 17.4973 5.25 17.4973H8.26174C9.08715 17.4973 9.88165 17.8114 10.484 18.3757L15 22.6074V5.39141Z" fill="#212121"/>
|
||||
<path d="M19.7824 10.7216C19.4905 10.4277 19.0157 10.4259 18.7217 10.7177C18.4277 11.0095 18.426 11.4844 18.7178 11.7784L20.9359 14.0128L18.7208 16.2186C18.4273 16.5108 18.4263 16.9857 18.7186 17.2792C19.0108 17.5727 19.4857 17.5737 19.7792 17.2814L21.9965 15.0735L24.2217 17.2823C24.5157 17.5741 24.9906 17.5723 25.2824 17.2784C25.5742 16.9844 25.5724 16.5095 25.2784 16.2177L23.0572 14.0128L25.2815 11.7792C25.5738 11.4857 25.5728 11.0109 25.2793 10.7186C24.9858 10.4263 24.5109 10.4273 24.2186 10.7208L21.9965 12.9521L19.7824 10.7216Z" fill="#212121"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.28033 2.21967C2.98744 1.92678 2.51257 1.92677 2.21967 2.21967C1.92678 2.51256 1.92677 2.98743 2.21967 3.28033L7.94442 9.00518H5.25C3.45508 9.00518 2 10.4602 2 12.2552V15.7472C2 17.5421 3.45507 18.9972 5.25 18.9972H8.26174C8.70619 18.9972 9.134 19.1663 9.45832 19.4702L14.3953 24.0963C15.1937 24.8445 16.5 24.2783 16.5 23.1842V17.5609L24.7194 25.7805C25.0123 26.0734 25.4872 26.0734 25.7801 25.7805C26.073 25.4876 26.073 25.0127 25.7801 24.7198L3.28033 2.21967ZM15 16.0609V22.6073L10.484 18.3756C9.88165 17.8112 9.08715 17.4972 8.26174 17.4972H5.25C4.2835 17.4972 3.5 16.7137 3.5 15.7472V12.2552C3.5 11.2887 4.2835 10.5052 5.25 10.5052H8.26119C8.61056 10.5052 8.95438 10.4489 9.28044 10.3412L15 16.0609Z" fill="#212121"/>
|
||||
<path d="M10.6222 7.44026L11.6834 8.50147L15 5.3913V11.8182L16.5 13.3182V4.81413C16.5 3.71975 15.1932 3.15373 14.395 3.90233L10.6222 7.44026Z" fill="#212121"/>
|
||||
<path d="M20.1724 16.9907L21.3088 18.1271C21.9119 16.8787 22.25 15.4782 22.25 13.9998C22.25 11.8635 21.544 9.88995 20.3528 8.30269C20.1042 7.97139 19.6341 7.90437 19.3028 8.15299C18.9715 8.40161 18.9045 8.87173 19.1531 9.20303C20.1561 10.5395 20.75 12.1992 20.75 13.9998C20.75 15.0577 20.545 16.067 20.1724 16.9907Z" fill="#212121"/>
|
||||
<path d="M22.975 19.7933L24.0705 20.8888C25.2945 18.8814 26 16.5225 26 13.9999C26 10.6481 24.7545 7.58532 22.7021 5.2521C22.4285 4.94109 21.9546 4.91074 21.6436 5.18432C21.3326 5.4579 21.3022 5.9318 21.5758 6.24281C23.3966 8.31273 24.5 11.0265 24.5 13.9999C24.5 16.1069 23.9459 18.0837 22.975 19.7933Z" fill="#212121"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.5 4.81425C16.5 3.71986 15.1932 3.15384 14.395 3.90244L9.45826 8.53182C9.13388 8.836 8.70587 9.00529 8.26119 9.00529H5.25C3.45508 9.00529 2 10.4604 2 12.2553V15.7473C2 17.5422 3.45507 18.9973 5.25 18.9973H8.26174C8.70619 18.9973 9.134 19.1664 9.45832 19.4703L14.3953 24.0964C15.1937 24.8446 16.5 24.2785 16.5 23.1843V4.81425ZM10.4843 9.62599L15 5.39141V22.6074L10.484 18.3757C9.88165 17.8114 9.08715 17.4973 8.26174 17.4973H5.25C4.2835 17.4973 3.5 16.7138 3.5 15.7473V12.2553C3.5 11.2888 4.2835 10.5053 5.25 10.5053H8.26119C9.08703 10.5053 9.8819 10.1909 10.4843 9.62599Z" fill="#212121"/>
|
||||
<path d="M22.7021 5.25221C22.4285 4.9412 21.9546 4.91085 21.6436 5.18443C21.3326 5.45801 21.3022 5.93192 21.5758 6.24293C23.3966 8.31284 24.5 11.0266 24.5 14C24.5 16.9733 23.3966 19.6871 21.5758 21.757C21.3022 22.068 21.3326 22.5419 21.6436 22.8155C21.9546 23.0891 22.4285 23.0587 22.7021 22.7477C24.7545 20.4145 26 17.3518 26 14C26 10.6482 24.7545 7.58543 22.7021 5.25221Z" fill="#212121"/>
|
||||
<path d="M20.3528 8.30286C20.1042 7.97156 19.6341 7.90454 19.3028 8.15316C18.9715 8.40178 18.9045 8.8719 19.1531 9.2032C20.1561 10.5397 20.75 12.1994 20.75 14C20.75 15.8006 20.1561 17.4602 19.1531 18.7968C18.9045 19.1281 18.9715 19.5982 19.3028 19.8468C19.6341 20.0954 20.1042 20.0284 20.3528 19.6971C21.544 18.1098 22.25 16.1363 22.25 14C22.25 11.8637 21.544 9.89012 20.3528 8.30286Z" fill="#212121"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="64"
|
||||
height="64"
|
||||
version="1.1"
|
||||
viewBox="0 0 16.933 16.933"
|
||||
id="svg2"
|
||||
sodipodi:docname="system-search.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview2"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="4.65625"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-width="1061"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2" />
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient919"
|
||||
x1="4.3106"
|
||||
x2="14.36"
|
||||
y1="8.4665"
|
||||
y2="8.4665"
|
||||
gradientTransform="matrix(1.226575,0,0,1.226575,-12.501917,0.89738077)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#3c8cff"
|
||||
offset="0"
|
||||
id="stop1"
|
||||
style="stop-color:#f9f9f9;stop-opacity:1;" />
|
||||
<stop
|
||||
stop-color="#55b4ff"
|
||||
offset="1"
|
||||
id="stop2"
|
||||
style="stop-color:#d7dcdf;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g
|
||||
transform="translate(16.148 .19097)"
|
||||
id="g2">
|
||||
<rect
|
||||
transform="rotate(45)"
|
||||
x="2.891"
|
||||
y="10.492"
|
||||
width="7.4901"
|
||||
height="1.583"
|
||||
ry=".79147"
|
||||
fill="#1955b9"
|
||||
stroke-width="1.1651"
|
||||
id="rect2"
|
||||
style="stroke-width:1.16520206;stroke-dasharray:none;fill:#d7dbdf;fill-opacity:1" />
|
||||
<circle
|
||||
transform="rotate(45)"
|
||||
cx="-1.0514274"
|
||||
cy="11.283"
|
||||
r="5.3520403"
|
||||
fill="none"
|
||||
stroke="url(#linearGradient919)"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.77822"
|
||||
id="circle2"
|
||||
style="fill:#4f4f4f;fill-opacity:1;stroke:url(#linearGradient919)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="64"
|
||||
height="64"
|
||||
version="1.1"
|
||||
viewBox="0 0 16.933 16.933"
|
||||
id="svg2"
|
||||
sodipodi:docname="system-search.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview2"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="13.169864"
|
||||
inkscape:cx="37.58581"
|
||||
inkscape:cy="36.75057"
|
||||
inkscape:window-width="1171"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2" />
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient919"
|
||||
x1="4.3106"
|
||||
x2="14.36"
|
||||
y1="8.4665"
|
||||
y2="8.4665"
|
||||
gradientTransform="matrix(1.226575,0,0,1.226575,-12.501917,0.89738077)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#3c8cff"
|
||||
offset="0"
|
||||
id="stop1"
|
||||
style="stop-color:#434240;stop-opacity:1;" />
|
||||
<stop
|
||||
stop-color="#55b4ff"
|
||||
offset="1"
|
||||
id="stop2"
|
||||
style="stop-color:#1f1f1f;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g
|
||||
transform="translate(16.148 .19097)"
|
||||
id="g2">
|
||||
<rect
|
||||
transform="rotate(45)"
|
||||
x="3.4592216"
|
||||
y="10.492"
|
||||
width="6.9218783"
|
||||
height="1.5830011"
|
||||
ry="0.71337014"
|
||||
fill="#1955b9"
|
||||
stroke-width="1.1651"
|
||||
id="rect2"
|
||||
style="fill:#1f1f1f;fill-opacity:1;stroke-width:1.1652;stroke-dasharray:none" />
|
||||
<circle
|
||||
transform="rotate(45)"
|
||||
cx="-1.0514274"
|
||||
cy="11.283"
|
||||
r="5.3520403"
|
||||
fill="none"
|
||||
stroke="url(#linearGradient919)"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.77822"
|
||||
id="circle2"
|
||||
style="fill:none;fill-opacity:1;stroke:url(#linearGradient919)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="63.999989"
|
||||
height="61.62962"
|
||||
viewBox="0 0 26.999999 26"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg3"
|
||||
sodipodi:docname="task-view-dark.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview3"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="6.0349946"
|
||||
inkscape:cx="29.328941"
|
||||
inkscape:cy="30.820243"
|
||||
inkscape:window-width="1403"
|
||||
inkscape:window-height="734"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3" />
|
||||
<g
|
||||
id="g3"
|
||||
transform="translate(0.03879728,0.03736111)">
|
||||
<rect
|
||||
opacity="0.9"
|
||||
x="9.4441719"
|
||||
width="17.938911"
|
||||
height="15.248073"
|
||||
rx="0.89694548"
|
||||
fill="#ffffff"
|
||||
id="rect1"
|
||||
y="0.8962484"
|
||||
style="fill:url(#linearGradient4);fill-opacity:1;stroke:#e2e2e2;stroke-width:0.179719;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="translate(-2.3652457,0.93944352)" />
|
||||
<rect
|
||||
y="9"
|
||||
width="20"
|
||||
height="17"
|
||||
rx="1"
|
||||
fill="url(#paint0_linear_505_17)"
|
||||
id="rect2"
|
||||
x="0"
|
||||
style="mix-blend-mode:exclusion;stroke-width:1.00007574;stroke-dasharray:none;fill:url(#paint0_linear_505_17-3)"
|
||||
transform="matrix(0.89768213,0,0,0.89768213,1.8147076,0.83970922)" />
|
||||
<g
|
||||
id="g1"
|
||||
transform="translate(-2.3652457,0.93944351)">
|
||||
<g
|
||||
style="mix-blend-mode:exclusion;stroke-width:1.00007574;stroke-dasharray:none"
|
||||
id="g2"
|
||||
transform="matrix(0.89768215,0,0,0.89768215,4.1799533,-0.09973431)" />
|
||||
</g>
|
||||
</g>
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
id="paint0_linear_505_17"
|
||||
x1="-2.75374e-08"
|
||||
y1="9.2399397"
|
||||
x2="18.808399"
|
||||
y2="26.838499"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#717171"
|
||||
id="stop2"
|
||||
offset="0"
|
||||
style="stop-color:#717171;stop-opacity:0.73333335;" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#4F4F4F"
|
||||
id="stop3"
|
||||
style="stop-color:#4f4f4f;stop-opacity:0.73333335;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="paint0_linear_505_17-3"
|
||||
x1="-2.75374e-08"
|
||||
y1="9.2399397"
|
||||
x2="18.808399"
|
||||
y2="26.838499"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#717171"
|
||||
id="stop2-6"
|
||||
offset="0"
|
||||
style="stop-color:#717171;stop-opacity:0.60000002;" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#4F4F4F"
|
||||
id="stop3-7"
|
||||
style="stop-color:#565656;stop-opacity:0.60000002;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient4"
|
||||
x1="7.1907158"
|
||||
y1="8.3216944"
|
||||
x2="24.995911"
|
||||
y2="10.507897"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.3203156,-0.89451377)" />
|
||||
<linearGradient
|
||||
id="linearGradient1"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1" />
|
||||
<stop
|
||||
style="stop-color:#e6e6e6;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="63.999989"
|
||||
height="61.62962"
|
||||
viewBox="0 0 26.999999 26"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg3"
|
||||
sodipodi:docname="task-view-light.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview3"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="4.7640337"
|
||||
inkscape:cx="73.677061"
|
||||
inkscape:cy="43.030762"
|
||||
inkscape:window-width="1439"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3" />
|
||||
<g
|
||||
id="g3"
|
||||
transform="translate(0.03879728,0.03736111)">
|
||||
<g
|
||||
style="mix-blend-mode:exclusion;stroke-width:0.999982;stroke-dasharray:none"
|
||||
id="g2"
|
||||
transform="matrix(0.89768215,0,0,0.89768215,1.8596377,0.79477946)">
|
||||
<rect
|
||||
y="9"
|
||||
width="20"
|
||||
height="17"
|
||||
rx="1"
|
||||
fill="url(#paint0_linear_505_17)"
|
||||
id="rect2"
|
||||
x="0"
|
||||
style="fill:url(#paint0_linear_505_17);stroke-width:0.999982;stroke-dasharray:none" />
|
||||
</g>
|
||||
<rect
|
||||
opacity="0.9"
|
||||
x="7.1238561"
|
||||
width="17.938911"
|
||||
height="15.248073"
|
||||
rx="0.89694548"
|
||||
fill="#ffffff"
|
||||
id="rect1"
|
||||
y="1.7907622"
|
||||
style="fill:url(#linearGradient4);fill-opacity:1;stroke-width:0.17971878;stroke-dasharray:none;stroke:#d4d4d4;stroke-opacity:1" />
|
||||
</g>
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
id="linearGradient1"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.80000001;"
|
||||
offset="0"
|
||||
id="stop1" />
|
||||
<stop
|
||||
style="stop-color:#e6e6e6;stop-opacity:0.80000001;"
|
||||
offset="1"
|
||||
id="stop4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="paint0_linear_505_17"
|
||||
x1="-2.75374e-08"
|
||||
y1="9.2399397"
|
||||
x2="18.808399"
|
||||
y2="26.838499"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#717171"
|
||||
id="stop2"
|
||||
offset="0"
|
||||
style="stop-color:#464543;stop-opacity:1;" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#4F4F4F"
|
||||
id="stop3"
|
||||
style="stop-color:#1f1f1f;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient4"
|
||||
x1="7.1729918"
|
||||
y1="8.4772339"
|
||||
x2="25.013634"
|
||||
y2="10.352362"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 27.927269 27.927269"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="widgets.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="4.6704546"
|
||||
inkscape:cx="40.681265"
|
||||
inkscape:cy="19.912409"
|
||||
inkscape:window-width="1311"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<g
|
||||
id="g6"
|
||||
transform="translate(1.9636345,2.9636345)">
|
||||
<rect
|
||||
width="24"
|
||||
height="22"
|
||||
rx="1"
|
||||
fill="url(#paint0_radial_110_367)"
|
||||
id="rect1"
|
||||
x="0"
|
||||
y="0"
|
||||
style="fill:url(#paint0_radial_110_367);stroke-width:1.00015;stroke-dasharray:none" />
|
||||
<rect
|
||||
x="2"
|
||||
y="2"
|
||||
width="9"
|
||||
height="18"
|
||||
fill="#f6f6f6"
|
||||
id="rect2" />
|
||||
<rect
|
||||
x="13"
|
||||
y="2"
|
||||
width="9"
|
||||
height="10"
|
||||
fill="#67d7fd"
|
||||
id="rect3" />
|
||||
<rect
|
||||
x="13"
|
||||
y="12"
|
||||
width="9"
|
||||
height="4"
|
||||
fill="#1ba9ff"
|
||||
id="rect4" />
|
||||
<rect
|
||||
x="13"
|
||||
y="16"
|
||||
width="9"
|
||||
height="4"
|
||||
fill="#0086ed"
|
||||
id="rect5" />
|
||||
</g>
|
||||
<defs
|
||||
id="defs6">
|
||||
<radialGradient
|
||||
id="paint0_radial_110_367"
|
||||
cx="0"
|
||||
cy="0"
|
||||
r="1"
|
||||
gradientTransform="matrix(24,22,-24,22,0,0)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#0077D0"
|
||||
id="stop5" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#16458B"
|
||||
id="stop6" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_wifi_1_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_wifi_1_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17.7451006,10.7507411 C18.3358852,11.3415256 18.8473375,12.0581385 19.2370328,12.8200408 C19.4256529,13.1888163 19.2796081,13.6406747 18.9108327,13.8292948 C18.5420572,14.0179148 18.0901989,13.8718701 17.9015788,13.5030946 C17.5812113,12.8767369 17.1609901,12.2879509 16.6844405,11.8114012 C14.1217841,9.24874485 9.96689713,9.24874485 7.40424074,11.8114012 C6.90642268,12.3092193 6.50201316,12.8689717 6.19065431,13.4845331 C6.00369553,13.8541536 5.55249891,14.0022301 5.18287844,13.8152713 C4.81325797,13.6283126 4.6651814,13.1771159 4.85214018,12.8074955 C5.23494512,12.050684 5.73298264,11.361339 6.34358057,10.7507411 C9.4920234,7.60229825 14.5966578,7.60229825 17.7451006,10.7507411 Z M15.643243,13.8195827 C16.0908493,14.267189 16.4590627,14.8168835 16.7153476,15.4017386 C16.8815958,15.7811255 16.7088127,16.2234502 16.3294259,16.3896984 C15.950039,16.5559466 15.5077143,16.3831635 15.3414661,16.0037766 C15.1583861,15.5859786 14.8947614,15.1924214 14.5825829,14.8802429 C13.1798434,13.4775035 10.9055535,13.4775035 9.50281406,14.8802429 C9.19229665,15.1907603 8.94019393,15.5689393 8.75561265,15.9907819 C8.58956907,16.3702584 8.14733768,16.5432799 7.76786119,16.3772364 C7.38838471,16.2111928 7.21536315,15.7689614 7.38140673,15.3894849 C7.6388573,14.8011066 7.99524145,14.2664952 8.44215389,13.8195827 C10.4306797,11.8310569 13.6547172,11.8310569 15.643243,13.8195827 Z M20.4482517,8.27885144 C20.9573005,8.78790026 21.4379464,9.36947745 21.8563673,9.97573242 C22.0916496,10.3166358 22.0060269,10.7837266 21.6651235,11.0190089 C21.3242202,11.2542912 20.8571294,11.1686685 20.621847,10.8277651 C20.2538417,10.2945579 19.8309851,9.78290523 19.3875915,9.33951162 C15.3075374,5.2594575 8.69246263,5.2594575 4.61240852,9.33951162 C4.19053285,9.76138728 3.77211748,10.2730118 3.39038,10.8232746 C3.15427684,11.16361 2.68698107,11.2481069 2.34664569,11.0120037 C2.00631031,10.7759005 1.9218134,10.3086048 2.15791656,9.9682694 C2.58807699,9.34820649 3.06249024,8.76810955 3.55174835,8.27885144 C8.2175889,3.61301089 15.7824111,3.61301089 20.4482517,8.27885144 Z M13.0607911,16.4392503 C13.6466499,17.0251091 13.6466499,17.9749738 13.0607911,18.5608326 C12.4749324,19.1466913 11.5250676,19.1466913 10.9392089,18.5608326 C10.3533501,17.9749738 10.3533501,17.0251091 10.9392089,16.4392503 C11.5250676,15.8533916 12.4749324,15.8533916 13.0607911,16.4392503 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_wifi_2_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_wifi_2_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M17.7451006,10.7507411 C18.3358852,11.3415256 18.8473375,12.0581385 19.2370328,12.8200408 C19.4256529,13.1888163 19.2796081,13.6406747 18.9108327,13.8292948 C18.5420572,14.0179148 18.0901989,13.8718701 17.9015788,13.5030946 C17.5812113,12.8767369 17.1609901,12.2879509 16.6844405,11.8114012 C14.1217841,9.24874485 9.96689713,9.24874485 7.40424074,11.8114012 C6.90642268,12.3092193 6.50201316,12.8689717 6.19065431,13.4845331 C6.00369553,13.8541536 5.55249891,14.0022301 5.18287844,13.8152713 C4.81325797,13.6283126 4.6651814,13.1771159 4.85214018,12.8074955 C5.23494512,12.050684 5.73298264,11.361339 6.34358057,10.7507411 C9.4920234,7.60229825 14.5966578,7.60229825 17.7451006,10.7507411 Z M15.643243,13.8195827 C16.0908493,14.267189 16.4590627,14.8168835 16.7153476,15.4017386 C16.8815958,15.7811255 16.7088127,16.2234502 16.3294259,16.3896984 C15.950039,16.5559466 15.5077143,16.3831635 15.3414661,16.0037766 C15.1583861,15.5859786 14.8947614,15.1924214 14.5825829,14.8802429 C13.1798434,13.4775035 10.9055535,13.4775035 9.50281406,14.8802429 C9.19229665,15.1907603 8.94019393,15.5689393 8.75561265,15.9907819 C8.58956907,16.3702584 8.14733768,16.5432799 7.76786119,16.3772364 C7.38838471,16.2111928 7.21536315,15.7689614 7.38140673,15.3894849 C7.6388573,14.8011066 7.99524145,14.2664952 8.44215389,13.8195827 C10.4306797,11.8310569 13.6547172,11.8310569 15.643243,13.8195827 Z M13.0607911,16.4392503 C13.6466499,17.0251091 13.6466499,17.9749738 13.0607911,18.5608326 C12.4749324,19.1466913 11.5250676,19.1466913 10.9392089,18.5608326 C10.3533501,17.9749738 10.3533501,17.0251091 10.9392089,16.4392503 C11.5250676,15.8533916 12.4749324,15.8533916 13.0607911,16.4392503 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_wifi_3_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_wifi_3_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M10.9392089,16.4392503 C11.5250676,15.8533916 12.4749324,15.8533916 13.0607911,16.4392503 C13.6466499,17.0251091 13.6466499,17.9749738 13.0607911,18.5608326 C12.4749324,19.1466913 11.5250676,19.1466913 10.9392089,18.5608326 C10.3533501,17.9749738 10.3533501,17.0251091 10.9392089,16.4392503 Z M8.44215389,13.8195827 C10.4306797,11.8310569 13.6547172,11.8310569 15.643243,13.8195827 C16.0908493,14.267189 16.4590627,14.8168835 16.7153476,15.4017386 C16.8815958,15.7811255 16.7088127,16.2234502 16.3294259,16.3896984 C15.950039,16.5559466 15.5077143,16.3831635 15.3414661,16.0037766 C15.1583861,15.5859786 14.8947614,15.1924214 14.5825829,14.8802429 C13.1798434,13.4775035 10.9055535,13.4775035 9.50281406,14.8802429 C9.19229665,15.1907603 8.94019393,15.5689393 8.75561265,15.9907819 C8.58956907,16.3702584 8.14733768,16.5432799 7.76786119,16.3772364 C7.38838471,16.2111928 7.21536315,15.7689614 7.38140673,15.3894849 C7.6388573,14.8011066 7.99524145,14.2664952 8.44215389,13.8195827 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<title>ic_fluent_wifi_4_24_regular</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="🔍-Product-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="ic_fluent_wifi_4_24_regular" fill="#212121" fill-rule="nonzero">
|
||||
<path d="M10.9392089,18.5608326 C11.5250676,19.1466913 12.4749324,19.1466913 13.0607911,18.5608326 C13.6466499,17.9749738 13.6466499,17.0251091 13.0607911,16.4392503 C12.4749324,15.8533916 11.5250676,15.8533916 10.9392089,16.4392503 C10.3533501,17.0251091 10.3533501,17.9749738 10.9392089,18.5608326 Z" id="🎨-Color">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
|
After Width: | Height: | Size: 900 B |
@@ -0,0 +1 @@
|
||||
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.28 2.22a.75.75 0 0 0-1.06 1.06l3.364 3.365a11.99 11.99 0 0 0-2.033 1.634c-.49.489-.964 1.069-1.394 1.689a.75.75 0 1 0 1.233.855c.381-.55.8-1.062 1.222-1.484a10.468 10.468 0 0 1 2.063-1.604l1.591 1.592a8.062 8.062 0 0 0-1.923 1.424c-.61.61-1.109 1.3-1.491 2.056a.75.75 0 1 0 1.338.677 6.51 6.51 0 0 1 1.214-1.673 6.546 6.546 0 0 1 1.984-1.362l1.93 1.93a5.07 5.07 0 0 0-2.876 1.44 5.11 5.11 0 0 0-1.061 1.57.75.75 0 0 0 1.374.602c.185-.422.437-.8.747-1.111a3.59 3.59 0 0 1 3.36-.958l7.858 7.858a.75.75 0 0 0 1.06-1.06L3.28 2.22Zm8.304 6.182 1.584 1.584a6.532 6.532 0 0 1 3.516 1.825 6.798 6.798 0 0 1 1.217 1.692.75.75 0 1 0 1.336-.683 8.292 8.292 0 0 0-1.492-2.07 8.042 8.042 0 0 0-6.16-2.348ZM8.487 5.305 9.713 6.53a10.44 10.44 0 0 1 10.908 4.297.75.75 0 1 0 1.235-.852 11.946 11.946 0 0 0-13.369-4.67Zm4.573 11.134a1.5 1.5 0 1 1-2.121 2.122 1.5 1.5 0 0 1 2.121-2.122Z" fill="#212121"/></svg>
|
||||
|
After Width: | Height: | Size: 999 B |
@@ -0,0 +1 @@
|
||||
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17.744 10.75c.099.099.195.201.289.306a2.536 2.536 0 0 0-1.843.309 6.563 6.563 0 0 0-10 2.12.75.75 0 1 1-1.339-.678 8.062 8.062 0 0 1 12.893-2.057ZM11.957 19l1.216-2.434A1.5 1.5 0 1 0 11.957 19Zm2.23-4.462.677-1.357a5.094 5.094 0 0 0-6.422.638 5.11 5.11 0 0 0-1.061 1.57.75.75 0 0 0 1.374.602c.185-.422.437-.8.747-1.11a3.593 3.593 0 0 1 4.684-.343Zm6.26-6.26c.51.51.99 1.091 1.409 1.698a.75.75 0 1 1-1.235.852 10.822 10.822 0 0 0-1.234-1.489c-4.08-4.08-10.695-4.08-14.775 0-.422.422-.84.934-1.222 1.484a.75.75 0 0 1-1.233-.855c.43-.62.905-1.2 1.394-1.69 4.666-4.665 12.23-4.665 16.897 0Zm-4.29 4.552-3.997 7.998A1.5 1.5 0 0 0 13.503 23h7.994a1.5 1.5 0 0 0 1.343-2.172l-3.997-7.998c-.553-1.107-2.133-1.107-2.686 0ZM18 15.496v3.001a.5.5 0 0 1-1 0v-3.001a.5.5 0 0 1 1 0Zm-.5 5.503a.5.5 0 1 1 0-1.001.5.5 0 0 1 0 1Z" fill="#212121"/></svg>
|
||||
|
After Width: | Height: | Size: 939 B |
@@ -80,6 +80,7 @@ Singleton {
|
||||
property list<string> enabledPanels: [
|
||||
"iiBar", "iiBackground", "iiCheatsheet", "iiDock", "iiLock", "iiMediaControls", "iiNotificationPopup", "iiOnScreenDisplay", "iiOnScreenKeyboard", "iiOverlay", "iiOverview", "iiPolkit", "iiRegionSelector", "iiReloadPopup", "iiScreenCorners", "iiSessionScreen", "iiSidebarLeft", "iiSidebarRight", "iiVerticalBar", "iiWallpaperSelector"
|
||||
]
|
||||
property string panelFamily: "ii" // "ii", "w"
|
||||
|
||||
property JsonObject policies: JsonObject {
|
||||
property int ai: 1 // 0: No | 1: Yes | 2: Local
|
||||
@@ -521,6 +522,7 @@ Singleton {
|
||||
// https://doc.qt.io/qt-6/qtime.html#toString
|
||||
property string format: "hh:mm"
|
||||
property string shortDateFormat: "dd/MM"
|
||||
property string dateWithYearFormat: "dd/MM/yyyy"
|
||||
property string dateFormat: "ddd, dd/MM"
|
||||
property JsonObject pomodoro: JsonObject {
|
||||
property int breakTime: 300
|
||||
@@ -555,6 +557,13 @@ Singleton {
|
||||
property list<string> linkKeywords: ["hentai", "porn", "sukebei", "hitomi.la", "rule34", "gelbooru", "fanbox", "dlsite"]
|
||||
}
|
||||
}
|
||||
|
||||
property JsonObject waffles: JsonObject {
|
||||
property JsonObject bar: JsonObject {
|
||||
property bool bottom: true
|
||||
property bool leftAlignApps: false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import QtQuick
|
||||
@@ -13,15 +14,24 @@ Item {
|
||||
property real horizontalPadding: 10
|
||||
property real verticalPadding: 5
|
||||
|
||||
readonly property bool internalVisibleCondition: (extraVisibleCondition && (parent.hovered === undefined || parent?.hovered)) || alternativeVisibleCondition
|
||||
property var anchorEdges: Edges.Top
|
||||
property var anchorGravity: anchorEdges
|
||||
|
||||
readonly property bool internalVisibleCondition: (extraVisibleCondition && (parent.hovered === undefined || parent?.hovered)) || alternativeVisibleCondition
|
||||
property Item contentItem: StyledToolTipContent {
|
||||
id: contentItem
|
||||
anchors.centerIn: parent
|
||||
text: root.text
|
||||
shown: false
|
||||
Component.onCompleted: shown = true
|
||||
horizontalPadding: root.horizontalPadding
|
||||
verticalPadding: root.verticalPadding
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: tooltipLoader
|
||||
anchors.fill: parent
|
||||
active: internalVisibleCondition
|
||||
active: root.internalVisibleCondition
|
||||
sourceComponent: PopupWindow {
|
||||
visible: true
|
||||
anchor {
|
||||
@@ -35,18 +45,10 @@ Item {
|
||||
}
|
||||
|
||||
color: "transparent"
|
||||
implicitWidth: contentItem.implicitWidth + root.horizontalPadding * 2
|
||||
implicitHeight: contentItem.implicitHeight + root.verticalPadding * 2
|
||||
implicitWidth: root.contentItem.implicitWidth + root.horizontalPadding * 2
|
||||
implicitHeight: root.contentItem.implicitHeight + root.verticalPadding * 2
|
||||
|
||||
StyledToolTipContent {
|
||||
id: contentItem
|
||||
anchors.centerIn: parent
|
||||
text: root.text
|
||||
shown: false
|
||||
Component.onCompleted: shown = true
|
||||
horizontalPadding: root.horizontalPadding
|
||||
verticalPadding: root.verticalPadding
|
||||
}
|
||||
data: [root.contentItem]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ AbstractBackgroundWidget {
|
||||
}
|
||||
ClockText {
|
||||
Layout.topMargin: -5
|
||||
text: DateTime.date
|
||||
text: DateTime.longDate
|
||||
}
|
||||
StyledText {
|
||||
// Somehow gets fucked up if made a ClockText???
|
||||
|
||||
@@ -14,12 +14,14 @@ Scope {
|
||||
|
||||
Variants {
|
||||
// For each monitor
|
||||
model: {
|
||||
const screens = Quickshell.screens;
|
||||
const list = Config.options.bar.screenList;
|
||||
if (!list || list.length === 0)
|
||||
return screens;
|
||||
return screens.filter(screen => list.includes(screen.name));
|
||||
model: ScriptModel {
|
||||
values: {
|
||||
const screens = Quickshell.screens;
|
||||
const list = Config.options.bar.screenList;
|
||||
if (!list || list.length === 0)
|
||||
return screens;
|
||||
return screens.filter(screen => list.includes(screen.name));
|
||||
}
|
||||
}
|
||||
LazyLoader {
|
||||
id: barLoader
|
||||
@@ -29,10 +31,6 @@ Scope {
|
||||
id: barRoot
|
||||
screen: barLoader.modelData
|
||||
|
||||
property var brightnessMonitor: Brightness.getMonitorForScreen(barLoader.modelData)
|
||||
property real useShortenedForm: (Appearance.sizes.barHellaShortenScreenWidthThreshold >= screen.width) ? 2 : (Appearance.sizes.barShortenScreenWidthThreshold >= screen.width) ? 1 : 0
|
||||
readonly property int centerSideModuleWidth: (useShortenedForm == 2) ? Appearance.sizes.barCenterSideModuleWidthHellaShortened : (useShortenedForm == 1) ? Appearance.sizes.barCenterSideModuleWidthShortened : Appearance.sizes.barCenterSideModuleWidth
|
||||
|
||||
Timer {
|
||||
id: showBarTimer
|
||||
interval: (Config?.options.bar.autoHide.showWhenPressingSuper.delay ?? 100)
|
||||
|
||||
@@ -33,7 +33,7 @@ Item {
|
||||
visible: root.showDate
|
||||
font.pixelSize: Appearance.font.pixelSize.small
|
||||
color: Appearance.colors.colOnLayer1
|
||||
text: DateTime.date
|
||||
text: DateTime.longDate
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ DockButton {
|
||||
property real countDotHeight: 4
|
||||
property bool appIsActive: appToplevel.toplevels.find(t => (t.activated == true)) !== undefined
|
||||
|
||||
property bool isSeparator: appToplevel.appId === "SEPARATOR"
|
||||
property var desktopEntry: DesktopEntries.heuristicLookup(appToplevel.appId)
|
||||
readonly property bool isSeparator: appToplevel.appId === "SEPARATOR"
|
||||
readonly property var desktopEntry: DesktopEntries.heuristicLookup(appToplevel.appId)
|
||||
enabled: !isSeparator
|
||||
implicitWidth: isSeparator ? 1 : implicitHeight - topInset - bottomInset
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.common.functions
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
@@ -8,6 +5,10 @@ import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Widgets
|
||||
import Quickshell.Wayland
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.common.functions
|
||||
|
||||
Item {
|
||||
id: root
|
||||
@@ -40,44 +41,7 @@ Item {
|
||||
|
||||
model: ScriptModel {
|
||||
objectProp: "appId"
|
||||
values: {
|
||||
var map = new Map();
|
||||
|
||||
// Pinned apps
|
||||
const pinnedApps = Config.options?.dock.pinnedApps ?? [];
|
||||
for (const appId of pinnedApps) {
|
||||
if (!map.has(appId.toLowerCase())) map.set(appId.toLowerCase(), ({
|
||||
pinned: true,
|
||||
toplevels: []
|
||||
}));
|
||||
}
|
||||
|
||||
// Separator
|
||||
if (pinnedApps.length > 0) {
|
||||
map.set("SEPARATOR", { pinned: false, toplevels: [] });
|
||||
}
|
||||
|
||||
// Ignored apps
|
||||
const ignoredRegexStrings = Config.options?.dock.ignoredAppRegexes ?? [];
|
||||
const ignoredRegexes = ignoredRegexStrings.map(pattern => new RegExp(pattern, "i"));
|
||||
// Open windows
|
||||
for (const toplevel of ToplevelManager.toplevels.values) {
|
||||
if (ignoredRegexes.some(re => re.test(toplevel.appId))) continue;
|
||||
if (!map.has(toplevel.appId.toLowerCase())) map.set(toplevel.appId.toLowerCase(), ({
|
||||
pinned: false,
|
||||
toplevels: []
|
||||
}));
|
||||
map.get(toplevel.appId.toLowerCase()).toplevels.push(toplevel);
|
||||
}
|
||||
|
||||
var values = [];
|
||||
|
||||
for (const [key, value] of map) {
|
||||
values.push({ appId: key, toplevels: value.toplevels, pinned: value.pinned });
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
values: TaskbarApps.apps
|
||||
}
|
||||
delegate: DockAppButton {
|
||||
required property var modelData
|
||||
|
||||
@@ -4,5 +4,5 @@ import qs.modules.common
|
||||
Rectangle {
|
||||
id: contentItem
|
||||
anchors.fill: parent
|
||||
color: Appearance.m3colors.m3surfaceContainer
|
||||
color: Appearance.colors.colSurfaceContainer
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ ColumnLayout {
|
||||
Layout.fillHeight: false
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 6
|
||||
model: root.devices.map(node => node.description)
|
||||
model: root.devices.map(node => (node.nickname || node.description || Translation.tr("Unknown")))
|
||||
currentIndex: root.devices.findIndex(item => {
|
||||
if (root.isSink) {
|
||||
return item.id === Pipewire.preferredDefaultAudioSink?.id
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.common.widgets.widgetCanvas
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Hyprland
|
||||
|
||||
import qs.modules.ii.background.widgets
|
||||
import qs.modules.ii.background.widgets.clock
|
||||
import qs.modules.ii.background.widgets.weather
|
||||
|
||||
Variants {
|
||||
id: root
|
||||
model: Quickshell.screens
|
||||
|
||||
PanelWindow {
|
||||
id: panelRoot
|
||||
required property var modelData
|
||||
|
||||
screen: modelData
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
WlrLayershell.layer: WlrLayer.Bottom
|
||||
WlrLayershell.namespace: "quickshell:background"
|
||||
anchors {
|
||||
top: true
|
||||
bottom: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
color: "transparent"
|
||||
|
||||
StyledImage {
|
||||
anchors.fill: parent
|
||||
source: Config.options.background.wallpaperPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
BarButton {
|
||||
id: root
|
||||
|
||||
required property string iconName
|
||||
property bool multiple: false
|
||||
property bool separateLightDark: false
|
||||
property alias tryCustomIcon: iconWidget.tryCustomIcon
|
||||
leftInset: 2
|
||||
rightInset: 2
|
||||
implicitWidth: height - topInset - bottomInset + leftInset + rightInset
|
||||
|
||||
onDownChanged: {
|
||||
scaleAnim.duration = root.down ? 150 : 200
|
||||
scaleAnim.easing.bezierCurve = root.down ? Looks.transition.easing.bezierCurve.easeIn : Looks.transition.easing.bezierCurve.easeOut
|
||||
contentItem.scale = root.down ? 5/6 : 1 // If/When we do dragging, the scale is 1.25
|
||||
}
|
||||
|
||||
background: Item {
|
||||
BackgroundAcrylicRectangle {
|
||||
id: mainBgRect
|
||||
anchors.fill: parent
|
||||
layer.enabled: root.multiple
|
||||
layer.effect: OpacityMask {
|
||||
invert: true
|
||||
maskSource: Item {
|
||||
width: mainBgRect.width
|
||||
height: mainBgRect.height
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
anchors.rightMargin: 3
|
||||
radius: mainBgRect.radius
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loader {
|
||||
anchors.fill: parent
|
||||
anchors.rightMargin: 5
|
||||
active: root.multiple
|
||||
sourceComponent: BackgroundAcrylicRectangle {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
id: contentItem
|
||||
anchors.centerIn: parent
|
||||
|
||||
implicitHeight: iconWidget.implicitHeight
|
||||
implicitWidth: iconWidget.implicitWidth
|
||||
|
||||
Behavior on scale {
|
||||
NumberAnimation {
|
||||
id: scaleAnim
|
||||
easing.type: Easing.BezierSpline
|
||||
}
|
||||
}
|
||||
|
||||
AppIcon {
|
||||
id: iconWidget
|
||||
anchors.centerIn: parent
|
||||
iconName: root.iconName
|
||||
separateLightDark: root.separateLightDark
|
||||
}
|
||||
}
|
||||
|
||||
component BackgroundAcrylicRectangle: AcrylicRectangle {
|
||||
shiny: ((root.hovered && !root.down) || root.checked)
|
||||
color: root.colBackground
|
||||
border.width: 1
|
||||
border.color: root.colBackgroundBorder
|
||||
|
||||
Behavior on border.color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import QtQuick
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
Kirigami.Icon {
|
||||
id: root
|
||||
required property string iconName
|
||||
property bool separateLightDark: false
|
||||
property bool tryCustomIcon: true
|
||||
|
||||
property real implicitSize: 26
|
||||
implicitWidth: implicitSize
|
||||
implicitHeight: implicitSize
|
||||
roundToIconSize: false
|
||||
fallback: root.iconName
|
||||
source: tryCustomIcon ? `${Looks.iconsPath}/${root.iconName}${!root.separateLightDark ? "" : Looks.dark ? "-dark" : "-light"}.svg` : fallback
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
Button {
|
||||
id: root
|
||||
|
||||
signal altAction()
|
||||
signal middleClickAction()
|
||||
|
||||
property color colBackground
|
||||
property color colBackgroundBorder
|
||||
Layout.fillHeight: true
|
||||
topInset: 4
|
||||
bottomInset: 4
|
||||
|
||||
signal hoverTimedOut()
|
||||
property bool shouldShowTooltip: false
|
||||
property Timer hoverTimer: Timer {
|
||||
id: hoverTimer
|
||||
running: root.hovered
|
||||
interval: 400
|
||||
onTriggered: {
|
||||
root.hoverTimedOut()
|
||||
}
|
||||
}
|
||||
onHoverTimedOut: {
|
||||
root.shouldShowTooltip = true
|
||||
}
|
||||
onHoveredChanged: {
|
||||
if (!root.hovered) {
|
||||
root.shouldShowTooltip = false
|
||||
root.hoverTimer.stop()
|
||||
}
|
||||
}
|
||||
|
||||
colBackground: {
|
||||
if (root.down) {
|
||||
return Looks.colors.bg1Active
|
||||
} else if ((root.hovered && !root.down) || root.checked) {
|
||||
return Looks.colors.bg1Hover
|
||||
} else {
|
||||
return ColorUtils.transparentize(Looks.colors.bg1)
|
||||
}
|
||||
}
|
||||
colBackgroundBorder: ColorUtils.transparentize(Looks.colors.bg1Border, root.checked ? Looks.contentTransparency : 1)
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
|
||||
onPressed: (event) => {
|
||||
root.down = true;
|
||||
}
|
||||
onReleased: (event) => {
|
||||
root.down = false;
|
||||
}
|
||||
onClicked: (event) => {
|
||||
if (event.button === Qt.LeftButton) root.clicked();
|
||||
if (event.button === Qt.RightButton) root.altAction();
|
||||
if (event.button === Qt.MiddleButton) root.middleClickAction();
|
||||
}
|
||||
}
|
||||
|
||||
background: AcrylicRectangle {
|
||||
shiny: ((root.hovered && !root.down) || root.checked)
|
||||
color: root.colBackground
|
||||
border.width: 1
|
||||
border.color: root.colBackgroundBorder
|
||||
|
||||
Behavior on border.color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
WPopupToolTip {
|
||||
anchorEdges: Config.options.waffles.bar.bottom ? Edges.Top : Edges.Bottom
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
AppButton {
|
||||
id: root
|
||||
|
||||
iconName: "system-search"
|
||||
separateLightDark: true
|
||||
|
||||
onClicked: {
|
||||
GlobalStates.overviewOpen = !GlobalStates.overviewOpen; // For now...
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
id: tooltip
|
||||
text: Translation.tr("Search")
|
||||
extraVisibleCondition: root.shouldShowTooltip
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
AppButton {
|
||||
id: root
|
||||
|
||||
leftInset: Config.options.waffles.bar.leftAlignApps ? 12 : 0
|
||||
iconName: "start-here"
|
||||
|
||||
onClicked: {
|
||||
GlobalStates.overviewOpen = !GlobalStates.overviewOpen; // For now...
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
id: tooltip
|
||||
text: Translation.tr("Start")
|
||||
extraVisibleCondition: root.shouldShowTooltip
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
BarButton {
|
||||
id: root
|
||||
|
||||
checked: GlobalStates.sidebarRightOpen
|
||||
onClicked: {
|
||||
GlobalStates.sidebarRightOpen = !GlobalStates.sidebarRightOpen; // For now...
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
anchors.fill: parent
|
||||
implicitHeight: column.implicitHeight
|
||||
implicitWidth: column.implicitWidth
|
||||
Row {
|
||||
id: column
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
spacing: 4
|
||||
|
||||
IconHoverArea {
|
||||
id: internetHoverArea
|
||||
iconItem: FluentIcon {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
icon: WIcons.internetIcon
|
||||
}
|
||||
}
|
||||
|
||||
IconHoverArea {
|
||||
id: volumeHoverArea
|
||||
iconItem: FluentIcon {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
icon: {
|
||||
const muted = Audio.sink?.audio.muted ?? false;
|
||||
const volume = Audio.sink?.audio.volume ?? 0;
|
||||
if (muted)
|
||||
return volume > 0 ? "speaker-off" : "speaker-none";
|
||||
if (volume == 0)
|
||||
return "speaker-none";
|
||||
if (volume < 0.5)
|
||||
return "speaker-1";
|
||||
return "speaker";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IconHoverArea {
|
||||
id: batteryHoverArea
|
||||
iconItem: FluentIcon {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
icon: WIcons.batteryIcon
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
component IconHoverArea: MouseArea {
|
||||
id: hoverArea
|
||||
required property var iconItem
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
}
|
||||
hoverEnabled: true
|
||||
implicitHeight: hoverArea.iconItem.implicitHeight
|
||||
implicitWidth: hoverArea.iconItem.implicitWidth
|
||||
|
||||
onPressed: (event) => event.accepted = false; // Don't consume clicks
|
||||
|
||||
children: [iconItem]
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip && internetHoverArea.containsMouse
|
||||
text: Translation.tr("%1\nInternet access").arg(Network.ethernet ? Translation.tr("Network") : Network.networkName)
|
||||
}
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip && volumeHoverArea.containsMouse
|
||||
text: Translation.tr("Speakers (%1): %2") //
|
||||
.arg(Audio.sink?.nickname || Audio.sink?.description || Translation.tr("Unknown")) //
|
||||
.arg(`${Math.round(Audio.sink?.audio.volume * 100) || 0}%`) //
|
||||
}
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip && batteryHoverArea.containsMouse
|
||||
text: Translation.tr("Battery: %1").arg(`${Math.round(Battery.percentage * 100) || 0}%`)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
AppButton {
|
||||
id: root
|
||||
|
||||
iconName: "task-view"
|
||||
separateLightDark: true
|
||||
|
||||
checked: GlobalStates.overviewOpen
|
||||
onClicked: {
|
||||
GlobalStates.overviewOpen = !GlobalStates.overviewOpen;
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip
|
||||
text: Translation.tr("Task View") // Should be a preview of workspaces, but we'll have this for now...
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
BarButton {
|
||||
id: root
|
||||
|
||||
rightInset: 12 // For now this is the rightmost button. Desktop peek is useless. (for now)
|
||||
padding: 12
|
||||
|
||||
checked: GlobalStates.sidebarRightOpen
|
||||
onClicked: {
|
||||
GlobalStates.sidebarRightOpen = !GlobalStates.sidebarRightOpen;
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
anchors.centerIn: root.background
|
||||
implicitHeight: column.implicitHeight
|
||||
implicitWidth: column.implicitWidth
|
||||
Column {
|
||||
id: column
|
||||
anchors.centerIn: parent
|
||||
WText {
|
||||
anchors.right: parent.right
|
||||
text: DateTime.time
|
||||
}
|
||||
WText {
|
||||
anchors.right: parent.right
|
||||
text: DateTime.date
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
id: tooltip
|
||||
extraVisibleCondition: root.shouldShowTooltip
|
||||
text: `${Qt.locale().toString(DateTime.clock.date, "dddd, MMMM d, yyyy")}\n\n${Qt.locale().toString(DateTime.clock.date, "ddd hh:mm AP")}`
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Hyprland
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
|
||||
Scope {
|
||||
id: bar
|
||||
property bool showBarBackground: Config.options.bar.showBackground
|
||||
|
||||
LazyLoader {
|
||||
id: barLoader
|
||||
active: GlobalStates.barOpen && !GlobalStates.screenLocked
|
||||
component: Variants {
|
||||
model: Quickshell.screens
|
||||
delegate: PanelWindow { // Bar window
|
||||
id: barRoot
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
exclusiveZone: implicitHeight
|
||||
WlrLayershell.namespace: "quickshell:bar"
|
||||
|
||||
anchors {
|
||||
left: true
|
||||
right: true
|
||||
bottom: Config.options.waffles.bar.bottom
|
||||
top: !Config.options.waffles.bar.bottom
|
||||
}
|
||||
|
||||
color: "transparent"
|
||||
implicitHeight: content.implicitHeight
|
||||
implicitWidth: content.implicitWidth
|
||||
|
||||
WaffleBarContent {
|
||||
id: content
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IpcHandler {
|
||||
target: "bar"
|
||||
|
||||
function toggle(): void {
|
||||
GlobalStates.barOpen = !GlobalStates.barOpen
|
||||
}
|
||||
|
||||
function close(): void {
|
||||
GlobalStates.barOpen = false
|
||||
}
|
||||
|
||||
function open(): void {
|
||||
GlobalStates.barOpen = true
|
||||
}
|
||||
}
|
||||
|
||||
GlobalShortcut {
|
||||
name: "barToggle"
|
||||
description: "Toggles bar on press"
|
||||
|
||||
onPressed: {
|
||||
GlobalStates.barOpen = !GlobalStates.barOpen;
|
||||
}
|
||||
}
|
||||
|
||||
GlobalShortcut {
|
||||
name: "barOpen"
|
||||
description: "Opens bar on press"
|
||||
|
||||
onPressed: {
|
||||
GlobalStates.barOpen = true;
|
||||
}
|
||||
}
|
||||
|
||||
GlobalShortcut {
|
||||
name: "barClose"
|
||||
description: "Closes bar on press"
|
||||
|
||||
onPressed: {
|
||||
GlobalStates.barOpen = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.waffle.looks
|
||||
import qs.modules.waffle.bar.tasks
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
color: Looks.colors.bg0
|
||||
implicitHeight: 48
|
||||
|
||||
Rectangle {
|
||||
id: border
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
top: Config.options.waffles.bar.bottom ? parent.top : undefined
|
||||
bottom: Config.options.waffles.bar.bottom ? undefined : parent.bottom
|
||||
}
|
||||
color: Looks.colors.bg0Border
|
||||
implicitHeight: 1
|
||||
}
|
||||
|
||||
BarGroupRow {
|
||||
id: bloatRow
|
||||
anchors.left: parent.left
|
||||
opacity: Config.options.waffles.bar.leftAlignApps ? 0 : 1
|
||||
visible: opacity > 0
|
||||
Behavior on opacity {
|
||||
animation: Looks.transition.opacity.createObject(this)
|
||||
}
|
||||
|
||||
WidgetsButton {}
|
||||
}
|
||||
|
||||
BarGroupRow {
|
||||
id: appsRow
|
||||
anchors.left: undefined
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
states: State {
|
||||
name: "left"
|
||||
when: Config.options.waffles.bar.leftAlignApps
|
||||
AnchorChanges {
|
||||
target: appsRow
|
||||
anchors.left: parent.left
|
||||
anchors.horizontalCenter: undefined
|
||||
}
|
||||
}
|
||||
|
||||
transitions: Transition {
|
||||
animations: Looks.transition.anchor.createObject(this)
|
||||
}
|
||||
|
||||
StartButton {}
|
||||
SearchButton {}
|
||||
TaskViewButton {}
|
||||
Tasks {}
|
||||
}
|
||||
|
||||
BarGroupRow {
|
||||
id: systemRow
|
||||
anchors.right: parent.right
|
||||
FadeLoader {
|
||||
Layout.fillHeight: true
|
||||
shown: Config.options.waffles.bar.leftAlignApps
|
||||
sourceComponent: WidgetsButton {}
|
||||
}
|
||||
SystemButton {}
|
||||
TimeButton {}
|
||||
}
|
||||
|
||||
component BarGroupRow: RowLayout {
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
spacing: 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
AppButton {
|
||||
id: root
|
||||
|
||||
readonly property bool expandedForm: Config.options.waffles.bar.leftAlignApps
|
||||
leftInset: Config.options.waffles.bar.leftAlignApps ? 0 : 12
|
||||
implicitWidth: expandedForm ? 148 : (height - topInset - bottomInset + leftInset + rightInset)
|
||||
iconName: "widgets"
|
||||
|
||||
checked: GlobalStates.sidebarLeftOpen
|
||||
onClicked: {
|
||||
GlobalStates.sidebarLeftOpen = !GlobalStates.sidebarLeftOpen
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: root.expandedForm ? parent.left : undefined
|
||||
horizontalCenter: root.expandedForm ? undefined : background.horizontalCenter
|
||||
}
|
||||
implicitHeight: row.implicitHeight
|
||||
implicitWidth: row.implicitWidth
|
||||
Row {
|
||||
id: row
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: root.expandedForm ? parent.left : undefined
|
||||
horizontalCenter: root.expandedForm ? undefined : parent.horizontalCenter
|
||||
margins: 8
|
||||
}
|
||||
spacing: 6
|
||||
|
||||
AppIcon {
|
||||
id: iconWidget
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
iconName: root.iconName
|
||||
}
|
||||
|
||||
Column {
|
||||
visible: root.expandedForm
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
WText {
|
||||
text: Translation.tr("Widgets")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip
|
||||
text: Translation.tr("Widgets")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
import qs.modules.waffle.bar
|
||||
import Quickshell
|
||||
|
||||
AppButton {
|
||||
id: root
|
||||
|
||||
required property var appEntry
|
||||
readonly property bool isSeparator: appEntry.appId === "SEPARATOR"
|
||||
readonly property var desktopEntry: DesktopEntries.heuristicLookup(appEntry.appId)
|
||||
property bool active: root.appEntry.toplevels.some(t => t.activated)
|
||||
property bool hasWindows: appEntry.toplevels.length > 0
|
||||
|
||||
signal hoverPreviewRequested()
|
||||
|
||||
multiple: appEntry.toplevels.length > 1
|
||||
checked: active
|
||||
iconName: AppSearch.guessIcon(appEntry.appId)
|
||||
tryCustomIcon: false
|
||||
|
||||
onHoverTimedOut: {
|
||||
root.hoverPreviewRequested()
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
root.hoverTimer.stop() // Prevents preview showing up when clicking to focus
|
||||
if (root.multiple) {
|
||||
root.hoverPreviewRequested()
|
||||
} else if (root.appEntry.toplevels.length === 1) {
|
||||
root.appEntry.toplevels[0].activate()
|
||||
} else {
|
||||
root.desktopEntry.execute()
|
||||
}
|
||||
}
|
||||
|
||||
onMiddleClickAction: {
|
||||
if (root.desktopEntry) {
|
||||
desktopEntry.execute()
|
||||
}
|
||||
}
|
||||
|
||||
// Active indicator
|
||||
Rectangle {
|
||||
id: activeIndicator
|
||||
opacity: root.hasWindows ? 1 : 0
|
||||
anchors {
|
||||
horizontalCenter: root.background.horizontalCenter
|
||||
bottom: root.background.bottom
|
||||
bottomMargin: 1
|
||||
}
|
||||
|
||||
implicitWidth: root.active ? 16 : 6
|
||||
implicitHeight: 3
|
||||
radius: height / 2
|
||||
|
||||
color: root.active ? Looks.colors.accent : Looks.colors.accentUnfocused
|
||||
|
||||
Behavior on implicitWidth {
|
||||
animation: Looks.transition.enter.createObject(this)
|
||||
}
|
||||
Behavior on color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
Behavior on opacity {
|
||||
animation: Looks.transition.opacity.createObject(this)
|
||||
}
|
||||
}
|
||||
|
||||
BarToolTip {
|
||||
extraVisibleCondition: root.shouldShowTooltip && !root.hasWindows
|
||||
text: desktopEntry ? desktopEntry.name : appEntry.appId
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.waffle.looks
|
||||
import Quickshell
|
||||
|
||||
PopupWindow {
|
||||
id: root
|
||||
|
||||
///////////////////// Properties ////////////////////
|
||||
required property bool tasksHovered
|
||||
property var appEntry
|
||||
property Item anchorItem
|
||||
|
||||
//////////////////// Functions ////////////////////
|
||||
function close() {
|
||||
marginBehavior.enabled = false;
|
||||
root.visible = false;
|
||||
}
|
||||
|
||||
function open() {
|
||||
marginBehavior.enabled = true;
|
||||
root.visible = true;
|
||||
}
|
||||
|
||||
function show(appEntry: var, button: Item) {
|
||||
root.appEntry = appEntry;
|
||||
root.anchorItem = button;
|
||||
root.anchor.updateAnchor();
|
||||
root.open();
|
||||
}
|
||||
|
||||
///////////////////// Internals /////////////////////
|
||||
readonly property bool bottom: Config.options.waffles.bar.bottom
|
||||
property real visualMargin: 12
|
||||
property alias ambientShadowWidth: ambientShadow.border.width
|
||||
|
||||
visible: false
|
||||
color: "transparent"
|
||||
implicitWidth: contentItem.implicitWidth + ambientShadowWidth + (visualMargin * 2)
|
||||
implicitHeight: contentItem.implicitHeight + ambientShadowWidth + (visualMargin * 2)
|
||||
anchor {
|
||||
adjustment: PopupAdjustment.Slide
|
||||
item: root.anchorItem
|
||||
gravity: bottom ? Edges.Top : Edges.Bottom
|
||||
edges: bottom ? Edges.Top : Edges.Bottom
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 250
|
||||
running: root.visible && !hoverChecker.containsMouse && !root.tasksHovered
|
||||
onTriggered: {
|
||||
root.close();
|
||||
}
|
||||
}
|
||||
|
||||
// Content
|
||||
MouseArea {
|
||||
id: hoverChecker
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
// Shadow
|
||||
Rectangle {
|
||||
id: ambientShadow
|
||||
anchors {
|
||||
fill: contentItem
|
||||
margins: -border.width
|
||||
}
|
||||
border.color: ColorUtils.transparentize(Looks.colors.bg0Border, Looks.shadowTransparency)
|
||||
border.width: 1
|
||||
color: "transparent"
|
||||
radius: Looks.radius.large + border.width
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: contentItem
|
||||
property real sourceEdgeMargin: root.visible ? (root.ambientShadowWidth + root.visualMargin) : -root.implicitHeight
|
||||
Behavior on sourceEdgeMargin {
|
||||
id: marginBehavior
|
||||
animation: Looks.transition.enter.createObject(this)
|
||||
}
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
top: root.bottom ? undefined : parent.top
|
||||
bottom: root.bottom ? parent.bottom : undefined
|
||||
margins: root.ambientShadowWidth + root.visualMargin
|
||||
// Opening anim
|
||||
bottomMargin: root.bottom ? sourceEdgeMargin : (root.ambientShadowWidth + root.visualMargin)
|
||||
topMargin: root.bottom ? (root.ambientShadowWidth + root.visualMargin) : sourceEdgeMargin
|
||||
}
|
||||
color: Looks.colors.bg1
|
||||
radius: Looks.radius.large
|
||||
|
||||
layer.enabled: true
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: Rectangle {
|
||||
width: contentItem.width
|
||||
height: contentItem.height
|
||||
radius: contentItem.radius
|
||||
}
|
||||
}
|
||||
|
||||
// Testing
|
||||
implicitHeight: Math.min(158, windowsRow.implicitHeight)
|
||||
implicitWidth: windowsRow.implicitWidth
|
||||
|
||||
RowLayout {
|
||||
id: windowsRow
|
||||
anchors.fill: parent
|
||||
|
||||
Repeater {
|
||||
model: ScriptModel {
|
||||
values: root.appEntry?.toplevels ?? []
|
||||
}
|
||||
delegate: WindowPreview {
|
||||
required property var modelData
|
||||
toplevel: modelData
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
MouseArea {
|
||||
id: root
|
||||
|
||||
Layout.fillHeight: true
|
||||
implicitHeight: row.implicitHeight
|
||||
implicitWidth: row.implicitWidth
|
||||
hoverEnabled: true
|
||||
|
||||
function showPreviewPopup(appEntry, button) {
|
||||
previewPopup.show(appEntry, button);
|
||||
}
|
||||
|
||||
// Apps row
|
||||
RowLayout {
|
||||
id: row
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
Repeater {
|
||||
// TODO: Include only apps (and windows) in current workspace only | wait, does that even make sense in a Hyprland workflow?
|
||||
model: ScriptModel {
|
||||
objectProp: "appId"
|
||||
values: TaskbarApps.apps.filter(app => app.appId !== "SEPARATOR")
|
||||
}
|
||||
delegate: TaskAppButton {
|
||||
required property var modelData
|
||||
appEntry: modelData
|
||||
|
||||
onHoverPreviewRequested: {
|
||||
root.showPreviewPopup(appEntry, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Previews popup
|
||||
TaskPreview {
|
||||
id: previewPopup
|
||||
tasksHovered: root.containsMouse
|
||||
anchor.window: root.QsWindow.window
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.waffle.looks
|
||||
import qs.modules.waffle.bar
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
Button {
|
||||
id: root
|
||||
|
||||
required property var toplevel
|
||||
property real previewWidthConstraint: 200
|
||||
property real previewHeightConstraint: 110
|
||||
padding: 5
|
||||
Layout.fillHeight: true
|
||||
|
||||
onClicked: {
|
||||
root.toplevel.activate(); // TODO: make this work with those who disable focus on activate because telegram is abusive
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
id: background
|
||||
radius: Looks.radius.medium
|
||||
color: root.down ? Looks.colors.bg2Active : (root.hovered ? Looks.colors.bg2Hover : ColorUtils.transparentize(Looks.colors.bg2))
|
||||
Behavior on color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: ColumnLayout {
|
||||
id: contentItem
|
||||
anchors.fill: parent
|
||||
anchors.margins: root.padding
|
||||
spacing: 5
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: false
|
||||
spacing: 8
|
||||
|
||||
AppIcon {
|
||||
id: appIcon
|
||||
Layout.leftMargin: Looks.radius.large - root.padding + 2
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
iconName: AppSearch.guessIcon(root.toplevel.appId)
|
||||
implicitSize: 16
|
||||
}
|
||||
|
||||
Item {
|
||||
id: appTitleContainer
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
implicitHeight: closeButton.implicitHeight // Enforce height, because closeButton doesn't contribute when it's invisible
|
||||
WText {
|
||||
id: appTitleText
|
||||
anchors.fill: parent
|
||||
text: root.toplevel.title
|
||||
elide: Text.ElideRight
|
||||
font.pixelSize: Looks.font.pixelSize.large
|
||||
font.weight: Looks.font.weight.thin
|
||||
color: Looks.colors.fg1
|
||||
}
|
||||
}
|
||||
|
||||
CloseButton {
|
||||
id: closeButton
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.margins: Looks.radius.large - root.padding
|
||||
Layout.topMargin: 0
|
||||
implicitWidth: Math.max(screencopyView.implicitWidth, 80)
|
||||
implicitHeight: screencopyView.implicitHeight
|
||||
|
||||
ScreencopyView {
|
||||
id: screencopyView
|
||||
anchors.centerIn: parent
|
||||
captureSource: root.toplevel
|
||||
live: true
|
||||
paintCursor: true
|
||||
constraintSize: Qt.size(root.previewWidthConstraint, root.previewHeightConstraint)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
component CloseButton: Button {
|
||||
id: reusableCloseButton
|
||||
visible: root.hovered
|
||||
Layout.leftMargin: 4
|
||||
implicitHeight: 30
|
||||
implicitWidth: 30
|
||||
onClicked: {
|
||||
root.toplevel.close();
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
z: 0
|
||||
color: "transparent"
|
||||
anchors.fill: closeButtonBg
|
||||
anchors.margins: -1
|
||||
opacity: closeButtonBg.opacity
|
||||
border.width: 1
|
||||
radius: closeButtonBg.radius + 1
|
||||
border.color: Looks.colors.bg2Border
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
id: closeButtonBg
|
||||
z: 1
|
||||
opacity: reusableCloseButton.hovered ? 1 : 0
|
||||
radius: Looks.radius.large - root.padding
|
||||
color: reusableCloseButton.pressed ? Looks.colors.dangerActive : Looks.colors.danger
|
||||
Behavior on opacity {
|
||||
animation: Looks.transition.opacity.createObject(this)
|
||||
}
|
||||
Behavior on color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: FluentIcon {
|
||||
z: 2
|
||||
anchors.centerIn: parent
|
||||
icon: "dismiss"
|
||||
implicitSize: 10
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
property bool shiny: true // Top border
|
||||
property color borderColor: ColorUtils.transparentize(Looks.colors.bg1Border, shiny ? Looks.contentTransparency : 1)
|
||||
color: Looks.colors.bg1Hover
|
||||
radius: Looks.radius.medium
|
||||
Behavior on color {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
Behavior on borderColor {
|
||||
animation: Looks.transition.color.createObject(this)
|
||||
}
|
||||
onBorderColorChanged: {
|
||||
borderCanvas.requestPaint();
|
||||
}
|
||||
|
||||
// Top 1px border with color
|
||||
Canvas {
|
||||
id: borderCanvas
|
||||
anchors.fill: parent
|
||||
onPaint: {
|
||||
var ctx = getContext("2d");
|
||||
ctx.clearRect(0, 0, width, height);
|
||||
|
||||
var borderColor = root.borderColor;
|
||||
|
||||
var r = root.radius;
|
||||
var fadeLength = Math.max(1, r);
|
||||
var fadeLengthPercent = fadeLength / width;
|
||||
|
||||
// Compute normalized stops
|
||||
var leftFadeStop = fadeLengthPercent;
|
||||
var rightFadeStop = 1 - fadeLengthPercent;
|
||||
|
||||
var grad = ctx.createLinearGradient(0, 0, width, 0);
|
||||
grad.addColorStop(0, Qt.rgba(borderColor.r, borderColor.g, borderColor.b, 0));
|
||||
grad.addColorStop(leftFadeStop, borderColor);
|
||||
grad.addColorStop(rightFadeStop, borderColor);
|
||||
grad.addColorStop(1, Qt.rgba(borderColor.r, borderColor.g, borderColor.b, 0));
|
||||
|
||||
ctx.strokeStyle = grad;
|
||||
ctx.lineWidth = 1;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(r, 0.5);
|
||||
ctx.lineTo(width - r, 0.5);
|
||||
// Top-right curve
|
||||
ctx.arcTo(width, 0.5, width, r + 0.5, r);
|
||||
// Top-left curve
|
||||
ctx.moveTo(width - r, 0.5);
|
||||
ctx.arcTo(0, 0.5, 0, r + 0.5, r);
|
||||
ctx.stroke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import QtQuick
|
||||
import org.kde.kirigami as Kirigami
|
||||
import qs.modules.common
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
Kirigami.Icon {
|
||||
id: root
|
||||
required property string icon
|
||||
// Should be 16, but it appears the icons have some padding,
|
||||
// Unlike the Windows-only Segoe UI icons, the open source FluentUI ones are hella small
|
||||
property int implicitSize: 20
|
||||
implicitWidth: implicitSize
|
||||
implicitHeight: implicitSize
|
||||
|
||||
source: `${Looks.iconsPath}/${root.icon}.svg`
|
||||
fallback: root.icon
|
||||
roundToIconSize: false
|
||||
color: Looks.colors.fg
|
||||
isMask: true
|
||||
animated: true
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
pragma Singleton
|
||||
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
property QtObject colors
|
||||
property QtObject radius
|
||||
property QtObject font
|
||||
property QtObject transition
|
||||
property string iconsPath: `${Directories.assetsPath}/icons/fluent`
|
||||
property bool dark: Appearance.m3colors.darkmode
|
||||
|
||||
property real backgroundTransparency: 0.17
|
||||
property real contentTransparency: 0.25
|
||||
property real shadowTransparency: 0.6
|
||||
colors: QtObject {
|
||||
id: colors
|
||||
property color bg0: root.dark ? "#1C1C1C" : "#EEEEEE"
|
||||
property color bg0Border: root.dark ? "#404040" : "#BEBEBE"
|
||||
property color bg1: root.dark ? "#2C2C2C" : "#F7F7F7"
|
||||
property color bg1Hover: root.dark ? "#292929" : "#F7F7F7"
|
||||
property color bg1Active: root.dark ? "#252525" : "#F3F3F3"
|
||||
property color bg1Border: root.dark ? "#333333" : "#E9E9E9"
|
||||
property color bg2: root.dark ? "#313131" : "#FBFBFB"
|
||||
property color bg2Hover: root.dark ? "#383838" : "#FDFDFD"
|
||||
property color bg2Active: root.dark ? "#333333" : "#FDFDFD"
|
||||
property color bg2Border: root.dark ? "#464646" : "#EEEEEE"
|
||||
property color fg: root.dark ? "#FFFFFF" : "#000000"
|
||||
property color fg1: root.dark ? "#D1D1D1" : "#626262"
|
||||
property color danger: "#C42B1C"
|
||||
property color dangerActive: "#B62D1F"
|
||||
// property color accent: root.dark ? "#A5C6D8" : "#5377A3"
|
||||
property color accent: Appearance.m3colors.m3primary
|
||||
property color accentUnfocused: root.dark ? "#989898" : "#848484"
|
||||
}
|
||||
|
||||
radius: QtObject {
|
||||
id: radius
|
||||
property int none: 0
|
||||
property int small: 2
|
||||
property int medium: 4
|
||||
property int large: 8
|
||||
property int xLarge: 12
|
||||
}
|
||||
|
||||
font: QtObject {
|
||||
id: font
|
||||
property QtObject family: QtObject {
|
||||
property string ui: "Noto Sans"
|
||||
}
|
||||
property QtObject weight: QtObject { // Noto is not Segoe, so we might use slightly different weights
|
||||
property int thin: Font.Normal
|
||||
property int regular: Font.Medium
|
||||
property int strong: Font.DemiBold
|
||||
property int stronger: Font.Bold
|
||||
}
|
||||
property QtObject pixelSize: QtObject {
|
||||
property real normal: 11
|
||||
property real large: 15
|
||||
}
|
||||
}
|
||||
|
||||
transition: QtObject {
|
||||
id: transition
|
||||
property QtObject easing: QtObject {
|
||||
property QtObject bezierCurve: QtObject {
|
||||
readonly property list<real> easeInOut: [0.42,0.00,0.58,1.00,1,1]
|
||||
readonly property list<real> easeIn: [0,1,1,1,1,1]
|
||||
readonly property list<real> easeOut: [1,0,1,1,1,1]
|
||||
}
|
||||
}
|
||||
|
||||
property Component color: Component {
|
||||
ColorAnimation {
|
||||
duration: 120
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeIn
|
||||
}
|
||||
}
|
||||
|
||||
property Component opacity: Component {
|
||||
NumberAnimation{
|
||||
duration: 120
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeIn
|
||||
}
|
||||
}
|
||||
|
||||
property Component enter: Component {
|
||||
NumberAnimation {
|
||||
duration: 250
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeIn
|
||||
}
|
||||
}
|
||||
|
||||
property Component exit: Component {
|
||||
NumberAnimation {
|
||||
duration: 250
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeOut
|
||||
}
|
||||
}
|
||||
|
||||
property Component move: Component {
|
||||
NumberAnimation {
|
||||
duration: 170
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeInOut
|
||||
}
|
||||
}
|
||||
|
||||
property Component anchor: Component {
|
||||
AnchorAnimation {
|
||||
duration: 160
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: transition.easing.bezierCurve.easeIn
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import qs.services
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property string internetIcon: {
|
||||
if (Network.ethernet) return "ethernet";
|
||||
if (Network.wifiEnabled) {
|
||||
const strength = Network.networkStrength;
|
||||
if (strength > 75) return "wifi-1";
|
||||
if (strength > 50) return "wifi-2";
|
||||
if (strength > 25) return "wifi-3";
|
||||
return "wifi-4";
|
||||
}
|
||||
if (Network.wifiStatus === "connecting") return "wifi-4";
|
||||
if (Network.wifiStatus === "disconnected") return "wifi-off";
|
||||
if (Network.wifiStatus === "disabled") return "wifi-off";
|
||||
return "wifi-warning";
|
||||
}
|
||||
|
||||
property string batteryIcon: {
|
||||
if (Battery.isCharging) return "battery-charge";
|
||||
if (Battery.isCriticalAndNotCharging) return "battery-warning";
|
||||
if (Battery.percentage >= 0.9) return "battery-full";
|
||||
return `battery-${Math.ceil(Battery.percentage * 10)}`;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.waffle.looks
|
||||
|
||||
PopupToolTip {
|
||||
id: root
|
||||
|
||||
property real padding: 2
|
||||
verticalPadding: padding
|
||||
horizontalPadding: padding
|
||||
|
||||
contentItem: Item {
|
||||
anchors.centerIn: parent
|
||||
implicitWidth: realContent.implicitWidth + root.verticalPadding * 2
|
||||
implicitHeight: realContent.implicitHeight + root.horizontalPadding * 2
|
||||
|
||||
Rectangle {
|
||||
id: ambientShadow
|
||||
z: 0
|
||||
anchors {
|
||||
fill: realContent
|
||||
margins: -border.width
|
||||
}
|
||||
border.color: ColorUtils.transparentize(Looks.colors.bg0Border, Looks.shadowTransparency)
|
||||
border.width: 1
|
||||
color: "transparent"
|
||||
radius: realContent.radius + border.width
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: realContent
|
||||
z: 1
|
||||
anchors.centerIn: parent
|
||||
implicitWidth: tooltipText.implicitWidth + 10 * 2
|
||||
implicitHeight: tooltipText.implicitHeight + 8 * 2
|
||||
color: Looks.colors.bg1
|
||||
radius: Looks.radius.medium
|
||||
|
||||
WText {
|
||||
id: tooltipText
|
||||
text: root.text
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import QtQuick
|
||||
|
||||
Text {
|
||||
id: root
|
||||
|
||||
renderType: Text.NativeRendering
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: Looks.colors.fg
|
||||
|
||||
font {
|
||||
family: Looks.font.family.ui
|
||||
pixelSize: Looks.font.pixelSize.normal
|
||||
weight: Looks.font.weight.regular
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,8 @@ Singleton {
|
||||
}
|
||||
property string time: Qt.locale().toString(clock.date, Config.options?.time.format ?? "hh:mm")
|
||||
property string shortDate: Qt.locale().toString(clock.date, Config.options?.time.shortDateFormat ?? "dd/MM")
|
||||
property string date: Qt.locale().toString(clock.date, Config.options?.time.dateFormat ?? "dddd, dd/MM")
|
||||
property string date: Qt.locale().toString(clock.date, Config.options?.time.dateWithYearFormat ?? "dd/MM/yyyy")
|
||||
property string longDate: Qt.locale().toString(clock.date, Config.options?.time.dateFormat ?? "dddd, dd/MM")
|
||||
property string collapsedCalendarFormat: Qt.locale().toString(clock.date, "dd MMMM yyyy")
|
||||
property string uptime: "0h, 0m"
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
pragma Singleton
|
||||
|
||||
import qs.modules.common
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property list<var> apps: {
|
||||
var map = new Map();
|
||||
|
||||
// Pinned apps
|
||||
const pinnedApps = Config.options?.dock.pinnedApps ?? [];
|
||||
for (const appId of pinnedApps) {
|
||||
if (!map.has(appId.toLowerCase())) map.set(appId.toLowerCase(), ({
|
||||
pinned: true,
|
||||
toplevels: []
|
||||
}));
|
||||
}
|
||||
|
||||
// Separator
|
||||
if (pinnedApps.length > 0) {
|
||||
map.set("SEPARATOR", { pinned: false, toplevels: [] });
|
||||
}
|
||||
|
||||
// Ignored apps
|
||||
const ignoredRegexStrings = Config.options?.dock.ignoredAppRegexes ?? [];
|
||||
const ignoredRegexes = ignoredRegexStrings.map(pattern => new RegExp(pattern, "i"));
|
||||
// Open windows
|
||||
for (const toplevel of ToplevelManager.toplevels.values) {
|
||||
if (ignoredRegexes.some(re => re.test(toplevel.appId))) continue;
|
||||
if (!map.has(toplevel.appId.toLowerCase())) map.set(toplevel.appId.toLowerCase(), ({
|
||||
pinned: false,
|
||||
toplevels: []
|
||||
}));
|
||||
map.get(toplevel.appId.toLowerCase()).toplevels.push(toplevel);
|
||||
}
|
||||
|
||||
var values = [];
|
||||
|
||||
for (const [key, value] of map) {
|
||||
values.push(appEntryComp.createObject(null, { appId: key, toplevels: value.toplevels, pinned: value.pinned }));
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
component TaskbarAppEntry: QtObject {
|
||||
id: wrapper
|
||||
required property string appId
|
||||
required property list<var> toplevels
|
||||
required property bool pinned
|
||||
}
|
||||
Component {
|
||||
id: appEntryComp
|
||||
TaskbarAppEntry {}
|
||||
}
|
||||
}
|
||||
@@ -28,12 +28,19 @@ import qs.modules.ii.overlay
|
||||
import qs.modules.ii.verticalBar
|
||||
import qs.modules.ii.wallpaperSelector
|
||||
|
||||
import qs.modules.waffle.background
|
||||
import qs.modules.waffle.bar
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Window
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Hyprland
|
||||
import qs.services
|
||||
|
||||
ShellRoot {
|
||||
id: root
|
||||
|
||||
// Force initialization of some singletons
|
||||
Component.onCompleted: {
|
||||
MaterialThemeLoader.reapplyTheme()
|
||||
@@ -67,11 +74,41 @@ ShellRoot {
|
||||
PanelLoader { identifier: "iiSidebarRight"; component: SidebarRight {} }
|
||||
PanelLoader { identifier: "iiVerticalBar"; extraCondition: Config.options.bar.vertical; component: VerticalBar {} }
|
||||
PanelLoader { identifier: "iiWallpaperSelector"; component: WallpaperSelector {} }
|
||||
PanelLoader { identifier: "wBar"; component: WaffleBar {} }
|
||||
PanelLoader { identifier: "wBackground"; component: WaffleBackground {} }
|
||||
|
||||
component PanelLoader: LazyLoader {
|
||||
required property string identifier
|
||||
property bool extraCondition: true
|
||||
active: Config.ready && Config.options.enabledPanels.includes(identifier) && extraCondition
|
||||
}
|
||||
|
||||
// Panel families
|
||||
property list<string> families: ["ii", "waffle"]
|
||||
property var panelFamilies: ({
|
||||
"ii": ["iiBar", "iiBackground", "iiCheatsheet", "iiDock", "iiLock", "iiMediaControls", "iiNotificationPopup", "iiOnScreenDisplay", "iiOnScreenKeyboard", "iiOverlay", "iiOverview", "iiPolkit", "iiRegionSelector", "iiReloadPopup", "iiScreenCorners", "iiSessionScreen", "iiSidebarLeft", "iiSidebarRight", "iiVerticalBar", "iiWallpaperSelector"],
|
||||
"waffle": ["wBar", "wBackground", "iiCheatsheet", "iiDock", "iiLock", "iiMediaControls", "iiNotificationPopup", "iiOnScreenDisplay", "iiOnScreenKeyboard", "iiOverlay", "iiOverview", "iiPolkit", "iiRegionSelector", "iiReloadPopup", "iiScreenCorners", "iiSessionScreen", "iiSidebarLeft", "iiSidebarRight", "iiWallpaperSelector"],
|
||||
})
|
||||
function cyclePanelFamily() {
|
||||
const currentIndex = families.indexOf(Config.options.panelFamily)
|
||||
const nextIndex = (currentIndex + 1) % families.length
|
||||
Config.options.panelFamily = families[nextIndex]
|
||||
Config.options.enabledPanels = panelFamilies[Config.options.panelFamily]
|
||||
}
|
||||
|
||||
IpcHandler {
|
||||
target: "panelFamily"
|
||||
|
||||
function cycle(): void {
|
||||
root.cyclePanelFamily()
|
||||
}
|
||||
}
|
||||
|
||||
GlobalShortcut {
|
||||
name: "panelFamilyCycle"
|
||||
description: "Cycles panel family"
|
||||
|
||||
onPressed: root.cyclePanelFamily()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||