Initial commit
9
.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Emacs related
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
1
README.org
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Icons from https://github.com/vinceliuice/Colloid-icon-theme
|
BIN
assets/backgrounds/mountain.jpg
Normal file
After Width: | Height: | Size: 692 KiB |
54
assets/svg/battery-low.svg
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
version="1.1"
|
||||||
|
id="svg3"
|
||||||
|
sodipodi:docname="battery-low.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
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="namedview3"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="6.125"
|
||||||
|
inkscape:cx="8"
|
||||||
|
inkscape:cy="7.9183673"
|
||||||
|
inkscape:window-width="918"
|
||||||
|
inkscape:window-height="1049"
|
||||||
|
inkscape:window-x="998"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg3" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<style
|
||||||
|
id="current-color-scheme"
|
||||||
|
type="text/css">.ColorScheme-NegativeText {
|
||||||
|
color:#da4453;
|
||||||
|
}</style>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
d="m3 5c-0.554 0-1 0.446-1 1v4c0 0.554 0.446 1 1 1z"
|
||||||
|
fill="#ff8080"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m15 6v4a1 2 0 0 0 1-2 1 2 0 0 0-1-2z"
|
||||||
|
fill="#ff8080"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m3 3c-1.662 0-3 1.338-3 3v4c0 1.662 1.338 3 3 3h8c1.662 0 3-1.338 3-3v-4c0-1.662-1.338-3-3-3zm0 1h8c1.108 0 2 0.892 2 2v4c0 1.108-0.892 2-2 2h-8c-1.108 0-2-0.892-2-2v-4c0-1.108 0.892-2 2-2z"
|
||||||
|
fill="#ff8080"
|
||||||
|
id="path3"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
59
assets/svg/battery-mid.svg
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:docname="battery-mid.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
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="6.125"
|
||||||
|
inkscape:cx="10.938776"
|
||||||
|
inkscape:cy="7.9183673"
|
||||||
|
inkscape:window-width="918"
|
||||||
|
inkscape:window-height="1049"
|
||||||
|
inkscape:window-x="998"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<style
|
||||||
|
id="current-color-scheme"
|
||||||
|
type="text/css">.ColorScheme-Text {
|
||||||
|
color:#363636;
|
||||||
|
}</style>
|
||||||
|
</defs>
|
||||||
|
<rect
|
||||||
|
x="2"
|
||||||
|
y="5"
|
||||||
|
width="5"
|
||||||
|
height="6"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
fill="#363636"
|
||||||
|
id="rect1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m15 6v4a1 2 0 0 0 1-2 1 2 0 0 0-1-2z"
|
||||||
|
fill="#363636"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m3 3c-1.662 0-3 1.338-3 3v4c0 1.662 1.338 3 3 3h8c1.662 0 3-1.338 3-3v-4c0-1.662-1.338-3-3-3zm0 1h8c1.108 0 2 0.892 2 2v4c0 1.108-0.892 2-2 2h-8c-1.108 0-2-0.892-2-2v-4c0-1.108 0.892-2 2-2z"
|
||||||
|
fill="#363636"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
62
assets/svg/battery_charging.svg
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="22"
|
||||||
|
height="22"
|
||||||
|
version="1.1"
|
||||||
|
id="svg4"
|
||||||
|
sodipodi:docname="battery_charging.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
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="namedview4"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="4.4545455"
|
||||||
|
inkscape:cx="11"
|
||||||
|
inkscape:cy="10.887755"
|
||||||
|
inkscape:window-width="918"
|
||||||
|
inkscape:window-height="1049"
|
||||||
|
inkscape:window-x="998"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg4" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<style
|
||||||
|
id="current-color-scheme"
|
||||||
|
type="text/css">
|
||||||
|
.ColorScheme-Text { color:#363636; } .ColorScheme-Highlight { color:#4285f4; }
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
transform="translate(-1,-1)"
|
||||||
|
class="ColorScheme-Text"
|
||||||
|
fill="currentColor"
|
||||||
|
id="g4"
|
||||||
|
style="fill:#ffffff;fill-opacity:1">
|
||||||
|
<path
|
||||||
|
d="m10.834 8-3.334 5h3l-0.75 3h0.416l3.334-5h-3l0.75-3z"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<g
|
||||||
|
id="g3"
|
||||||
|
style="fill:#ffffff;fill-opacity:1">
|
||||||
|
<path
|
||||||
|
d="m4 7c-1.108 0-2 0.892-2 2v6c0 1.108 0.892 2 2 2h13c1.108 0 2-0.892 2-2v-6c0-1.108-0.892-2-2-2zm0 1h13c0.554 0 1 0.446 1 1v6c0 0.554-0.446 1-1 1h-13c-0.554 0-1-0.446-1-1v-6c0-0.554 0.446-1 1-1z"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m4.55 9a0.55 0.55 0 0 0-0.55 0.55v4.9c0 0.304 0.246 0.55 0.55 0.55h4.42l0.25-1h-1.72a1 1 0 0 1-0.832-1.555l2.297-3.445zm7.481 0-0.25 1h1.72c0.187 0 0.355 0.053 0.5 0.137v-0.587a0.55 0.55 0 0 0-0.553-0.55h-1.418zm1.97 3.053-1.967 2.947h1.414a0.55 0.55 0 0 0 0.551-0.55v-2.397zm5.999-2.053v4a2 2 0 0 0 2-2 2 2 0 0 0-2-2z"
|
||||||
|
id="path3"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
58
assets/svg/battery_full.svg
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:docname="battery_full.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
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="6.125"
|
||||||
|
inkscape:cx="8.1632653"
|
||||||
|
inkscape:cy="8.7346939"
|
||||||
|
inkscape:window-width="918"
|
||||||
|
inkscape:window-height="1049"
|
||||||
|
inkscape:window-x="998"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<style
|
||||||
|
id="current-color-scheme"
|
||||||
|
type="text/css">.ColorScheme-Text { color:#363636; } .ColorScheme-Highlight { color:#5294e2; }</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
style="fill:#ffffff;fill-opacity:1"
|
||||||
|
class="ColorScheme-Text"
|
||||||
|
id="g2">
|
||||||
|
<path
|
||||||
|
d="m15 6.5879v2.8242a1.5 1.5 0 0 0 1-1.4121 1.5 1.5 0 0 0-1-1.4121z"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<rect
|
||||||
|
x="2"
|
||||||
|
y="6"
|
||||||
|
width="10"
|
||||||
|
height="4"
|
||||||
|
ry="0"
|
||||||
|
id="rect1"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m2 4c-1.108 0-2 0.892-2 2v4c0 1.108 0.892 2 2 2h10c1.108 0 2-0.892 2-2v-4c0-1.108-0.892-2-2-2h-10zm0 1h10c0.554 0 1 0.446 1 1v4c0 0.554-0.446 1-1 1h-10c-0.554 0-1-0.446-1-1v-4c0-0.554 0.446-1 1-1z"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
17
assets/svg/reboot.svg
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="29.143999"
|
||||||
|
height="34.001999"
|
||||||
|
version="1.1"
|
||||||
|
id="svg4"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<path
|
||||||
|
fill="#ffffff"
|
||||||
|
d="m 14.572001,0 v 4.858 a 14.572,14.572 0 1 0 14.572,14.57 h -4.858 a 9.714,9.714 0 1 1 -9.714,-9.714 v 4.858 l 12.142,-7.286 z"
|
||||||
|
color="#bebebe"
|
||||||
|
overflow="visible"
|
||||||
|
id="path2" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 475 B |
16
assets/svg/settings.svg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="40.001701"
|
||||||
|
height="39.999504"
|
||||||
|
viewBox="0 0 10.583575 10.582994"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs5" />
|
||||||
|
<path
|
||||||
|
fill="#ffffff"
|
||||||
|
d="m 5.2852251,-1.3138604e-7 -0.02,0.002000001386 c -0.25,0.025 -0.246,0.237 -0.327,0.758 a 4.563,4.55 28.59 0 0 -0.51,0.068 c -0.234,-0.538 -0.314,-0.724 -0.524,-0.65 -0.238,0.086 -0.18,0.291 -0.134,0.82300003 a 4.563,4.55 28.59 0 0 -0.464,0.191 c -0.336,-0.40700003 -0.44,-0.59000003 -0.668,-0.48500003 -0.202,0.094 -0.129,0.283 0.082,0.82900003 a 4.563,4.55 28.59 0 0 -0.406,0.31 c -0.426,-0.303 -0.575,-0.453 -0.767,-0.292 -0.169,0.142 -0.05,0.305 0.288,0.767 a 4.563,4.55 28.59 0 0 -0.307,0.4 c -0.494,-0.17 -0.68000003,-0.271 -0.81800003,-0.063 -0.12,0.181 0.036,0.305 0.47700003,0.643 a 4.563,4.55 28.59 0 0 -0.20300003,0.497 c -0.512,-0.057 -0.713,-0.113 -0.802,0.119 -0.079,0.207 0.104,0.292 0.63,0.534 a 4.563,4.55 28.59 0 0 -0.068,0.527 c -0.505,0.069 -0.713,0.066 -0.742,0.312 -0.026,0.22 0.173,0.256 0.748,0.363 a 4.563,4.55 28.59 0 0 0.066,0.483 c -0.485,0.234 -0.692,0.289 -0.644,0.538 0.043,0.217 0.244,0.191 0.818,0.119 a 4.563,4.55 28.59 0 0 0.19600003,0.476 c -0.41700003,0.353 -0.60500003,0.457 -0.49600003,0.688 0.097,0.201 0.285,0.124 0.83600003,-0.095 l -0.052,-0.09 a 4.563,4.55 28.59 0 0 0.35,0.466 c -0.295,0.439 -0.442,0.592 -0.275,0.78 0.144,0.164 0.304,0.044 0.746,-0.297 a 4.563,4.55 28.59 0 0 0.413,0.318 c -0.208,0.555 -0.28,0.744 -0.077,0.836 0.228,0.104 0.332,-0.082 0.662,-0.49 a 4.563,4.55 28.59 0 0 0.486,0.2 c -0.076,0.5620001 -0.1,0.7600001 0.114,0.8040001 0.246,0.05 0.304,-0.153 0.538,-0.6280001 a 4.563,4.55 28.59 0 0 0.507,0.07 c 0.083,0.5690001 0.113,0.7680001 0.333,0.7510001 0.25,-0.02 0.251,-0.23 0.343,-0.7470001 a 4.563,4.55 28.59 0 0 0.526,-0.068 c 0.215,0.5100001 0.296,0.6930001 0.5,0.6220001 0.235,-0.08 0.188,-0.283 0.148,-0.7910001 a 4.563,4.55 28.59 0 0 0.463,-0.186 c 0.372,0.434 0.503,0.586 0.68,0.454 0.197,-0.146 0.092,-0.325 -0.098,-0.79 a 4.563,4.55 28.59 0 0 0.428,-0.325 c 0.465,0.33 0.63,0.445 0.768,0.274 0.156,-0.19 0.01,-0.339 -0.29,-0.745 a 4.563,4.55 28.59 0 0 0.328,-0.43 c 0.507,0.21 0.693,0.282 0.79,0.088 0.11,-0.222 -0.068,-0.333 -0.453,-0.667 a 4.563,4.55 28.59 0 0 0.193,-0.474 c 0.5599999,0.06 0.7589999,0.08 0.7969999,-0.136 0.043,-0.244 -0.159,-0.3 -0.6259999,-0.514 a 4.563,4.55 28.59 0 0 0.068,-0.513 c 0.5659999,-0.088 0.7659999,-0.12 0.7459999,-0.34 -0.022,-0.25 -0.233,-0.249 -0.7489999,-0.336 a 4.563,4.55 28.59 0 0 -0.07,-0.51 c 0.5219999,-0.24 0.7049999,-0.325 0.6259999,-0.53 -0.088,-0.232 -0.29,-0.177 -0.7979999,-0.12 a 4.563,4.55 28.59 0 0 -0.201,-0.485 c 0.457,-0.353 0.6169999,-0.477 0.494,-0.661 -0.142,-0.211 -0.327,-0.103 -0.84,0.075 a 4.563,4.55 28.59 0 0 -0.312,-0.404 c 0.335,-0.482 0.452,-0.648 0.278,-0.787 -0.195,-0.156 -0.34,-0.004 -0.758,0.308 a 4.563,4.55 28.59 0 0 -0.415,-0.314 c 0.21,-0.54000003 0.284,-0.72800003 0.085,-0.82300003 h -0.001 c -0.227,-0.106 -0.333,0.078 -0.67,0.48400003 a 4.563,4.55 28.59 0 0 -0.473,-0.19200003 c 0.076,-0.576 0.102,-0.776 -0.115,-0.82 -0.25,-0.05 -0.305,0.158 -0.544,0.647 a 4.563,4.55 28.59 0 0 -0.502,-0.067 c -0.092,-0.544 -0.127,-0.753 -0.313,-0.75900000138576 h -0.02 z M 6.4322251,1.5999999 c 0.16,0 0.391,0.094 0.632,0.227 0.442,0.245 0.916,0.624 1.042,0.794 0.606,0.648 1.047,1.452 1.073,2.743 0.005,0.24 -0.018,0.459 -0.075,0.637 -0.061,0.186 -0.185,0.372 -0.38,0.462 -0.163,0.069 -0.343,0.117 -0.51,0.04 -0.522,-0.24 -1.178,-0.653 -1.704,-0.964 -0.088,-0.053 -0.153,-0.138 -0.162,-0.18 v -0.002 l 0.002,-0.065 a 1.06,1.06 0 0 0 -0.607,-0.958 0.4,0.4 0 0 1 -0.042,-0.135 32,32 0 0 1 -0.01,-1.896 c 0.002,-0.433 0.313,-0.688 0.696,-0.7 l 0.03,-0.003 z m -2.264,0.023 h 0.025 a 0.73,0.73 0 0 1 0.41,0.123 c 0.139,0.108 0.27,0.24 0.284,0.424 0.047,0.572 0.01,1.347 -0.004,1.958 a 0.4,0.4 0 0 1 -0.068,0.219 1.06,1.06 0 0 0 -0.582,0.945 l 0.002,0.05 a 0.4,0.4 0 0 1 -0.122,0.148 c -0.54,0.33 -1.097,0.647 -1.649,0.939 -0.377,0.211 -0.751,0.065 -0.95,-0.262 -0.26,-0.341 -0.095,-1.688 0.044,-1.998 0.267,-0.845 0.75,-1.625 1.864,-2.28 0.207,-0.123 0.408,-0.21 0.591,-0.248 a 1,1 0 0 1 0.13,-0.016 z m 1.124,3.14 a 0.53,0.53 0 0 1 0.529,0.528 0.53,0.53 0 0 1 -0.53,0.53 0.53,0.53 0 0 1 -0.529,-0.53 0.53,0.53 0 0 1 0.53,-0.529 z m -0.625,1.422 h 0.01 a 0.1,0.1 0 0 1 0.042,0.005 l 0.017,0.002 a 1.06,1.06 0 0 0 0.556,0.158 1.06,1.06 0 0 0 0.554,-0.157 0.4,0.4 0 0 1 0.2,0.03 34,34 0 0 1 1.637,0.958 c 0.372,0.22 0.433,0.618 0.249,0.954 -0.167,0.396 -1.414,0.927 -1.753,0.962 -0.865,0.19 -1.782,0.162 -2.907,-0.474 a 2,2 0 0 1 -0.51,-0.389 0.75,0.75 0 0 1 -0.204,-0.563 c 0.023,-0.174 0.074,-0.353 0.225,-0.458 0.472,-0.327 1.162,-0.68 1.698,-0.975 a 0.44,0.44 0 0 1 0.186,-0.053"
|
||||||
|
id="path5" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
16
assets/svg/shutdown.svg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="36.220001"
|
||||||
|
height="38.810013"
|
||||||
|
version="1.1"
|
||||||
|
id="svg4"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<path
|
||||||
|
fill="#ffffff"
|
||||||
|
d="m 9.8639997,6.3060128 c -0.408,0 -0.788,0.16 -1.132,0.324 l -0.81,0.486 c -3.968,2.618 -6.764,6.6620002 -7.60000004,11.4000002 0,0.004 -0.08,-0.006 -0.08,0 -0.022,0.13 0.02,0.272 0,0.404 -0.12,0.8 -0.24200000332275,1.59 -0.24200000332275,2.426 0,9.644 8.10800004332275,17.464 18.11000034332275,17.464 10.002,0 18.11,-7.82 18.11,-17.464 0,-0.742 -0.066,-1.466 -0.16,-2.184 -0.03,-0.222 -0.124,-0.426 -0.162,-0.646 -0.836,-4.738 -3.632,-8.7820002 -7.6,-11.4000002 l -0.81,-0.486 c -0.344,-0.162 -0.724,-0.324 -1.132,-0.324 a 2.67,2.67 0 0 0 -2.668,2.67 c 0,0.838 0.446,1.6120002 1.052,2.1000002 0.192,0.156 0.416,0.308 0.646,0.406 a 12.64,12.64 0 0 1 5.176,7.034 c 0.014,0.054 0.066,0.106 0.08,0.16 0.27,0.99 0.404,2 0.404,3.074 0,6.89 -5.792,12.452 -12.936,12.452 -7.144,0 -12.9360003,-5.562 -12.9360003,-12.452 0,-1.072 0.136,-2.084 0.404,-3.072 0.016,-0.06 0.064,-0.106 0.08,-0.162 a 12.64,12.64 0 0 1 5.1760003,-7.034 c 0.23,-0.1 0.454,-0.25 0.646,-0.404 0.606,-0.49 1.052,-1.2640002 1.052,-2.1020002 a 2.67,2.67 0 0 0 -2.6680003,-2.67 M 18.11,1.2817383e-5 A 2.58,2.58 0 0 1 20.698,2.5880128 V 18.112013 a 2.58,2.58 0 0 1 -2.588,2.586 2.58,2.58 0 0 1 -2.588,-2.586 V 2.5880128 A 2.58,2.58 0 0 1 18.11,1.2817383e-5"
|
||||||
|
overflow="visible"
|
||||||
|
id="path2" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
205
css/styles.css
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
:root {
|
||||||
|
--bleed-extra: 80px;
|
||||||
|
--bleed: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
/* set basic colors */
|
||||||
|
background-color: var(--surface);
|
||||||
|
color: var(--on-surface);
|
||||||
|
font-family: sans-serif;
|
||||||
|
|
||||||
|
/* main background image */
|
||||||
|
background-image: var(--background);
|
||||||
|
//background-size: auto;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
|
||||||
|
/* Disable overflow */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.silhouette {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
pointer-events: none;
|
||||||
|
background: radial-gradient(closest-side, rgba(0,0,0,0) 50%, rgba(0,0,0,0.3) 100%);
|
||||||
|
|
||||||
|
backdrop-filter: blur( 20px );
|
||||||
|
-webkit-backdrop-filter: blur( 20px );
|
||||||
|
|
||||||
|
mask-image: radial-gradient(closest-side, rgba(0,0,0) 50%, rgba(0,0,0,0.4) 90%, rgba(0,0,0,1.0) 100%);
|
||||||
|
-webkit-mask-image: radial-gradient(closest-side, rgba(0,0,0,0) 50%, rgba(0,0,0,0.7) 90%, rgba(0,0,0,1.0) 100%);
|
||||||
|
|
||||||
|
transition: all 400ms cubic-bezier(.47,1.64,.41,.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.silhouette.hidden {
|
||||||
|
backdrop-filter: blur( 0px );
|
||||||
|
-webkit-backdrop-filter: blur( 0px );
|
||||||
|
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Alignment Styles */
|
||||||
|
.top-middle {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-right {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
transition: transform 400ms cubic-bezier(.47,1.64,.41,.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-right.hidden {
|
||||||
|
transform: translate(200px, -200px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-left {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: transform 400ms cubic-bezier(.47,1.64,.41,.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-left.hidden {
|
||||||
|
transform: translate(-200px, -200px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-left {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: transform 400ms cubic-bezier(.47,1.64,.41,.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-left.hidden {
|
||||||
|
transform: translate(-200px, 200px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-right {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
transition: transform 400ms cubic-bezier(.47,1.64,.41,.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-right.hidden {
|
||||||
|
transform: translate(200px, 200px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-bleed {
|
||||||
|
top: var(--bleed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-bleed {
|
||||||
|
bottom: var(--bleed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-bleed {
|
||||||
|
right: var(--bleed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-bleed {
|
||||||
|
left: var(--bleed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-bleed-extra {
|
||||||
|
top: var(--bleed-extra);
|
||||||
|
}
|
||||||
|
|
||||||
|
.center-text {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text Styles */
|
||||||
|
.title {
|
||||||
|
font-size: 80px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
font-size: 25px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Glassy Neumorphism */
|
||||||
|
|
||||||
|
.raised {
|
||||||
|
border-radius: 14px;
|
||||||
|
backdrop-filter: blur( 12px );
|
||||||
|
-webkit-backdrop-filter: blur( 12px );
|
||||||
|
box-shadow: var(--tl-shadow-primary-concave),
|
||||||
|
var(--br-shadow-primary-concave);
|
||||||
|
}
|
||||||
|
|
||||||
|
.raised-text {
|
||||||
|
text-shadow: var(--tl-shadow-secondary-concave),
|
||||||
|
var(--br-shadow-secondary-concave);
|
||||||
|
}
|
||||||
|
|
||||||
|
.raised-text-small {
|
||||||
|
text-shadow: var(--tl-shadow-tertiary-concave),
|
||||||
|
var(--br-shadow-tertiary-concave);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Component Styles */
|
||||||
|
#clock-box {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-btn {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
backdrop-filter: blur( 12px );
|
||||||
|
-webkit-backdrop-filter: blur( 12px );
|
||||||
|
|
||||||
|
color: var(--on-surface);
|
||||||
|
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
box-shadow: var(--tl-shadow-primary-concave), var(--br-shadow-primary-concave), inset 0 0 0 0 transparent;
|
||||||
|
transition: box-shadow 200ms, transform 300ms cubic-bezier(.2,2,1,1);
|
||||||
|
|
||||||
|
margin: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-btn:hover {
|
||||||
|
color: var(--on-surface-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-btn:active {
|
||||||
|
box-shadow: 0 0 0 transparent, 0 0 0 transparent, var(--tl-shadow-primary-convex), var(--br-shadow-primary-convex);
|
||||||
|
transform: scale(.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.action-btn img {
|
||||||
|
width: 25px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery-icon {
|
||||||
|
background: url("../assets/svg/battery-mid.svg");
|
||||||
|
}
|
33
css/themes/melanosis.css
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
:root {
|
||||||
|
--surface: #0B1012;
|
||||||
|
--surface-secondary: #37484D;
|
||||||
|
|
||||||
|
--on-surface: #F3F5FF;
|
||||||
|
--on-surface-dim: #9AB5B3;
|
||||||
|
|
||||||
|
--primary: #788BFF;
|
||||||
|
--primary-bright: #AEB9FF;
|
||||||
|
--primary-dim: #6F77AC;
|
||||||
|
|
||||||
|
--secondary: #BBA0CA;
|
||||||
|
--secondary-bright: #E0C0F1;
|
||||||
|
--secondary-dim: #9A7AAB;
|
||||||
|
|
||||||
|
--tertiary: #B4EDB4;
|
||||||
|
--tertiary-bright: #D5FFD5;
|
||||||
|
--tertiary-dim: #91CD91;
|
||||||
|
|
||||||
|
--background: url("../../assets/backgrounds/mountain.jpg");
|
||||||
|
|
||||||
|
--tl-shadow-primary-concave: 9px 9px 18px #040607;
|
||||||
|
--br-shadow-primary-concave: -9px -9px 18px #121a1d;
|
||||||
|
|
||||||
|
--tl-shadow-primary-convex: inset 9px 9px 18px #040607;
|
||||||
|
--br-shadow-primary-convex: inset -9px -9px 18px #121a1d;
|
||||||
|
|
||||||
|
--tl-shadow-secondary-concave: 2px 2px 10px #040607;
|
||||||
|
--br-shadow-secondary-concave: -2px -2px 10px #121a1d;
|
||||||
|
|
||||||
|
--tl-shadow-tertiary-concave: 0px 0px 1px #839a98;
|
||||||
|
--br-shadow-tertiary-concave: -0px -0px 1px #b1d0ce;
|
||||||
|
}
|
47
index.html
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimuim-scale=1.0, maximum-scale=1.0, viewport-fit=cover, user-scalable=no">
|
||||||
|
<link id="theme-stylesheet" rel="stylesheet" type="text/css" href="css/themes/melanosis.css"/>
|
||||||
|
<!--Main Document Styles-->
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/styles.css"/>
|
||||||
|
|
||||||
|
<title>Animus Greeter</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="silhouette hideable hidden"></div>
|
||||||
|
|
||||||
|
<div id="clock-box" class="top-middle center-text top-bleed-extra">
|
||||||
|
<div id="time-label" class="title raised-text">00:00</div>
|
||||||
|
<div id="date-label" class="subtitle raised-text">Monday 1, January 1970</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="setting-action-container" class="top-left center-text top-bleed left-bleed hideable hidden border-primary">
|
||||||
|
<button class="action-btn"><img src="assets/svg/settings.svg"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="power-action-container" class="top-right center-text top-bleed right-bleed hideable hidden">
|
||||||
|
<button id="poweroff-button" class="action-btn"><img src="assets/svg/shutdown.svg"/></button>
|
||||||
|
<button id="restart-button" class="action-btn"><img src="assets/svg/reboot.svg"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hostname-container" class="bottom-left bottom-bleed left-bleed hideable hidden">
|
||||||
|
<div id="hostname-label" class="label raised-text-small">citadel</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="host-info-container" class="bottom-right bottom-bleed right-bleed hideable hidden">
|
||||||
|
<div id="battery-icon"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="js/class/util.js"></script>
|
||||||
|
<script src="js/class/data.js"></script>
|
||||||
|
<script src="js/theme.js"></script>
|
||||||
|
<script src="js/clock.js"></script>
|
||||||
|
<script src="js/power-actions.js"></script>
|
||||||
|
<script src="js/idle-hide.js"></script>
|
||||||
|
<script src="js/hostname.js"></script>
|
||||||
|
<script src="js/index.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
2
index.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
primary_html: "index.html"
|
||||||
|
secondary_html: "index.html"
|
24
js/class/data.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
const ANIMUS_DATA = "animusData";
|
||||||
|
|
||||||
|
class Data {
|
||||||
|
constructor() {
|
||||||
|
this.theme = "melanosis";
|
||||||
|
}
|
||||||
|
|
||||||
|
load() {
|
||||||
|
const data = window.localStorage.getItem(ANIMUS_DATA);
|
||||||
|
if(!data) return;
|
||||||
|
const obj = JSON.parse(data);
|
||||||
|
|
||||||
|
this.theme = obj.theme ?? "melanosis";
|
||||||
|
}
|
||||||
|
|
||||||
|
save() {
|
||||||
|
const data = JSON.stringify(this);
|
||||||
|
window.localStorage.setItem(ANIMUS_DATA, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const themeData = new Data();
|
||||||
|
themeData.load();
|
||||||
|
themeData.save();
|
1
js/class/util.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
function $(c) { return document.querySelector(c); }
|
14
js/clock.js
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
function updateTime() {
|
||||||
|
const now = new Date(),
|
||||||
|
hours = now.getHours(),
|
||||||
|
minutes = now.getMinutes(),
|
||||||
|
day = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][now.getDay()],
|
||||||
|
date = now.getDate(),
|
||||||
|
month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][now.getMonth()],
|
||||||
|
year = now.getFullYear();
|
||||||
|
|
||||||
|
$("#time-label").textContent = ((hours < 10 ? "0" : "") + hours) + ":" + ((minutes < 10 ? "0" : "") + minutes);
|
||||||
|
$("#date-label").textContent = day + " " + date + ", " + month + " " + year;
|
||||||
|
}
|
||||||
|
|
||||||
|
setInterval(updateTime, 500);
|
3
js/hostname.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
function setHostname() {
|
||||||
|
$("#hostname-label").textContent = lightdm.hostname;
|
||||||
|
}
|
23
js/idle-hide.js
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
let hideInterval = 1;
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
if(hideInterval > 8){
|
||||||
|
document.querySelectorAll(".hideable").forEach(el => {
|
||||||
|
el.classList.add("hidden")
|
||||||
|
});
|
||||||
|
hideInterval = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hideInterval += 1;
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
function showHiddenElements() {
|
||||||
|
document.querySelectorAll(".hideable").forEach(el => {
|
||||||
|
el.classList.remove("hidden")
|
||||||
|
});
|
||||||
|
hideInterval = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.onclick = showHiddenElements;
|
||||||
|
document.body.onmousemove = showHiddenElements;
|
||||||
|
document.body.onkeydown = showHiddenElements;
|
11
js/index.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
async function initGreeter(){
|
||||||
|
if (window.greeter_config?.greeter.debug_mode){
|
||||||
|
// debug
|
||||||
|
}
|
||||||
|
setHostname();
|
||||||
|
connectPowerActions();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener("GreeterReady", () => {
|
||||||
|
initGreeter();
|
||||||
|
});
|
4
js/power-actions.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
function connectPowerActions() {
|
||||||
|
$("#poweroff-button").onclick = () => { lightdm.shutdown(); }
|
||||||
|
$("#restart-button").onclick = () => { lightdm.restart(); }
|
||||||
|
}
|
7
js/theme.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
function changeTheme(name) {
|
||||||
|
themeData.theme = name;
|
||||||
|
themeData.save();
|
||||||
|
$("#theme-stylesheet").href = "css/themes/" + name + ".css"
|
||||||
|
}
|
||||||
|
|
||||||
|
changeTheme(themeData.theme);
|