Added Wifi Signal Strenght Indicators

This commit is contained in:
tr1x_em committed 2025-08-11 18:57:04 +05:30
1 parent 13fa65237b
commit d91c61d806
13 files changed
+483 -78

No files matched your search

@@ -1,13 +0,0 @@
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#f2f2f2; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(4,4)" class="ColorScheme-Text" fill="currentColor">
<path d="m1 7v3c0 3 2 5 5 5h2c3 0 4.76-1.566 4.959-4h0.541c1.5 0 1.5-1.5 1.5-1.5v-1c0-1.5-1.5-1.5-1.5-1.5h-0.5zm1 1h10v2c0 2.216-1.784 4-4 4h-2c-2.216 0-4-1.784-4-4zm11.5 0c0.5-0.032 0.516 0.531 0.516 0.531v1c0 0.469-0.516 0.469-0.516 0.469h-0.5l0.01-1.985z"/>
<path d="m7.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z" opacity=".35"/>
<path d="m4.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z" opacity=".35"/>
<path d="m10.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z" opacity=".35"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,13 +0,0 @@
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#f2f2f2; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(4,4)" class="ColorScheme-Text" fill="currentColor">
<path d="m1 7v3c0 3 2 5 5 5h2c3 0 4.76-1.566 4.959-4h0.541c1.5 0 1.5-1.5 1.5-1.5v-1c0-1.5-1.5-1.5-1.5-1.5h-0.5zm1 1h10v2c0 2.216-1.784 4-4 4h-2c-2.216 0-4-1.784-4-4zm11.5 0c0.5-0.032 0.516 0.531 0.516 0.531v1c0 0.469-0.516 0.469-0.516 0.469h-0.5l0.01-1.985z"/>
<path d="m7.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z"/>
<path d="m4.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z"/>
<path d="m10.193-1e-3c-1.098 1.385-1.428 2.066-1.032 2.948 0.36 0.798 1.288 1.205 0.821 3.052 0.767-0.9 1.376-2.042 0.774-2.964-0.612-0.938-0.948-1.508-0.563-3.036z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="-10 -10 45 45"
width="28"
height="28"
stroke="#fff"
stroke-width="2"
fill="#aaa"
stroke-linecap="round"
stroke-linejoin="round"
class="css-i6dzq1"
version="1.1"
id="svg1"
sodipodi:docname="caffeine-off.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">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showguides="true"
inkscape:zoom="18.857143"
inkscape:cx="3.9507575"
inkscape:cy="14"
inkscape:window-width="1912"
inkscape:window-height="1045"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1">
<sodipodi:guide
position="14.977362,34.916881"
orientation="0,-1"
id="guide1"
inkscape:locked="false" />
<sodipodi:guide
position="28.394331,28.265492"
orientation="1,0"
id="guide2"
inkscape:locked="false" />
<sodipodi:guide
position="16.560724,10.985662"
orientation="0,-1"
id="guide3"
inkscape:locked="false" />
<sodipodi:guide
position="15.58627,21.15767"
orientation="1,0"
id="guide4"
inkscape:locked="false" />
</sodipodi:namedview>
<circle
cx="12.5"
cy="12.5"
r="18"
stroke="#aaaaaa"
stroke-width="1.5"
fill="#aaaaaa"
id="circle1" />
<g
transform="matrix(1.6071429,0,0,1.6071429,-0.35714939,0.44714008)"
class="ColorScheme-Text"
fill="currentColor"
id="g4"
style="color:#f2f2f2;fill:#ffffff;stroke-width:0.7;stroke-dasharray:none">
<path
d="m 1,7 v 3 c 0,3 2,5 5,5 h 2 c 3,0 4.76,-1.566 4.959,-4 H 13.5 C 15,11 15,9.5 15,9.5 v -1 C 15,7 13.5,7 13.5,7 H 13 Z m 1,1 h 10 v 2 c 0,2.216 -1.784,4 -4,4 H 6 C 3.784,14 2,12.216 2,10 Z m 11.5,0 c 0.5,-0.032 0.516,0.531 0.516,0.531 v 1 C 14.016,10 13.5,10 13.5,10 H 13 l 0.01,-1.985 z"
id="path1-5"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 7.193,-0.001 C 6.095,1.384 5.765,2.065 6.161,2.947 6.521,3.745 7.449,4.152 6.982,5.999 7.749,5.099 8.358,3.957 7.756,3.035 7.144,2.097 6.808,1.527 7.193,-0.001 Z"
id="path2"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 4.193,-0.001 C 3.095,1.384 2.765,2.065 3.161,2.947 3.521,3.745 4.449,4.152 3.982,5.999 4.749,5.099 5.358,3.957 4.756,3.035 4.144,2.097 3.808,1.527 4.193,-0.001 Z"
id="path3"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 10.193,-0.001 C 9.095,1.384 8.765,2.065 9.161,2.947 9.521,3.745 10.449,4.152 9.982,5.999 10.749,5.099 11.358,3.957 10.756,3.035 10.144,2.097 9.808,1.527 10.193,-0.001 Z"
id="path4"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
</g>
<path
class="ColorScheme-Text"
d="M 10.280908,0.21143421 A 1.2054857,1.2054857 0 0 0 9.5683659,1.310061 v 7.7657149 l -3.779358,-2.360571 a 1.2053572,1.2053572 0 0 0 -1.663714,0.38295 1.2053572,1.2053572 0 0 0 0.38295,1.663714 l 4.790089,2.9945891 -4.790089,2.99459 a 1.2053572,1.2053572 0 0 0 -0.38295,1.663714 1.2053572,1.2053572 0 0 0 1.663714,0.38295 l 3.779358,-2.360572 v 7.765715 a 1.2054857,1.2054857 0 0 0 2.0057141,0.900884 l 7.232143,-6.428572 a 1.2054857,1.2054857 0 0 0 -0.160088,-1.924232 l -4.790089,-2.994589 4.790089,-2.9945901 a 1.2054857,1.2054857 0 0 0 0.160088,-1.924232 L 11.57408,0.40895211 a 1.2054857,1.2054857 0 0 0 -1.293252,-0.1977589 z m 1.698108,3.78241079 4.021071,3.5752509 -4.021071,2.5111601 z m 0,9.438751 4.021071,2.511161 -4.021071,3.57525 z"
fill="currentColor"
id="path1"
style="color:#f2f2f2;display:none;fill:#ffffff;stroke-width:0;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

+103
View File
@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="-10 -10 45 45"
width="28"
height="28"
stroke="#fff"
stroke-width="2"
fill="#2369ff"
stroke-linecap="round"
stroke-linejoin="round"
class="css-i6dzq1"
version="1.1"
id="svg1"
sodipodi:docname="caffeine-on.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">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showguides="true"
inkscape:zoom="18.857143"
inkscape:cx="13.973485"
inkscape:cy="7.5833333"
inkscape:window-width="1912"
inkscape:window-height="1045"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1">
<sodipodi:guide
position="10.319824,35.042392"
orientation="0,-1"
id="guide1"
inkscape:locked="false" />
<sodipodi:guide
position="28.426625,19.71147"
orientation="1,0"
id="guide2"
inkscape:locked="false" />
<sodipodi:guide
position="20.16424,10.821533"
orientation="0,-1"
id="guide3"
inkscape:locked="false" />
<sodipodi:guide
position="15.405495,21.859464"
orientation="1,0"
id="guide4"
inkscape:locked="false" />
</sodipodi:namedview>
<circle
cx="12.5"
cy="12.5"
r="18"
stroke="#2369ff"
stroke-width="1.5"
fill="#2369ff"
id="circle1" />
<polyline
points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5"
id="polyline1"
style="display:none" />
<path
class="ColorScheme-Text"
d="M 10.414837,0.04097906 A 1.2054857,1.2054857 0 0 0 9.7022949,1.1396059 V 8.9053204 L 5.9229372,6.5447494 a 1.2053572,1.2053572 0 0 0 -1.663714,0.38295 1.2053572,1.2053572 0 0 0 0.38295,1.663714 l 4.790089,2.9945886 -4.790089,2.99459 a 1.2053572,1.2053572 0 0 0 -0.38295,1.663714 1.2053572,1.2053572 0 0 0 1.663714,0.38295 l 3.7793577,-2.360572 v 7.765715 a 1.2054857,1.2054857 0 0 0 2.0057141,0.900884 l 7.232143,-6.428572 A 1.2054857,1.2054857 0 0 0 18.780064,14.580479 L 13.989975,11.58589 18.780064,8.5913004 a 1.2054857,1.2054857 0 0 0 0.160088,-1.924232 L 11.708009,0.23849696 a 1.2054857,1.2054857 0 0 0 -1.293252,-0.1977589 z m 1.698108,3.78241084 4.021071,3.5752505 -4.021071,2.51116 z m 0,9.4387501 4.021071,2.511161 -4.021071,3.57525 z"
fill="currentColor"
id="path1"
style="color:#f2f2f2;display:none;fill:#ffffff;stroke-width:0;stroke-dasharray:none" />
<g
transform="matrix(1.6071429,0,0,1.6071429,-0.35714939,0.44714008)"
class="ColorScheme-Text"
fill="currentColor"
id="g4"
style="color:#f2f2f2;fill:#ffffff;stroke-width:0.7;stroke-dasharray:none">
<path
d="m 1,7 v 3 c 0,3 2,5 5,5 h 2 c 3,0 4.76,-1.566 4.959,-4 H 13.5 C 15,11 15,9.5 15,9.5 v -1 C 15,7 13.5,7 13.5,7 H 13 Z m 1,1 h 10 v 2 c 0,2.216 -1.784,4 -4,4 H 6 C 3.784,14 2,12.216 2,10 Z m 11.5,0 c 0.5,-0.032 0.516,0.531 0.516,0.531 v 1 C 14.016,10 13.5,10 13.5,10 H 13 l 0.01,-1.985 z"
id="path1-5"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 7.193,-0.001 C 6.095,1.384 5.765,2.065 6.161,2.947 6.521,3.745 7.449,4.152 6.982,5.999 7.749,5.099 8.358,3.957 7.756,3.035 7.144,2.097 6.808,1.527 7.193,-0.001 Z"
id="path2"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 4.193,-0.001 C 3.095,1.384 2.765,2.065 3.161,2.947 3.521,3.745 4.449,4.152 3.982,5.999 4.749,5.099 5.358,3.957 4.756,3.035 4.144,2.097 3.808,1.527 4.193,-0.001 Z"
id="path3"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
<path
d="M 10.193,-0.001 C 9.095,1.384 8.765,2.065 9.161,2.947 9.521,3.745 10.449,4.152 9.982,5.999 10.749,5.099 11.358,3.957 10.756,3.035 10.144,2.097 9.808,1.527 10.193,-0.001 Z"
id="path4"
style="fill:#ffffff;stroke-width:0.7;stroke-dasharray:none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="-10 -10 45 45"
width="28"
height="28"
stroke="#fff"
stroke-width="2"
fill="#aaa"
stroke-linecap="round"
stroke-linejoin="round"
class="css-i6dzq1"
version="1.1"
id="svg1"
sodipodi:docname="flight-off.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">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showguides="true"
inkscape:zoom="18.857143"
inkscape:cx="14.026515"
inkscape:cy="14.026515"
inkscape:window-width="1912"
inkscape:window-height="1072"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1">
<sodipodi:guide
position="14.977362,34.916881"
orientation="0,-1"
id="guide1"
inkscape:locked="false" />
<sodipodi:guide
position="28.394331,28.265492"
orientation="1,0"
id="guide2"
inkscape:locked="false" />
<sodipodi:guide
position="16.560724,10.985662"
orientation="0,-1"
id="guide3"
inkscape:locked="false" />
<sodipodi:guide
position="15.58627,21.15767"
orientation="1,0"
id="guide4"
inkscape:locked="false" />
</sodipodi:namedview>
<circle
cx="12.5"
cy="12.5"
r="18"
stroke="#aaaaaa"
stroke-width="1.5"
fill="#aaaaaa"
id="circle1" />
<path
class="ColorScheme-Text"
d="m 25.301471,12.499892 c -0.01117,-1.315258 -1.805802,-2.351833 -4.001524,-2.351833 h -4.58104 c -0.624203,0 -0.858314,-0.111467 -1.237246,-0.5238685 L 7.9244829,1.4540136 C 7.6792689,1.1865058 7.3894675,1.0527448 7.0662267,1.0527448 H 5.6283109 c -0.2898156,0 -0.4569877,0.2675078 -0.3232559,0.5684557 L 9.2174338,10.136941 3.4993974,10.772261 1.4596427,7.1386239 C 1.3035883,6.8599553 1.0695213,6.7373554 0.70169315,6.7373554 h -0.5015893 c -0.30094756,0 -0.50157506,0.2006276 -0.50157506,0.5015751 V 17.760941 c 0,0.300947 0.2006418,0.501575 0.50157506,0.501575 h 0.5015893 c 0.36782815,0 0.60189515,-0.122486 0.75794955,-0.401254 l 2.0397547,-3.6448 5.7180364,0.646526 -3.9123788,8.51574 c -0.1337469,0.300933 0.033441,0.568527 0.3232559,0.568527 h 1.4379158 c 0.3232408,0 0.6130279,-0.14495 0.8582562,-0.401254 l 7.5571781,-8.170177 c 0.378932,-0.412416 0.613043,-0.523898 1.237246,-0.523898 h 4.58104 c 2.195722,0 3.990363,-1.047779 4.001524,-2.351834 z"
fill="currentColor"
id="path1-2"
style="color:#f2f2f2;fill:#ffffff;fill-opacity:1;stroke-width:0;stroke-dasharray:none" />
<path
class="ColorScheme-Text"
d="M 10.280908,0.21143421 A 1.2054857,1.2054857 0 0 0 9.5683659,1.310061 v 7.7657149 l -3.779358,-2.360571 a 1.2053572,1.2053572 0 0 0 -1.663714,0.38295 1.2053572,1.2053572 0 0 0 0.38295,1.663714 l 4.790089,2.9945891 -4.790089,2.99459 a 1.2053572,1.2053572 0 0 0 -0.38295,1.663714 1.2053572,1.2053572 0 0 0 1.663714,0.38295 l 3.779358,-2.360572 v 7.765715 a 1.2054857,1.2054857 0 0 0 2.0057141,0.900884 l 7.232143,-6.428572 a 1.2054857,1.2054857 0 0 0 -0.160088,-1.924232 l -4.790089,-2.994589 4.790089,-2.9945901 a 1.2054857,1.2054857 0 0 0 0.160088,-1.924232 L 11.57408,0.40895211 a 1.2054857,1.2054857 0 0 0 -1.293252,-0.1977589 z m 1.698108,3.78241079 4.021071,3.5752509 -4.021071,2.5111601 z m 0,9.438751 4.021071,2.511161 -4.021071,3.57525 z"
fill="currentColor"
id="path1"
style="color:#f2f2f2;display:none;fill:#ffffff;stroke-width:0;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

+86
View File
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="-10 -10 45 45"
width="28"
height="28"
stroke="#fff"
stroke-width="2"
fill="#2369ff"
stroke-linecap="round"
stroke-linejoin="round"
class="css-i6dzq1"
version="1.1"
id="svg1"
sodipodi:docname="flight-on.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">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showguides="true"
inkscape:zoom="18.857143"
inkscape:cx="14.026515"
inkscape:cy="7.6628787"
inkscape:window-width="1912"
inkscape:window-height="1072"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1">
<sodipodi:guide
position="10.319824,35.042392"
orientation="0,-1"
id="guide1"
inkscape:locked="false" />
<sodipodi:guide
position="28.426625,19.71147"
orientation="1,0"
id="guide2"
inkscape:locked="false" />
<sodipodi:guide
position="20.16424,10.821533"
orientation="0,-1"
id="guide3"
inkscape:locked="false" />
<sodipodi:guide
position="15.405495,21.859464"
orientation="1,0"
id="guide4"
inkscape:locked="false" />
</sodipodi:namedview>
<circle
cx="12.5"
cy="12.5"
r="18"
stroke="#2369ff"
stroke-width="1.5"
fill="#2369ff"
id="circle1" />
<polyline
points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5"
id="polyline1"
style="display:none" />
<path
class="ColorScheme-Text"
d="M 10.414837,0.04097906 A 1.2054857,1.2054857 0 0 0 9.7022949,1.1396059 V 8.9053204 L 5.9229372,6.5447494 a 1.2053572,1.2053572 0 0 0 -1.663714,0.38295 1.2053572,1.2053572 0 0 0 0.38295,1.663714 l 4.790089,2.9945886 -4.790089,2.99459 a 1.2053572,1.2053572 0 0 0 -0.38295,1.663714 1.2053572,1.2053572 0 0 0 1.663714,0.38295 l 3.7793577,-2.360572 v 7.765715 a 1.2054857,1.2054857 0 0 0 2.0057141,0.900884 l 7.232143,-6.428572 A 1.2054857,1.2054857 0 0 0 18.780064,14.580479 L 13.989975,11.58589 18.780064,8.5913004 a 1.2054857,1.2054857 0 0 0 0.160088,-1.924232 L 11.708009,0.23849696 a 1.2054857,1.2054857 0 0 0 -1.293252,-0.1977589 z m 1.698108,3.78241084 4.021071,3.5752505 -4.021071,2.51116 z m 0,9.4387501 4.021071,2.511161 -4.021071,3.57525 z"
fill="currentColor"
id="path1"
style="color:#f2f2f2;display:none;fill:#ffffff;stroke-width:0;stroke-dasharray:none" />
<path
class="ColorScheme-Text"
d="m 25.301471,12.499892 c -0.01117,-1.315258 -1.805802,-2.351833 -4.001524,-2.351833 h -4.58104 c -0.624203,0 -0.858314,-0.111466 -1.237246,-0.5238684 L 7.924483,1.4540137 C 7.679269,1.1865061 7.389467,1.052745 7.066227,1.052745 H 5.628311 c -0.289816,0 -0.4569879,0.2675078 -0.323256,0.5684556 L 9.217434,10.136941 3.4993973,10.772261 1.4596426,7.138624 C 1.3035882,6.8599554 1.0695212,6.7373555 0.70169307,6.7373555 H 0.20010374 c -0.3009476,0 -0.5015751,0.2006276 -0.5015751,0.5015751 V 17.760941 c 0,0.300947 0.2006418,0.501575 0.5015751,0.501575 h 0.50158933 c 0.36782813,0 0.60189513,-0.122486 0.75794953,-0.401254 l 2.0397547,-3.6448 5.7180367,0.646526 -3.912379,8.51574 c -0.133747,0.300933 0.03344,0.568527 0.323256,0.568527 h 1.437916 c 0.32324,0 0.613028,-0.14495 0.858256,-0.401254 l 7.557178,-8.170177 c 0.378932,-0.412416 0.613043,-0.523898 1.237246,-0.523898 h 4.58104 c 2.195722,0 3.990363,-1.047779 4.001524,-2.351834 z"
fill="currentColor"
id="path1-2"
style="color:#f2f2f2;fill:#ffffff;fill-opacity:1;stroke-width:0;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -1,12 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#f2f2f2;
}
.ColorScheme-NegativeText{
color:#e74c3c;
}</style>
</defs>
<path class="ColorScheme-Text" d="m19.893 11c-0.0078-0.91918-1.262-1.6436-2.7965-1.6436h-3.2015c-0.43623 0-0.59984-0.0779-0.86466-0.36611l-5.2814-5.7098c-0.17137-0.18695-0.3739-0.28043-0.5998-0.28043h-1.0049c-0.20254 0-0.31937 0.18695-0.22591 0.39727l2.7342 5.9513-3.9961 0.444-1.4255-2.5394c-0.10906-0.19475-0.27264-0.28043-0.5297-0.28043h-0.35054c-0.21032 0-0.35053 0.14021-0.35053 0.35053v7.3534c0 0.21032 0.14022 0.35053 0.35053 0.35053h0.35054c0.25706 0 0.42064-0.0856 0.5297-0.28042l1.4255-2.5472 3.9961 0.45183-2.7342 5.9513c-0.09347 0.21031 0.02337 0.39732 0.22591 0.39732h1.0049c0.2259 0 0.42842-0.1013 0.5998-0.28042l5.2814-5.7098c0.26482-0.28822 0.42843-0.36613 0.86466-0.36613h3.2015c1.5345 0 2.7887-0.73225 2.7965-1.6436z" fill="currentColor" opacity=".35"/>
<rect class="ColorScheme-Text" transform="rotate(45)" x="4.5563" y="-.5" width="22" height="1" rx=".5" ry=".5" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1,8 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#f2f2f2;
}</style>
</defs>
<path class="ColorScheme-Text" d="m19.893 11c-0.0078-0.91918-1.262-1.6436-2.7965-1.6436h-3.2015c-0.43623 0-0.59984-0.0779-0.86466-0.36611l-5.2814-5.7098c-0.17137-0.18695-0.3739-0.28043-0.5998-0.28043h-1.0049c-0.20254 0-0.31937 0.18695-0.22591 0.39727l2.7342 5.9513-3.9961 0.444-1.4255-2.5394c-0.10906-0.19475-0.27264-0.28043-0.5297-0.28043h-0.35054c-0.21032 0-0.35053 0.14021-0.35053 0.35053v7.3534c0 0.21032 0.14022 0.35053 0.35053 0.35053h0.35054c0.25706 0 0.42064-0.0856 0.5297-0.28042l1.4255-2.5472 3.9961 0.45183-2.7342 5.9513c-0.09347 0.21031 0.02337 0.39732 0.22591 0.39732h1.0049c0.2259 0 0.42842-0.1013 0.5998-0.28042l5.2814-5.7098c0.26482-0.28822 0.42843-0.36613 0.86466-0.36613h3.2015c1.5345 0 2.7887-0.73225 2.7965-1.6436z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 971 B

+10 -10
View File
@@ -264,11 +264,11 @@ class ModusControlCenter(Window):
self.flight_icon = Svg(
name="flight-icon",
svg_file=get_relative_path(
"../../config/assets/icons/applets/network-flightmode-on.svg"
"../../config/assets/icons/applets/flight-on.svg"
if self.flight_mode
else "../../config/assets/icons/applets/network-flightmode-off.svg"
else "../../config/assets/icons/applets/flight-off.svg"
),
size=24,
size=46,
)
self.flight_widget = Button(
@@ -293,11 +293,11 @@ class ModusControlCenter(Window):
self.caffeine_icon = Svg(
name="caffeine-icon",
svg_file=get_relative_path(
"../../config/assets/icons/applets/caffeine-cup-full.svg"
"../../config/assets/icons/applets/caffeine-on.svg"
if self.caffeine_mode
else "../../config/assets/icons/applets/caffeine-cup-empty.svg"
else "../../config/assets/icons/applets/caffeine-off.svg"
),
size=24,
size=46,
)
self.caffeine_widget = Button(
@@ -671,9 +671,9 @@ class ModusControlCenter(Window):
# Update icon
self.flight_icon.set_from_file(
get_relative_path(
"../../config/assets/icons/applets/network-flightmode-on.svg"
"../../config/assets/icons/applets/flight-on.svg"
if self.flight_mode
else "../../config/assets/icons/applets/network-flightmode-off.svg"
else "../../config/assets/icons/applets/flight-off.svg"
)
)
@@ -703,9 +703,9 @@ class ModusControlCenter(Window):
self.caffeine_icon.set_from_file(
get_relative_path(
"../../config/assets/icons/applets/caffeine-cup-full.svg"
"../../config/assets/icons/applets/caffeine-on.svg"
if self.caffeine_mode
else "../../config/assets/icons/applets/caffeine-cup-empty.svg"
else "../../config/assets/icons/applets/caffeine-off.svg"
)
)
+38 -21
View File
@@ -7,8 +7,11 @@ from fabric.widgets.image import Image
from fabric.widgets.centerbox import CenterBox
from fabric.widgets.button import Button
from fabric.widgets.box import Box
from fabric.widgets.svg import Svg
from fabric.utils import get_relative_path
from gi.repository import Gdk, GLib, Gtk
from fabric.widgets.separator import Separator
from utils.functions import get_wifi_icon_for_strength, get_wifi_connecting_icon
import gi
import subprocess
@@ -37,13 +40,24 @@ class WifiNetworkSlot(Box):
"connected" if self.is_connected else "",
]
# Create connection status indicator using symbolic WiFi icon
self.dimage = Image(
icon_name="network-wireless-symbolic",
size=16,
# Create connection status indicator using dynamic WiFi icon based on signal strength
wifi_icon_path = get_wifi_icon_for_strength(self.strength)
self.dimage = Svg(
svg_file=wifi_icon_path,
size=28,
name="device-icon",
style_classes=" ".join(self.styles),
)
self.wifi_icon_box = Box(
children=[self.dimage],
style_classes=["wifi-icon-box"],
)
if self.is_connected:
self.wifi_icon_box.remove_style_class("wifi-icon-box")
self.wifi_icon_box.add_style_class("wifi-icon-box-connected")
# Set initial style classes
if self.is_connected:
self.dimage.add_style_class("connected")
self.network_label = Label(
label=self.ssid, name="wifi-network-name", h_align="start", h_expand=True
@@ -66,8 +80,8 @@ class WifiNetworkSlot(Box):
orientation="h",
spacing=8,
)
start_box.children = [self.dimage, self.network_label]
if self.lock_icon is not None:
start_box.children = [self.wifi_icon_box, self.network_label]
if self.lock_icon:
start_box.children.append(self.lock_icon)
# Create end section with lock icon if needed
@@ -80,10 +94,6 @@ class WifiNetworkSlot(Box):
)
]
if self.lock_icon is not None:
self.children.append(self.lock_icon)
end_children = []
# Emit initial change to update display
self.on_changed()
@@ -92,8 +102,9 @@ class WifiNetworkSlot(Box):
is_currently_connected = self.access_point.is_active
if is_currently_connected:
# Show disconnecting state
self.dimage.set_property("icon-name", "network-wireless-acquiring-symbolic")
# Show disconnecting state using connecting icon
connecting_icon = get_wifi_connecting_icon()
self.dimage.set_from_file(connecting_icon)
self.dimage.add_style_class("disconnecting")
# Disconnect from network
@@ -108,9 +119,8 @@ class WifiNetworkSlot(Box):
self._show_password_dialog()
else:
# Try to connect without password (for open networks)
self.dimage.set_property(
"icon-name", "network-wireless-acquiring-symbolic"
)
connecting_icon = get_wifi_connecting_icon()
self.dimage.set_from_file(connecting_icon)
self.dimage.add_style_class("connecting")
def on_open_connection_result(success, message):
@@ -141,14 +151,16 @@ class WifiNetworkSlot(Box):
def _reset_disconnect_state(self):
"""Reset visual state after disconnect operation"""
self.dimage.remove_style_class("disconnecting")
self.dimage.set_property("icon-name", "network-wireless-symbolic")
wifi_icon_path = get_wifi_icon_for_strength(self.strength)
self.dimage.set_from_file(wifi_icon_path)
self.on_changed()
return False # Remove timeout
def _reset_connect_state(self):
"""Reset visual state after connect operation"""
self.dimage.remove_style_class("connecting")
self.dimage.set_property("icon-name", "network-wireless-symbolic")
wifi_icon_path = get_wifi_icon_for_strength(self.strength)
self.dimage.set_from_file(wifi_icon_path)
self.on_changed()
return False # Remove timeout
@@ -158,7 +170,11 @@ class WifiNetworkSlot(Box):
self.styles = [
"connected" if self.is_connected else "",
]
self.dimage.set_property("style-classes", " ".join(self.styles))
# Update style classes for SVG widget
if self.is_connected:
self.dimage.add_style_class("connected")
else:
self.dimage.remove_style_class("connected")
return
def _show_password_dialog(self):
@@ -182,8 +198,9 @@ class WifiNetworkSlot(Box):
def _on_password_connect(self, ssid, password):
"""Handle password dialog connect action"""
if password.strip():
# Show connecting state
self.dimage.set_property("icon-name", "network-wireless-acquiring-symbolic")
# Show connecting state using connecting icon
connecting_icon = get_wifi_connecting_icon()
self.dimage.set_from_file(connecting_icon)
self.dimage.add_style_class("connecting")
# Try to connect with password using callback
+6 -1
View File
@@ -11,6 +11,7 @@ from modules.controlcenter.wifi import WifiConnections
from services.battery import Battery
from services.network import NetworkClient
from utils.roam import modus_service
from utils.functions import get_wifi_icon_for_strength, get_wifi_connecting_icon
from widgets.mousecapture import DropDownMouseCapture
from widgets.wayland import WaylandWindow as Window
@@ -286,10 +287,14 @@ class NetworkIndicator(Box):
tooltip = "WiFi disabled"
elif wifi.active_access_point:
ap = wifi.active_access_point
icon_file = "wifi-clear.svg"
# Use dynamic WiFi icon based on signal strength
wifi_icon_path = get_wifi_icon_for_strength(ap.strength)
self.network_icon.set_from_file(wifi_icon_path)
tooltip = f"Connected to {ap.ssid}"
if ap.strength >= 0:
tooltip += f" ({ap.strength}%)"
self.network_button.set_tooltip_text(tooltip)
return # Early return to avoid setting icon again
else:
icon_file = "wifi-off-clear.svg"
tooltip = "WiFi disconnected"
+13
View File
@@ -916,3 +916,16 @@
font-weight: bold;
color: #ffffff;
}
.wifi-icon-box {
background-color: #aaaaaa;
border-radius: 50%;
padding: 2px;
/* margin-right: 8px; */
}
.wifi-icon-box-connected {
background-color: #007aff;
border-radius: 50%;
padding: 2px;
/* margin-right: 8px; */
}
+46
View File
@@ -49,3 +49,49 @@ def read_json_file(file_path: str) -> Optional[List]:
except json.JSONDecodeError as e:
logger.error(f"Failed to read JSON file {file_path}: {e}")
return None
def get_wifi_icon_for_strength(strength: int) -> str:
"""
Get the appropriate WiFi icon based on signal strength.
Args:
strength: Signal strength from 0-100
Returns:
Absolute path to the appropriate WiFi icon
"""
# Get the current directory where this script is located
current_dir = os.path.dirname(os.path.abspath(__file__))
# Get the project root (parent of utils directory)
project_root = os.path.dirname(current_dir)
if strength >= 80:
icon_name = "network-wireless-100.svg"
elif strength >= 60:
icon_name = "network-wireless-80.svg"
elif strength >= 40:
icon_name = "network-wireless-60.svg"
elif strength >= 20:
icon_name = "network-wireless-40.svg"
elif strength > 0:
icon_name = "network-wireless-20.svg"
else:
icon_name = "network-wireless-0.svg"
return os.path.join(project_root, "config", "assets", "icons", "wifi", icon_name)
def get_wifi_connecting_icon() -> str:
"""
Get the WiFi connecting icon path.
Returns:
Absolute path to the WiFi connecting icon
"""
# Get the current directory where this script is located
current_dir = os.path.dirname(os.path.abspath(__file__))
# Get the project root (parent of utils directory)
project_root = os.path.dirname(current_dir)
return os.path.join(project_root, "config", "assets", "icons", "wifi", "wifi-connecting.svg")