Compare commits
74 Commits
067b02c69e
...
master
Author | SHA1 | Date | |
---|---|---|---|
b58a7327f2 | |||
885ee3d66f | |||
219873c890
|
|||
01e1b307f1
|
|||
392d75f182
|
|||
4427954ba0
|
|||
de13fa6bcb | |||
9e2d872968
|
|||
0db5c9fb0c
|
|||
38d690c5aa
|
|||
c38530d5a7 | |||
e78351850e | |||
5d8912036a | |||
638f1efc3a | |||
73881d7d05 | |||
187ebbadb6 | |||
003aa55726 | |||
7a34cbe48d | |||
079bef1e52
|
|||
17da29c03e
|
|||
0920081084
|
|||
0f0e56174d | |||
c89670f53d | |||
90804f75bb | |||
6d836901aa | |||
84cfee9afa
|
|||
45c0c935a8 | |||
6308f00345 | |||
23e3adc741
|
|||
459e31371f
|
|||
eccf6c17b4
|
|||
37735ae085
|
|||
7f9549f651
|
|||
b7a7798611
|
|||
4b2e2c8815
|
|||
40634f0de5
|
|||
e5b253411f
|
|||
bb27fcfaa0
|
|||
76e7547151
|
|||
9ca3a7147d
|
|||
c414473b4c
|
|||
b65616d1cc
|
|||
b1c1c8faa6
|
|||
03e9fbe124
|
|||
b70603504e
|
|||
765c4232a8
|
|||
77106d60f4
|
|||
8c59220b6a
|
|||
d549a22794
|
|||
d8b78f78f3
|
|||
26ec943fef
|
|||
e07ff152f4
|
|||
aa4ebcb292
|
|||
35267764b6
|
|||
5ada15d1fb
|
|||
cec2462802
|
|||
a91958b0eb | |||
fbc941f5d2
|
|||
fe350957dd
|
|||
f6a8f5004b
|
|||
17725f8807
|
|||
c9aef48da2
|
|||
e8312903db
|
|||
5dca4a76b4
|
|||
40b43f940c
|
|||
373e5f71c3
|
|||
4518ae74a8
|
|||
1b13852f15
|
|||
d1c8dbebbc
|
|||
b3cd5c0522
|
|||
3f6c7c0498
|
|||
12a666cbfd
|
|||
79411cf97d
|
|||
fc761cb33b
|
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
|
config.lua
|
||||||
|
28
README.md
@ -1,16 +1,22 @@
|
|||||||
# Desktop Environment config
|
# Mark's Awesomewm Config
|
||||||
|
|
||||||
To use, copy conf-example.lua into conf.lua, then configure your system.
|
## Setup
|
||||||
|
Copy config.lua.template into config.lua before using.
|
||||||
|
|
||||||
|
## Modules
|
||||||
|
See the [modules](./modules/README.md) README.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
Some features require extra tools. Tools each module requires are listed below. If a module is disabled, its tool is not needed. Applications required by `core` MUST be installed.
|
||||||
|
|
||||||
|
- Core: `fish`, `sox` (and plugins)
|
||||||
|
- Backlight: `xbacklight`
|
||||||
|
- Battery: `acpi`
|
||||||
|
- Ibus: `ibus`
|
||||||
|
- Launcher: `rofi`
|
||||||
|
- Lock: `i3lock, imagemagick, scrot` or `lightdm` (For `dm-tool`), depending on configuration.
|
||||||
|
- MPC: `mpc`
|
||||||
|
- Picom: `picom`
|
||||||
|
- Screenshot: `flameshot`, `tesseract (and data)`, `xclip`, `lpr`
|
||||||
|
- Volume: `pamixer`
|
||||||
|
|
||||||
- rofi
|
|
||||||
- fish
|
|
||||||
- upower, xbacklight
|
|
||||||
- flameshot, scrot, xclip, tesseract
|
|
||||||
- pamixer
|
|
||||||
- sox
|
|
||||||
- ibus
|
|
||||||
- redshift
|
|
||||||
- mpc
|
|
||||||
|
13
assets/apps.lua
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
firefox = conf_dir .. "assets/apps/firefox.svg",
|
||||||
|
firefox_dev = conf_dir .. "assets/apps/firefox-dev.svg",
|
||||||
|
folder = conf_dir .. "assets/apps/folder.svg",
|
||||||
|
keepassx = conf_dir .. "assets/apps/keepassx.svg",
|
||||||
|
key = conf_dir .. "assets/apps/key.svg",
|
||||||
|
signal = conf_dir .. "assets/apps/signal.svg",
|
||||||
|
terminal = conf_dir .. "assets/apps/terminal.svg",
|
||||||
|
thunderbird = conf_dir .. "assets/apps/thunderbird.svg",
|
||||||
|
writer = conf_dir .. "assets/apps/writer.svg",
|
||||||
|
phone = conf_dir .. "assets/apps/phone.svg",
|
||||||
|
code = conf_dir .. "assets/apps/code.svg",
|
||||||
|
}
|
13
assets/apps/code.svg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<rect style="opacity:0.2" width="56" height="48" x="4" y="9" rx="2.8" ry="2.4"/>
|
||||||
|
<rect style="fill:#167abf" width="56" height="48" x="4" y="8" rx="2.8" ry="2.4"/>
|
||||||
|
<path style="fill:#ffffff;opacity:0.1" d="M 6.8007812 8 C 5.2495813 8 4 9.0707908 4 10.400391 L 4 11.400391 C 4 10.070791 5.2495813 9 6.8007812 9 L 57.199219 9 C 58.750419 9 60 10.070791 60 11.400391 L 60 10.400391 C 60 9.0707908 58.750419 8 57.199219 8 L 6.8007812 8 z"/>
|
||||||
|
<path style="opacity:0.2" d="m 6.8,7.9999992 c -1.5512,0 -2.8,1.0692973 -2.8,2.3988968 v 43.202207 c 0,1.3296 1.2488,2.398898 2.8,2.398898 H 22.2 V 7.9999992 Z"/>
|
||||||
|
<path style="opacity:0.2" d="M 21.955078,4.9143037 A 3.0003,3.0003 0 0 0 19,7.9572725 V 57.957273 a 3.0003,3.0003 0 1 0 6,0 V 7.9572725 A 3.0003,3.0003 0 0 0 21.955078,4.9143037 Z m 8.087891,7.0429693 a 3.0003,3.0003 0 1 0 0,6 H 41 a 3.0003,3.0003 0 1 0 0,-6 z m 4,9 a 3.0003,3.0003 0 1 0 0,6 H 48 a 3.0003,3.0003 0 1 0 0,-6 z m 0,9 a 3.0003,3.0003 0 1 0 0,6 H 48 a 3.0003,3.0003 0 1 0 0,-6 z m 0,9 a 3.0003,3.0003 0 1 0 0,6 H 48 a 3.0003,3.0003 0 1 0 0,-6 z m -4,9 a 3.0003,3.0003 0 1 0 0,6 H 41 a 3.0003,3.0003 0 1 0 0,-6 z"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 22,7 V 57"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 30.042727,13.9994 H 41"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 34.042727,22.9997 H 48"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 34.042727,31.9997 H 48"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 34.042727,40.9997 H 48"/>
|
||||||
|
<path style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round" d="M 30.042727,49.9997 H 41"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
13
assets/apps/firefox-dev.svg
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<path style="opacity:0.2" d="M 14.3371,24.069652 C 7.7872392,29.13482 4,25.470446 4,34.327104 4,49.610422 16.536027,62 32,62 47.463972,62 60,49.610422 60,34.327104 60,27.21168 57.282662,20.723458 52.817792,15.820751 c 0.09952,-0.0038 -0.417538,-0.401259 -0.684106,-0.302059 1.866534,3.093824 2.94086,6.719368 2.94086,10.596086 0,11.345064 -6.30966,22.584314 -17.654726,22.584314 -7.286864,0.3537 -16.99377,-4.304736 -18.487808,-8.663922 -0.963912,-2.812426 -0.7206,-5.971132 1.901904,-7.719644 1.424458,-0.90423 3.501198,-1.79703 6.786764,-1.901872 C 30.622036,28.439788 29.161684,28.66431 29.017312,28.0667 28.08496,27.811752 26.42995,27.459424 24.144858,25.660968 22.120926,24.068052 21.180892,23.464044 15.282742,23.40895 14.168471,21.263354 14.446317,26.617268 14.3371,24.069652 Z"/>
|
||||||
|
<path style="fill:#02bfee" d="m 40.804948,3 c 1.18114,3.1443412 5.452452,7.19946 11.086258,14.415001 4.77129,6.110871 5.318106,12.928837 7.081964,19.058969 L 45.715454,47.884842 30.739942,32.511354 C 30.672702,22.29109 28.21961,11.553669 40.804948,3 Z"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 40.804688 3 C 31.766937 9.1425386 30.491751 16.412034 30.511719 23.806641 C 30.617401 16.758395 32.174628 9.8654499 40.804688 4 C 41.985827 7.1443412 46.256819 11.198522 51.890625 18.414062 C 56.453295 24.257742 57.162903 30.743088 58.757812 36.660156 L 58.972656 36.474609 C 57.208798 30.344477 56.661915 23.524933 51.890625 17.414062 C 46.256819 10.198522 41.985827 6.1443412 40.804688 3 z"/>
|
||||||
|
<path style="fill:#0086da" d="m 13.538,21.399526 c 1.945071,-1.93003 5.12116,-6.424178 8.910732,-7.669997 -1.018114,5.426646 0.301782,7.151441 0.95875,9.925879 l -6.09088,-1.579118 z"/>
|
||||||
|
<circle style="fill:#354bb0" cx="32" cy="33" r="14"/>
|
||||||
|
<path style="fill:#5fdffd" d="m 36.43523,23.12941 c -0.19914,0.002 -0.39819,0.009 -0.596962,0.0212 4.054692,1.90338 6.646048,5.976576 6.651942,10.45579 -0.003,6.154196 -4.824218,11.3691 -10.97021,11.686784 1.536824,0.727182 3.215054,0.966082 4.91523,0.970816 6.388438,5.8e-5 11.567344,-5.178734 11.567428,-11.567172 C 48.002716,28.30829 42.823768,23.129342 36.43523,23.1294 Z"/>
|
||||||
|
<path id="ellipse841" style="fill:#095cd3" d="M 14.3371,23.069652 C 7.7872392,28.13482 4,24.470446 4,33.327104 4,48.610422 16.536027,61 32,61 47.463972,61 60,48.610422 60,33.327104 60,26.21168 57.282662,19.723457 52.817792,14.820751 c 0.09952,-0.0038 -0.417538,-0.401259 -0.684106,-0.302059 1.866534,3.093824 2.94086,6.719368 2.94086,10.596086 0,11.345064 -6.30966,22.584314 -17.654726,22.584314 -7.286864,0.3537 -16.99377,-4.304736 -18.487808,-8.663922 -0.963912,-2.812426 -0.7206,-5.971132 1.901904,-7.719644 1.424458,-0.90423 3.501198,-1.79703 6.786764,-1.901872 C 30.622036,27.439788 29.161684,27.66431 29.017312,27.0667 28.08496,26.811752 26.42995,26.459424 24.144858,24.660968 22.120926,23.068052 21.180892,22.464044 15.282742,22.40895 14.168471,20.263354 14.446317,25.617268 14.3371,23.069652 Z"/>
|
||||||
|
<path style="opacity:0.1" d="M 13.959406,12.521388 C 7.6899162,17.369737 4.3744002,24.804102 4.0327014,33.198772 4.3912248,46.063772 16.135054,56 30.59994,56 45.290744,56 57.199994,45.744346 57.199994,32.599942 c 0,-3.542486 -0.871324,-6.90198 -2.422662,-9.923066 0.1888,1.118968 0.298048,2.264416 0.298048,3.437116 C 55.07538,37.459056 45.877046,46 34.53198,46 27.245116,46.353702 21.76349,42.985704 20.269452,38.626518 19.305541,35.81409 19.62117,34.627362 22.243674,32.87885 c 1.424458,-0.90423 3.430074,-1.516646 6.715638,-1.621488 3.001356,-1.973866 3.231488,-2.732866 3.087116,-3.330476 -0.932352,-0.254948 -3.50359,-1.242174 -5.788682,-3.040632 -2.023936,-1.592914 -5.383002,-4.803242 -11.281152,-4.858336 -1.11427,-2.145595 -0.907971,-4.958915 -1.017188,-7.50653 z"/>
|
||||||
|
<path style="fill:#0091eb" d="M 13.959406,11.521388 C 7.6899162,16.369737 4.3744002,23.804102 4.0327014,32.198772 4.3912248,45.063772 16.135054,55 30.59994,55 45.290744,55 57.199994,44.744346 57.199994,31.599942 c 0,-3.542486 -0.871324,-6.90198 -2.422662,-9.923066 0.1888,1.118968 0.298048,2.264416 0.298048,3.437116 C 55.07538,36.459056 45.877046,45 34.53198,45 27.245116,45.353702 21.76349,41.985704 20.269452,37.626518 19.305541,34.81409 19.62117,33.627362 22.243674,31.87885 c 1.424458,-0.90423 3.430074,-1.516646 6.715638,-1.621488 3.001356,-1.973866 3.231488,-2.732866 3.087116,-3.330476 -0.932352,-0.254948 -3.50359,-1.242174 -5.788682,-3.040632 -2.023936,-1.592914 -5.383002,-4.803242 -11.281152,-4.858336 -1.11427,-2.145595 -0.907971,-4.958915 -1.017188,-7.50653 z"/>
|
||||||
|
<path style="fill:#5fdffd" d="m 16.511719,25.007812 c -1.905454,-0.04134 -3.510928,0.614812 -4.785157,1.484376 -0.228236,0.228238 1.815639,4.35756 6.074219,4.402344 C 17.406493,37.764078 22.547558,42.787234 26,43.78125 l 1.515624,0.277344 C 23.84605,42.799716 21.228834,40.42398 20.269532,37.625 c -0.963912,-2.812428 -0.649849,-3.997582 1.972656,-5.746094 1.424458,-0.90423 3.429278,-1.516252 6.714844,-1.621094 1.500678,-0.986932 2.31199,-1.67181 2.726562,-2.183594 0.207328,-0.255592 0.315112,-0.466306 0.363282,-0.652342 0.04814,-0.18626 0.0361,-0.346692 0,-0.496094 -4.04561,4.074212 -9.790084,-0.408866 -14.242188,-1.773438 -0.418954,-0.08944 -0.853249,-0.13502 -1.292969,-0.14454 z"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 13.958984 11.521484 C 7.6894946 16.369833 4.3749019 23.804549 4.0332031 32.199219 C 4.0381562 32.376951 4.0532238 32.55192 4.0625 32.728516 C 4.5076311 24.527944 7.8075354 17.27855 13.958984 12.521484 C 14.068201 15.069099 13.862293 17.881749 14.976562 20.027344 C 20.874712 20.082438 24.233877 23.293805 26.257812 24.886719 C 28.417287 26.586311 30.786148 27.538226 31.832031 27.855469 C 32.084777 27.466489 32.107814 27.179982 32.046875 26.927734 C 31.114523 26.672786 28.542905 25.685177 26.257812 23.886719 C 24.233877 22.293805 20.874712 19.082438 14.976562 19.027344 C 13.862293 16.881749 14.068201 14.069099 13.958984 11.521484 z M 54.777344 21.677734 C 54.853705 22.130309 54.906709 22.589492 54.955078 23.050781 C 56.322344 25.837077 57.11364 28.898553 57.185547 32.121094 C 57.189743 31.94722 57.199219 31.774523 57.199219 31.599609 C 57.199219 28.057123 56.328682 24.69882 54.777344 21.677734 z M 55.060547 25.748047 C 54.724117 36.774848 45.663341 45 34.53125 45 C 27.244386 45.353702 21.763569 41.986139 20.269531 37.626953 C 20.037322 36.949431 19.883785 36.369021 19.814453 35.849609 C 19.710747 36.605332 19.875543 37.477403 20.269531 38.626953 C 21.763569 42.986139 27.244386 46.353702 34.53125 46 C 45.876316 46 55.076172 37.458345 55.076172 26.113281 C 55.076172 25.990094 55.062923 25.870634 55.060547 25.748047 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
13
assets/apps/firefox.svg
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<path style="opacity:0.2" d="M 14.3371,24.069652 C 7.7872392,29.13482 4,25.470446 4,34.327104 4,49.610422 16.536027,62 32,62 47.463972,62 60,49.610422 60,34.327104 60,27.21168 57.282662,20.723458 52.817792,15.820751 c 0.09952,-0.0038 -0.417538,-0.401259 -0.684106,-0.302059 1.866534,3.093824 2.94086,6.719368 2.94086,10.596086 0,11.345064 -6.30966,22.584314 -17.654726,22.584314 -7.286864,0.3537 -16.99377,-4.304736 -18.487808,-8.663922 -0.963912,-2.812426 -0.7206,-5.971132 1.901904,-7.719644 1.424458,-0.90423 3.501198,-1.79703 6.786764,-1.901872 C 30.622036,28.439788 29.161684,28.66431 29.017312,28.0667 28.08496,27.811752 26.42995,27.459424 24.144858,25.660968 22.120926,24.068052 21.180892,23.464044 15.282742,23.40895 14.168471,21.263354 14.446317,26.617268 14.3371,24.069652 Z"/>
|
||||||
|
<path style="fill:#ffde3f" d="m 40.804948,3 c 1.18114,3.1443412 5.452452,7.19946 11.086258,14.415001 4.77129,6.110871 5.318106,12.928837 7.081964,19.058969 L 45.715454,47.884842 30.739942,32.511354 C 30.672702,22.29109 28.21961,11.553669 40.804948,3 Z"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 40.804688 3 C 31.766937 9.1425386 30.491751 16.412034 30.511719 23.806641 C 30.617401 16.758395 32.174628 9.8654499 40.804688 4 C 41.985827 7.1443412 46.256819 11.198522 51.890625 18.414062 C 56.453295 24.257742 57.162903 30.743088 58.757812 36.660156 L 58.972656 36.474609 C 57.208798 30.344477 56.661915 23.524933 51.890625 17.414062 C 46.256819 10.198522 41.985827 6.1443412 40.804688 3 z"/>
|
||||||
|
<path style="fill:#ff750e" d="m 13.538,21.399526 c 1.945071,-1.93003 5.12116,-6.424178 8.910732,-7.669997 -1.018114,5.426646 0.301782,7.151441 0.95875,9.925879 l -6.09088,-1.579118 z"/>
|
||||||
|
<circle style="fill:#8357cd" cx="32" cy="33" r="14"/>
|
||||||
|
<path style="fill:#ffba36" d="m 36.43523,23.12941 c -0.19914,0.002 -0.39819,0.009 -0.596962,0.0212 4.054692,1.90338 6.646048,5.976576 6.651942,10.45579 -0.003,6.154196 -4.824218,11.3691 -10.97021,11.686784 1.536824,0.727182 3.215054,0.966082 4.91523,0.970816 6.388438,5.8e-5 11.567344,-5.178734 11.567428,-11.567172 C 48.002716,28.30829 42.823768,23.129342 36.43523,23.1294 Z"/>
|
||||||
|
<path id="ellipse841" style="fill:#f74e66" d="M 14.3371,23.069652 C 7.7872392,28.13482 4,24.470446 4,33.327104 4,48.610422 16.536027,61 32,61 47.463972,61 60,48.610422 60,33.327104 60,26.21168 57.282662,19.723457 52.817792,14.820751 c 0.09952,-0.0038 -0.417538,-0.401259 -0.684106,-0.302059 1.866534,3.093824 2.94086,6.719368 2.94086,10.596086 0,11.345064 -6.30966,22.584314 -17.654726,22.584314 -7.286864,0.3537 -16.99377,-4.304736 -18.487808,-8.663922 -0.963912,-2.812426 -0.7206,-5.971132 1.901904,-7.719644 1.424458,-0.90423 3.501198,-1.79703 6.786764,-1.901872 C 30.622036,27.439788 29.161684,27.66431 29.017312,27.0667 28.08496,26.811752 26.42995,26.459424 24.144858,24.660968 22.120926,23.068052 21.180892,22.464044 15.282742,22.40895 14.168471,20.263354 14.446317,25.617268 14.3371,23.069652 Z"/>
|
||||||
|
<path style="opacity:0.1" d="M 13.959406,12.521388 C 7.6899162,17.369737 4.3744002,24.804102 4.0327014,33.198772 4.3912248,46.063772 16.135054,56 30.59994,56 45.290744,56 57.199994,45.744346 57.199994,32.599942 c 0,-3.542486 -0.871324,-6.90198 -2.422662,-9.923066 0.1888,1.118968 0.298048,2.264416 0.298048,3.437116 C 55.07538,37.459056 45.877046,46 34.53198,46 27.245116,46.353702 21.76349,42.985704 20.269452,38.626518 19.305541,35.81409 19.62117,34.627362 22.243674,32.87885 c 1.424458,-0.90423 3.430074,-1.516646 6.715638,-1.621488 3.001356,-1.973866 3.231488,-2.732866 3.087116,-3.330476 -0.932352,-0.254948 -3.50359,-1.242174 -5.788682,-3.040632 -2.023936,-1.592914 -5.383002,-4.803242 -11.281152,-4.858336 -1.11427,-2.145595 -0.907971,-4.958915 -1.017188,-7.50653 z"/>
|
||||||
|
<path style="fill:#ff7f1f" d="M 13.959406,11.521388 C 7.6899162,16.369737 4.3744002,23.804102 4.0327014,32.198772 4.3912248,45.063772 16.135054,55 30.59994,55 45.290744,55 57.199994,44.744346 57.199994,31.599942 c 0,-3.542486 -0.871324,-6.90198 -2.422662,-9.923066 0.1888,1.118968 0.298048,2.264416 0.298048,3.437116 C 55.07538,36.459056 45.877046,45 34.53198,45 27.245116,45.353702 21.76349,41.985704 20.269452,37.626518 19.305541,34.81409 19.62117,33.627362 22.243674,31.87885 c 1.424458,-0.90423 3.430074,-1.516646 6.715638,-1.621488 3.001356,-1.973866 3.231488,-2.732866 3.087116,-3.330476 -0.932352,-0.254948 -3.50359,-1.242174 -5.788682,-3.040632 -2.023936,-1.592914 -5.383002,-4.803242 -11.281152,-4.858336 -1.11427,-2.145595 -0.907971,-4.958915 -1.017188,-7.50653 z"/>
|
||||||
|
<path style="fill:#ffba36" d="m 16.511719,25.007812 c -1.905454,-0.04134 -3.510928,0.614812 -4.785157,1.484376 -0.228236,0.228238 1.815639,4.35756 6.074219,4.402344 C 17.406493,37.764078 22.547558,42.787234 26,43.78125 l 1.515624,0.277344 C 23.84605,42.799716 21.228834,40.42398 20.269532,37.625 c -0.963912,-2.812428 -0.649849,-3.997582 1.972656,-5.746094 1.424458,-0.90423 3.429278,-1.516252 6.714844,-1.621094 1.500678,-0.986932 2.31199,-1.67181 2.726562,-2.183594 0.207328,-0.255592 0.315112,-0.466306 0.363282,-0.652342 0.04814,-0.18626 0.0361,-0.346692 0,-0.496094 -4.04561,4.074212 -9.790084,-0.408866 -14.242188,-1.773438 -0.418954,-0.08944 -0.853249,-0.13502 -1.292969,-0.14454 z"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 13.958984 11.521484 C 7.6894946 16.369833 4.3749019 23.804549 4.0332031 32.199219 C 4.0381562 32.376951 4.0532238 32.55192 4.0625 32.728516 C 4.5076311 24.527944 7.8075354 17.27855 13.958984 12.521484 C 14.068201 15.069099 13.862293 17.881749 14.976562 20.027344 C 20.874712 20.082438 24.233877 23.293805 26.257812 24.886719 C 28.417287 26.586311 30.786148 27.538226 31.832031 27.855469 C 32.084777 27.466489 32.107814 27.179982 32.046875 26.927734 C 31.114523 26.672786 28.542905 25.685177 26.257812 23.886719 C 24.233877 22.293805 20.874712 19.082438 14.976562 19.027344 C 13.862293 16.881749 14.068201 14.069099 13.958984 11.521484 z M 54.777344 21.677734 C 54.853705 22.130309 54.906709 22.589492 54.955078 23.050781 C 56.322344 25.837077 57.11364 28.898553 57.185547 32.121094 C 57.189743 31.94722 57.199219 31.774523 57.199219 31.599609 C 57.199219 28.057123 56.328682 24.69882 54.777344 21.677734 z M 55.060547 25.748047 C 54.724117 36.774848 45.663341 45 34.53125 45 C 27.244386 45.353702 21.763569 41.986139 20.269531 37.626953 C 20.037322 36.949431 19.883785 36.369021 19.814453 35.849609 C 19.710747 36.605332 19.875543 37.477403 20.269531 38.626953 C 21.763569 42.986139 27.244386 46.353702 34.53125 46 C 45.876316 46 55.076172 37.458345 55.076172 26.113281 C 55.076172 25.990094 55.062923 25.870634 55.060547 25.748047 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
8
assets/apps/folder.svg
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<rect style="opacity:0.2" width="56" height="36" x="4" y="22" rx="2.8" ry="2.8"/>
|
||||||
|
<path style="fill:#12806a" d="M 6.8,7 C 5.25,7 4,8.25 4,9.8 V 46.2 C 4,47.75 5.25,49 6.8,49 H 57.2 C 58.75,49 60,47.75 60,46.2 V 15.8 C 60,14.25 58.75,13 57.2,13 H 30 V 9.8 C 30,8.245 28.75,7 27.2,7 Z"/>
|
||||||
|
<rect style="opacity:0.2" width="56" height="36" x="4" y="20" rx="2.8" ry="2.8"/>
|
||||||
|
<rect style="fill:#e4e4e4" width="48" height="22" x="8" y="16" rx="2.8" ry="2.8"/>
|
||||||
|
<rect style="fill:#16a085" width="56" height="36" x="4" y="21" rx="2.8" ry="2.8"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="M 6.8,7 C 5.25,7 4,8.25 4,9.8 V 10.8 C 4,9.25 5.25,8 6.8,8 H 27.2 C 28.75,8 30,9.2458 30,10.8 V 9.8 C 30,8.2458 28.75,7 27.2,7 Z M 30,13 V 14 H 57.2 C 58.745,14 60,15.25 60,16.8 V 15.8 C 60,14.25 58.75,13 57.2,13 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 883 B |
9
assets/apps/keepassx.svg
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<rect style="opacity:0.2" width="56" height="56" x="4" y="5" rx="2.8" ry="2.8"/>
|
||||||
|
<rect style="fill:#38a334" width="56" height="56" x="4" y="4" rx="2.8" ry="2.8"/>
|
||||||
|
<path style="opacity:0.2" d="m 40,15 a 10,10 0 0 0 -10,10 10,10 0 0 0 1.027344,4.402344 L 14,46.429688 V 51 h 4.570312 l 2,-2 H 26 V 43.570312 L 28.570312,41 H 34 V 35.570312 L 35.601562,33.96875 A 10,10 0 0 0 40,35 10,10 0 0 0 50,25 10,10 0 0 0 40,15 Z m 2,4 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 z"/>
|
||||||
|
<path style="fill:#ffffff" d="m 40,14 a 10,10 0 0 0 -10,10 10,10 0 0 0 1.027344,4.402344 L 14,45.429688 V 50 h 4.570312 l 2,-2 H 26 V 42.570312 L 28.570312,40 H 34 V 34.570312 L 35.601562,32.96875 A 10,10 0 0 0 40,34 10,10 0 0 0 50,24 10,10 0 0 0 40,14 Z m 2,4 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 z"/>
|
||||||
|
<path style="opacity:0.2" d="M 14,23.571428 V 19 h 4.571429 L 46,46.428572 V 51 h -4.57143 z"/>
|
||||||
|
<path style="fill:#454545" d="M 14,22.571428 V 18 h 4.571429 L 46,45.428572 V 50 h -4.57143 z"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="M 6.8007812 4 C 5.2495812 4 4 5.2495812 4 6.8007812 L 4 7.8007812 C 4 6.2495813 5.2495812 5 6.8007812 5 L 57.199219 5 C 58.750419 5 60 6.2495812 60 7.8007812 L 60 6.8007812 C 60 5.2495813 58.750419 4 57.199219 4 L 6.8007812 4 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
7
assets/apps/key.svg
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1.1">
|
||||||
|
<path style="opacity:0.2" d="M 4.043001,31.848123 A 16.000286,15.999886 0 0 0 3.9999999,33.000115 16.000286,15.999886 0 0 0 20.000286,49 16.000286,15.999886 0 0 0 34.82095,39.000072 l 9.180164,0 0,-1.999986 -9.179764,0 A 16.000286,15.999886 0 0 1 20.001086,47.000015 16.000286,15.999886 0 0 1 4.043801,31.848123 Z m 49.956892,5.151963 0,1.999986 6.000107,0 0,-1.999986 -6.000107,0 z m -10.000179,5.999957 0,1.999986 10.000179,0 0,-1.999986 -10.000179,0 z"/>
|
||||||
|
<path style="fill:#4bae4f" d="M 19.999886,16.000244 A 15.999886,15.999886 0 0 0 4.0000002,32.000129 15.999886,15.999886 0 0 0 19.999886,48.000015 15.999886,15.999886 0 0 0 34.82018,38.000086 l 9.179934,0 0,5.999957 9.999929,0 0,-5.999957 5.999957,0 0,-11.999914 -25.17582,0 A 15.999886,15.999886 0 0 0 20.000086,16.000244 Z"/>
|
||||||
|
<circle style="opacity:0.2" cx="20" cy="33" r="6"/>
|
||||||
|
<circle style="fill:#f9f9f9" cx="20" cy="32" r="6"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 20 16 A 15.999886 15.999886 0 0 0 4.0429688 30.847656 A 15.999886 15.999886 0 0 1 4.0214844 30.417969 A 15.999886 15.999886 0 0 0 4 31 A 15.999886 15.999886 0 0 0 4.0429688 31.847656 A 15.999886 15.999886 0 0 1 20 17 A 15.999886 15.999886 0 0 1 34.824219 27 L 60 27 L 60 26 L 34.824219 26 A 15.999886 15.999886 0 0 0 20 16 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
8
assets/apps/phone.svg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<rect style="opacity:0.2" width="40" height="60" x="12" y="3" rx="3" ry="3"/>
|
||||||
|
<path style="fill:#595959" d="M 15 2 C 13.338 2 12 3.338 12 5 L 12 8 L 52 8 L 52 5 C 52 3.338 50.662 2 49 2 L 15 2 z M 12 54 L 12 59 C 12 60.662 13.338 62 15 62 L 49 62 C 50.662 62 52 60.662 52 59 L 52 54 L 12 54 z"/>
|
||||||
|
<rect style="fill:#333333" width="40" height="46" x="12" y="8"/>
|
||||||
|
<path style="fill:#333333" d="M 28.25 4 C 27.5575 4 27 4.446 27 5 C 27 5.554 27.5575 6 28.25 6 L 35.75 6 C 36.4425 6 37 5.554 37 5 C 37 4.446 36.4425 4 35.75 4 L 28.25 4 z M 40 4 A 1 1 0 0 0 39 5 A 1 1 0 0 0 40 6 A 1 1 0 0 0 41 5 A 1 1 0 0 0 40 4 z M 30.5 55 C 29.669 55 29 55.669 29 56.5 L 29 59.5 C 29 60.331 29.669 61 30.5 61 L 33.5 61 C 34.331 61 35 60.331 35 59.5 L 35 56.5 C 35 55.669 34.331 55 33.5 55 L 30.5 55 z M 19.5 56 C 18.669 56 18 56.669 18 57.5 C 18 58.331 18.669 59 19.5 59 L 22.5 59 C 23.331 59 24 58.331 24 57.5 C 24 56.669 23.331 56 22.5 56 L 19.5 56 z M 41.5 56 C 40.669 56 40 56.669 40 57.5 C 40 58.331 40.669 59 41.5 59 L 44.5 59 C 45.331 59 46 58.331 46 57.5 C 46 56.669 45.331 56 44.5 56 L 41.5 56 z"/>
|
||||||
|
<path style="fill:#ffffff;opacity:0.1" d="M 15 2 C 13.338 2 12 3.338 12 5 L 12 6 C 12 4.338 13.338 3 15 3 L 49 3 C 50.662 3 52 4.338 52 6 L 52 5 C 52 3.338 50.662 2 49 2 L 15 2 z"/>
|
||||||
|
<rect style="opacity:0.2" width="40" height="1" x="12" y="8"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
10
assets/apps/signal.svg
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<path style="opacity:0.2" d="M 32,5 A 28,28 0 0 0 4,33 28,28 0 0 0 6.1835938,43.769532 l -1.9101562,7.125 a 8.0307842,8.0302018 0 0 0 9.8320314,9.83203 l 7.093749,-1.898438 A 28,28 0 0 0 32,61 28,28 0 0 0 60,33 28,28 0 0 0 32,5 Z"/>
|
||||||
|
<circle style="fill:#3a76f0" cx="32" cy="32" r="28"/>
|
||||||
|
<path style="fill:#3a76f0" d="m 19.611403,15.200825 a 8.0307842,8.0302018 0 0 0 -7.637892,5.951477 L 4.272885,49.894258 a 8.0307842,8.0302018 0 0 0 9.833591,9.832878 l 28.74404,-7.700068 A 8.0307842,8.0302018 0 0 0 46.449888,38.595076 L 25.406478,17.553188 a 8.0307842,8.0302018 0 0 0 -5.795075,-2.352363 z"/>
|
||||||
|
<path style="opacity:0.2" d="m 32,13 a 20,20 0 0 0 -20,20 20,20 0 0 0 2.6875,9.964844 L 12,53 22.023438,50.3125 A 20,20 0 0 0 32,53 20,20 0 0 0 52,33 20,20 0 0 0 32,13 Z"/>
|
||||||
|
<circle style="fill:#ffffff" cx="32" cy="32" r="20"/>
|
||||||
|
<path style="fill:#ffffff" d="M 16.593421,34.857118 29.142863,47.40656 12.000006,51.999974 Z"/>
|
||||||
|
<path style="opacity:0.5;fill:#ffffff" d="m 29.524558,7.1207308 -0.14106,0.01358 -2.338444,0.3608042 -0.13564,0.027128 -0.756876,0.195324 0.697196,2.688398 0.670066,-0.17362 2.22451,-0.34182 2.327594,-0.119364 -0.14106,-2.7724956 z m 4.864074,1.5164628 -0.1926,1.2424686 2.286898,0.3526658 2.129562,0.553414 0.705332,0.26043 0.957622,-2.6070138 -0.792142,-0.292984 -0.13022,-0.040692 -2.259772,-0.583255 -0.13564,-0.027128 -2.338444,-0.3608042 -0.14106,-0.01358 h -0.0136 z m -12.036754,0.306548 -0.12478,0.054254 -2.064452,0.9956024 -0.11664,0.065108 -1.863701,1.133956 1.445931,2.373713 1.804012,-1.101403 1.964076,-0.946772 0.930494,-0.341814 -0.957624,-2.6070142 z m 19.396618,3.1251614 0.821984,0.39607 1.850136,1.128531 1.747052,1.310288 0.675492,-0.903366 1.109542,-1.218053 -0.019,-0.01628 -0.10038,-0.0841 -1.820298,-1.364545 -0.10852,-0.07325 -1.9478,-1.1855 -0.11666,-0.065106 -0.881664,-0.4259116 z m -27.358727,2.221794 -0.09495,0.09495 -1.524601,1.679233 -0.0841,0.100366 -0.854536,1.139382 2.221794,1.665668 0.81927,-1.093264 1.435079,-1.573432 1.326565,-1.209915 -1.866415,-2.0536 z m 33.619901,2.357435 1.120392,1.228904 1.275022,1.700935 0.78129,1.283159 2.373712,-1.445928 -0.805706,-1.321141 -0.07324,-0.10852 -1.364544,-1.820298 -0.0841,-0.100366 -1.16651,-1.285873 z m -37.946838,3.39373 -0.065108,0.11664 -0.9956026,2.064454 -0.054254,0.12478 -0.7975674,2.167538 -0.040692,0.13022 -0.151918,0.588678 2.691111,0.69448 0.141064,-0.545248 0.73246,-1.991204 0.946772,-1.964076 0.146492,-0.238728 -2.371,-1.445929 z m 42.330746,3.168564 0.0841,0.17904 0.73517,1.993916 0.553416,2.132274 0.09494,0.60767 2.745368,-0.420486 -0.10308,-0.661928 -0.02712,-0.13564 -0.583256,-2.259774 -0.0407,-0.13022 -0.797566,-2.167538 -0.05426,-0.12478 -0.1058,-0.22245 z m -45.2551592,6.16894 -0.01358,0.14106 -0.122076,2.406264 -0.00272,0.11938 0.046118,1.30215 0.00544,0.0895 0.054256,0.526288 L 9.870208,33.687304 9.818666,33.196284 9.777974,31.989082 9.894624,29.74016 10.08452,28.503116 7.3391528,28.079918 Z m 47.0211992,1.361832 0.0651,1.256034 -0.11666,2.25706 -0.265856,1.736202 2.745368,0.420486 0.276708,-1.795884 0.0136,-0.14106 0.12208,-2.406268 v -0.14106 l -0.06782,-1.326566 z m -46.587149,6.125532 0.116652,0.529 0.02984,0.10852 0.7541622,2.44967 0.046118,0.1275 0.9413458,2.25978 2.566323,-1.06886 -0.916931,-2.200092 -0.718896,-2.32217 -0.108512,-0.485592 z m 45.659365,1.687372 h -0.0028 l -0.0136,0.04884 -0.735174,1.999342 -0.94677,1.964078 -0.409636,0.670064 2.373712,1.44593 0.442188,-0.729746 0.0651,-0.11666 0.995602,-2.064452 0.05426,-0.12478 0.797566,-2.167538 0.0407,-0.1302 0.02442,-0.10038 -2.338446,-0.604958 -0.333674,-0.12208 z M 7.3256032,49.489454 10.008576,50.21106 11.44908,44.842404 8.766107,44.123508 Z m 41.8017468,-3.369316 -1.432366,1.570718 -1.573432,1.43508 -0.02984,0.0217 0.0028,0.0028 -0.02712,0.02442 0.255006,0.282132 1.435078,1.915248 0.07596,-0.05968 0.10038,-0.08412 1.679234,-1.5246 0.09494,-0.09494 1.524602,-1.679232 0.0841,-0.10038 0.553414,-0.737884 -2.224508,-1.665668 z m -6.55687,5.409352 -1.96408,0.94677 -1.402524,0.515436 0.957624,2.607014 1.489334,-0.54799 0.12478,-0.05424 2.064454,-0.995602 0.11666,-0.0651 1.432364,-0.873524 -1.443218,-2.371002 z m -34.0186852,1.05257 -1.367258,0.295698 v 0.0028 l 0.084098,0.257718 0.4204862,0.973898 0.179044,0.301124 0.6456498,0.83012 0.2414404,0.24144 0.830121,0.64565 0.3011222,0.17904 0.9739006,0.420486 0.257717,0.0841 0.528998,0.11394 0.184472,0.02712 0.547989,0.04334 0.189896,0.0028 0.238727,-0.0136 -0.160058,-2.772496 -0.127502,0.0082 -0.379793,-0.03014 -0.306546,-0.06765 -0.683629,-0.295696 -0.550701,-0.431338 -0.431337,-0.550702 -0.352666,-0.813844 z m 6.5188912,1.063424 0.718896,2.682972 5.365944,-1.43779 -0.718894,-2.682974 z m 7.812904,1.40795 1.030868,0.428624 0.12478,0.04612 2.455096,0.754162 0.10852,0.02984 1.25332,0.276708 0.07868,0.0162 0.580542,0.09224 0.44219,-2.742654 -0.501872,-0.07868 -0.0162,-0.0028 -1.196364,-0.265858 -2.33302,-0.718896 -0.957624,-0.398784 z m 13.59662,-1.2913 -2.221792,0.341816 -2.25435,0.11664 -0.458464,-0.0162 -0.09494,2.775208 0.496446,0.019 0.11936,-0.0028 2.41169,-0.12208 0.14106,-0.0136 2.338444,-0.360804 0.13564,-0.02712 0.268568,-0.07054 -0.69448,-2.688398 z"/>
|
||||||
|
<path style="opacity:0.2;fill:#ffffff" d="M 32 4 A 28 28 0 0 0 4 32 A 28 28 0 0 0 4.0214844 32.404297 A 28 28 0 0 1 32 5 A 28 28 0 0 1 59.978516 32.585938 A 28 28 0 0 0 60 32 A 28 28 0 0 0 32 4 z M 6.0273438 43.345703 L 4.2734375 49.894531 A 8.0307842 8.0302018 0 0 0 4.0195312 52.4375 A 8.0307842 8.0302018 0 0 1 4.2734375 50.894531 L 6.1816406 43.769531 A 28 28 0 0 1 6.0273438 43.345703 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
9
assets/apps/terminal.svg
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<rect style="opacity:0.2" width="56" height="56" x="4" y="5" rx="2.8" ry="2.8"/>
|
||||||
|
<rect style="fill:#4f4f4f" width="56" height="56" x="4" y="4" rx="2.8" ry="2.8"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="M 6.8007812 4 C 5.2495812 4 4 5.2495812 4 6.8007812 L 4 7.8007812 C 4 6.2495813 5.2495812 5 6.8007812 5 L 57.199219 5 C 58.750419 5 60 6.2495812 60 7.8007812 L 60 6.8007812 C 60 5.2495813 58.750419 4 57.199219 4 L 6.8007812 4 z"/>
|
||||||
|
<path style="fill:none;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:0.2" d="M 15,21 27,33 15,45"/>
|
||||||
|
<path style="fill:none;stroke:#f2f2f2;stroke-width:6;stroke-linecap:round;stroke-linejoin:round" d="M 15,20 27,32 15,44"/>
|
||||||
|
<path style="fill:none;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:0.2" d="M 49,45 H 33"/>
|
||||||
|
<path style="fill:none;stroke:#f2f2f2;stroke-width:6;stroke-linecap:round;stroke-linejoin:round" d="M 49,44 H 33"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
18
assets/apps/thunderbird.svg
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" x="0" y="0" version="1.1" xml:space="preserve">
|
||||||
|
<path style="opacity:0.2" d="m 25.990234,4.9996704 c -4.382829,0.1169767 -6.976562,4.2702431 -8.820312,7.8574216 -0.341003,0.180941 -0.683814,0.354731 -1.023438,0.542969 -3.479938,2.339614 -6.3300173,5.578154 -8.5312496,9.123047 -1.9362809,3.417753 -3.1107263,7.219389 -3.546875,11.115234 -0.2591893,3.949848 0.1923262,7.974649 1.6796875,11.669922 2.8156131,6.34713 9.7862191,13.749071 16.2441411,13.669922 -1.399112,-0.808929 -4.901578,-3.979943 -5.998047,-9.996094 1.164035,2.279805 6.42079,5.302102 7.998047,5.996094 -0.783571,-0.731721 -3.791895,-5.118817 -3.998047,-7.695313 L 9.9453125,44.193029 C 9.0590263,41.38896 8.5300005,38.487934 8.2070312,35.523108 8.1657843,34.860464 8.0835184,34.143347 8.3222656,34.319982 c 0.8930949,1.415481 2.1234594,1.862347 3.6738284,2.666016 -1.470309,-2.312517 -2.1401354,-4.963997 -1.898438,-7.71289 0.242521,-2.758263 1.798677,-5.432541 3.507813,-7.414063 0.202774,-0.23214 0.42967,-0.451556 0.640625,-0.679687 0.09139,0.709685 0.20849,1.41907 0.291015,2.105468 -0.02454,0.531112 0.301708,1.647441 0.04687,1.759766 -0.514084,1.55298 -1.004666,3.556114 0.22461,4.912109 0.389359,-1.755232 2.304887,-2.601577 3.814453,-3.339843 1.706455,-0.740857 3.087708,-2.361994 4.777344,-3.140626 2.226487,-1.277211 4.376221,0.523438 7.236328,0.523438 2.734422,0 5.624234,-1.00008 8.330078,-2.216797 0.629742,0.651445 1.755604,1.709404 2.248047,2.482422 h -0.0059 c 1.410398,2.255635 2.387804,4.877733 2.708985,7.451172 0.40079,3.366043 0.06449,6.718701 -1.925781,9.267578 -2.37e-4,4e-5 -0.01563,0.002 -0.01563,0.002 4.6e-5,0 0.01347,-3.6e-5 0.01367,0 0.04102,0.0054 3.611182,0.259883 5.992188,-2 -1.698781,13.135036 -9.752796,20.155925 -13.994141,21.990234 5.47079,0.36818 9.641566,-3.659202 9.900391,-3.914062 -0.612405,0.77104 -2.447254,3.04343 -3.904297,3.914062 3.689411,-1.033073 6.160079,-1.40867 8.488281,-3.107421 -8.71e-4,0 1.891547,-1.030003 3.865235,-3.28125 0.262569,-0.299496 0.714061,-0.713613 0.984375,-1.054688 0.168031,-0.212028 0.324049,-0.42954 0.488281,-0.642578 0.02895,-0.03502 0.06201,-0.06994 0.08984,-0.105469 4.1541,-5.081785 6.17538,-11.399425 6.02539,-17.125 C 59.954959,28.719143 57.13833,22.693381 52.40625,17.712561 48.98406,14.11049 45.09782,11.70789 41.597656,10.515295 37.062767,9.2130667 31.467156,8.658415 27.464844,9.415686 c -0.379017,0.1267196 0.05761,-2.0834384 0.52539,-2.4160156 -0.957538,0.089637 -1.980795,1.9059326 -2.826172,2.7832031 -0.0954,0.020465 -0.178984,0.044007 -0.267578,0.066406 0.524621,-1.0631142 0.271144,-1.7788886 1.09375,-2.8496094 -2.398126,0.4477188 -2.869,2.0137314 -3.701172,3.5800786 -0.315664,0.106586 -0.619361,0.237609 -0.929687,0.355468 0.787815,-2.610549 2.221156,-3.9424908 4.630859,-5.9355466 z"/>
|
||||||
|
<path style="fill:none" d="m 40.403656,-22.31234 a 20.426046,20.426046 0 1 1 40.153647,-7.521834 20.426046,20.426046 0 1 1 -40.153647,7.521834 z"/>
|
||||||
|
<path style="fill:#304776" d="m 12.848705,49.816127 c 2.428951,3.493463 5.564376,7.609615 9.143849,8.161537 -1.399111,-0.808929 -4.901049,-3.979713 -5.997518,-9.995864 1.164035,2.279805 6.419434,5.303526 7.996691,5.997518 -0.78357,-0.731721 -3.792193,-5.120319 -3.998345,-7.696815 L 9.9089106,43.182276 c 0.06283,0.0956 0.2860654,2.90135 2.9397944,6.633851 z"/>
|
||||||
|
<path style="opacity:0.2" d="M 48.756945,25.978163 30.574727,19.601867 11.089251,20.90028 6.1161583,27.106416 c 0.8848932,5.73688 0.3350959,11.947098 3.4167361,16.959218 L 43.983454,54.978 48.727841,41.735166 Z"/>
|
||||||
|
<path style="fill:#ebebeb" d="M 48.756945,24.979481 30.574727,18.603186 11.089251,19.901598 6.1161583,26.107734 c 0.8848932,5.73688 0.3350959,11.947098 3.4167361,16.959218 L 43.983454,53.979318 48.727841,40.736485 Z"/>
|
||||||
|
<path style="fill:#3f7da7;fill-rule:evenodd" d="m 11.555692,19.528801 3.282753,0.468846 0.901258,-4.393287 -1.802516,0.878657 z"/>
|
||||||
|
<path style="opacity:0.2" d="M 47.278005,29.476196 44.580423,20.61467 11.585519,20.283517 11.398445,20.514031 11.089251,20.901598 24,39 Z"/>
|
||||||
|
<path style="fill:#f7f7f7" d="M 47.278005,28.476196 44.580423,19.61467 11.585519,19.283517 11.398445,19.514031 11.089251,19.901598 24,38 Z"/>
|
||||||
|
<path style="fill:#2f67a4" d="m 30.503704,8.3352141 c -0.0034,7.917e-4 -4.148479,0.019972 -5.957846,0.6009747 -3.014965,0.6957653 -5.719906,1.9783542 -8.399987,3.4637992 -3.479938,2.339614 -6.329877,5.578996 -8.5311093,9.123889 -1.9362809,3.417754 -3.1096022,7.219453 -3.5457509,11.115298 -0.2591893,3.949848 0.1926363,7.974564 1.6799976,11.669837 2.8156131,6.34713 9.7856236,13.747801 16.2435456,13.668652 -0.820296,-0.126482 -1.44493,-0.957176 -2.215427,-1.407636 -2.591672,-1.515183 -5.056106,-4.061023 -6.928422,-6.753901 -2.65373,-3.732499 -2.8764832,-6.536965 -2.9393124,-6.632575 l 0.035511,0.011 C 9.0582754,40.389926 8.5305795,37.489512 8.2075414,34.524053 8.1662945,33.86141 8.0835267,33.142737 8.3222739,33.319372 c 0.8930949,1.41548 2.1240481,1.863723 3.6744171,2.667392 -1.470309,-2.312517 -2.1409117,-4.963954 -1.899214,-7.712848 0.242521,-2.758263 1.798775,-5.43232 3.507911,-7.413842 4.477738,-5.126208 11.011402,-9.273279 16.898316,-12.5248599 z"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="m 30.503906,8.3359375 c -0.0034,7.917e-4 -4.149617,0.018607 -5.958984,0.5996094 -3.014965,0.6957653 -5.718357,1.9793991 -8.398438,3.4648441 -3.479938,2.339614 -6.3300173,5.578154 -8.5312496,9.123047 -1.9362809,3.417753 -3.1107263,7.219389 -3.546875,11.115234 -0.05177,0.78893 -0.066142,1.581365 -0.058594,2.373047 0.010456,-0.458089 0.028624,-0.916335 0.058594,-1.373047 0.4361487,-3.895845 1.6105941,-7.697481 3.546875,-11.115234 2.2012323,-3.544894 5.0513116,-6.783433 8.5312496,-9.123047 2.680081,-1.485445 5.383473,-2.769079 8.398438,-3.4648441 1.067365,-0.3427398 2.707033,-0.4699266 4.070312,-0.5332031 0.633675,-0.3639011 1.266263,-0.7226243 1.888672,-1.0664063 z"/>
|
||||||
|
<path style="fill:#4a96e1" d="m 25.990884,4.0000075 c -4.737368,0.1264393 -7.397788,4.9778089 -9.26473,8.7221275 -0.672468,1.19013 -1.369504,2.602374 -1.956888,3.726491 -1.124206,1.771473 -0.464348,3.89897 -0.231332,5.837054 -0.02454,0.531112 0.300813,1.646185 0.04598,1.75851 -0.514084,1.55298 -1.003961,3.556918 0.225315,4.912913 0.389359,-1.755232 2.304929,-2.600966 3.814495,-3.339232 1.706455,-0.740857 3.087736,-2.363239 4.777372,-3.141871 2.226487,-1.277211 4.376363,0.524 7.23647,0.524 2.734422,0 5.623107,-0.999698 8.328951,-2.216415 0.629742,0.651445 1.756067,1.709547 2.24851,2.482565 h -0.007 c 1.410398,2.255635 2.388267,4.877784 2.709448,7.451223 0.40079,3.366043 0.06497,6.71716 -1.925303,9.266037 -2.36e-4,4e-5 -0.01579,0.0034 -0.01579,0.0034 4.6e-5,0 0.01379,-3.6e-5 0.01399,0 0.04102,0.0054 3.610414,0.259011 5.99142,-2.000872 -1.698781,13.135036 -9.752864,20.156589 -13.994209,21.990899 5.646058,0.379975 9.995864,-3.998345 9.995864,-3.998345 0.821078,-1.16943 -1.984675,2.795109 -3.998345,3.998345 3.689411,-1.033074 6.159317,-1.408509 8.487519,-3.10726 -8.71e-4,0 1.891865,-1.029895 3.865553,-3.281142 0.262569,-0.299496 0.713676,-0.715086 0.98399,-1.056161 0.168031,-0.212028 0.323363,-0.42946 0.487595,-0.642498 0.02895,-0.03502 0.06195,-0.06833 0.08978,-0.103857 4.1541,-5.081785 6.177153,-11.400088 6.027163,-17.125663 C 59.95588,27.719573 57.13888,21.694537 52.4068,16.713717 48.98461,13.111646 45.098021,10.708092 41.597857,9.5154973 37.062968,8.2132686 31.467849,7.6580981 27.465537,8.4153691 27.08652,8.5420887 27.522288,6.3317508 27.990072,5.9991736 26.867927,6.1042201 25.651672,8.5915568 24.742402,9.1452023 25.488618,7.9088911 25.093295,7.1675137 25.9909,5.9991736 22.654037,6.62215 23.063787,9.4061825 21.012426,11.350879 21.688266,7.7372929 23.17851,6.3261175 25.9909,4.0000009 Z"/>
|
||||||
|
<path style="fill:#4271a3" d="m 16.615437,23.991728 c 6.664543,-0.191821 2.479991,-4.322253 11.374635,-11.995037 -7.246419,3.751988 -14.143635,3.746791 -11.366037,11.995037 h -0.0084 z"/>
|
||||||
|
<path style="fill:#ffffff" d="m 20.610694,20.639502 c -0.639012,1.167169 -2.130043,1.637585 -2.954876,1.198232 -0.842953,-0.439352 -0.838421,-1.908297 -0.185884,-3.075468 0.629948,-1.167171 3.412599,-0.643495 3.426196,-0.643495 0.01319,0 0.353487,1.357997 -0.28553,2.520731 z"/>
|
||||||
|
<path style="fill:#5c5f60" d="m 17.815241,25.95908 c 0,0 0.358872,-0.346321 0.171799,-0.979599 -2.237115,0.739668 -3.335625,-1.401722 -3.327819,-1.401722 0.0076,0 -1.676022,4.412314 0.333638,6.411487 0.174086,-1.646529 2.739233,-3.94404 2.747039,-3.94404"/>
|
||||||
|
<circle style="fill:#5c5f60" cx="19" cy="20" r="1"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="m 25.990234,4 c -4.737368,0.1264393 -7.396729,4.9783376 -9.263672,8.722656 -0.672467,1.19013 -1.369647,2.602446 -1.957031,3.726563 -0.58334,0.9192 -0.679812,1.934035 -0.611328,2.96875 0.0511,-0.684114 0.217716,-1.348514 0.611328,-1.96875 0.587384,-1.124117 1.284564,-2.536433 1.957031,-3.726563 1.677859,-3.365094 4.001277,-7.6131839 7.892579,-8.5332029 C 25.049135,4.8051499 25.474424,4.4266243 25.990234,4 Z m 0,2 c -3.126607,0.5837227 -2.987986,3.056689 -4.642578,4.966797 -0.127191,0.426476 -0.241753,0.881182 -0.335937,1.384765 1.927508,-1.827283 1.684453,-4.3965131 4.416015,-5.2167964 C 25.529325,6.781676 25.666955,6.4207868 25.990234,6 Z m 2,0 C 27.078312,6.0853671 26.10807,7.7308719 25.287109,8.6464844 25.188623,9.1017361 25.090573,9.5673351 24.742188,10.144531 25.508926,9.6776721 26.494218,7.8496484 27.457031,7.2207031 27.583025,6.691078 27.778283,6.1506893 27.990234,6 Z m 2.734375,2.0839844 c -1.158225,0.034097 -2.259187,0.1427135 -3.259765,0.3320312 -0.02293,0.00767 -0.04146,0.0046 -0.05859,-0.00391 -0.112843,0.5629762 -0.126773,1.0658812 0.05859,1.0039062 4.002312,-0.757271 9.597923,-0.2026191 14.132812,1.0996094 3.500164,1.192595 7.386404,3.595195 10.808594,7.197266 4.73208,4.98082 7.548709,11.006582 7.519531,17.947265 0.0013,0.05112 -9.93e-4,0.103083 0,0.154297 0.0093,-0.386921 0.01001,-0.772114 0,-1.154297 C 59.954959,27.719473 57.13833,21.693711 52.40625,16.712891 48.98406,13.11082 45.09782,10.70822 41.597656,9.515625 38.196489,8.5389535 34.199285,7.9816943 30.724609,8.0839844 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.8 KiB |
8
assets/apps/writer.svg
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<path style="opacity:0.2" d="m 10,56 0,2 c 0,1.662 1.338,3 3,3 l 38,0 c 1.662,0 3,-1.338 3,-3 l 0,-2 c 0,1.662 -1.338,3 -3,3 l -38,0 c -1.662,0 -3,-1.338 -3,-3 z"/>
|
||||||
|
<path style="fill:#3e50b4" d="M 54,57 54,7 C 54,5.338 52.662,4 51,4 L 13,4 c -1.662,0 -3,1.338 -3,3 l 0,50 c 0,1.662 1.338,3 3,3 l 38,0 c 1.662,0 3,-1.338 3,-3 z"/>
|
||||||
|
<path style="opacity:0.1" d="M 14,9 14,57 50,57 50,25.828 33.172,9 14,9 Z M 38.828,9 50,20.172 50,9 38.828,9 Z"/>
|
||||||
|
<path style="fill:#f5f5f5" d="M 14,8 14,56 50,56 50,24.828 33.172,8 14,8 Z M 38.828,8 50,19.1718 50,8 38.828,8 Z"/>
|
||||||
|
<path style="opacity:0.1;fill:#ffffff" d="M 13 4 C 11.338 4 10 5.338 10 7 L 10 8 C 10 6.338 11.338 5 13 5 L 51 5 C 52.662 5 54 6.338 54 8 L 54 7 C 54 5.338 52.662 4 51 4 L 13 4 z"/>
|
||||||
|
<path style="opacity:0.5" d="m 20,48.044 0,-2 16,0 0,2 z m 0,-6 0,-2 24,0 0,2 z m 0,-6 0,-2 24,0 0,2 z m 0,-6 0,-2 24,0 0,2 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 960 B |
@ -1,14 +1,15 @@
|
|||||||
-- Some subdir variables,
|
-- Some subdir variables,
|
||||||
-- to make switching icon sets easy.
|
-- to make switching icon sets easy.
|
||||||
local brightnessdir = conf_dir .. "assets/icons/brightness/clockwise/"
|
local brightnessdir = conf_dir .. "assets/icons/brightness/counterclockwise/"
|
||||||
local titlebardir = conf_dir .. "assets/icons/titlebar/"
|
local titlebardir = conf_dir .. "assets/icons/titlebar/"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
submenu = conf_dir .. "assets/icons/submenu.svg",
|
submenu = conf_dir .. "assets/icons/submenu.svg",
|
||||||
launcher = conf_dir .. "assets/icons/arch.svg",
|
arch = conf_dir .. "assets/icons/arch.svg",
|
||||||
|
nix = conf_dir .. "assets/icons/nix.svg",
|
||||||
-- Used for i3lock, MUST be a png.
|
sys76 = conf_dir .. "assets/icons/sys76.svg",
|
||||||
lockicon = conf_dir .. "assets/icons/arch.png",
|
nix_grey = conf_dir .. "assets/icons/nix-grey.svg",
|
||||||
|
arch_grey = conf_dir .. "assets/icons/arch-grey.svg",
|
||||||
|
|
||||||
music = {
|
music = {
|
||||||
grey = {
|
grey = {
|
||||||
|
38
assets/icons/arch-grey.svg
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="arch-grey.svg"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
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="defs12" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview10"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.94931588"
|
||||||
|
inkscape:cx="1025.4753"
|
||||||
|
inkscape:cy="524.5883"
|
||||||
|
inkscape:window-width="3200"
|
||||||
|
inkscape:window-height="1696"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#a3a3a3;fill-opacity:1;fill-rule:evenodd;stroke-width:9.14289"
|
||||||
|
d="M 255.9559,0.01280001 C 233.16217,55.8841 219.41473,92.430208 194.03744,146.63496 209.59643,163.12501 224.98314,179.4548 256,201.14286 222.65435,187.42399 203.62144,176.52388 186.62345,162.23158 154.14583,229.98881 103.26064,326.50472 0,512 c 81.159513,-46.84357 137.67092,-75.72385 196.30682,-86.74451 -2.51776,-10.82611 -3.94935,-22.53668 -3.85205,-34.75541 l 0.0896,-2.59965 c 1.28769,-51.98526 35.30506,-95.25882 66.77374,-95.329 31.46869,-0.0705 62.07084,53.16378 60.7829,105.14906 -0.24196,9.7829 -1.34595,19.19207 -3.27402,27.92027 57.99577,11.34321 115.11197,40.14926 195.173,86.35924 -15.78689,-29.05692 -29.87741,-55.25051 -43.33294,-80.1974 -21.19597,-16.42476 -39.57118,-33.80335 -84.66706,-56.94545 30.99636,8.05238 49.45735,13.34536 66.75623,23.72987 C 313.94768,143.9214 302.87344,110.07863 255.95193,0 Z"
|
||||||
|
id="path2" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
@ -1,5 +1,46 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1.1">
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<path style="opacity:0.2;fill-rule:evenodd" d="M 31.995177,5.0013995 C 29.502112,11.112323 27.998486,15.109554 25.222845,21.038199 26.924609,22.841797 28.607531,24.627869 32,27 28.35282,25.499498 26.271095,24.307299 24.41194,22.744078 20.8597,30.155025 15.294132,40.711453 4.0000002,61 12.876822,55.876484 19.057757,52.717703 25.471058,51.512319 25.195678,50.328213 25.039098,49.04737 25.049741,47.710946 l 0.0098,-0.284337 C 25.200382,41.740721 28.921032,37.007676 32.362919,37 c 3.441888,-0.0077 6.788998,5.814788 6.648129,11.500678 -0.02646,1.070005 -0.147212,2.099133 -0.358095,3.05378 C 44.99624,52.795122 51.243325,55.945783 60,61 58.273309,57.821899 56.732158,54.956976 55.26046,52.228409 52.94215,50.431951 50.932361,48.531168 46,46 c 3.390226,0.880729 5.409397,1.459649 7.301462,2.595455 C 38.338028,20.741402 37.126783,17.03985 31.994742,4.9999995 Z"/>
|
<svg
|
||||||
<path style="fill:#1793d1;fill-rule:evenodd" d="M 31.995177,4.0013995 C 29.502112,10.112323 27.998486,14.109554 25.222845,20.038199 26.924609,21.841797 28.607531,23.627869 32,26 28.35282,24.499498 26.271095,23.307299 24.41194,21.744078 20.8597,29.155025 15.294132,39.711453 4.0000002,60 12.876822,54.876484 19.057757,51.717703 25.471058,50.512319 25.195678,49.328213 25.039098,48.04737 25.049741,46.710946 l 0.0098,-0.284337 C 25.200382,40.740721 28.921032,36.007676 32.362919,36 c 3.441888,-0.0077 6.788998,5.814788 6.648129,11.500678 -0.02646,1.070005 -0.147212,2.099133 -0.358095,3.05378 C 44.99624,51.795122 51.243325,54.945783 60,60 58.273309,56.821899 56.732158,53.956976 55.26046,51.228409 52.94215,49.431951 50.932361,47.531168 46,45 c 3.390226,0.880729 5.409397,1.459649 7.301462,2.595455 C 38.338028,19.741402 37.126783,16.03985 31.994742,3.9999995 Z"/>
|
width="512"
|
||||||
<path style="fill:#ffffff;fill-rule:evenodd;opacity:0.2" d="M 31.996094 4.0039062 C 29.503492 10.113758 27.998009 14.111032 25.222656 20.039062 C 25.323 20.145411 25.42873 20.253025 25.529297 20.359375 C 28.094806 14.819153 29.605533 10.863636 31.996094 5.0039062 C 37.029258 16.812002 38.370111 20.737759 52.542969 47.173828 C 52.799752 47.306209 53.051272 47.445923 53.300781 47.595703 C 38.339229 19.745153 37.126504 16.040146 31.996094 4.0039062 z M 24.412109 21.744141 C 20.859869 29.155088 15.294132 39.711453 4 60 C 4.2790559 59.838935 4.5328222 59.696245 4.8066406 59.539062 C 15.496107 40.307372 20.956001 29.95453 24.412109 22.744141 C 26.271264 24.307362 28.35282 25.499498 32 27 C 30.744922 26.122406 29.773063 25.343432 28.898438 24.595703 C 27.047844 23.676699 25.658286 22.791955 24.412109 21.744141 z M 46 46 C 50.932361 48.531168 52.941456 50.432058 55.259766 52.228516 C 56.488953 54.507462 57.825027 56.982477 59.21875 59.554688 C 59.483717 59.706715 59.730349 59.844362 60 60 C 58.273309 56.821899 56.731464 53.957083 55.259766 51.228516 C 53.590647 49.935116 52.064892 48.584211 49.509766 46.986328 C 48.498719 46.669238 47.382852 46.359244 46 46 z M 25.064453 47.345703 C 25.063622 47.372706 25.059264 47.398735 25.058594 47.425781 L 25.048828 47.710938 C 25.040995 48.694489 25.125285 49.647751 25.279297 50.554688 C 25.343143 50.542292 25.406814 50.523727 25.470703 50.511719 C 25.239369 49.517004 25.099409 48.452553 25.064453 47.345703 z M 39 47.652344 C 38.966126 48.666573 38.852993 49.646368 38.652344 50.554688 C 38.705667 50.565117 38.759189 50.581098 38.8125 50.591797 C 38.915197 49.916489 38.99384 49.223001 39.011719 48.5 C 39.018717 48.217524 39.009803 47.934762 39 47.652344 z"/>
|
height="512"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="arch.svg"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
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="defs12" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview10"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.7307882"
|
||||||
|
inkscape:cx="261.44158"
|
||||||
|
inkscape:cy="162.35378"
|
||||||
|
inkscape:window-width="3200"
|
||||||
|
inkscape:window-height="1696"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.2;fill-rule:evenodd;stroke-width:8.98246"
|
||||||
|
d="M 255.95668,8.9950315 C 233.56281,63.886133 220.05655,99.79108 195.12444,153.04488 210.41048,169.24562 225.52727,185.28893 256,206.59649 223.23934,193.1183 204.54031,182.40942 187.84052,168.36786 155.93265,234.93637 105.94013,329.75902 4.4910018,512 84.226737,465.97824 139.74676,437.60463 197.35402,426.77732 c -2.4736,-10.63618 -3.88008,-22.14129 -3.78448,-34.14566 l 0.088,-2.55405 c 1.2651,-51.07324 34.6857,-93.58761 65.60233,-93.65656 30.91664,-0.0692 60.98194,52.23108 59.71659,103.30434 -0.23768,9.61127 -1.32232,18.85537 -3.21658,27.43044 56.97835,11.14421 113.09257,39.44489 191.74909,84.84417 -15.50994,-28.54715 -29.35328,-54.2812 -42.57275,-78.79043 -20.82414,-16.13661 -38.87699,-33.21031 -83.18176,-55.94641 30.45259,7.91111 48.58973,13.11123 65.58513,23.31356 C 312.93111,150.37891 302.05114,117.12988 255.95277,8.9824565 Z"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
style="fill:#1793d1;fill-rule:evenodd;stroke-width:8.98246"
|
||||||
|
d="M 255.95668,0.0125754 C 233.56281,54.903677 220.05655,90.808629 195.12444,144.06242 210.41048,160.26316 225.52727,176.30647 256,197.61404 223.23934,184.13584 204.54031,173.42697 187.84052,159.3854 155.93265,225.95391 105.94013,320.77656 4.4910018,503.01754 84.226737,456.99579 139.74676,428.62217 197.35402,417.79487 c -2.4736,-10.63618 -3.88008,-22.1413 -3.78448,-34.14567 l 0.088,-2.55404 c 1.2651,-51.07324 34.6857,-93.58761 65.60233,-93.65656 30.91664,-0.0692 60.98194,52.23108 59.71659,103.30433 -0.23768,9.61128 -1.32232,18.85537 -3.21658,27.43045 56.97835,11.14421 113.09257,39.44488 191.74909,84.84416 -15.50994,-28.54715 -29.35328,-54.28119 -42.57275,-78.79043 -20.82414,-16.1366 -38.87699,-33.2103 -83.18176,-55.94641 30.45259,7.91111 48.58973,13.11124 65.58513,23.31356 C 312.93111,141.39646 302.05114,108.14743 255.95277,0 Z"
|
||||||
|
id="path4" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.2;fill:#ffffff;fill-rule:evenodd;stroke-width:8.98246"
|
||||||
|
d="M 255.96491,0.0350918 C 233.57521,54.916567 220.05226,90.821905 195.12275,144.07017 c 0.90134,0.95528 1.85106,1.92192 2.75439,2.8772 23.0446,-49.7648 36.61465,-85.295057 58.08777,-137.9298225 45.21022,106.0657025 57.25438,141.3286425 184.56158,378.7894725 2.30654,1.1891 4.56581,2.44408 6.80701,3.78947 C 312.9419,141.43015 302.04864,108.15009 255.96491,0.0350918 Z M 187.84204,159.38597 C 155.93417,225.95448 105.94013,320.77656 4.491,503.01754 6.99761,501.57078 9.277056,500.28908 11.736621,498.87719 107.75437,326.12938 156.79767,233.13543 187.84204,168.36843 204.54183,182.40999 223.23934,193.1183 256,206.59649 244.72631,198.71354 235.99662,191.71644 228.14033,185 211.51744,176.74509 199.03578,168.79791 187.84204,159.38597 Z m 193.91245,217.87719 c 44.30477,22.7361 62.35139,39.81076 83.17553,55.94737 11.04112,20.47053 23.04236,42.70225 35.56143,65.80702 2.38006,1.36557 4.59542,2.60198 7.01755,3.99999 -15.50994,-28.54715 -29.35951,-54.28023 -42.57898,-78.78947 -14.9928,-11.6179 -28.69785,-23.75235 -51.64918,-38.10526 -9.08168,-2.84825 -19.10492,-5.63276 -31.52635,-8.85965 z m -188.0528,12.08772 c -0.007,0.24252 -0.0467,0.47634 -0.053,0.71931 l -0.088,2.56141 c -0.0701,8.83471 0.6868,17.39734 2.07018,25.54386 0.57354,-0.11138 1.14542,-0.2781 1.7193,-0.38597 -2.07795,-8.93499 -3.33514,-18.49637 -3.64913,-28.4386 z m 125.17556,2.75439 c -0.30423,9.11026 -1.32048,17.91123 -3.12281,26.07017 0.47895,0.0937 0.95974,0.23723 1.4386,0.33334 0.92247,-6.06592 1.62888,-12.29515 1.78948,-18.78947 0.0629,-2.53733 -0.0171,-5.07723 -0.10528,-7.61404 z"
|
||||||
|
id="path6" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 4.5 KiB |
113
assets/icons/nix-grey.svg
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 480.00001 480"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
sodipodi:docname="nix-grey.svg"
|
||||||
|
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"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.7494491"
|
||||||
|
inkscape:cx="126.03968"
|
||||||
|
inkscape:cy="287.51908"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1600"
|
||||||
|
inkscape:window-height="1696"
|
||||||
|
inkscape:window-x="1600"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showguides="true" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="print-logo"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(-132.5822,958.04022)">
|
||||||
|
<g
|
||||||
|
id="g251"
|
||||||
|
transform="matrix(0.95674018,0,0,0.95674018,-16.993334,-33.377468)"
|
||||||
|
style="fill:#a4a4a4;fill-opacity:1">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
||||||
|
id="path4861"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
||||||
|
id="use4863"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
||||||
|
id="use4865"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
||||||
|
id="use4867"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4873"
|
||||||
|
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="use4875"
|
||||||
|
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="use4877"
|
||||||
|
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
112
assets/icons/nix.svg
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 480.00001 480"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
sodipodi:docname="nix.svg"
|
||||||
|
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"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.7494491"
|
||||||
|
inkscape:cx="278.65915"
|
||||||
|
inkscape:cy="287.51908"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1600"
|
||||||
|
inkscape:window-height="1696"
|
||||||
|
inkscape:window-x="1600"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showguides="true" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="print-logo"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(-132.5822,958.04022)">
|
||||||
|
<g
|
||||||
|
id="g251"
|
||||||
|
transform="matrix(0.95674018,0,0,0.95674018,-16.993334,-33.377468)">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
||||||
|
id="path4861"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
||||||
|
id="use4863"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
||||||
|
id="use4865"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
||||||
|
id="use4867"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4873"
|
||||||
|
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="use4875"
|
||||||
|
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="use4877"
|
||||||
|
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
102
assets/icons/submenu.svg
Executable file
@ -0,0 +1,102 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
sodipodi:docname="submenu.svg"
|
||||||
|
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||||
|
id="svg8"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 135.46666 135.46666"
|
||||||
|
height="512"
|
||||||
|
width="512">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<inkscape:path-effect
|
||||||
|
hide_knots="false"
|
||||||
|
only_selected="false"
|
||||||
|
apply_with_radius="true"
|
||||||
|
apply_no_radius="true"
|
||||||
|
use_knot_distance="true"
|
||||||
|
flexible="false"
|
||||||
|
chamfer_steps="1"
|
||||||
|
radius="1"
|
||||||
|
mode="F"
|
||||||
|
method="auto"
|
||||||
|
unit="mm"
|
||||||
|
satellites_param="C,0,0,1,0,1,0,1 @ C,0,0,1,0,1,0,1 @ C,0,0,1,0,1,0,1 @ C,0,0,1,0,1,0,1"
|
||||||
|
lpeversion="1"
|
||||||
|
is_visible="true"
|
||||||
|
id="path-effect2544"
|
||||||
|
effect="fillet_chamfer" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
inkscape:snap-midpoints="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:snap-smooth-nodes="false"
|
||||||
|
inkscape:object-nodes="true"
|
||||||
|
inkscape:snap-object-midpoints="false"
|
||||||
|
inkscape:snap-center="true"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:cy="215.66655"
|
||||||
|
inkscape:cx="55.479401"
|
||||||
|
inkscape:zoom="0.93347569"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
borderopacity="1.0"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
id="base"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
units="px" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
transform="translate(-58.642429,-196.08939)">
|
||||||
|
<g
|
||||||
|
style="opacity:1"
|
||||||
|
transform="matrix(1,0,0,-1,33.399829,3.6101873)"
|
||||||
|
id="g2637-7-4" />
|
||||||
|
<path
|
||||||
|
style="fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:13.1143;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||||
|
d="m 95.389019,300.87174 22.678491,-10e-6 v -22.67856 l -22.678491,10e-6 z"
|
||||||
|
id="path856" />
|
||||||
|
<path
|
||||||
|
style="fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:16.0616;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||||
|
d="m 84.049829,272.52354 34.017681,-1e-5 v -22.67857 l -34.017681,1e-5 z"
|
||||||
|
id="path854" />
|
||||||
|
<path
|
||||||
|
style="fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:13.1142;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill"
|
||||||
|
d="m 95.389019,244.17523 22.678491,-1e-5 v -22.67848 l -22.678491,1e-5 z"
|
||||||
|
id="rect1227-0-1-4-2-3-6-9-4" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
d="m 123.73716,221.49675 39.68749,39.68749 -39.68749,39.68751 z"
|
||||||
|
style="fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:22.7912;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
|
||||||
|
id="rect851" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
67
assets/icons/sys76 alt.svg
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 480.00001 480"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||||
|
sodipodi:docname="sys76.svg"
|
||||||
|
xml:space="preserve"
|
||||||
|
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"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
|
||||||
|
id="defs4" /><sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.0844886"
|
||||||
|
inkscape:cx="301.5246"
|
||||||
|
inkscape:cy="154.91172"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1362"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showguides="true" /><metadata
|
||||||
|
id="metadata7"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g
|
||||||
|
inkscape:label="print-logo"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(-132.5822,958.04022)"><circle
|
||||||
|
style="display:inline;fill:#faa41a;fill-opacity:1;stroke-width:1.00645"
|
||||||
|
id="path2-6"
|
||||||
|
cx="372.58221"
|
||||||
|
cy="-718.04022"
|
||||||
|
r="239.99998" /><circle
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke-width:0.884138"
|
||||||
|
id="path2"
|
||||||
|
cx="372.58221"
|
||||||
|
cy="-718.04022"
|
||||||
|
r="210.83322" /><path
|
||||||
|
d="m 365.13622,-928.75782 a 210.72083,210.72083 0 0 0 -141.52888,359.73483 l 2.17872,2.12607 114.76933,-212.77665 h -122.7814 l 21.55875,36.30037 a 11.104441,11.104441 0 0 1 1.33626,8.60935 11.895105,11.895105 0 0 1 -11.4206,8.89068 11.174722,11.174722 0 0 1 -9.55826,-5.23605 l -32.03063,-53.90572 a 11.122011,11.122011 0 0 1 -1.66988,-6.00897 v -0.47419 a 11.385566,11.385566 0 0 1 11.28023,-11.03414 h 162.63086 c 2.9342,0 6.46588,1.05328 8.25795,2.45989 l 0.16869,0.13116 a 12.879043,12.879043 0 0 1 3.86547,16.55133 l -124.20465,230.29411 a 12.879043,12.879043 0 0 1 -2.45982,3.19789 210.73839,210.73839 0 0 0 249.93781,3.25037 h -98.95603 a 13.072317,13.072317 0 0 1 -13.07231,-13.07231 v -0.26427 a 13.072317,13.072317 0 0 1 13.07231,-13.07231 h 129.17699 a 210.73839,210.73839 0 0 0 -4.07632,-294.00417 211.89803,211.89803 0 0 0 -28.42886,-23.86044 l -0.0563,0.11245 -0.57911,1.73929 c -4.09375,7.60782 -51.67416,93.64964 -67.4348,122.1312 l -5.78069,10.45431 c -13.23049,22.87663 -19.30972,48.61701 -16.25259,68.87563 a 66.327949,66.327949 0 0 0 11.54374,28.5342 68.770224,68.770224 0 0 0 44.80443,27.98956 71.30035,71.30035 0 0 0 11.98287,1.01954 69.947434,69.947434 0 0 0 42.25665,-14.02101 66.626645,66.626645 0 0 0 26.00407,-42.3796 66.486082,66.486082 0 0 0 -12.29922,-50.81337 70.544824,70.544824 0 0 0 -45.38408,-27.77871 76.905277,76.905277 0 0 0 -3.11,-0.45731 12.281653,12.281653 0 0 1 -10.78827,-12.61559 12.123519,12.123519 0 0 1 4.09393,-8.83782 12.387074,12.387074 0 0 1 9.64616,-3.02209 95.055416,95.055416 0 0 1 65.62509,38.33834 91.014244,91.014244 0 0 1 16.55133,69.27991 91.014244,91.014244 0 0 1 -38.3033,60.05526 94.756727,94.756727 0 0 1 -54.25714,16.92015 h -0.0175 a 96.267769,96.267769 0 0 1 -16.0768,-1.37001 93.175398,93.175398 0 0 1 -61.00415,-38.19795 98.095086,98.095086 0 0 1 -7.46743,-12.40457 c -12.59797,-24.87957 -13.23049,-53.94094 -1.79171,-84.074 a 323.99665,323.99665 0 0 1 13.3184,-29.48291 l 71.65167,-130.89902 1.68675,-2.05571 0.0748,-0.14996 a 211.54663,211.54663 0 0 0 -17.21892,-8.20527 210.72083,210.72083 0 0 0 -89.48549,-16.51606 z"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke-width:17.5703" /></g></svg>
|
After Width: | Height: | Size: 4.3 KiB |
57
assets/icons/sys76.svg
Normal file
After Width: | Height: | Size: 8.3 KiB |
@ -6,13 +6,15 @@
|
|||||||
-- Raw file paths should NEVER be referenced anywhere else.
|
-- Raw file paths should NEVER be referenced anywhere else.
|
||||||
-- Use the `assets.*` table.
|
-- Use the `assets.*` table.
|
||||||
|
|
||||||
|
|
||||||
local sounds = require("assets.sounds")
|
local sounds = require("assets.sounds")
|
||||||
local icons = require("assets.icons")
|
local icons = require("assets.icons")
|
||||||
|
local app_icons = require("assets.apps")
|
||||||
|
|
||||||
local overrides = function(theme)
|
local overrides = function(theme)
|
||||||
theme.sounds = sounds
|
theme.sounds = sounds
|
||||||
theme.icons = icons
|
theme.icons = icons
|
||||||
|
theme.app_icons = app_icons
|
||||||
|
|
||||||
-- Generate Awesome icon
|
-- Generate Awesome icon
|
||||||
--theme.awesome_icon = beautiful.theme_assets.awesome_icon(
|
--theme.awesome_icon = beautiful.theme_assets.awesome_icon(
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
return {
|
return {
|
||||||
volume_up = conf_dir .. "assets/sounds/volumeup-click.mp3",
|
volume_up = conf_dir .. "assets/sounds/volumeup.ogg",
|
||||||
volume_down = conf_dir .. "assets/sounds/volumedown-click.mp3"
|
volume_down = conf_dir .. "assets/sounds/volumedown.ogg"
|
||||||
}
|
}
|
||||||
|
BIN
assets/sounds/volumedown.ogg
Executable file
BIN
assets/sounds/volumeup.ogg
Executable file
@ -1,61 +0,0 @@
|
|||||||
local hotkeys = require("awful.hotkeys_popup")
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.key( {"Mod4"}, "s",
|
|
||||||
hotkeys.show_help,
|
|
||||||
{
|
|
||||||
description = "Show help",
|
|
||||||
group = "Desktop"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control", "Shift"}, "r",
|
|
||||||
awesome.restart,
|
|
||||||
{
|
|
||||||
description = "Restart awesome",
|
|
||||||
group = "Desktop"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "r",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().mypromptbox:run()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Run prompt",
|
|
||||||
group = "Launcher"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "x",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().mypromptbox:run()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Run prompt",
|
|
||||||
group = "Launcher"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "Return",
|
|
||||||
function ()
|
|
||||||
awful.spawn(config.core.terminal)
|
|
||||||
end,
|
|
||||||
|
|
||||||
{
|
|
||||||
description = "Open a terminal",
|
|
||||||
group = "Launcher"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "\\",
|
|
||||||
function ()
|
|
||||||
awful.spawn(config.core.browser)
|
|
||||||
end,
|
|
||||||
|
|
||||||
{
|
|
||||||
description = "Open a browser tab",
|
|
||||||
group = "Launcher"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
@ -1,78 +0,0 @@
|
|||||||
return gears.table.join(
|
|
||||||
awful.key( {"Mod4"}, "Left",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx( 1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Focus next",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "Right",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Focus previous",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "j",
|
|
||||||
function ()
|
|
||||||
awful.client.swap.byidx(1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Swap with next window",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "k",
|
|
||||||
function ()
|
|
||||||
awful.client.swap.byidx(-1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Swap with previous window",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "u",
|
|
||||||
awful.client.urgent.jumpto,
|
|
||||||
{
|
|
||||||
description = "Jump to urgent window",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "b",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.history.previous()
|
|
||||||
if client.focus then
|
|
||||||
client.focus:raise()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Go back",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "n",
|
|
||||||
function ()
|
|
||||||
local c = awful.client.restore()
|
|
||||||
-- Focus restored client
|
|
||||||
if c then
|
|
||||||
c:emit_signal(
|
|
||||||
"request::activate", "key.unminimize", {raise = true}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Restore minimized",
|
|
||||||
group = "Client"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
@ -1,13 +0,0 @@
|
|||||||
return {
|
|
||||||
keys = gears.table.join(
|
|
||||||
require("binds.system"),
|
|
||||||
|
|
||||||
require("binds.client"),
|
|
||||||
require("binds.layout"),
|
|
||||||
require("binds.tags"),
|
|
||||||
|
|
||||||
require("binds.awesome")
|
|
||||||
),
|
|
||||||
|
|
||||||
buttons = {}
|
|
||||||
}
|
|
@ -1,83 +0,0 @@
|
|||||||
local layoutmanager = require("core.layouts.layoutmanager")
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.key( {"Mod4"}, "j",
|
|
||||||
function ()
|
|
||||||
awful.tag.incmwfact( 0.05)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "increase master width factor",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key({"Mod4"}, "h",
|
|
||||||
function ()
|
|
||||||
awful.tag.incmwfact(-0.05)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "decrease master width factor",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "h",
|
|
||||||
function ()
|
|
||||||
awful.tag.incnmaster(1, nil, true)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "increase the number of master clients",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "l",
|
|
||||||
function ()
|
|
||||||
awful.tag.incnmaster(-1, nil, true)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "decrease the number of master clients",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "h",
|
|
||||||
function ()
|
|
||||||
awful.tag.incncol(1, nil, true)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "increase the number of columns",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "l",
|
|
||||||
function ()
|
|
||||||
awful.tag.incncol(-1, nil, true)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "decrease the number of columns",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "l",
|
|
||||||
function ()
|
|
||||||
layoutmanager:next()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "select layouts",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "k",
|
|
||||||
function ()
|
|
||||||
layoutmanager:next_alt()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "cycle alt layouts",
|
|
||||||
group = "Layout"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
@ -1,38 +0,0 @@
|
|||||||
local function shutdown(confirm_prompt)
|
|
||||||
if (string.lower(confirm_prompt) == "y") or (string.lower(confirm_prompt) == "yes") then
|
|
||||||
awful.spawn("shutdown now", false)
|
|
||||||
elseif (string.lower(confirm_prompt) == "r") or (string.lower(confirm_prompt) == "reset") then
|
|
||||||
awful.spawn("shutdown -r now", false)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.key( {"Mod4"}, "p",
|
|
||||||
function ()
|
|
||||||
awful.prompt.run {
|
|
||||||
prompt = "<b>Really shutdown? (y/n/r) </b>",
|
|
||||||
textbox = awful.screen.focused().mypromptbox.widget,
|
|
||||||
exe_callback = shutdown
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Shutdown",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "x",
|
|
||||||
function ()
|
|
||||||
-- requires sudoers rule
|
|
||||||
awful.spawn("sudo systemctl restart lightdm")
|
|
||||||
end,
|
|
||||||
|
|
||||||
{
|
|
||||||
description = "Restart lightdm",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
@ -1,41 +0,0 @@
|
|||||||
return gears.table.join(
|
|
||||||
awful.key( {"Mod1", "Control"}, "Left",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().tagger:left()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Left",
|
|
||||||
group = "Tags"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod1", "Control"}, "Right",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().tagger:right()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Right",
|
|
||||||
group = "Tags"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod1", "Control"}, "Up",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().tagger:up()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Up",
|
|
||||||
group = "Tags"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod1", "Control"}, "Down",
|
|
||||||
function ()
|
|
||||||
awful.screen.focused().tagger:down()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Down",
|
|
||||||
group = "Tags"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
@ -1,83 +0,0 @@
|
|||||||
--[[
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
awful.key({"Mod4", "Control"}, "j",
|
|
||||||
function ()
|
|
||||||
awful.screen.focus_relative( 1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "focus the next screen",
|
|
||||||
group = "screen"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
awful.key({"Mod4", "Control"}, "k",
|
|
||||||
function ()
|
|
||||||
awful.screen.focus_relative(-1)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "focus the previous screen",
|
|
||||||
group = "screen"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Bind all key numbers to tags.
|
|
||||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
|
||||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
|
||||||
for i = 1, 9 do
|
|
||||||
globalkeys = gears.table.join(globalkeys,
|
|
||||||
-- View tag only.
|
|
||||||
awful.key({ "Mod4" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
tag:view_only()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "view tag #"..i, group = "tag"}),
|
|
||||||
-- Toggle tag display.
|
|
||||||
awful.key({ "Mod4", "Control" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewtoggle(tag)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "toggle tag #" .. i, group = "tag"}),
|
|
||||||
-- Move client to tag.
|
|
||||||
awful.key({ "Mod4", "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = client.focus.screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
client.focus:move_to_tag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "move focused client to tag #"..i, group = "tag"}),
|
|
||||||
-- Toggle tag on focused client.
|
|
||||||
awful.key({ "Mod4", "Control", "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = client.focus.screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
client.focus:toggle_tag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "toggle focused client on tag #" .. i, group = "tag"})
|
|
||||||
)
|
|
||||||
end
|
|
||||||
--]]
|
|
@ -36,17 +36,32 @@ return gears.table.join(
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
awful.key( {"Mod4"}, "f",
|
|
||||||
function (c)
|
|
||||||
c.fullscreen = not c.fullscreen
|
|
||||||
c:raise()
|
awful.key( {"Mod4"}, "Right",
|
||||||
|
function ()
|
||||||
|
awful.client.focus.byidx(1)
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "toggle fullscreen",
|
description = "Focus next",
|
||||||
group = "client"
|
group = "Client"
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, "Left",
|
||||||
|
function ()
|
||||||
|
awful.client.focus.byidx(-1)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Focus previous",
|
||||||
|
group = "Client"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "c",
|
awful.key( {"Mod4", "Shift"}, "c",
|
||||||
function (c)
|
function (c)
|
||||||
c:kill()
|
c:kill()
|
||||||
@ -57,7 +72,17 @@ return gears.table.join(
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "space",
|
awful.key( {"Mod4", "Control"}, "Return",
|
||||||
|
function (c)
|
||||||
|
c:swap(awful.client.getmaster())
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "move to master",
|
||||||
|
group = "client"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, "f",
|
||||||
awful.client.floating.toggle,
|
awful.client.floating.toggle,
|
||||||
{
|
{
|
||||||
description = "toggle floating",
|
description = "toggle floating",
|
||||||
@ -65,12 +90,13 @@ return gears.table.join(
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "Return",
|
awful.key( {"Mod4"}, "g",
|
||||||
function (c)
|
function (c)
|
||||||
c:swap(awful.client.getmaster())
|
c.fullscreen = not c.fullscreen
|
||||||
|
c:raise()
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "move to master",
|
description = "toggle fullscreen",
|
||||||
group = "client"
|
group = "client"
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
@ -103,27 +129,5 @@ return gears.table.join(
|
|||||||
{
|
{
|
||||||
description = "(un)maximize", group = "client"
|
description = "(un)maximize", group = "client"
|
||||||
}
|
}
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Control"}, "m",
|
|
||||||
function (c)
|
|
||||||
c.maximized_vertical = not c.maximized_vertical
|
|
||||||
c:raise()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "(un)maximize vertically",
|
|
||||||
group = "client"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {"Mod4", "Shift"}, "m",
|
|
||||||
function (c)
|
|
||||||
c.maximized_horizontal = not c.maximized_horizontal
|
|
||||||
c:raise()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "(un)maximize horizontally",
|
|
||||||
group = "client"
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -28,7 +28,8 @@ return {
|
|||||||
"feh",
|
"feh",
|
||||||
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||||
"zoom",
|
"zoom",
|
||||||
"flameshot"
|
"flameshot",
|
||||||
|
"scrcpy"
|
||||||
},
|
},
|
||||||
|
|
||||||
role = {
|
role = {
|
||||||
|
182
core/keybinds.lua
Executable file
@ -0,0 +1,182 @@
|
|||||||
|
local hotkeys = require("awful.hotkeys_popup")
|
||||||
|
local layoutmanager = require("core.layouts.layoutmanager")
|
||||||
|
|
||||||
|
local function shutdown(confirm_prompt)
|
||||||
|
if (string.lower(confirm_prompt) == "y") or (string.lower(confirm_prompt) == "yes") then
|
||||||
|
awful.spawn("shutdown now", false)
|
||||||
|
elseif (string.lower(confirm_prompt) == "r") or (string.lower(confirm_prompt) == "reset") then
|
||||||
|
awful.spawn("shutdown -r now", false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return gears.table.join(
|
||||||
|
awful.key( {"Mod4"}, "s",
|
||||||
|
hotkeys.show_help,
|
||||||
|
{
|
||||||
|
description = "Show help",
|
||||||
|
group = "Desktop"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4", "Control", "Shift"}, "r",
|
||||||
|
awesome.restart,
|
||||||
|
{
|
||||||
|
description = "Restart awesome",
|
||||||
|
group = "Desktop"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, "r",
|
||||||
|
function ()
|
||||||
|
awful.screen.focused().mypromptbox:run()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Run prompt",
|
||||||
|
group = "Launcher"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, "Return",
|
||||||
|
function ()
|
||||||
|
awful.spawn(config.core.terminal)
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "Open a terminal",
|
||||||
|
group = "Launcher"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, "\\",
|
||||||
|
function ()
|
||||||
|
awful.spawn(config.core.browser)
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "Open a browser tab",
|
||||||
|
group = "Launcher"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
-- Layouts
|
||||||
|
awful.key( {"Mod4"}, "=",
|
||||||
|
function ()
|
||||||
|
awful.tag.incmwfact( 0.05)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "increase master width factor",
|
||||||
|
group = "Layout"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key({"Mod4"}, "-",
|
||||||
|
function ()
|
||||||
|
awful.tag.incmwfact(-0.05)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "decrease master width factor",
|
||||||
|
group = "Layout"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, ",",
|
||||||
|
function ()
|
||||||
|
layoutmanager:next()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "select layouts",
|
||||||
|
group = "Layout"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4"}, ".",
|
||||||
|
function ()
|
||||||
|
layoutmanager:next_alt()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "cycle alt layouts",
|
||||||
|
group = "Layout"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
-- System
|
||||||
|
awful.key( {"Mod4"}, "p",
|
||||||
|
function ()
|
||||||
|
awful.prompt.run {
|
||||||
|
prompt = "Really shutdown? (y/n/r) ",
|
||||||
|
textbox = awful.screen.focused().mypromptbox.widget,
|
||||||
|
exe_callback = shutdown
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Shutdown",
|
||||||
|
group = "System"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
-- Tags
|
||||||
|
awful.key( {"Mod1", "Control"}, "Left",
|
||||||
|
function ()
|
||||||
|
awful.screen.focused().tagger:left()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Left",
|
||||||
|
group = "Tags"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod1", "Control"}, "Right",
|
||||||
|
function ()
|
||||||
|
awful.screen.focused().tagger:right()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Right",
|
||||||
|
group = "Tags"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod1", "Control"}, "Up",
|
||||||
|
function ()
|
||||||
|
awful.screen.focused().tagger:up()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Up",
|
||||||
|
group = "Tags"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod1", "Control"}, "Down",
|
||||||
|
function ()
|
||||||
|
awful.screen.focused().tagger:down()
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Down",
|
||||||
|
group = "Tags"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
--[[
|
||||||
|
awful.key( {"Mod4", "Shift"}, "j",
|
||||||
|
function ()
|
||||||
|
awful.client.swap.byidx(1)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Swap with next window",
|
||||||
|
group = "Client"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod4", "Shift"}, "k",
|
||||||
|
function ()
|
||||||
|
awful.client.swap.byidx(-1)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Swap with previous window",
|
||||||
|
group = "Client"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
--]]
|
||||||
|
)
|
@ -9,7 +9,7 @@ sound.play = function(sound_key)
|
|||||||
text = "There is no sound with key " .. sound_key
|
text = "There is no sound with key " .. sound_key
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
if (sound.counter > 5) then
|
if (sound.counter > 0) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
sound.counter = sound.counter + 1
|
sound.counter = sound.counter + 1
|
||||||
|
@ -54,20 +54,23 @@ local function start()
|
|||||||
|
|
||||||
-- If timed wallpaper is enabled, load timed manager
|
-- If timed wallpaper is enabled, load timed manager
|
||||||
if (type(beautiful.wallpaper) == "table") then
|
if (type(beautiful.wallpaper) == "table") then
|
||||||
desktop.wallpaper = require("desktop.wallpaper")
|
local wallpaper = require("core.wallpaper")
|
||||||
screen.connect_signal("property::geometry", desktop.wallpaper.update)
|
screen.connect_signal(
|
||||||
desktop.wallpaper.update()
|
"property::geometry",
|
||||||
desktop.wallpaper.start()
|
wallpaper.update
|
||||||
|
)
|
||||||
|
wallpaper.update()
|
||||||
|
wallpaper.start()
|
||||||
else
|
else
|
||||||
|
-- Otherwise, set a static wallpaper
|
||||||
-- Otherwise, set static wallpaper on each screen
|
-- on each screen. We need to iterate
|
||||||
-- We loop over screens to prevent the wallpaper from being stretched over
|
-- because a single call to wallpaper.maximized
|
||||||
-- all displays. If, for some reason, you want that to happen, use a single
|
-- will stretch one image over all screens
|
||||||
-- call of "gears.wallpaper.maximized(beautiful.wallpaper)" instead of
|
|
||||||
-- this loop.
|
|
||||||
|
|
||||||
for s in screen do
|
for s in screen do
|
||||||
gears.wallpaper.maximized(beautiful.wallpaper, s)
|
gears.wallpaper.maximized(
|
||||||
|
beautiful.wallpaper,
|
||||||
|
s
|
||||||
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -92,13 +95,10 @@ local function start()
|
|||||||
-- Prepare screens
|
-- Prepare screens
|
||||||
awful.screen.connect_for_each_screen(
|
awful.screen.connect_for_each_screen(
|
||||||
function(s)
|
function(s)
|
||||||
-- s: the screen this function is being called for
|
|
||||||
-- Create tag table
|
-- Create tag table
|
||||||
|
|
||||||
s.tagger = tagger:new(s)
|
s.tagger = tagger:new(s)
|
||||||
|
|
||||||
|
-- Create a promptbox for each screen
|
||||||
-- Create a promptbox for each s
|
|
||||||
s.mypromptbox = awful.widget.prompt()
|
s.mypromptbox = awful.widget.prompt()
|
||||||
|
|
||||||
-- Create the bar
|
-- Create the bar
|
||||||
@ -215,6 +215,14 @@ local function start()
|
|||||||
rightside
|
rightside
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- Run module screen initialization methods
|
||||||
|
for _, mod in pairs(modules) do
|
||||||
|
if (mod["for_each_screen"] ~= nil) then
|
||||||
|
mod["for_each_screen"](s)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
@ -4,7 +4,7 @@ local function make(tagger)
|
|||||||
-- Create tag tagindicators
|
-- Create tag tagindicators
|
||||||
-- We're using flex.vertical and flex.horizontal layouts because the grid
|
-- We're using flex.vertical and flex.horizontal layouts because the grid
|
||||||
-- layout doesn't expand things properly.
|
-- layout doesn't expand things properly.
|
||||||
widget.tagindicators = {}
|
widget.tagindicators = {} -- NOTE THE `s`, THIS IS A DIFFERENT VARIABLE
|
||||||
widget.tagindicator = wibox.widget {
|
widget.tagindicator = wibox.widget {
|
||||||
homogeneous = true,
|
homogeneous = true,
|
||||||
spacing = beautiful.dpi(2),
|
spacing = beautiful.dpi(2),
|
||||||
|
@ -64,7 +64,10 @@ tasklist.make = function(screen)
|
|||||||
fill_vertical = true,
|
fill_vertical = true,
|
||||||
{
|
{
|
||||||
id = "clienticon",
|
id = "clienticon",
|
||||||
widget = awful.widget.clienticon,
|
-- Don't use awesomewm's stock clienticon.
|
||||||
|
-- using a raw imagebox lets us handle nil icons...
|
||||||
|
-- also, see th call to awesome.preferred_icon_size in rc.lua.
|
||||||
|
widget = wibox.widget.imagebox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
margins = beautiful.dpi(3),
|
margins = beautiful.dpi(3),
|
||||||
@ -79,8 +82,24 @@ tasklist.make = function(screen)
|
|||||||
-- The create callback is only called once, when the task indicator
|
-- The create callback is only called once, when the task indicator
|
||||||
-- is created.
|
-- is created.
|
||||||
create_callback = function(self, c, index, objects)
|
create_callback = function(self, c, index, objects)
|
||||||
|
|
||||||
-- Set indicator icon
|
-- Set indicator icon
|
||||||
self:get_children_by_id("clienticon")[1].client = c
|
if c.icon == nil then
|
||||||
|
self:get_children_by_id("clienticon")[1].image = beautiful.icons[config.core.default_clienticon]
|
||||||
|
else
|
||||||
|
self:get_children_by_id("clienticon")[1].image = c.icon
|
||||||
|
end
|
||||||
|
self:get_children_by_id("clienticon")[1]:emit_signal("widget::redraw_needed")
|
||||||
|
|
||||||
|
|
||||||
|
-- Update top color
|
||||||
|
if c == client.focus then
|
||||||
|
self:get_children_by_id("top_tab")[1].bg = "#2DA0DA"
|
||||||
|
elseif c.minimized then
|
||||||
|
self:get_children_by_id("top_tab")[1].bg = beautiful.color.bar.hover_bg --beautiful.color.transparent
|
||||||
|
else
|
||||||
|
self:get_children_by_id("top_tab")[1].bg = "#2DA0DA77"
|
||||||
|
end
|
||||||
|
|
||||||
-- Change background when mouse is over widget
|
-- Change background when mouse is over widget
|
||||||
self:connect_signal("mouse::enter", function(result)
|
self:connect_signal("mouse::enter", function(result)
|
||||||
@ -106,7 +125,13 @@ tasklist.make = function(screen)
|
|||||||
update_callback = function(self, c, index, objects)
|
update_callback = function(self, c, index, objects)
|
||||||
|
|
||||||
-- Update indicator icon
|
-- Update indicator icon
|
||||||
self:get_children_by_id("clienticon")[1].client = c
|
if c.icon == nil then
|
||||||
|
self:get_children_by_id("clienticon")[1].image = beautiful.icons[config.core.default_clienticon]
|
||||||
|
else
|
||||||
|
self:get_children_by_id("clienticon")[1].image = c.icon
|
||||||
|
end
|
||||||
|
self:get_children_by_id("clienticon")[1]:emit_signal("widget::redraw_needed")
|
||||||
|
|
||||||
|
|
||||||
-- Update top color
|
-- Update top color
|
||||||
if c == client.focus then
|
if c == client.focus then
|
||||||
|
@ -1,24 +1,78 @@
|
|||||||
|
-- Default configuration values.
|
||||||
|
-- Override these by creating `config.lua`
|
||||||
|
-- Example contents:
|
||||||
|
--
|
||||||
|
--[[ config.lua
|
||||||
|
|
||||||
|
|
||||||
|
-- Override values in defaults.lua.
|
||||||
|
-- If you only want to overwrite one, you'll need to do explicitly:
|
||||||
|
-- config.core = { wallpaper = "" } will delete all other value in config.core.
|
||||||
|
|
||||||
|
config.battery = { enabled = true }
|
||||||
|
config.backlight = { enabled = true }
|
||||||
|
config.launcher = { enabled = true, icon = "nix"}
|
||||||
|
|
||||||
|
config.core.wallpaper = "/home/assets/wallpapers/Themed/Stellaris/upscale/City.png"
|
||||||
|
config.core.default_clienticon = "arch_grey"
|
||||||
|
config.core.browser = "firefox-developer-edition --new-tab"
|
||||||
|
|
||||||
|
config.core.startup_commands = {
|
||||||
|
"ibus-daemon --daemonize --replace --xim",
|
||||||
|
"keepassxc"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
]]--
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local config = {}
|
local config = {}
|
||||||
|
|
||||||
config.battery = { enabled = false }
|
config.launcher = { enabled = true, icon = "arch"}
|
||||||
config.backlight = { enabled = false }
|
config.lock = { enabled = true, type = "i3lock"}
|
||||||
config.simple_widgets = { enabled = true }
|
|
||||||
config.launcher = { enabled = true }
|
|
||||||
config.screenshot = { enabled = true }
|
config.screenshot = { enabled = true }
|
||||||
|
config.simple_widgets = { enabled = true }
|
||||||
|
config.keymap_popup = { enabled = true }
|
||||||
|
config.battery = { enabled = false }
|
||||||
|
config.picom = { enabled = true }
|
||||||
|
config.backlight = {
|
||||||
|
enabled = false,
|
||||||
|
button_step = 5,
|
||||||
|
scroll_step = 5,
|
||||||
|
backend = "xbacklight"
|
||||||
|
}
|
||||||
|
|
||||||
config.core = {
|
config.core = {
|
||||||
wallpaper = "/home/assets/wallpapers/Themed/Stellaris/Gigapixel/City.png",
|
-- Icon to use when a window doesn't provide one
|
||||||
--
|
default_clienticon = "arch_grey",
|
||||||
|
continuous_tag_updates = true,
|
||||||
|
|
||||||
|
-- Run these commands in this order when awesome starts.
|
||||||
|
startup_commands = {},
|
||||||
|
|
||||||
|
wallpaper = "",
|
||||||
|
|
||||||
-- Dynamic: a table of files and times
|
-- Dynamic: a table of files and times
|
||||||
-- {file = "path", start_time = {hour, minute}}
|
-- {file = "path", start_time = {hour, minute}}
|
||||||
--[[
|
--[[
|
||||||
config.wallpaper = {
|
wallpaper = {
|
||||||
{ file = "morning-file.png", start_time = {04, 00} },
|
{ file = "morning-file.png", start_time = {04, 00} },
|
||||||
{ file = "noon-file.png", start_time = {11, 00} },
|
{ file = "noon-file.png", start_time = {11, 00} },
|
||||||
{ file = "night-file.png", start_time = {19, 00} },
|
{ file = "night-file.png", start_time = {19, 00} },
|
||||||
}
|
}
|
||||||
]]--
|
]]--
|
||||||
|
|
||||||
|
|
||||||
|
font = {
|
||||||
|
normal_large = "Hack NF 16",
|
||||||
|
normal_medium = "Hack NF 14",
|
||||||
|
normal = "Hack NF 12",
|
||||||
|
normal_small = "Hack NF 10",
|
||||||
|
prompt = "Hack NF 14"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
-- The position of the bar on each screen
|
-- The position of the bar on each screen
|
||||||
bar_position = "bottom",
|
bar_position = "bottom",
|
||||||
-- Bar size in dpi
|
-- Bar size in dpi
|
||||||
@ -27,9 +81,9 @@ config.core = {
|
|||||||
bar_margin = 3,
|
bar_margin = 3,
|
||||||
|
|
||||||
-- Preferred terminal.
|
-- Preferred terminal.
|
||||||
terminal = "kitty",
|
terminal = "alacritty",
|
||||||
-- Preferred browser.
|
-- Preferred browser.
|
||||||
browser = "firefox-developer-edition --new-tab",
|
browser = "firefox --new-tab",
|
||||||
|
|
||||||
-- Table of layouts.
|
-- Table of layouts.
|
||||||
-- This is not handled by the regular awesomewm facility.
|
-- This is not handled by the regular awesomewm facility.
|
||||||
@ -69,68 +123,63 @@ config.core = {
|
|||||||
--awful.layout.suit.corner.se,
|
--awful.layout.suit.corner.se,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Run these commands, in this order, when awesome starts.
|
|
||||||
startup_commands = {
|
|
||||||
"ibus-daemon --daemonize --replace --xim",
|
|
||||||
"keepassxc"
|
|
||||||
},
|
|
||||||
|
|
||||||
continuous_tag_updates = true,
|
|
||||||
|
|
||||||
app_icon_dir = "/home/assets/icons/papirus/",
|
|
||||||
|
|
||||||
bar_shortcuts = {
|
bar_shortcuts = {
|
||||||
{
|
{
|
||||||
"pcmanfm",
|
"thunar",
|
||||||
"places/folder-green.svg"
|
"folder"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"firefox-developer-edition",
|
"firefox-developer-edition",
|
||||||
"apps/firefox-developer-icon.svg"
|
"firefox_dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code",
|
||||||
|
"code"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"thunderbird",
|
"thunderbird",
|
||||||
"apps/thunderbird.svg"
|
"thunderbird"
|
||||||
},
|
|
||||||
{
|
|
||||||
"onlyoffice-desktopeditors",
|
|
||||||
"apps/libreoffice-writer.svg"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"signal-desktop",
|
"signal-desktop",
|
||||||
"apps/signal-desktop.svg"
|
"signal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keepassxc",
|
"keepassxc",
|
||||||
"apps/password-manager.svg"
|
"keepassx"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config.mpc = {
|
config.mpc = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
|
|
||||||
-- If your MPC server has a password, do "passwd@host"
|
-- If your MPC server has a password, do "passwd@host"
|
||||||
|
-- Default port is 6600, you probably won't need to change it.
|
||||||
host = "localhost",
|
host = "localhost",
|
||||||
|
port = 6600,
|
||||||
|
|
||||||
-- Fixed width of the mpc widget
|
-- Fixed width of the mpc widget
|
||||||
width = 250,
|
width = 250,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
config.volume = {
|
config.volume = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
|
|
||||||
|
-- How much % to change volume by
|
||||||
|
scroll_step = 2,
|
||||||
|
button_step = 5,
|
||||||
|
|
||||||
-- The pulse sink volume widgets and keybinds should use.
|
-- The pulse sink volume widgets and keybinds should use.
|
||||||
-- To use the default, keep this value an empty string.
|
-- To use the default, keep this value an empty string.
|
||||||
-- Applies the --sink option to pamixer in wrapper.volume
|
-- Applies the --sink option to pamixer
|
||||||
pamixer_sink = ""
|
pamixer_sink = "",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
config.ibus = {
|
config.ibus = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
|
|
||||||
@ -154,15 +203,12 @@ config.ibus = {
|
|||||||
ibus_engine = "xkb:ru::rus"
|
ibus_engine = "xkb:ru::rus"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title = "Mathwriter",
|
title = "LaTeX",
|
||||||
indicator_code = "∫x",
|
indicator_code = "∫x",
|
||||||
ibus_engine = "table:mathwriter-ibus",
|
ibus_engine = "table:latex",
|
||||||
requires_engine = "xkb:us::eng"
|
requires_engine = "xkb:us::eng"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return config
|
return config
|
@ -1,15 +1,22 @@
|
|||||||
# Modules
|
## Modules
|
||||||
|
|
||||||
Modules are parts of this configuration that can be disabled. Nearly all features in this config are defined by a module.
|
Modules are parts of this configuration that can be disabled. Nearly all features in this config are defined by a module.
|
||||||
|
|
||||||
## Organization
|
### Enable / Disable Modules
|
||||||
|
|
||||||
|
See `config-template.lua`
|
||||||
|
|
||||||
|
### Organization
|
||||||
|
|
||||||
Every directory in `modules/` is a module. Modules cannot be in subdirectories. \
|
Every directory in `modules/` is a module. Modules cannot be in subdirectories. \
|
||||||
Each module directory MUST have an ``init.lua``, which returns a table. That table can contain anything, but a few keys are special:
|
Each module directory MUST have an ``init.lua``, which returns a table. That table can contain anything, but a few keys are special:
|
||||||
|
|
||||||
``keybinds`` \
|
``keybinds`` \
|
||||||
Defines keybinds the module provides. It is audomatically loaded *if* the module is enabled. \
|
Defines keybinds the module provides. It is automatically loaded *if* the module is enabled. \
|
||||||
This MUST be a table formed by ``awful.key()``. See `ibus` or `screenshot` for examples.
|
This MUST be a table formed by ``awful.key()``. See `ibus` or `screenshot` for examples.
|
||||||
|
|
||||||
``init`` \
|
``init`` \
|
||||||
Defines an init method. This is called once when awesome starts.
|
Called once when awesome starts if defined. Takes no arguments.
|
||||||
|
|
||||||
|
``for_each_screen(s)`` \
|
||||||
|
Called for each screen at start if defined. Takes one argument, `s`, the screen.
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
#!/usr/bin/fish
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
# backlight get
|
|
||||||
# backlight set [value]
|
|
||||||
# backlight max
|
|
||||||
#
|
|
||||||
# Returns:
|
|
||||||
# Set - nothing
|
|
||||||
# Get, max - Number between 0 and 100 (eg: 0, 25.445283, 100)
|
|
||||||
#
|
|
||||||
|
|
||||||
function backlight
|
|
||||||
switch $argv[1]
|
|
||||||
case "get"
|
|
||||||
xbacklight -get
|
|
||||||
case "max"
|
|
||||||
echo 100
|
|
||||||
case "set"
|
|
||||||
xbacklight -set $argv[2]
|
|
||||||
case "up"
|
|
||||||
xbacklight -inc 10
|
|
||||||
case "down"
|
|
||||||
xbacklight -dec 10
|
|
||||||
case "*"
|
|
||||||
echo "Unknown function \"$argv[1]\""
|
|
||||||
echo ""
|
|
||||||
echo "Usage:"
|
|
||||||
echo " backlight get"
|
|
||||||
echo " backlight set [value]"
|
|
||||||
echo " backlight max"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
backlight $argv
|
|
@ -1,4 +1,14 @@
|
|||||||
|
local popup = require("modules.backlight.popup")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
widget = require("modules.backlight.widget").widget,
|
widget = require("modules.backlight.widget").widget,
|
||||||
keybinds = require("modules.backlight.keybinds"),
|
keybinds = require("modules.backlight.keybinds"),
|
||||||
|
|
||||||
|
init = function()
|
||||||
|
awesome.emit_signal("module::backlight:update_read")
|
||||||
|
end,
|
||||||
|
|
||||||
|
for_each_screen = function(s)
|
||||||
|
popup(s)
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,8 @@ local backlight = req_rel(..., "util")
|
|||||||
return gears.table.join(
|
return gears.table.join(
|
||||||
awful.key( {}, "XF86MonBrightnessUp",
|
awful.key( {}, "XF86MonBrightnessUp",
|
||||||
function ()
|
function ()
|
||||||
backlight.backlight_up()
|
backlight.backlight_up(config.backlight.button_step)
|
||||||
|
--awesome.emit_signal("module::backlight:popup_show")
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "Raise brightness",
|
description = "Raise brightness",
|
||||||
@ -13,46 +14,12 @@ return gears.table.join(
|
|||||||
|
|
||||||
awful.key( {}, "XF86MonBrightnessDown",
|
awful.key( {}, "XF86MonBrightnessDown",
|
||||||
function ()
|
function ()
|
||||||
backlight.backlight_down()
|
backlight.backlight_down(config.backlight.button_step)
|
||||||
|
--awesome.emit_signal("module::backlight:popup_show")
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "Lower brightness",
|
description = "Lower brightness",
|
||||||
group = "System"
|
group = "System"
|
||||||
}
|
}
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( { "Mod4" }, "o",
|
|
||||||
function ()
|
|
||||||
backlight.redshift(5600)
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Default redshift",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( { "Mod4", "Shift" }, "o",
|
|
||||||
function ()
|
|
||||||
backlight.reset_redshift()
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Reset redshift",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( { "Mod4", "Shift", "Control" }, "o",
|
|
||||||
function ()
|
|
||||||
backlight.reset_redshift()
|
|
||||||
awful.prompt.run {
|
|
||||||
prompt = "<b>Color temperature: </b>",
|
|
||||||
textbox = awful.screen.focused().mypromptbox.widget,
|
|
||||||
exe_callback = backlight.redshift
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
description = "Set redshift",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
246
modules/backlight/popup.lua
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
local backlight = req_rel(..., "util")
|
||||||
|
|
||||||
|
return function(s)
|
||||||
|
local widget = wibox.widget {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{ -- Icon and margins
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
id = "icon",
|
||||||
|
forced_height = beautiful.dpi(100),
|
||||||
|
image = beautiful.icons.brightness.i,
|
||||||
|
widget = wibox.widget.imagebox
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
expand = "none",
|
||||||
|
id = "icon_margin2",
|
||||||
|
layout = wibox.layout.align.vertical
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
id = "icon_margin1",
|
||||||
|
expand = "none",
|
||||||
|
layout = wibox.layout.align.horizontal
|
||||||
|
},
|
||||||
|
{ -- Text and percentage
|
||||||
|
{
|
||||||
|
id = "label",
|
||||||
|
text = "Backlight",
|
||||||
|
align = "left",
|
||||||
|
valign = "center",
|
||||||
|
widget = wibox.widget.textbox
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
id = "value",
|
||||||
|
text = "0%",
|
||||||
|
align = "center",
|
||||||
|
valign = "center",
|
||||||
|
widget = wibox.widget.textbox
|
||||||
|
},
|
||||||
|
id = "label_value_layout",
|
||||||
|
forced_height = beautiful.dpi(48),
|
||||||
|
layout = wibox.layout.align.horizontal,
|
||||||
|
},
|
||||||
|
{ -- Progress bar
|
||||||
|
{
|
||||||
|
id = "backlight_bar",
|
||||||
|
shape = gears.shape.rounded_bar,
|
||||||
|
forced_height = beautiful.dpi(10),
|
||||||
|
background_color = "#AAAAAA88",
|
||||||
|
bar_color = "#ffffff",
|
||||||
|
color = "#ffffff",
|
||||||
|
bar_shape = gears.shape.rounded_bar,
|
||||||
|
max_value = 100,
|
||||||
|
widget = wibox.widget.progressbar
|
||||||
|
},
|
||||||
|
id = "bar_layout",
|
||||||
|
forced_height = beautiful.dpi(24),
|
||||||
|
widget = wibox.container.place
|
||||||
|
},
|
||||||
|
id = "icon_bar_layout",
|
||||||
|
spacing = beautiful.dpi(0),
|
||||||
|
layout = wibox.layout.align.vertical
|
||||||
|
},
|
||||||
|
id = "popup_layout",
|
||||||
|
layout = wibox.layout.align.vertical,
|
||||||
|
},
|
||||||
|
id = "container",
|
||||||
|
left = beautiful.dpi(20),
|
||||||
|
right = beautiful.dpi(20),
|
||||||
|
top = beautiful.dpi(10),
|
||||||
|
bottom = beautiful.dpi(10),
|
||||||
|
widget = wibox.container.margin
|
||||||
|
},
|
||||||
|
bg ="#000000FF",
|
||||||
|
widget = wibox.container.background,
|
||||||
|
ontop = true,
|
||||||
|
visible = true,
|
||||||
|
type = "notification",
|
||||||
|
forced_height = beautiful.dpi(180),
|
||||||
|
forced_width = beautiful.dpi(300),
|
||||||
|
offset = beautiful.dpi(5),
|
||||||
|
}
|
||||||
|
|
||||||
|
local popup_container = awful.popup {
|
||||||
|
widget = wibox.container.background,
|
||||||
|
ontop = true,
|
||||||
|
bg = "#00000000",
|
||||||
|
stretch = false,
|
||||||
|
visible = false,
|
||||||
|
screen = s,
|
||||||
|
|
||||||
|
placement = function(c)
|
||||||
|
awful.placement.bottom_right(
|
||||||
|
c,
|
||||||
|
{
|
||||||
|
honor_workarea = true,
|
||||||
|
margins = {
|
||||||
|
top = beautiful.dpi(200)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Only set corner radius here.
|
||||||
|
shape = function(cr, width, height)
|
||||||
|
gears.shape.partially_rounded_rect(
|
||||||
|
cr,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
beautiful.dpi(20)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
popup_container:setup {
|
||||||
|
widget,
|
||||||
|
layout = wibox.layout.fixed.horizontal
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
awesome.connect_signal("module::backlight:update",
|
||||||
|
function(value)
|
||||||
|
|
||||||
|
if value == nil then
|
||||||
|
value = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Update slider
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
bar_layout.
|
||||||
|
backlight_bar:set_value(value)
|
||||||
|
|
||||||
|
-- Update text
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
label_value_layout.
|
||||||
|
value:set_text(value .. "%")
|
||||||
|
|
||||||
|
-- Update icon
|
||||||
|
local icon
|
||||||
|
if value >= 90 then icon = beautiful.icons.brightness.i
|
||||||
|
elseif value >= 80 then icon = beautiful.icons.brightness.h
|
||||||
|
elseif value >= 70 then icon = beautiful.icons.brightness.g
|
||||||
|
elseif value >= 60 then icon = beautiful.icons.brightness.f
|
||||||
|
elseif value >= 50 then icon = beautiful.icons.brightness.e
|
||||||
|
elseif value >= 40 then icon = beautiful.icons.brightness.d
|
||||||
|
elseif value >= 30 then icon = beautiful.icons.brightness.c
|
||||||
|
elseif value >= 20 then icon = beautiful.icons.brightness.b
|
||||||
|
elseif value <= 10 then icon = beautiful.icons.brightness.a end
|
||||||
|
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
icon_margin1.
|
||||||
|
icon_margin2.
|
||||||
|
icon:set_image(icon)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
local hide_popup_timer = gears.timer {
|
||||||
|
timeout = 1,
|
||||||
|
autostart = true,
|
||||||
|
callback = function()
|
||||||
|
popup_container.visible = false
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
awesome.connect_signal("module::all:popup_hide",
|
||||||
|
function(except)
|
||||||
|
if (except == "backlight") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
popup_container.visible = false
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
awesome.connect_signal("module::backlight:popup_show",
|
||||||
|
function()
|
||||||
|
awesome.emit_signal("module::all:popup_hide", "backlight")
|
||||||
|
if s == mouse.screen then
|
||||||
|
popup_container.visible = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:again()
|
||||||
|
else
|
||||||
|
hide_popup_timer:start()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
awesome.connect_signal("module::backlight:popup_show_stay",
|
||||||
|
function()
|
||||||
|
awesome.emit_signal("module::all:popup_hide", "backlight")
|
||||||
|
if s == mouse.screen then
|
||||||
|
popup_container.visible = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
popup_container:connect_signal("button::press",
|
||||||
|
function(_, _, _, button, mods)
|
||||||
|
-- Scroll up
|
||||||
|
if (button == 4) then
|
||||||
|
backlight.backlight_up(config.backlight.scroll_step)
|
||||||
|
|
||||||
|
-- Scroll down
|
||||||
|
elseif (button == 5) then
|
||||||
|
backlight.backlight_down(config.backlight.scroll_step)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
popup_container:connect_signal("mouse::enter", function(result)
|
||||||
|
awesome.emit_signal("module::backlight:popup_show_stay")
|
||||||
|
end)
|
||||||
|
|
||||||
|
popup_container:connect_signal("mouse::leave", function(result)
|
||||||
|
awesome.emit_signal("module::backlight:popup_show")
|
||||||
|
end)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -1,38 +1,84 @@
|
|||||||
local backlight = {}
|
local brightnessctl = {}
|
||||||
|
brightnessctl.parse = function(s)
|
||||||
-- The space at the end is important!
|
local batpec = string.match(s, ",%d?%d?%d%%,")
|
||||||
local script = conf_dir .. "modules/backlight/backlight.fish"
|
batpec = batpec:sub(2, batpec:len() - 2)
|
||||||
script = script .. " "
|
return tonumber(batpec)
|
||||||
|
|
||||||
backlight.hooks = {}
|
|
||||||
backlight.add_hook = function(callback)
|
|
||||||
backlight.hooks[#backlight.hooks + 1] = callback
|
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.exec_hooks = function()
|
brightnessctl.get = function(callback)
|
||||||
backlight.read(function(status)
|
|
||||||
for i=1, #backlight.hooks do
|
|
||||||
backlight.hooks[i](status)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
backlight.read = function(callback)
|
|
||||||
awful.spawn.easy_async(
|
awful.spawn.easy_async(
|
||||||
script .. "get",
|
"brightnessctl info -m",
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
callback(brightnessctl.parse(stdout))
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
brightnessctl.set = function(value)
|
||||||
|
awful.spawn.easy_async(
|
||||||
|
"brightnessctl set " .. value .. "% -m",
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal(
|
||||||
|
"module::backlight:update",
|
||||||
|
brightnessctl.parse(stdout)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
brightnessctl.watch = function(timeout, callback, widget)
|
||||||
|
awful.widget.watch(
|
||||||
|
"brightnessctl get -m",
|
||||||
|
timeout,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
callback(brightnessctl.parse(stdout))
|
||||||
|
end,
|
||||||
|
widget
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
brightnessctl.backlight_up = function(value)
|
||||||
|
awful.spawn.easy_async(
|
||||||
|
"brightnessctl set " .. value .. "%+ -m",
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal(
|
||||||
|
"module::backlight:update",
|
||||||
|
brightnessctl.parse(stdout)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
brightnessctl.backlight_down = function(value)
|
||||||
|
awful.spawn.easy_async(
|
||||||
|
"brightnessctl set " .. value .. "%- -m",
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal(
|
||||||
|
"module::backlight:update",
|
||||||
|
brightnessctl.parse(stdout)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local xbacklight = {}
|
||||||
|
xbacklight.get = function(callback)
|
||||||
|
awful.spawn.easy_async(
|
||||||
|
"xbacklight -get",
|
||||||
function(stdout, stderr, exitreason, exitcode)
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
callback(tonumber(stdout))
|
callback(tonumber(stdout))
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.set = function(value)
|
xbacklight.set = function(value)
|
||||||
awful.spawn(script .. "set " .. value, false)
|
awful.spawn("xbacklight -set " .. value, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.watch = function(timeout, callback, widget)
|
xbacklight.watch = function(timeout, callback, widget)
|
||||||
awful.widget.watch(
|
awful.widget.watch(
|
||||||
script .. "get",
|
"xbacklight -get",
|
||||||
timeout,
|
timeout,
|
||||||
callback,
|
callback,
|
||||||
widget
|
widget
|
||||||
@ -40,23 +86,48 @@ backlight.watch = function(timeout, callback, widget)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
backlight.backlight_up = function()
|
xbacklight.backlight_up = function(value)
|
||||||
awful.spawn(script .. "up", false)
|
awful.spawn.easy_async(
|
||||||
backlight.exec_hooks()
|
"xbacklight -inc " .. value,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::backlight:update_read")
|
||||||
|
end
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.backlight_down = function()
|
xbacklight.backlight_down = function(value)
|
||||||
awful.spawn(script .. "down", false)
|
awful.spawn.easy_async(
|
||||||
backlight.exec_hooks()
|
"xbacklight -dec " .. value,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::backlight:update_read")
|
||||||
|
end
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.redshift = function(temp)
|
|
||||||
awful.spawn("redshift -O " .. tostring(temp), false)
|
local backlight = {}
|
||||||
|
if config.backlight.backend == "xbacklight" then
|
||||||
|
backlight = xbacklight
|
||||||
|
elseif config.backlight.backend == "brightnessctl" then
|
||||||
|
backlight = brightnessctl
|
||||||
|
else
|
||||||
|
backlight = xbacklight
|
||||||
end
|
end
|
||||||
|
|
||||||
backlight.reset_redshift = function()
|
|
||||||
awful.spawn("redshift -x", false)
|
|
||||||
end
|
awesome.connect_signal("module::backlight:update_read",
|
||||||
|
function()
|
||||||
|
backlight.get(
|
||||||
|
function(value)
|
||||||
|
awesome.emit_signal(
|
||||||
|
"module::backlight:update",
|
||||||
|
value
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
return backlight
|
return backlight
|
||||||
|
@ -1,99 +1,59 @@
|
|||||||
local backlight = req_rel(..., "util")
|
local backlight = req_rel(..., "util")
|
||||||
local widget = {}
|
local widget = {}
|
||||||
|
local dotgrid = require("widgets.dotgrid")
|
||||||
|
|
||||||
|
widget.dots = dotgrid:new();
|
||||||
widget.icon = wibox.widget {
|
widget.dots.on_color = {0.18, 0.88, 1}
|
||||||
id = "icon",
|
widget.dots.off_color = {0.1, 0.44, 0.5}
|
||||||
image = beautiful.icons.brightness.i,
|
widget.dots.spacing = beautiful.dpi(2)
|
||||||
resize = true,
|
|
||||||
widget = wibox.widget.imagebox,
|
|
||||||
}
|
|
||||||
|
|
||||||
widget.arc = wibox.widget {
|
|
||||||
{
|
|
||||||
widget.icon,
|
|
||||||
top = beautiful.dpi(1),
|
|
||||||
bottom = beautiful.dpi(1),
|
|
||||||
layout = wibox.container.margin,
|
|
||||||
},
|
|
||||||
max_value = 100,
|
|
||||||
thickness = beautiful.dpi(4),
|
|
||||||
start_angle = 4.71238898, -- 2pi*3/4
|
|
||||||
--forced_height = beautiful.dpi(16),
|
|
||||||
--forced_width = beautiful.dpi(16),
|
|
||||||
colors = {"#27D4CC", "#00446B"},
|
|
||||||
bg = "#FFFFFF30",
|
|
||||||
paddings = beautiful.dpi(2),
|
|
||||||
widget = wibox.container.arcchart
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
widget.widget = wibox.widget {
|
widget.widget = wibox.widget {
|
||||||
{
|
{
|
||||||
{ -- Right space
|
widget.dots,
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
{ -- Main indicator. Can be replaced with widget.arc
|
|
||||||
widget.arc,
|
|
||||||
top = beautiful.dpi(2),
|
top = beautiful.dpi(2),
|
||||||
bottom = beautiful.dpi(2),
|
bottom = beautiful.dpi(2),
|
||||||
|
left = beautiful.dpi(2),
|
||||||
|
right = beautiful.dpi(2),
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
{ -- Left space
|
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
layout = wibox.layout.align.horizontal,
|
|
||||||
},
|
|
||||||
layout = wibox.container.background,
|
layout = wibox.container.background,
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::enter", function(result)
|
widget.widget:connect_signal("mouse::enter", function(result)
|
||||||
widget.widget.bg = beautiful.color.bar.hover_bg
|
widget.widget.bg = beautiful.color.bar.hover_bg
|
||||||
|
--awesome.emit_signal("module::backlight:popup_show_stay")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::leave", function(result)
|
widget.widget:connect_signal("mouse::leave", function(result)
|
||||||
widget.widget.bg = beautiful.color.transparent
|
widget.widget.bg = beautiful.color.transparent
|
||||||
|
--awesome.emit_signal("module::backlight:popup_show")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
widget.widget:connect_signal("button::press",
|
widget.widget:connect_signal("button::press",
|
||||||
function(_, _, _, button, mods)
|
function(_, _, _, button, mods)
|
||||||
-- Scroll up
|
-- Scroll up
|
||||||
if (button == 4) then
|
if (button == 4) then
|
||||||
backlight.backlight_up()
|
backlight.backlight_up(config.backlight.scroll_step)
|
||||||
-- Scroll down
|
-- Scroll down
|
||||||
elseif (button == 5) then
|
elseif (button == 5) then
|
||||||
backlight.backlight_down()
|
backlight.backlight_down(config.backlight.scroll_step)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--awesome.emit_signal("module::backlight:popup_show_stay")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
widget.update = function(value)
|
awesome.connect_signal("module::backlight:update",
|
||||||
widget.arc.value = value
|
function(value)
|
||||||
|
widget.dots.value = value
|
||||||
|
widget.dots:emit_signal("widget::redraw_needed")
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
--[[if value > 90 then widget.icon.image = beautiful.icons.brightness.i
|
|
||||||
elseif value > 80 then widget.icon.image = beautiful.icons.brightness.h
|
|
||||||
elseif value > 70 then widget.icon.image = beautiful.icons.brightness.g
|
|
||||||
elseif value > 60 then widget.icon.image = beautiful.icons.brightness.f
|
|
||||||
elseif value > 50 then widget.icon.image = beautiful.icons.brightness.e
|
|
||||||
elseif value > 40 then widget.icon.image = beautiful.icons.brightness.d
|
|
||||||
elseif value > 30 then widget.icon.image = beautiful.icons.brightness.c
|
|
||||||
elseif value > 20 then widget.icon.image = beautiful.icons.brightness.b
|
|
||||||
elseif value <= 10 then widget.icon.image = beautiful.icons.brightness.a end
|
|
||||||
--]]
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
backlight.add_hook(widget.update)
|
|
||||||
backlight.watch(
|
backlight.watch(
|
||||||
5,
|
5,
|
||||||
function()
|
function()
|
||||||
backlight.read(widget.update)
|
awesome.emit_signal("module::backlight::update_read")
|
||||||
end,
|
end,
|
||||||
widget.widget
|
widget.widget
|
||||||
)
|
)
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
#!/usr/bin/fish
|
|
||||||
# returns battery percentage and status
|
|
||||||
# 45%, discharging
|
|
||||||
# second parameter returns "fully" when fully charged. Since awesome only checks for "discharging," fixing that isn't necessary.
|
|
||||||
|
|
||||||
echo \
|
|
||||||
(upower --show-info /org/freedesktop/UPower/devices/battery_BAT1 | grep percentage | grep -Po "(\d\d?\d?)%"), \
|
|
||||||
(upower --show-info /org/freedesktop/UPower/devices/battery_BAT1 | grep state | grep -Po "(?<=state:)\s*(\w*)" | xargs) \
|
|
@ -1,13 +1,11 @@
|
|||||||
local battery = {}
|
local battery = {}
|
||||||
|
|
||||||
local script = conf_dir .. "modules/battery/battery.fish"
|
|
||||||
|
|
||||||
battery.watch = function(timeout, callback, widget)
|
battery.watch = function(timeout, callback, widget)
|
||||||
awful.widget.watch(script, timeout, callback, widget)
|
awful.widget.watch("acpi --battery", timeout, callback, widget)
|
||||||
end
|
end
|
||||||
|
|
||||||
battery.status = function(callback)
|
battery.status = function(callback)
|
||||||
awful.spawn.easy_async(script, callback)
|
awful.spawn.easy_async("acpi --battery", callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
return battery
|
return battery
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
local battery = req_rel(..., "util")
|
local battery = req_rel(..., "util")
|
||||||
local widget = {}
|
local widget = {}
|
||||||
|
local dotgrid = require("widgets.dotgrid")
|
||||||
|
|
||||||
-- Percentages to warn at
|
-- Percentages to warn at
|
||||||
-- (must be in order least -> greatest)
|
-- (must be in order least -> greatest)
|
||||||
@ -13,76 +14,25 @@ for i=1, #widget.warnings do
|
|||||||
widget.warninglog[i] = false
|
widget.warninglog[i] = false
|
||||||
end
|
end
|
||||||
|
|
||||||
widget.image_path = beautiful.icons.battery.missing
|
|
||||||
widget.icon = wibox.widget {
|
|
||||||
image = beautiful.icons.battery.missing,
|
|
||||||
resize = true,
|
|
||||||
widget = wibox.widget.imagebox,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
widget.progressbar = wibox.widget {
|
|
||||||
max_value = 100,
|
|
||||||
widget = wibox.widget.progressbar,
|
|
||||||
paddings = beautiful.dpi(2),
|
|
||||||
color = beautiful.color.bar.active,
|
|
||||||
background_color = beautiful.color.transparent,
|
|
||||||
border_color = beautiful.color.bar.active,
|
|
||||||
border_width = beautiful.dpi(1),
|
|
||||||
margins = beautiful.dpi(3)
|
|
||||||
}
|
|
||||||
|
|
||||||
widget.arc = wibox.widget {
|
|
||||||
{
|
|
||||||
widget.icon,
|
|
||||||
top = beautiful.dpi(1),
|
|
||||||
bottom = beautiful.dpi(1),
|
|
||||||
layout = wibox.container.margin,
|
|
||||||
},
|
|
||||||
max_value = 100,
|
|
||||||
thickness = beautiful.dpi(4),
|
|
||||||
start_angle = 4.71238898, -- 2pi*3/4
|
|
||||||
--forced_height = beautiful.dpi(16),
|
|
||||||
--forced_width = beautiful.dpi(16),
|
|
||||||
colors = {"#27D4CC", "#00446B"},
|
|
||||||
bg = "#FFFFFF30",
|
|
||||||
paddings = beautiful.dpi(2),
|
|
||||||
widget = wibox.container.arcchart
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
widget.rotator = wibox.widget {
|
|
||||||
widget.progressbar,
|
|
||||||
forced_width = beautiful.dpi(15),
|
|
||||||
direction = "east",
|
|
||||||
layout = wibox.container.rotate,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
widget.dots = dotgrid:new();
|
||||||
|
widget.dots.on_color = {1, 0, 0}
|
||||||
|
widget.dots.off_color = {0.5, 0, 0}
|
||||||
|
widget.dots.spacing = beautiful.dpi(2)
|
||||||
|
|
||||||
widget.widget = wibox.widget {
|
widget.widget = wibox.widget {
|
||||||
{
|
{
|
||||||
{ -- Right space
|
widget.dots,
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
widget.arc,
|
|
||||||
top = beautiful.dpi(2),
|
top = beautiful.dpi(2),
|
||||||
bottom = beautiful.dpi(2),
|
bottom = beautiful.dpi(2),
|
||||||
|
left = beautiful.dpi(2),
|
||||||
|
right = beautiful.dpi(2),
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
{ -- Left space
|
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
|
|
||||||
layout = wibox.layout.align.horizontal,
|
|
||||||
},
|
|
||||||
layout = wibox.container.background,
|
layout = wibox.container.background,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::enter", function(result)
|
widget.widget:connect_signal("mouse::enter", function(result)
|
||||||
widget.widget.bg = beautiful.color.bar.hover_bg
|
widget.widget.bg = beautiful.color.bar.hover_bg
|
||||||
end)
|
end)
|
||||||
@ -95,7 +45,7 @@ widget.update = function(stdout)
|
|||||||
local batpec = string.match(stdout, "(%d?%d?%d)%%")
|
local batpec = string.match(stdout, "(%d?%d?%d)%%")
|
||||||
batpec = tonumber(string.format("% 3d", batpec))
|
batpec = tonumber(string.format("% 3d", batpec))
|
||||||
|
|
||||||
local discharging = string.match(stdout, "discharging") or false
|
local discharging = string.match(stdout, "Discharging") or false
|
||||||
|
|
||||||
-- Handle low power notifications
|
-- Handle low power notifications
|
||||||
if discharging then
|
if discharging then
|
||||||
@ -112,7 +62,7 @@ widget.update = function(stdout)
|
|||||||
timeout = 5,
|
timeout = 5,
|
||||||
ignore_suspend = true,
|
ignore_suspend = true,
|
||||||
|
|
||||||
border_color = beautiful.color.widget.danger,
|
border_color = beautiful.color.battery.danger,
|
||||||
preset = beautiful.notification_templates.bottom_right
|
preset = beautiful.notification_templates.bottom_right
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
@ -126,49 +76,17 @@ widget.update = function(stdout)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
widget.dots.value = batpec
|
||||||
widget.progressbar.value = batpec
|
|
||||||
widget.arc.value = batpec
|
|
||||||
|
|
||||||
if batpec > 60 then
|
|
||||||
widget.progressbar.color = beautiful.color.widget.good
|
|
||||||
elseif batpec > 40 then
|
|
||||||
widget.progressbar.color = beautiful.color.widget.low
|
|
||||||
elseif batpec <= 40 then
|
|
||||||
widget.progressbar.color = beautiful.color.widget.danger
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
widget.image_path = beautiful.icons.battery.missing
|
|
||||||
-- Set current battery icon
|
|
||||||
if (not discharging) then
|
|
||||||
if batpec > 80 then widget.image_path = beautiful.icons.battery.charging.full
|
|
||||||
elseif batpec > 60 then widget.image_path = beautiful.icons.battery.charging.good
|
|
||||||
elseif batpec > 40 then widget.image_path = beautiful.icons.battery.charging.low
|
|
||||||
elseif batpec > 20 then widget.image_path = beautiful.icons.battery.charging.caution
|
|
||||||
elseif batpec <= 20 then widget.image_path = beautiful.icons.battery.charging.empty end
|
|
||||||
else
|
|
||||||
if batpec > 80 then widget.image_path = beautiful.icons.battery.full
|
|
||||||
elseif batpec > 60 then widget.image_path = beautiful.icons.battery.good
|
|
||||||
elseif batpec > 40 then widget.image_path = beautiful.icons.battery.low
|
|
||||||
elseif batpec > 20 then widget.image_path = beautiful.icons.battery.caution
|
|
||||||
elseif batpec <= 20 then widget.image_path = beautiful.icons.battery.empty end
|
|
||||||
end
|
|
||||||
widget.icon.image = widget.image_path
|
|
||||||
|
|
||||||
if (not discharging) and (batpec > 90) then
|
|
||||||
widget.progressbar.border_color = beautiful.color.widget.good
|
|
||||||
elseif (discharging) and (batpec <= 25) then
|
|
||||||
widget.progressbar.border_color = beautiful.color.widget.danger
|
|
||||||
else
|
|
||||||
widget.progressbar.border_color = beautiful.color.bar.active
|
|
||||||
end
|
|
||||||
|
|
||||||
if discharging then
|
if discharging then
|
||||||
widget.rotator.direction = "east"
|
widget.dots.on_color = {1, 0, 0}
|
||||||
|
widget.dots.off_color = {0.5, 0, 0}
|
||||||
else
|
else
|
||||||
widget.rotator.direction = "west"
|
widget.dots.on_color = {1, 1, 0}
|
||||||
|
widget.dots.off_color = {0.5, 0.5, 0}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
widget.dots:emit_signal("widget::redraw_needed")
|
||||||
end
|
end
|
||||||
|
|
||||||
widget.readupdate = function()
|
widget.readupdate = function()
|
||||||
@ -185,8 +103,12 @@ widget.widget:connect_signal("button::press",
|
|||||||
if (button == 1) then
|
if (button == 1) then
|
||||||
battery.status(
|
battery.status(
|
||||||
function(stdout, stderr, exitreason, exitcode)
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
local batpec = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%)
|
local batpec = string.match(stdout, "(%d?%d?%d)%%")
|
||||||
local batstat = string.match(stdout, "discharging") or false
|
batpec = tonumber(string.format("% 3d", batpec))
|
||||||
|
|
||||||
|
local batstat = string.match(stdout, "Discharging") or false
|
||||||
|
|
||||||
|
debug_message(batpec)
|
||||||
|
|
||||||
if batstat then
|
if batstat then
|
||||||
batstat = "Discharging, "
|
batstat = "Discharging, "
|
||||||
@ -211,7 +133,7 @@ widget.widget:connect_signal("button::press",
|
|||||||
)
|
)
|
||||||
|
|
||||||
battery.watch(
|
battery.watch(
|
||||||
10,
|
2,
|
||||||
function(_, stdout)
|
function(_, stdout)
|
||||||
widget.update(stdout)
|
widget.update(stdout)
|
||||||
end,
|
end,
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
local script = conf_dir .. "modules/i3lock/lock.fish"
|
|
||||||
script = script .. " "
|
|
||||||
|
|
||||||
return {
|
|
||||||
keybinds = gears.table.join(
|
|
||||||
awful.key( {"Mod4"}, "a",
|
|
||||||
function ()
|
|
||||||
awful.spawn(script .. beautiful.icons.lockicon, false)
|
|
||||||
end,
|
|
||||||
|
|
||||||
{
|
|
||||||
description = "Lock screen",
|
|
||||||
group = "System"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
@ -1,9 +1,27 @@
|
|||||||
local util = require("modules.ibus.util")
|
local util = require("modules.ibus.util")
|
||||||
|
local popup = require("modules.ibus.popup")
|
||||||
|
local widget = require("modules.ibus.widget")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
widget = require("modules.ibus.widget").widget,
|
widget = require("modules.ibus.widget").widget,
|
||||||
keybinds = require("modules.ibus.keybinds"),
|
keybinds = require("modules.ibus.keybinds"),
|
||||||
|
|
||||||
|
set = function(lang)
|
||||||
|
-- Switch to a language. Used by host interface.
|
||||||
|
|
||||||
|
local lang_id
|
||||||
|
for k, v in pairs(config.ibus.language_list) do
|
||||||
|
if (v["indicator_code"] == lang) then
|
||||||
|
lang_id = k
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
util.set(lang_id, function()
|
||||||
|
popup.update()
|
||||||
|
widget.update()
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
init = function()
|
init = function()
|
||||||
util.set(1)
|
util.set(1)
|
||||||
end
|
end
|
||||||
|
@ -31,10 +31,10 @@ for k, l in pairs(config.ibus.language_list) do
|
|||||||
|
|
||||||
l["widget_text"] = wibox.widget {
|
l["widget_text"] = wibox.widget {
|
||||||
{
|
{
|
||||||
markup = "<b>" .. l["title"] .. "</b>",
|
text = "" .. l["title"] .. "",
|
||||||
align = "left",
|
align = "left",
|
||||||
valign = "center",
|
valign = "center",
|
||||||
font = "Comfortaa 16",
|
font = config.core.font.normal_large,
|
||||||
widget = wibox.widget.textbox
|
widget = wibox.widget.textbox
|
||||||
},
|
},
|
||||||
layout = wibox.container.background,
|
layout = wibox.container.background,
|
||||||
|
@ -4,12 +4,12 @@ local widget = {}
|
|||||||
widget.ibus_indicator_text = wibox.widget.textbox("??")
|
widget.ibus_indicator_text = wibox.widget.textbox("??")
|
||||||
widget.ibus_indicator_text.valign = "center"
|
widget.ibus_indicator_text.valign = "center"
|
||||||
widget.ibus_indicator_text.align = "center"
|
widget.ibus_indicator_text.align = "center"
|
||||||
widget.ibus_indicator_text.font = "Hack NF 14"
|
widget.ibus_indicator_text.font = config.core.font.normal_medium
|
||||||
|
|
||||||
widget.xkb_indicator_text = wibox.widget.textbox("??")
|
widget.xkb_indicator_text = wibox.widget.textbox("??")
|
||||||
widget.xkb_indicator_text.valign = "center"
|
widget.xkb_indicator_text.valign = "center"
|
||||||
widget.xkb_indicator_text.align = "center"
|
widget.xkb_indicator_text.align = "center"
|
||||||
widget.xkb_indicator_text.font = "Hack NF 10"
|
widget.xkb_indicator_text.font = config.core.font.normal_small
|
||||||
|
|
||||||
|
|
||||||
widget.widget = wibox.widget {
|
widget.widget = wibox.widget {
|
||||||
@ -53,8 +53,8 @@ widget.widget:connect_signal("mouse::leave", function(result)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
widget.update = function()
|
widget.update = function()
|
||||||
widget.ibus_indicator_text.markup = config.ibus.language_list[util.current_engine_index]["indicator_code"]
|
widget.ibus_indicator_text.text = config.ibus.language_list[util.current_engine_index]["indicator_code"]
|
||||||
widget.xkb_indicator_text.markup = util.current_xkbmap
|
widget.xkb_indicator_text.text = util.current_xkbmap
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
15
modules/keymap_popup/init.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
local popup = require("modules.keymap_popup.popup")
|
||||||
|
|
||||||
|
return {
|
||||||
|
keybinds = gears.table.join(
|
||||||
|
awful.key( {"Mod4"}, "0",
|
||||||
|
function()
|
||||||
|
popup.popup.visible = not popup.popup.visible
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Show russian keyboard layout",
|
||||||
|
group = "Desktop"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
73
modules/keymap_popup/popup.lua
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
local ru_kb_img = conf_dir .. "modules/keymap_popup/ru_kb.svg"
|
||||||
|
local popup = {
|
||||||
|
width = awful.screen.focused().workarea.width * 0.8
|
||||||
|
}
|
||||||
|
|
||||||
|
popup.popup = awful.popup {
|
||||||
|
widget = wibox.widget {
|
||||||
|
wibox.widget {
|
||||||
|
image = ru_kb_img,
|
||||||
|
widget = wibox.widget.imagebox,
|
||||||
|
resize = true,
|
||||||
|
forced_width = popup.width,
|
||||||
|
forced_height = popup.width / 4,
|
||||||
|
},
|
||||||
|
valign = "center",
|
||||||
|
halign = "center",
|
||||||
|
margins = beautiful.dpi(20),
|
||||||
|
widget = wibox.container.margin
|
||||||
|
},
|
||||||
|
|
||||||
|
bg = "#00000000",
|
||||||
|
border_width = 0,
|
||||||
|
ontop = true,
|
||||||
|
placement = awful.placement.centered,
|
||||||
|
shape = gears.shape.rounded_rect,
|
||||||
|
hide_on_right_click = true,
|
||||||
|
visible = false
|
||||||
|
}
|
||||||
|
|
||||||
|
popup.grabber = awful.keygrabber {
|
||||||
|
stop_callback = function()
|
||||||
|
popup.popup.visible = false
|
||||||
|
end,
|
||||||
|
keypressed_callback = function(self, modifiers, modset)
|
||||||
|
popup.popup.visible = false
|
||||||
|
end,
|
||||||
|
export_keybindings = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
function popup.hide()
|
||||||
|
popup.popup.visible = false
|
||||||
|
end
|
||||||
|
|
||||||
|
popup.popup:connect_signal("property::visible",
|
||||||
|
function(w)
|
||||||
|
if not w.visible then
|
||||||
|
w:disconnect_signal(
|
||||||
|
"button::press",
|
||||||
|
popup.hide
|
||||||
|
)
|
||||||
|
popup.grabber:stop()
|
||||||
|
else
|
||||||
|
w:connect_signal(
|
||||||
|
"button::press",
|
||||||
|
popup.hide
|
||||||
|
)
|
||||||
|
popup.grabber:start()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
popup.widget = wibox.widget {
|
||||||
|
homogeneous = false,
|
||||||
|
vertical_homogeneous = true,
|
||||||
|
horizontal_homogeneous = false,
|
||||||
|
vertical_spacing = beautiful.dpi(10),
|
||||||
|
horizontal_spacing = beautiful.dpi(0),
|
||||||
|
min_cols_size = beautiful.dpi(20),
|
||||||
|
min_rows_size = beautiful.dpi(20),
|
||||||
|
layout = wibox.layout.grid
|
||||||
|
}
|
||||||
|
|
||||||
|
return popup
|
739
modules/keymap_popup/ru_kb.svg
Normal file
@ -0,0 +1,739 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
width="2000"
|
||||||
|
height="500"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||||
|
sodipodi:docname="ru_kb.svg"
|
||||||
|
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"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<metadata
|
||||||
|
id="metadata178">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs176">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 411 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="600 : 411 : 1"
|
||||||
|
inkscape:persp3d-origin="300 : 381.33334 : 1"
|
||||||
|
id="perspective180" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="3200"
|
||||||
|
inkscape:window-height="1696"
|
||||||
|
id="namedview174"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.5688658"
|
||||||
|
inkscape:cx="357.26446"
|
||||||
|
inkscape:cy="159.98819"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="g1619"
|
||||||
|
inkscape:showpageshadow="0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
showguides="true" />
|
||||||
|
<g
|
||||||
|
id="g1619"
|
||||||
|
transform="translate(55.995544)">
|
||||||
|
<rect
|
||||||
|
width="118.4117"
|
||||||
|
height="118.4117"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="126.63476"
|
||||||
|
y="1.6446128"
|
||||||
|
id="key_common"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<use
|
||||||
|
transform="translate(128.27934)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use5" />
|
||||||
|
<use
|
||||||
|
transform="translate(253.26948)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use7" />
|
||||||
|
<use
|
||||||
|
transform="translate(381.54881)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use9" />
|
||||||
|
<use
|
||||||
|
transform="translate(506.53895)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use11" />
|
||||||
|
<use
|
||||||
|
transform="translate(631.52907)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use13" />
|
||||||
|
<use
|
||||||
|
transform="translate(759.80841)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use15" />
|
||||||
|
<use
|
||||||
|
transform="translate(884.79852)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use17" />
|
||||||
|
<use
|
||||||
|
transform="translate(1009.7887)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use19" />
|
||||||
|
<use
|
||||||
|
transform="translate(1138.068)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use21" />
|
||||||
|
<use
|
||||||
|
transform="translate(1263.0581)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use23" />
|
||||||
|
<use
|
||||||
|
transform="translate(1388.0483)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use25" />
|
||||||
|
<use
|
||||||
|
transform="translate(1516.3276)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use27" />
|
||||||
|
<use
|
||||||
|
transform="translate(1641.3178)"
|
||||||
|
xlink:href="#key_common"
|
||||||
|
id="use29" />
|
||||||
|
<path
|
||||||
|
d="m 1639.6732,254.91406 c -9.1112,0 -16.4461,7.33498 -16.4461,16.44608 v 85.51958 c 0,9.11108 7.3349,16.44608 16.4461,16.44608 h 85.5196 1.7473 142.978 c 9.1111,0 16.4462,-7.335 16.4462,-16.44608 v -85.51958 c 0,-9.11112 -7.3351,-16.44606 -16.4462,-16.44606 z"
|
||||||
|
id="enter_key"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="csssccssscc" />
|
||||||
|
<rect
|
||||||
|
width="184.19598"
|
||||||
|
height="118.4117"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="1.6446128"
|
||||||
|
y="126.63476"
|
||||||
|
id="tab_key"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
width="223.66656"
|
||||||
|
height="118.4117"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="1.6446128"
|
||||||
|
y="254.91408"
|
||||||
|
id="caps1_key"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
width="273.00476"
|
||||||
|
height="118.4117"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="1.6446128"
|
||||||
|
y="379.90417"
|
||||||
|
id="lshift_key"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
width="342.07834"
|
||||||
|
height="118.45115"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="1544.2859"
|
||||||
|
y="379.90417"
|
||||||
|
id="rshift_key"
|
||||||
|
style="fill:#ffffff;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<use
|
||||||
|
transform="translate(1292.6611,378.25961)"
|
||||||
|
id="use7532"
|
||||||
|
xlink:href="#key_common" />
|
||||||
|
<rect
|
||||||
|
width="118.45115"
|
||||||
|
height="118.45115"
|
||||||
|
rx="16.446068"
|
||||||
|
ry="16.446068"
|
||||||
|
x="1.6446128"
|
||||||
|
y="1.6446128"
|
||||||
|
id="key_common2"
|
||||||
|
style="fill:#e8eef7;stroke:#88898a;stroke-width:3.28924;stroke-opacity:1" />
|
||||||
|
<use
|
||||||
|
transform="translate(319.05375,124.99013)"
|
||||||
|
id="use7586"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(447.33309,124.99013)"
|
||||||
|
id="use7588"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(572.28375,124.99013)"
|
||||||
|
id="use7590"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(697.27389,124.99013)"
|
||||||
|
id="use7592"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(825.55323,124.99013)"
|
||||||
|
id="use7594"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(950.54334,124.99013)"
|
||||||
|
id="use7596"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1078.8227,124.99013)"
|
||||||
|
id="use7598"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1203.8128,124.99013)"
|
||||||
|
id="use7600"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1328.803,124.99013)"
|
||||||
|
id="use7602"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1457.0823,124.99013)"
|
||||||
|
id="use7604"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1582.0724,124.99013)"
|
||||||
|
id="use7606"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<path
|
||||||
|
id="use7606-6"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#88898a;stroke-width:3.28924"
|
||||||
|
d="m 1725.1531,126.63474 h 144.765 c 9.1111,0 16.4462,7.33495 16.4462,16.44607 v 85.55899 c 0,9.11114 -7.3351,16.44608 -16.4462,16.44608 h -144.765 c -9.111,0 -16.446,-7.33494 -16.446,-16.44608 v -85.55899 c 0,-9.11112 7.335,-16.44607 16.446,-16.44607 z"
|
||||||
|
sodipodi:nodetypes="sssssssss" />
|
||||||
|
<use
|
||||||
|
transform="translate(1496.5923,253.26948)"
|
||||||
|
id="use7608"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1368.313,253.26948)"
|
||||||
|
id="use7610"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1243.3229,253.26948)"
|
||||||
|
id="use7612"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1115.0435,253.26948)"
|
||||||
|
id="use7614"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(990.05336,253.26948)"
|
||||||
|
id="use7616"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(865.06324,253.26948)"
|
||||||
|
id="use7618"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(736.78389,253.26948)"
|
||||||
|
id="use7620"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(611.79375,253.26948)"
|
||||||
|
id="use7622"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(486.80363,253.26948)"
|
||||||
|
id="use7624"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(358.52429,253.26948)"
|
||||||
|
id="use7626"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(233.5342,253.26948)"
|
||||||
|
id="use7628"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(279.58314,378.25961)"
|
||||||
|
id="use7652"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(407.82311,378.25961)"
|
||||||
|
id="use7654"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(532.81325,378.22017)"
|
||||||
|
id="use7656"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(661.13199,378.25961)"
|
||||||
|
id="use7658"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(786.12213,378.25961)"
|
||||||
|
id="use7660"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(911.11226,378.25961)"
|
||||||
|
id="use7662"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1039.3916,378.25961)"
|
||||||
|
id="use7664"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1164.3817,378.25961)"
|
||||||
|
id="use7666"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(1292.6611,378.25961)"
|
||||||
|
id="use7668"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<use
|
||||||
|
transform="translate(194.02418,124.99013)"
|
||||||
|
id="use7705"
|
||||||
|
xlink:href="#key_common2" />
|
||||||
|
<text
|
||||||
|
x="35.974121"
|
||||||
|
y="87.927254"
|
||||||
|
id="text7714"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ё</text>
|
||||||
|
<text
|
||||||
|
x="228.51816"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7718"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Й</text>
|
||||||
|
<text
|
||||||
|
x="353.81415"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7722"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ц</text>
|
||||||
|
<text
|
||||||
|
x="488.10291"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7724"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">У</text>
|
||||||
|
<text
|
||||||
|
x="606.83691"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7726"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">К</text>
|
||||||
|
<text
|
||||||
|
x="733.24811"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7728"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Е</text>
|
||||||
|
<text
|
||||||
|
x="860.31366"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7730"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Н</text>
|
||||||
|
<text
|
||||||
|
x="987.02075"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7732"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Г</text>
|
||||||
|
<text
|
||||||
|
x="1111.7181"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7734"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ш</text>
|
||||||
|
<text
|
||||||
|
x="1236.7084"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7736"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Щ</text>
|
||||||
|
<text
|
||||||
|
x="1366.9973"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7738"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">З</text>
|
||||||
|
<text
|
||||||
|
x="1493.7966"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7740"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Х</text>
|
||||||
|
<text
|
||||||
|
x="1613.3693"
|
||||||
|
y="206.75339"
|
||||||
|
id="text7742"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ъ</text>
|
||||||
|
<text
|
||||||
|
x="1531.6783"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7744"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Э</text>
|
||||||
|
<text
|
||||||
|
x="1398.2184"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7746"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ж</text>
|
||||||
|
<text
|
||||||
|
x="1277.5802"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7748"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Д</text>
|
||||||
|
<text
|
||||||
|
x="1154.3925"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7750"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Л</text>
|
||||||
|
<text
|
||||||
|
x="1023.3336"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7752"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">О</text>
|
||||||
|
<text
|
||||||
|
x="901.54065"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7754"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Р</text>
|
||||||
|
<text
|
||||||
|
x="771.54431"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7756"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">П</text>
|
||||||
|
<text
|
||||||
|
x="652.83002"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7758"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">А</text>
|
||||||
|
<text
|
||||||
|
x="524.28754"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7760"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">В</text>
|
||||||
|
<text
|
||||||
|
x="388.42984"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7762"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ы</text>
|
||||||
|
<text
|
||||||
|
x="264.4462"
|
||||||
|
y="335.72018"
|
||||||
|
id="text7764"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ф</text>
|
||||||
|
<text
|
||||||
|
x="317.06708"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7766"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Я</text>
|
||||||
|
<text
|
||||||
|
x="443.53073"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7768"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ч</text>
|
||||||
|
<text
|
||||||
|
x="567.57361"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7770"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">С</text>
|
||||||
|
<text
|
||||||
|
x="692.66559"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7772"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">М</text>
|
||||||
|
<text
|
||||||
|
x="820.61609"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7774"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">И</text>
|
||||||
|
<text
|
||||||
|
x="945.16211"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7776"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Т</text>
|
||||||
|
<text
|
||||||
|
x="1077.8821"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7778"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ь</text>
|
||||||
|
<text
|
||||||
|
x="1201.5104"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7780"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Б</text>
|
||||||
|
<text
|
||||||
|
x="1319.2216"
|
||||||
|
y="460.71036"
|
||||||
|
id="text7782"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">Ю</text>
|
||||||
|
<text
|
||||||
|
x="7.1441808"
|
||||||
|
y="199.754"
|
||||||
|
id="text7784"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7786"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">Tab</tspan></text>
|
||||||
|
<text
|
||||||
|
x="8.9598265"
|
||||||
|
y="310.2189"
|
||||||
|
id="text7788"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7790"
|
||||||
|
style="font-size:39.4706px;fill:#00000f;stroke-width:3.28924">Caps</tspan><tspan
|
||||||
|
id="tspan7792"
|
||||||
|
style="font-size:39.4706px;fill:#00000f;stroke-width:3.28924" /></text>
|
||||||
|
<text
|
||||||
|
x="10.222887"
|
||||||
|
y="346.4003"
|
||||||
|
id="text7800"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7806"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">Lock</tspan></text>
|
||||||
|
<text
|
||||||
|
x="9.8676472"
|
||||||
|
y="453.29974"
|
||||||
|
id="text7808"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7814"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">Shift</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1558.8638"
|
||||||
|
y="453.29974"
|
||||||
|
id="text7828"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7830"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">Shift</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1651.3988"
|
||||||
|
y="328.07278"
|
||||||
|
id="text7832"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7834"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">Enter</tspan></text>
|
||||||
|
<text
|
||||||
|
x="171.9272"
|
||||||
|
y="93.828125"
|
||||||
|
id="text7836"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7838"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">1</tspan></text>
|
||||||
|
<text
|
||||||
|
x="301.19336"
|
||||||
|
y="93.828125"
|
||||||
|
id="text7840"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7842"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">2</tspan></text>
|
||||||
|
<text
|
||||||
|
x="425.86765"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7844"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7846"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">3</tspan></text>
|
||||||
|
<text
|
||||||
|
x="554.81812"
|
||||||
|
y="93.828125"
|
||||||
|
id="text7848"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7850"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">4</tspan></text>
|
||||||
|
<text
|
||||||
|
x="678.56488"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7852"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7854"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">5</tspan></text>
|
||||||
|
<text
|
||||||
|
x="803.45642"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7856"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7858"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">6</tspan></text>
|
||||||
|
<text
|
||||||
|
x="929.68317"
|
||||||
|
y="93.828125"
|
||||||
|
id="text7860"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7862"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">7</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1057.2388"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7864"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7866"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">8</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1182.1501"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7868"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7870"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">9</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1310.1532"
|
||||||
|
y="93.374214"
|
||||||
|
id="text7872"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7874"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">0</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1440.0376"
|
||||||
|
y="90.729683"
|
||||||
|
id="text7876"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7878"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">-</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1560.4294"
|
||||||
|
y="89.032455"
|
||||||
|
id="text7884"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7886"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">=</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1693.7217"
|
||||||
|
y="93.828125"
|
||||||
|
id="text7888"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7890"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">\</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1797.5358"
|
||||||
|
y="70.69928"
|
||||||
|
id="text7892"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#000000;stroke-width:3.28924">←</text>
|
||||||
|
<text
|
||||||
|
x="176.24922"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7894"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7896"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">!</tspan></text>
|
||||||
|
<text
|
||||||
|
x="301.6275"
|
||||||
|
y="46.06216"
|
||||||
|
id="text7898"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7900"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">"</tspan></text>
|
||||||
|
<text
|
||||||
|
x="415.78293"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7902"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7904"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">№</tspan></text>
|
||||||
|
<text
|
||||||
|
x="559.41632"
|
||||||
|
y="38.760105"
|
||||||
|
id="text7906"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7908"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">;</tspan></text>
|
||||||
|
<text
|
||||||
|
x="672.05219"
|
||||||
|
y="46.06216"
|
||||||
|
id="text7910"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7912"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">%</tspan></text>
|
||||||
|
<text
|
||||||
|
x="808.74536"
|
||||||
|
y="38.760105"
|
||||||
|
id="text7914"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7916"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">:</tspan></text>
|
||||||
|
<text
|
||||||
|
x="929.56482"
|
||||||
|
y="47.325218"
|
||||||
|
id="text7918"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7920"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">?</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1057.9888"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7922"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7924"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">*</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1184.5776"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7926"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7928"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">(</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1317.613"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7930"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7932"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">)</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1439.1692"
|
||||||
|
y="13.104231"
|
||||||
|
id="text7934"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7936"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">_</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1560.4294"
|
||||||
|
y="36.747105"
|
||||||
|
id="text7938"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7940"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">+</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1693.8202"
|
||||||
|
y="46.851566"
|
||||||
|
id="text7942"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7944"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">/</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1472.6008"
|
||||||
|
y="476.14658"
|
||||||
|
id="text7946"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7948"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">.</tspan></text>
|
||||||
|
<text
|
||||||
|
x="1473.2125"
|
||||||
|
y="429.17001"
|
||||||
|
id="text7950"
|
||||||
|
style="font-style:italic;font-size:59.2056px;line-height:0%;font-family:'Nimbus Sans L';fill:#00000f;stroke-width:3.28924"><tspan
|
||||||
|
id="tspan7952"
|
||||||
|
style="font-size:39.4706px;stroke-width:3.28924">,</tspan></text>
|
||||||
|
</g>
|
||||||
|
<rect
|
||||||
|
style="fill:#88898a;fill-opacity:1;stroke-width:8.6995;stroke-linecap:round;stroke-linejoin:bevel"
|
||||||
|
id="rect1006"
|
||||||
|
width="57.523178"
|
||||||
|
height="4.3905053"
|
||||||
|
x="699.83862"
|
||||||
|
y="352.95276" />
|
||||||
|
<rect
|
||||||
|
style="fill:#88898a;fill-opacity:1;stroke-width:8.6995;stroke-linecap:round;stroke-linejoin:bevel"
|
||||||
|
id="rect1006-3"
|
||||||
|
width="57.523178"
|
||||||
|
height="4.3905053"
|
||||||
|
x="1078.1278"
|
||||||
|
y="352.95276" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 27 KiB |
@ -1,40 +1,52 @@
|
|||||||
|
// Some values in this configuration will be overriden by
|
||||||
|
// options when awesome runs rofi.
|
||||||
|
//
|
||||||
|
// See util.lua in this module.
|
||||||
|
|
||||||
|
* {
|
||||||
|
// Basic colors
|
||||||
|
transparent: #00000000;
|
||||||
|
background: #000000FF;
|
||||||
|
foreground: #F2F2F2EE;
|
||||||
|
|
||||||
|
// lightening transparency
|
||||||
|
overlay-white: #F2F2F211;
|
||||||
|
|
||||||
|
background-selected: #F2F2F245;
|
||||||
|
background-active: #F2F2F230;
|
||||||
|
urgent: #E91E6366;
|
||||||
|
urgent-selected: #E91E6377;
|
||||||
|
}
|
||||||
|
|
||||||
configuration {
|
configuration {
|
||||||
font: "Inter Regular 10";
|
font: "Astra Sans 25";
|
||||||
|
|
||||||
show-icons: true;
|
show-icons: true;
|
||||||
icon-theme: "Papirus";
|
icon-theme: "Papirus";
|
||||||
drun-display-format: "{name}";
|
drun-display-format: "{name}";
|
||||||
fullscreen: false;
|
fullscreen: false;
|
||||||
threads: 0;
|
|
||||||
matching: "fuzzy";
|
matching: "fuzzy";
|
||||||
scroll-method: 1;
|
scroll-method: 1;
|
||||||
disable-history: false;
|
disable-history: false;
|
||||||
fullscreen: false;
|
fullscreen: false;
|
||||||
window-thumbnail: true;
|
window-thumbnail: true;
|
||||||
}
|
drun-match-fields: "exec, name";
|
||||||
|
|
||||||
* {
|
|
||||||
transparent: #00000000;
|
|
||||||
background: #000000FF;
|
|
||||||
foreground: #F2F2F2EE;
|
|
||||||
background-selected: #F2F2F245;
|
|
||||||
background-active: #F2F2F230;
|
|
||||||
background-white: #F2F2F211;
|
|
||||||
background-black: #00000066;
|
|
||||||
urgent: #E91E6366;
|
|
||||||
urgent-selected: #E91E6377;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window {
|
window {
|
||||||
|
// Overridden by awesome
|
||||||
|
y-offset: -50px;
|
||||||
|
|
||||||
|
height: 50%;
|
||||||
|
width: 25%;
|
||||||
|
|
||||||
transparency: "real";
|
transparency: "real";
|
||||||
background-color: @background;
|
background-color: @background;
|
||||||
location: southwest;
|
location: southwest;
|
||||||
anchor: southwest;
|
anchor: southwest;
|
||||||
x-offset: 4px;
|
|
||||||
y-offset: -50px;
|
|
||||||
height: 500px;
|
|
||||||
width: 400px;
|
|
||||||
orientation: vertical;
|
orientation: vertical;
|
||||||
border-radius: 5px;
|
border-radius: 0px;
|
||||||
|
x-offset: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt {
|
prompt {
|
||||||
@ -42,9 +54,10 @@ prompt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
font: "FantasqueSansMono Nerd Font 25";
|
||||||
|
|
||||||
action: "ok";
|
action: "ok";
|
||||||
str: " ";
|
str: " ";
|
||||||
font: "FantasqueSansMono Nerd Font 11";
|
|
||||||
expand: false;
|
expand: false;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
@ -53,7 +66,9 @@ button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
entry {
|
entry {
|
||||||
font: "Inter Regular 11";
|
// Overridden by awesome
|
||||||
|
font: "Astra Sans 25";
|
||||||
|
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
expand: true;
|
expand: true;
|
||||||
@ -61,7 +76,7 @@ entry {
|
|||||||
horizontal-align: 0.5;
|
horizontal-align: 0.5;
|
||||||
placeholder: "Search";
|
placeholder: "Search";
|
||||||
placeholder-color: @foreground;
|
placeholder-color: @foreground;
|
||||||
blink: true;
|
cursor: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
case-indicator {
|
case-indicator {
|
||||||
@ -74,18 +89,17 @@ case-indicator {
|
|||||||
entry-wrapper {
|
entry-wrapper {
|
||||||
orientation: horizontal;
|
orientation: horizontal;
|
||||||
vertical-align: 0.5;
|
vertical-align: 0.5;
|
||||||
spacing: 4px;
|
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
children: [ button, entry, case-indicator ];
|
children: [ button, entry, case-indicator ];
|
||||||
}
|
}
|
||||||
|
|
||||||
inputbar {
|
inputbar {
|
||||||
background-color: @background-white;
|
background-color: @overlay-white;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
expand: false;
|
expand: false;
|
||||||
border-radius: 24px;
|
border-radius: 2mm;
|
||||||
margin: 0px 0px 0px 0px;
|
margin: 0px 0px 0px 0px;
|
||||||
padding: 10px 10px 10px 10px;
|
padding: 3mm 3mm 3mm 3mm;
|
||||||
position: north;
|
position: north;
|
||||||
children: [ entry-wrapper ];
|
children: [ entry-wrapper ];
|
||||||
}
|
}
|
||||||
@ -93,30 +107,39 @@ inputbar {
|
|||||||
listview {
|
listview {
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
columns: 1;
|
columns: 1;
|
||||||
spacing: 5px;
|
spacing: 2mm;
|
||||||
cycle: false;
|
cycle: false;
|
||||||
dynamic: true;
|
dynamic: false;
|
||||||
layout: vertical;
|
layout: vertical;
|
||||||
|
scrollbar: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar {
|
||||||
|
background-color: @overlay-white;
|
||||||
|
handle-color: @foreground;
|
||||||
|
handle-width: 2mm;
|
||||||
|
width: 3px;
|
||||||
|
padding: 1mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
mainbox {
|
mainbox {
|
||||||
background-color: @background-black;
|
background-color: @background;
|
||||||
children: [listview, inputbar ];
|
children: [ listview, inputbar ];
|
||||||
spacing: 25px;
|
spacing: 10mm;
|
||||||
padding: 40px 25px 25px 25px;
|
padding: 15mm 15mm 15mm 15mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
element {
|
element {
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
orientation: horizontal;
|
orientation: horizontal;
|
||||||
border-radius: 6px;
|
border-radius: 0mm;
|
||||||
padding: 5px 10px 5px 10px;
|
padding: 2mm 2mm 2mm 2mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
element-icon {
|
element-icon {
|
||||||
size: 36px;
|
size: 16mm;
|
||||||
border: 0;
|
border: 0mm;
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
text-color: inherit;
|
text-color: inherit;
|
||||||
}
|
}
|
||||||
@ -125,7 +148,7 @@ element-text {
|
|||||||
expand: true;
|
expand: true;
|
||||||
horizontal-align: 0;
|
horizontal-align: 0;
|
||||||
vertical-align: 0.5;
|
vertical-align: 0.5;
|
||||||
margin: 0 10px 0 10px;
|
margin: 2mm 2mm 2mm 2mm;
|
||||||
background-color: @transparent;
|
background-color: @transparent;
|
||||||
text-color: inherit;
|
text-color: inherit;
|
||||||
}
|
}
|
||||||
@ -134,7 +157,6 @@ element normal.urgent,
|
|||||||
element alternate.urgent {
|
element alternate.urgent {
|
||||||
background-color: @urgent;
|
background-color: @urgent;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
border-radius: 9px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
element normal.active,
|
element normal.active,
|
||||||
|
@ -3,7 +3,13 @@ local launcher = {}
|
|||||||
local conf = conf_dir .. "modules/launcher/launcher.rasi"
|
local conf = conf_dir .. "modules/launcher/launcher.rasi"
|
||||||
|
|
||||||
launcher.launcher = function()
|
launcher.launcher = function()
|
||||||
awful.spawn("rofi -show drun -theme \"" .. conf .. "\"")
|
awful.spawn(
|
||||||
|
"rofi -show drun " ..
|
||||||
|
"-theme \"" .. conf .. "\" " ..
|
||||||
|
-- Override y-offset so rofi
|
||||||
|
-- sits right above the bar.
|
||||||
|
"-theme-str \"#window{ y-offset: -" .. beautiful.dpi(config.core.bar_height) .. "; }\""
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
return launcher
|
return launcher
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
local launcher = req_rel(..., "util")
|
local launcher = req_rel(..., "util")
|
||||||
local widget = {}
|
local widget = {}
|
||||||
|
|
||||||
|
|
||||||
widget.icon = wibox.widget {
|
widget.icon = wibox.widget {
|
||||||
resize = true,
|
resize = true,
|
||||||
image = beautiful.icons.launcher,
|
image = beautiful.icons[config.launcher.icon],
|
||||||
widget = wibox.widget.imagebox
|
widget = wibox.widget.imagebox
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,7 +32,6 @@ widget.widget = wibox.widget {
|
|||||||
|
|
||||||
widget.widget:connect_signal("mouse::enter", function(result)
|
widget.widget:connect_signal("mouse::enter", function(result)
|
||||||
widget.widget.bg = beautiful.color.bar.hover_bg
|
widget.widget.bg = beautiful.color.bar.hover_bg
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::leave", function(result)
|
widget.widget:connect_signal("mouse::leave", function(result)
|
||||||
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
3
modules/lock/dm-tool.bash
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
dm-tool lock
|
@ -1,9 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
icon=$1
|
icon="./arch.png"
|
||||||
tmpbg="/tmp/lockscreen.png"
|
tmpbg="/tmp/lockscreen.png"
|
||||||
tmpic="/tmp/lockscreenicon.png"
|
tmpic="/tmp/lockscreenicon.png"
|
||||||
#(( $# )) && { icon=$1; }
|
|
||||||
|
|
||||||
scrot --overwrite "$tmpbg"
|
scrot --overwrite "$tmpbg"
|
||||||
convert "$icon" -scale 25% "$tmpic"
|
convert "$icon" -scale 25% "$tmpic"
|
17
modules/lock/init.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
return {
|
||||||
|
keybinds = gears.table.join(
|
||||||
|
awful.key( {"Mod4"}, "l",
|
||||||
|
function ()
|
||||||
|
awful.spawn(
|
||||||
|
conf_dir .. "modules/lock/" .. config.lock.type .. ".bash",
|
||||||
|
false
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "Lock screen",
|
||||||
|
group = "System"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
@ -2,14 +2,18 @@ local util = {}
|
|||||||
|
|
||||||
util.mpc_command = function(command, callback)
|
util.mpc_command = function(command, callback)
|
||||||
awful.spawn.easy_async(
|
awful.spawn.easy_async(
|
||||||
"mpc --host " .. config.mpc.host .. " " .. command,
|
"mpc --host " .. config.mpc.host .. " "
|
||||||
|
.. "--port " .. config.mpc.port .. " "
|
||||||
|
.. command,
|
||||||
callback
|
callback
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
util.mpc_watch = function(command, timeout, callback, widget)
|
util.mpc_watch = function(command, timeout, callback, widget)
|
||||||
awful.widget.watch(
|
awful.widget.watch(
|
||||||
"mpc --host " .. config.mpc.host .. " " .. command,
|
"mpc --host " .. config.mpc.host .. " "
|
||||||
|
.. "--port " .. config.mpc.port .. " "
|
||||||
|
.. command,
|
||||||
timeout,
|
timeout,
|
||||||
callback,
|
callback,
|
||||||
widget
|
widget
|
||||||
|
@ -4,21 +4,21 @@ local mpc_widget = {}
|
|||||||
mpc_widget.title = wibox.widget.textbox("MPD is not")
|
mpc_widget.title = wibox.widget.textbox("MPD is not")
|
||||||
mpc_widget.title.valign = "center"
|
mpc_widget.title.valign = "center"
|
||||||
mpc_widget.title.align = "left"
|
mpc_widget.title.align = "left"
|
||||||
mpc_widget.title.font = "Hack NF 12"
|
mpc_widget.title.font = config.core.font.normal
|
||||||
mpc_widget.title.ellipsize = "end"
|
mpc_widget.title.ellipsize = "end"
|
||||||
mpc_widget.title.forced_width = beautiful.dpi(config.mpc.width)
|
mpc_widget.title.forced_width = beautiful.dpi(config.mpc.width)
|
||||||
|
|
||||||
mpc_widget.artist = wibox.widget.textbox("connected")
|
mpc_widget.artist = wibox.widget.textbox("connected")
|
||||||
mpc_widget.artist.valign = "center"
|
mpc_widget.artist.valign = "center"
|
||||||
mpc_widget.artist.align = "left"
|
mpc_widget.artist.align = "left"
|
||||||
mpc_widget.artist.font = "Hack NF 12"
|
mpc_widget.artist.font = config.core.font.normal
|
||||||
mpc_widget.artist.ellipsize = "end"
|
mpc_widget.artist.ellipsize = "end"
|
||||||
mpc_widget.artist.forced_width = beautiful.dpi(config.mpc.width)
|
mpc_widget.artist.forced_width = beautiful.dpi(config.mpc.width)
|
||||||
|
|
||||||
mpc_widget.volume = wibox.widget.textbox("??")
|
mpc_widget.volume = wibox.widget.textbox("??")
|
||||||
mpc_widget.volume.valign = "center"
|
mpc_widget.volume.valign = "center"
|
||||||
mpc_widget.volume.align = "left"
|
mpc_widget.volume.align = "left"
|
||||||
mpc_widget.volume.font = "Hack NF 10"
|
mpc_widget.volume.font = config.core.font.normal_small
|
||||||
mpc_widget.volume.ellipsize = "end"
|
mpc_widget.volume.ellipsize = "end"
|
||||||
mpc_widget.volume.forced_width = beautiful.dpi(10)
|
mpc_widget.volume.forced_width = beautiful.dpi(10)
|
||||||
|
|
||||||
@ -67,21 +67,23 @@ mpc_widget.right = wibox.widget {
|
|||||||
|
|
||||||
mpc_widget.widget = wibox.widget {
|
mpc_widget.widget = wibox.widget {
|
||||||
{
|
{
|
||||||
{ -- Right spacer
|
{
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
|
|
||||||
mpc_widget.left,
|
mpc_widget.left,
|
||||||
mpc_widget.right,
|
mpc_widget.right,
|
||||||
|
|
||||||
{ -- Left spacer
|
forced_num_cols = 2,
|
||||||
widget = wibox.widget.separator,
|
forced_num_rows = 1,
|
||||||
color = beautiful.color.transparent,
|
homogeneous = false,
|
||||||
forced_width = beautiful.dpi(3)
|
vertical_homogenous = true;
|
||||||
|
horizontal_homogenous = false;
|
||||||
|
expand = true,
|
||||||
|
layout = wibox.layout.grid
|
||||||
},
|
},
|
||||||
layout = wibox.layout.align.horizontal,
|
|
||||||
|
top = 0, bottom = 0,
|
||||||
|
left = beautiful.dpi(2),
|
||||||
|
right = beautiful.dpi(2),
|
||||||
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
layout = wibox.container.background,
|
layout = wibox.container.background,
|
||||||
}
|
}
|
||||||
@ -130,6 +132,20 @@ mpc_widget.left:connect_signal("button::press",
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
--[[
|
||||||
|
function pango.escape(text)
|
||||||
|
local replacements = {
|
||||||
|
["&"] = "&",
|
||||||
|
["<"] = "<",
|
||||||
|
[">"] = ">",
|
||||||
|
["\""] = """,
|
||||||
|
["'"] = "'",
|
||||||
|
}
|
||||||
|
return string.gsub(text, "[&<>'\"]", replacements)
|
||||||
|
end
|
||||||
|
]]--
|
||||||
|
|
||||||
mpc_widget.readupdate = function()
|
mpc_widget.readupdate = function()
|
||||||
-- Update title and artist
|
-- Update title and artist
|
||||||
mpc.mpc_command("current --format \"title=%title% artist=%artist%\"",
|
mpc.mpc_command("current --format \"title=%title% artist=%artist%\"",
|
||||||
@ -138,8 +154,8 @@ mpc_widget.readupdate = function()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
mpc_widget.title.markup = string.match(stdout, "title=(.*)artist=")
|
mpc_widget.title.text = string.match(stdout, "title=(.*)artist=")
|
||||||
mpc_widget.artist.markup = string.match(stdout, "artist=(.*)")
|
mpc_widget.artist.text = string.match(stdout, "artist=(.*)")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -158,11 +174,12 @@ mpc_widget.readupdate = function()
|
|||||||
mpc_widget.icon_play.image = beautiful.icons.music.blue.stopped
|
mpc_widget.icon_play.image = beautiful.icons.music.blue.stopped
|
||||||
end
|
end
|
||||||
|
|
||||||
local volume = string.match(stdout, "volume: (%d?%d?%d)%%")
|
local volume = string.match(stdout, "volume: ?(%d?%d?%d)%%")
|
||||||
|
|
||||||
if (volume) then
|
if (volume) then
|
||||||
mpc_widget.volume.markup = volume .. "%"
|
mpc_widget.volume.text = volume .. "%"
|
||||||
else
|
else
|
||||||
mpc_widget.volume.markup = ""
|
mpc_widget.volume.text = ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
6
modules/picom/init.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
init = function()
|
||||||
|
local conf = conf_dir .. "/modules/picom/picom.conf"
|
||||||
|
awful.spawn("picom -b --experimental-backends --conf \"" .. conf .. "\"")
|
||||||
|
end
|
||||||
|
}
|
29
modules/picom/picom.conf
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shadow-radius = 0;
|
||||||
|
shadow-opacity = 0;
|
||||||
|
|
||||||
|
// Enable fading initially.
|
||||||
|
// Finer config is in fade-exclude.
|
||||||
|
fading = true
|
||||||
|
fade-in-step = 0.1;
|
||||||
|
fade-out-step = 0.03;
|
||||||
|
fade-delta = 5;
|
||||||
|
|
||||||
|
fade-exclude = [
|
||||||
|
"class_g != 'awesome'"
|
||||||
|
];
|
||||||
|
|
||||||
|
backend = "glx";
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
blur-background-frame = false;
|
||||||
|
blur: {
|
||||||
|
method = "dual_kawase";
|
||||||
|
strength = 3;
|
||||||
|
};
|
||||||
|
blur-exclude = [
|
||||||
|
"class_g != 'awesome'"
|
||||||
|
];
|
||||||
|
|
||||||
|
inactive-opacity = 1;
|
||||||
|
active-opacity = 1;
|
||||||
|
inactive-dim = 0;
|
||||||
|
|
@ -1,37 +1,65 @@
|
|||||||
|
local function screenshot_action(mode)
|
||||||
local script = conf_dir .. "modules/screenshot/screenshot.fish"
|
awful.spawn(
|
||||||
script = script .. " "
|
"fish " .. conf_dir .. "modules/screenshot/screenshot.fish " .. mode,
|
||||||
|
false
|
||||||
local function capture(source, target)
|
)
|
||||||
awful.spawn(script .. "capture " .. source .. " " .. target, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function flameshot()
|
|
||||||
awful.spawn("flameshot gui", false)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
keybinds = gears.table.join(
|
keybinds = gears.table.join(
|
||||||
awful.key( {"Control"}, "Print",
|
|
||||||
function ()
|
|
||||||
capture("region", "ocr")
|
|
||||||
end,
|
|
||||||
|
|
||||||
{
|
|
||||||
description = "OCR a region to the clipboard",
|
|
||||||
group = "Desktop"
|
|
||||||
}
|
|
||||||
),
|
|
||||||
|
|
||||||
awful.key( {}, "Print",
|
awful.key( {}, "Print",
|
||||||
function ()
|
function ()
|
||||||
flameshot()
|
screenshot_action("normal")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
{
|
{
|
||||||
description = "Take a screenshot",
|
description = "Take a screenshot",
|
||||||
group = "Desktop"
|
group = "Screenshot"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Control", "Shift"}, "Print",
|
||||||
|
function ()
|
||||||
|
screenshot_action("ocr-rus")
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "OCR Capture (Russian)",
|
||||||
|
group = "Screenshot"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Control"}, "Print",
|
||||||
|
function ()
|
||||||
|
screenshot_action("ocr-eng")
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "OCR Capture (English)",
|
||||||
|
group = "Screenshot"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Shift"}, "Print",
|
||||||
|
function ()
|
||||||
|
screenshot_action("pin")
|
||||||
|
end,
|
||||||
|
|
||||||
|
{
|
||||||
|
description = "Pin a screenshot",
|
||||||
|
group = "Screenshot"
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
awful.key( {"Mod1"}, "Print",
|
||||||
|
function ()
|
||||||
|
-- Make sure your default printer is set in CUPS!
|
||||||
|
screenshot_action("lpr")
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Print a screenshot",
|
||||||
|
group = "Screenshot"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
68
modules/screenshot/screenshot.fish
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/fish
|
||||||
|
#
|
||||||
|
# Screenshot wrapper
|
||||||
|
#
|
||||||
|
# Usage: ./screenshot.fish [action]
|
||||||
|
# Actions:
|
||||||
|
# Normal: regular flameshot
|
||||||
|
# Pin: flameshot fast pin
|
||||||
|
# OCR: flameshot -> tesseract -> xclip, no save.
|
||||||
|
|
||||||
|
|
||||||
|
function capture
|
||||||
|
# Screenshot save location
|
||||||
|
set dest $HOME/Screenshots/
|
||||||
|
|
||||||
|
#set tmp_file (mktemp --tmpdir "scrot-tmp-XXX.png")
|
||||||
|
set tmp_file "/tmp/screenshot-tmp.png"
|
||||||
|
|
||||||
|
switch $argv[1]
|
||||||
|
case normal
|
||||||
|
flameshot gui
|
||||||
|
|
||||||
|
case pin
|
||||||
|
flameshot gui --accept-on-select --pin
|
||||||
|
|
||||||
|
case ocr-eng
|
||||||
|
flameshot gui --accept-on-select --path $tmp_file
|
||||||
|
|
||||||
|
# Recognize text
|
||||||
|
set ocr (tesseract --dpi 96 -l eng $tmp_file stdout)
|
||||||
|
|
||||||
|
# Trim whitespace and copy to clipboard
|
||||||
|
echo $ocr | sed -e "s/^[ \t]*//" | xclip -i -rmlastnl -selection clipboard
|
||||||
|
rm $tmp_file
|
||||||
|
|
||||||
|
case ocr-rus
|
||||||
|
flameshot gui --accept-on-select --path $tmp_file
|
||||||
|
|
||||||
|
# Recognize text
|
||||||
|
set ocr (tesseract --dpi 96 -l rus $tmp_file stdout)
|
||||||
|
|
||||||
|
# Trim whitespace and copy to clipboard
|
||||||
|
echo $ocr | sed -e "s/^[ \t]*//" | xclip -i -rmlastnl -selection clipboard
|
||||||
|
rm $tmp_file
|
||||||
|
|
||||||
|
case lpr
|
||||||
|
# Default printer must be set for the lpr command to work.
|
||||||
|
|
||||||
|
# TODO: don't lpr if screenshot is cancelled.
|
||||||
|
flameshot gui --accept-on-select --path $tmp_file
|
||||||
|
convert $tmp_file $tmp_file.pdf
|
||||||
|
lpr -T "Autoprint Screenshot" $tmp_file.pdf
|
||||||
|
|
||||||
|
rm $tmp_file
|
||||||
|
rm $tmp_file.pdf
|
||||||
|
|
||||||
|
case "*"
|
||||||
|
echo "Unknown action \"$argv[1]\""
|
||||||
|
echo ""
|
||||||
|
echo "Usage: screenshot.fish [action]"
|
||||||
|
echo " Valid actions: normal, pin, ocr"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
capture $argv
|
@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/fish
|
|
||||||
#
|
|
||||||
# Screenshot wrapper
|
|
||||||
#
|
|
||||||
# Take a screenshot of a
|
|
||||||
# region, window, or screen
|
|
||||||
# and
|
|
||||||
# save it to $dest
|
|
||||||
# copy it to the clipboard
|
|
||||||
# pipe it through tesseract and xclip the result
|
|
||||||
|
|
||||||
|
|
||||||
function capture
|
|
||||||
# Screenshot save location
|
|
||||||
set dest $HOME/Screenshots/
|
|
||||||
|
|
||||||
#set tmp_file (mktemp --tmpdir "scrot-tmp-XXX.png")
|
|
||||||
set tmp_file "/tmp/scrot-tmp.png"
|
|
||||||
|
|
||||||
# Capture the desired portion of the screen
|
|
||||||
switch $argv[1]
|
|
||||||
case window
|
|
||||||
scrot --overwrite --silent --focused $tmp_file
|
|
||||||
case screen
|
|
||||||
scrot --overwrite --silent $tmp_file
|
|
||||||
case region
|
|
||||||
scrot --overwrite --silent --select --freeze --line style=dash,width=2 $tmp_file
|
|
||||||
case "*"
|
|
||||||
echo "Unknown source \"$argv[1]\""
|
|
||||||
echo ""
|
|
||||||
echo "Usage: capture [source] [target]"
|
|
||||||
echo " Valid sources: window, screen, region"
|
|
||||||
echo " Valid targets: save, copy, ocr"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
# Output to the desired location
|
|
||||||
switch $argv[2]
|
|
||||||
case save
|
|
||||||
set fname (md5sum $tmp_file | cut -c 1-32)
|
|
||||||
mv $tmp_file "$dest$fname.png"
|
|
||||||
|
|
||||||
case copy
|
|
||||||
# Don't use the mktmp file here, since we can't clean
|
|
||||||
# it away immediately. Use the fixed /tmp/scrot-clip insead.
|
|
||||||
# (Only applicable when a mktemp file is being used)
|
|
||||||
#rm $tmp_file
|
|
||||||
#set tmp_file /tmp/scrot-clip.png
|
|
||||||
|
|
||||||
xclip -i -selection clipboard -t "image/png" $tmp_file
|
|
||||||
|
|
||||||
case ocr
|
|
||||||
# Recognize text
|
|
||||||
set ocr (tesseract --dpi 96 -l eng $tmp_file stdout)
|
|
||||||
|
|
||||||
# Trim whitespace and copy to clipboard
|
|
||||||
echo $ocr | sed -e "s/^[ \t]*//" | xclip -i -rmlastnl -selection clipboard
|
|
||||||
rm $tmp_file
|
|
||||||
|
|
||||||
case "*"
|
|
||||||
echo "Unknown target \"$argv[2]\""
|
|
||||||
echo ""
|
|
||||||
echo "Usage: capture [source] [target]"
|
|
||||||
echo " Valid sources: window, screen, region"
|
|
||||||
echo " Valid targets: save, copy, ocr"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
# Awesomewm refuses to execute this without a sleep.
|
|
||||||
sleep 0.1
|
|
||||||
capture $argv
|
|
@ -9,7 +9,7 @@ local function make_shortcut(command, icon)
|
|||||||
{
|
{
|
||||||
wibox.widget {
|
wibox.widget {
|
||||||
resize = true,
|
resize = true,
|
||||||
image = config.core.app_icon_dir .. icon,
|
image = beautiful.app_icons[icon],
|
||||||
widget = wibox.widget.imagebox
|
widget = wibox.widget.imagebox
|
||||||
},
|
},
|
||||||
top = beautiful.dpi(3),
|
top = beautiful.dpi(3),
|
||||||
|
@ -8,8 +8,8 @@ textclock.widget = wibox.widget {
|
|||||||
forced_width = beautiful.dpi(3)
|
forced_width = beautiful.dpi(3)
|
||||||
},
|
},
|
||||||
wibox.widget {
|
wibox.widget {
|
||||||
wibox.widget.textclock("%m/%d"),
|
wibox.widget.textclock("<span font=\"" .. config.core.font.normal .. "\">%m/%d</span>"),
|
||||||
wibox.widget.textclock("%I:%M", 60),
|
wibox.widget.textclock("<span font=\"" .. config.core.font.normal .. "\">%I:%M</span>", 60),
|
||||||
|
|
||||||
-- Long format:
|
-- Long format:
|
||||||
-- wibox.widget.textclock("%m/%d/%y"),
|
-- wibox.widget.textclock("%m/%d/%y"),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
local volume = require("modules.volume.util")
|
local volume = require("modules.volume.util")
|
||||||
local widget = require("modules.volume.widget")
|
local popup = require("modules.volume.popup")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
widget = require("modules.volume.widget").widget,
|
widget = require("modules.volume.widget").widget,
|
||||||
@ -7,8 +7,11 @@ return {
|
|||||||
|
|
||||||
init = function ()
|
init = function ()
|
||||||
-- Make sure volume is unmuted
|
-- Make sure volume is unmuted
|
||||||
volume.commands:unmute()
|
-- Implicitly updates widgets
|
||||||
-- Update volume widget at start
|
volume.commands.unmute()
|
||||||
volume.commands:get(widget.update)
|
end,
|
||||||
|
|
||||||
|
for_each_screen = function (s)
|
||||||
|
popup(s)
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,8 @@ local volume = req_rel(..., "util")
|
|||||||
return gears.table.join(
|
return gears.table.join(
|
||||||
awful.key( {}, "XF86AudioRaiseVolume",
|
awful.key( {}, "XF86AudioRaiseVolume",
|
||||||
function ()
|
function ()
|
||||||
volume.volume_up()
|
volume.volume_up(config.volume.button_step)
|
||||||
|
--awesome.emit_signal("module::volume:popup_show")
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "Volume up",
|
description = "Volume up",
|
||||||
@ -13,7 +14,8 @@ return gears.table.join(
|
|||||||
|
|
||||||
awful.key( {}, "XF86AudioLowerVolume",
|
awful.key( {}, "XF86AudioLowerVolume",
|
||||||
function ()
|
function ()
|
||||||
volume.volume_down()
|
volume.volume_down(config.volume.button_step)
|
||||||
|
--awesome.emit_signal("module::volume:popup_show")
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "Volume down",
|
description = "Volume down",
|
||||||
@ -24,6 +26,7 @@ return gears.table.join(
|
|||||||
awful.key( {}, "XF86AudioMute",
|
awful.key( {}, "XF86AudioMute",
|
||||||
function ()
|
function ()
|
||||||
volume.toggle_mute()
|
volume.toggle_mute()
|
||||||
|
--awesome.emit_signal("module::volume:popup_show")
|
||||||
end,
|
end,
|
||||||
{
|
{
|
||||||
description = "Mute",
|
description = "Mute",
|
||||||
|
247
modules/volume/popup.lua
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
local volume = req_rel(..., "util")
|
||||||
|
|
||||||
|
return function(s)
|
||||||
|
local widget = wibox.widget {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{ -- Icon and margins
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
id = "icon",
|
||||||
|
forced_height = beautiful.dpi(100),
|
||||||
|
image = beautiful.icons.volume.high,
|
||||||
|
widget = wibox.widget.imagebox
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
expand = "none",
|
||||||
|
id = "icon_margin2",
|
||||||
|
layout = wibox.layout.align.vertical
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
id = "icon_margin1",
|
||||||
|
expand = "none",
|
||||||
|
layout = wibox.layout.align.horizontal
|
||||||
|
},
|
||||||
|
{ -- Text and percentage
|
||||||
|
{
|
||||||
|
id = "label",
|
||||||
|
text = "Volume",
|
||||||
|
align = "left",
|
||||||
|
valign = "center",
|
||||||
|
widget = wibox.widget.textbox
|
||||||
|
},
|
||||||
|
nil,
|
||||||
|
{
|
||||||
|
id = "value",
|
||||||
|
text = "0%",
|
||||||
|
align = "center",
|
||||||
|
valign = "center",
|
||||||
|
widget = wibox.widget.textbox
|
||||||
|
},
|
||||||
|
id = "label_value_layout",
|
||||||
|
forced_height = beautiful.dpi(48),
|
||||||
|
layout = wibox.layout.align.horizontal,
|
||||||
|
},
|
||||||
|
{ -- Progress bar
|
||||||
|
{
|
||||||
|
id = "volume_bar",
|
||||||
|
shape = gears.shape.rounded_bar,
|
||||||
|
forced_height = beautiful.dpi(10),
|
||||||
|
background_color = "#AAAAAA88",
|
||||||
|
bar_color = "#ffffff",
|
||||||
|
color = "#ffffff",
|
||||||
|
bar_shape = gears.shape.rounded_bar,
|
||||||
|
max_value = 100,
|
||||||
|
widget = wibox.widget.progressbar
|
||||||
|
},
|
||||||
|
id = "bar_layout",
|
||||||
|
forced_height = beautiful.dpi(24),
|
||||||
|
widget = wibox.container.place
|
||||||
|
},
|
||||||
|
id = "icon_bar_layout",
|
||||||
|
spacing = beautiful.dpi(0),
|
||||||
|
layout = wibox.layout.align.vertical
|
||||||
|
},
|
||||||
|
id = "popup_layout",
|
||||||
|
layout = wibox.layout.align.vertical,
|
||||||
|
},
|
||||||
|
id = "container",
|
||||||
|
left = beautiful.dpi(20),
|
||||||
|
right = beautiful.dpi(20),
|
||||||
|
top = beautiful.dpi(10),
|
||||||
|
bottom = beautiful.dpi(10),
|
||||||
|
widget = wibox.container.margin
|
||||||
|
},
|
||||||
|
bg ="#000000FF",
|
||||||
|
widget = wibox.container.background,
|
||||||
|
ontop = true,
|
||||||
|
visible = true,
|
||||||
|
type = "notification",
|
||||||
|
forced_height = beautiful.dpi(180),
|
||||||
|
forced_width = beautiful.dpi(300),
|
||||||
|
offset = beautiful.dpi(5),
|
||||||
|
}
|
||||||
|
|
||||||
|
local popup_container = awful.popup {
|
||||||
|
widget = wibox.container.background,
|
||||||
|
ontop = true,
|
||||||
|
bg = "#00000000",
|
||||||
|
stretch = false,
|
||||||
|
visible = false,
|
||||||
|
screen = s,
|
||||||
|
|
||||||
|
placement = function(c)
|
||||||
|
awful.placement.bottom_right(
|
||||||
|
c,
|
||||||
|
{
|
||||||
|
honor_workarea = true,
|
||||||
|
margins = {
|
||||||
|
top = beautiful.dpi(200)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Only set corner radius here.
|
||||||
|
shape = function(cr, width, height)
|
||||||
|
gears.shape.partially_rounded_rect(
|
||||||
|
cr,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
beautiful.dpi(20)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
popup_container:setup {
|
||||||
|
widget,
|
||||||
|
layout = wibox.layout.fixed.horizontal
|
||||||
|
}
|
||||||
|
|
||||||
|
local hide_popup_timer = gears.timer {
|
||||||
|
timeout = 1,
|
||||||
|
autostart = true,
|
||||||
|
callback = function()
|
||||||
|
popup_container.visible = false
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
awesome.connect_signal("module::all:popup_hide",
|
||||||
|
function(except)
|
||||||
|
if (except == "volume") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
popup_container.visible = false
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
awesome.connect_signal("module::volume:update",
|
||||||
|
function(status)
|
||||||
|
|
||||||
|
-- Update slider
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
bar_layout.
|
||||||
|
volume_bar:set_value(status.value)
|
||||||
|
|
||||||
|
-- Update text
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
label_value_layout.
|
||||||
|
value:set_text(status.value .. "%")
|
||||||
|
|
||||||
|
-- Update icon
|
||||||
|
local icon
|
||||||
|
if status.mute then
|
||||||
|
icon = beautiful.icons.volume.mute
|
||||||
|
elseif status.value < 1 then
|
||||||
|
icon = beautiful.icons.volume.off
|
||||||
|
elseif status.value >= 1 and status.value < 34 then
|
||||||
|
icon = beautiful.icons.volume.low
|
||||||
|
elseif status.value >= 34 and status.value < 67 then
|
||||||
|
icon = beautiful.icons.volume.medium
|
||||||
|
elseif status.value >= 67 then
|
||||||
|
icon = beautiful.icons.volume.high
|
||||||
|
end
|
||||||
|
|
||||||
|
widget.
|
||||||
|
container.
|
||||||
|
popup_layout.
|
||||||
|
icon_bar_layout.
|
||||||
|
icon_margin1.
|
||||||
|
icon_margin2.
|
||||||
|
icon:set_image(icon)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
awesome.connect_signal("module::volume:popup_show",
|
||||||
|
function()
|
||||||
|
awesome.emit_signal("module::all:popup_hide", "volume")
|
||||||
|
if s == mouse.screen then
|
||||||
|
popup_container.visible = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:again()
|
||||||
|
else
|
||||||
|
hide_popup_timer:start()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
awesome.connect_signal("module::volume:popup_show_stay",
|
||||||
|
function()
|
||||||
|
awesome.emit_signal("module::all:popup_hide", "volume")
|
||||||
|
if s == mouse.screen then
|
||||||
|
popup_container.visible = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if hide_popup_timer.started then
|
||||||
|
hide_popup_timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
popup_container:connect_signal("button::press",
|
||||||
|
function(_, _, _, button, mods)
|
||||||
|
-- Left-click
|
||||||
|
if (button == 1) then
|
||||||
|
volume.toggle_mute()
|
||||||
|
|
||||||
|
-- Scroll up
|
||||||
|
elseif (button == 4) then
|
||||||
|
volume.volume_up(config.volume.scroll_step)
|
||||||
|
|
||||||
|
-- Scroll down
|
||||||
|
elseif (button == 5) then
|
||||||
|
volume.volume_down(config.volume.scroll_step)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
popup_container:connect_signal("mouse::enter", function(result)
|
||||||
|
awesome.emit_signal("module::volume:popup_show_stay")
|
||||||
|
end)
|
||||||
|
|
||||||
|
popup_container:connect_signal("mouse::leave", function(result)
|
||||||
|
awesome.emit_signal("module::volume:popup_show")
|
||||||
|
end)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
local volume = {}
|
local volume = {}
|
||||||
volume.commands = {}
|
|
||||||
|
|
||||||
|
|
||||||
-- Create pamixer option string
|
-- Create pamixer option string
|
||||||
@ -8,31 +8,82 @@ if (config.volume.pamixer_sink ~= "") then
|
|||||||
volume.pamixer_options = volume.pamixer_options .. " --sink " .. config.volume.pamixer_sink
|
volume.pamixer_options = volume.pamixer_options .. " --sink " .. config.volume.pamixer_sink
|
||||||
end
|
end
|
||||||
|
|
||||||
function volume.commands:up()
|
volume.commands = {
|
||||||
awful.spawn("pamixer --increase 5" .. volume.pamixer_options, false)
|
up = function(value, callback)
|
||||||
end
|
awful.spawn.easy_async(
|
||||||
|
"pamixer --increase " .. value .. " "
|
||||||
|
.. volume.pamixer_options,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::volume:update_read")
|
||||||
|
if (callback ~= nil) then
|
||||||
|
callback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
function volume.commands:down()
|
down = function(value, callback)
|
||||||
awful.spawn("pamixer --decrease 5" .. volume.pamixer_options, false)
|
awful.spawn.easy_async(
|
||||||
end
|
"pamixer --decrease " .. value .. " "
|
||||||
|
.. volume.pamixer_options,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::volume:update_read")
|
||||||
|
if (callback ~= nil) then
|
||||||
|
callback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
function volume.commands:set(value)
|
set = function(value, callback)
|
||||||
awful.spawn("pamixer --set_volume" .. tostring(value) .. " " .. volume.pamixer_options, false)
|
awful.spawn.easy_async(
|
||||||
end
|
"pamixer --set_volume " .. tostring(value) .. " " .. volume.pamixer_options,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::volume:update_read")
|
||||||
|
if (callback ~= nil) then
|
||||||
|
callback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
function volume.commands:mute()
|
mute = function(callback)
|
||||||
awful.spawn("pamixer --mute" .. volume.pamixer_options, false)
|
awful.spawn.easy_async(
|
||||||
end
|
"pamixer --mute " .. volume.pamixer_options,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::volume:update_read")
|
||||||
|
if (callback ~= nil) then
|
||||||
|
callback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
function volume.commands:unmute()
|
unmute = function(callback)
|
||||||
awful.spawn("pamixer --unmute" .. volume.pamixer_options, false)
|
awful.spawn.easy_async(
|
||||||
end
|
"pamixer --unmute " .. volume.pamixer_options,
|
||||||
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
|
awesome.emit_signal("module::volume:update_read")
|
||||||
|
if (callback ~= nil) then
|
||||||
|
callback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
function volume.commands:get(callback)
|
watch = function(timeout, callback, widget)
|
||||||
|
awful.widget.watch(
|
||||||
|
"pamixer --get-mute --get-volume " .. volume.pamixer_options,
|
||||||
|
timeout, callback, widget
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
|
get = function(callback)
|
||||||
local muted
|
local muted
|
||||||
local value
|
local value
|
||||||
|
|
||||||
awful.spawn.easy_async("pamixer --get-mute --get-volume" .. volume.pamixer_options,
|
awful.spawn.easy_async(
|
||||||
|
"pamixer --get-mute --get-volume " .. volume.pamixer_options,
|
||||||
function(stdout, stderr, exitreason, exitcode)
|
function(stdout, stderr, exitreason, exitcode)
|
||||||
muted = string.match(stdout, "(%w%w%w%w%w?) ") -- "true" or "false"
|
muted = string.match(stdout, "(%w%w%w%w%w?) ") -- "true" or "false"
|
||||||
muted = (muted == "true")
|
muted = (muted == "true")
|
||||||
@ -45,94 +96,62 @@ function volume.commands:get(callback)
|
|||||||
value = tonumber(string.format("% 3d", value))
|
value = tonumber(string.format("% 3d", value))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Value will be "false" if audio not connected,
|
||||||
|
-- needs to be handled gracefully
|
||||||
callback({
|
callback({
|
||||||
mute = muted,
|
mute = muted,
|
||||||
value = value
|
value = value
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
|
||||||
|
|
||||||
function volume.commands:watch(timeout, callback, widget)
|
|
||||||
awful.widget.watch(
|
|
||||||
"pamixer --get-mute --get-volume " .. volume.pamixer_options,
|
|
||||||
timeout, callback, widget
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
volume.hooks = {}
|
|
||||||
volume.add_hook = function(callback)
|
|
||||||
volume.hooks[#volume.hooks + 1] = callback
|
|
||||||
end
|
|
||||||
|
|
||||||
volume.exec_hooks = function()
|
|
||||||
volume.commands:get(function(status)
|
|
||||||
for i=1, #volume.hooks do
|
|
||||||
volume.hooks[i](status)
|
|
||||||
end
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
awesome.connect_signal("module::volume:update_read",
|
||||||
|
function()
|
||||||
|
volume.commands.get(
|
||||||
|
function(status)
|
||||||
|
awesome.emit_signal(
|
||||||
|
"module::volume:update",
|
||||||
|
status
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
volume.volume_up = function(value)
|
||||||
|
if volume.muted then
|
||||||
|
volume.unmute()
|
||||||
|
end
|
||||||
|
|
||||||
|
volume.commands.up(value, function()
|
||||||
|
core.sound.play("volume_up")
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
volume.volume_up = function()
|
volume.volume_down = function(value)
|
||||||
if volume.muted then
|
if volume.muted then
|
||||||
volume.unmute()
|
volume.unmute()
|
||||||
end
|
end
|
||||||
|
|
||||||
volume.commands:up()
|
volume.commands.down(value, function()
|
||||||
core.sound.play("volume_up")
|
|
||||||
|
|
||||||
volume.exec_hooks()
|
|
||||||
end
|
|
||||||
|
|
||||||
volume.volume_down = function()
|
|
||||||
if volume.muted then
|
|
||||||
volume.unmute()
|
|
||||||
end
|
|
||||||
|
|
||||||
volume.commands:down()
|
|
||||||
core.sound.play("volume_down")
|
core.sound.play("volume_down")
|
||||||
|
end)
|
||||||
volume.exec_hooks()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
volume.mute = function()
|
volume.mute = function()
|
||||||
volume.commands:mute()
|
|
||||||
volume.muted = true
|
volume.muted = true
|
||||||
|
volume.commands.mute()
|
||||||
-- Spawn notification
|
|
||||||
local n = naughty.notify({
|
|
||||||
title = "Volume muted",
|
|
||||||
text = "Silence!",
|
|
||||||
timeout = 1,
|
|
||||||
replaces_id = volume.notificationid
|
|
||||||
})
|
|
||||||
|
|
||||||
volume.notificationid = n.id
|
|
||||||
|
|
||||||
volume.exec_hooks()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
volume.unmute = function()
|
volume.unmute = function()
|
||||||
volume.commands:unmute()
|
|
||||||
volume.muted = false
|
volume.muted = false
|
||||||
|
volume.commands.unmute()
|
||||||
-- Spawn notification
|
|
||||||
local n = naughty.notify({
|
|
||||||
title = "Volume unmuted",
|
|
||||||
text = "Loud.",
|
|
||||||
timeout = 1,
|
|
||||||
replaces_id = volume.notificationid
|
|
||||||
})
|
|
||||||
|
|
||||||
volume.notificationid = n.id
|
|
||||||
|
|
||||||
volume.exec_hooks()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
volume.toggle_mute = function()
|
volume.toggle_mute = function()
|
||||||
volume.commands:get(function(status)
|
volume.commands.get(function(status)
|
||||||
if status.mute then
|
if status.mute then
|
||||||
volume.unmute()
|
volume.unmute()
|
||||||
else
|
else
|
||||||
|
@ -1,136 +1,72 @@
|
|||||||
local volume = req_rel(..., "util")
|
local volume = req_rel(..., "util")
|
||||||
local widget = {}
|
local widget = {}
|
||||||
|
local dotgrid = require("widgets.dotgrid")
|
||||||
|
|
||||||
|
widget.dots = dotgrid:new();
|
||||||
widget.icon = wibox.widget {
|
widget.dots.on_color = {1, 0, 0}
|
||||||
resize = true,
|
widget.dots.off_color = {0.5, 0, 0}
|
||||||
image = beautiful.icons.volume.mute,
|
widget.dots.spacing = beautiful.dpi(2)
|
||||||
widget = wibox.widget.imagebox
|
|
||||||
}
|
|
||||||
|
|
||||||
widget.arc = wibox.widget {
|
|
||||||
{
|
|
||||||
widget.icon,
|
|
||||||
top = beautiful.dpi(1),
|
|
||||||
bottom = beautiful.dpi(1),
|
|
||||||
layout = wibox.container.margin,
|
|
||||||
},
|
|
||||||
max_value = 1,
|
|
||||||
thickness = beautiful.dpi(4),
|
|
||||||
start_angle = 4.71238898, -- 2pi*3/4
|
|
||||||
--forced_height = beautiful.dpi(16),
|
|
||||||
--forced_width = beautiful.dpi(16),
|
|
||||||
colors = {"#27D4CC", "#00446B"},
|
|
||||||
bg = "#FFFFFF30",
|
|
||||||
paddings = beautiful.dpi(2),
|
|
||||||
widget = wibox.container.arcchart
|
|
||||||
}
|
|
||||||
|
|
||||||
widget.bar = wibox.widget {
|
|
||||||
max_value = 100,
|
|
||||||
value = 0,
|
|
||||||
--forced_height = 20,
|
|
||||||
forced_width = beautiful.dpi(50),
|
|
||||||
paddings = 0,
|
|
||||||
border_width = 0,
|
|
||||||
color = {
|
|
||||||
type = "linear",
|
|
||||||
from = {0, 0}, to = {beautiful.dpi(50), 0},
|
|
||||||
stops = { { 0, "#27D4CC" }, { 1, "#00446B" }}
|
|
||||||
},
|
|
||||||
background_color = "#FFFFFF30",
|
|
||||||
widget = wibox.widget.progressbar,
|
|
||||||
shape = gears.shape.rounded_bar,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
widget.widget = wibox.widget {
|
widget.widget = wibox.widget {
|
||||||
{
|
{
|
||||||
{ -- Right space
|
widget.dots,
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
widget.arc,
|
|
||||||
top = beautiful.dpi(2),
|
top = beautiful.dpi(2),
|
||||||
bottom = beautiful.dpi(2),
|
bottom = beautiful.dpi(2),
|
||||||
|
left = beautiful.dpi(2),
|
||||||
|
right = beautiful.dpi(2),
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
{ -- Left space
|
|
||||||
widget = wibox.widget.separator,
|
|
||||||
color = beautiful.color.transparent,
|
|
||||||
forced_width = beautiful.dpi(3)
|
|
||||||
},
|
|
||||||
layout = wibox.layout.align.horizontal,
|
|
||||||
},
|
|
||||||
layout = wibox.container.background,
|
layout = wibox.container.background,
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::enter", function(result)
|
widget.widget:connect_signal("mouse::enter", function(result)
|
||||||
widget.widget.bg = beautiful.color.bar.hover_bg
|
widget.widget.bg = beautiful.color.bar.hover_bg
|
||||||
|
--awesome.emit_signal("module::volume:popup_show_stay")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
widget.widget:connect_signal("mouse::leave", function(result)
|
widget.widget:connect_signal("mouse::leave", function(result)
|
||||||
widget.widget.bg = beautiful.color.transparent
|
widget.widget.bg = beautiful.color.transparent
|
||||||
|
--awesome.emit_signal("module::volume:popup_show")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
widget.widget:connect_signal("button::press",
|
widget.widget:connect_signal("button::press",
|
||||||
function(_, _, _, button, mods)
|
function(_, _, _, button, mods)
|
||||||
|
|
||||||
-- Right-click
|
-- Left-click
|
||||||
if (button == 3) then
|
if (button == 1) then
|
||||||
volume.toggle_mute()
|
volume.toggle_mute()
|
||||||
|
|
||||||
-- Scroll up
|
-- Scroll up
|
||||||
elseif (button == 4) then
|
elseif (button == 4) then
|
||||||
volume.volume_up()
|
volume.volume_up(config.volume.scroll_step)
|
||||||
|
|
||||||
-- Scroll down
|
-- Scroll down
|
||||||
elseif (button == 5) then
|
elseif (button == 5) then
|
||||||
volume.volume_down()
|
volume.volume_down(config.volume.scroll_step)
|
||||||
end
|
end
|
||||||
|
--awesome.emit_signal("module::volume:popup_show_stay")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
widget.update = function(status)
|
awesome.connect_signal("module::volume:update",
|
||||||
|
function(status)
|
||||||
if (status.value == false) then
|
if (status.value == false) then
|
||||||
widget.icon.image = beautiful.icons.volume.error
|
widget.dots.value = 100
|
||||||
widget.arc.value = 100;
|
|
||||||
widget.bar.value = 100;
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
widget.arc.value = status.value / 100;
|
widget.dots.value = status.value
|
||||||
widget.bar.value = status.value;
|
|
||||||
|
|
||||||
|
|
||||||
if (status.mute) then
|
if (status.mute) then
|
||||||
-- Set muted icon
|
widget.dots.on_color = {0.7, 0.7, 0.7}
|
||||||
widget.icon.image = beautiful.icons.volume.mute
|
widget.dots.off_color = {0.3, 0.3, 0.3}
|
||||||
else
|
else
|
||||||
-- Set icon by value
|
widget.dots.on_color = {0, 1, 0}
|
||||||
if status.value > 70 then
|
widget.dots.off_color = {0, 0.5, 0}
|
||||||
widget.icon.image = beautiful.icons.volume.high
|
|
||||||
elseif status.value > 40 then
|
|
||||||
widget.icon.image = beautiful.icons.volume.medium
|
|
||||||
elseif status.value > 0 then
|
|
||||||
widget.icon.image = beautiful.icons.volume.low
|
|
||||||
elseif status.value == 0 then
|
|
||||||
widget.icon.image = beautiful.icons.volume.off
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
widget.dots:emit_signal("widget::redraw_needed")
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
volume.add_hook(widget.update)
|
|
||||||
volume.commands:watch(
|
|
||||||
5,
|
|
||||||
function()
|
|
||||||
volume.commands:get(widget.update)
|
|
||||||
end,
|
|
||||||
widget.widget
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return widget
|
return widget
|
||||||
|
54
rc.lua
@ -6,7 +6,19 @@ beautiful = require("beautiful")
|
|||||||
menubar = require("menubar")
|
menubar = require("menubar")
|
||||||
wibox = require("wibox")
|
wibox = require("wibox")
|
||||||
require("awful.autofocus")
|
require("awful.autofocus")
|
||||||
|
|
||||||
|
-- Load configuration
|
||||||
conf_dir = gears.filesystem.get_configuration_dir()
|
conf_dir = gears.filesystem.get_configuration_dir()
|
||||||
|
conf_env = os.getenv("AWESOMEWM_CONFIG")
|
||||||
|
config = require("defaults")
|
||||||
|
|
||||||
|
if (conf_env == nil) then
|
||||||
|
-- Default location: in this directory
|
||||||
|
dofile(conf_dir .. "/config.lua")
|
||||||
|
else
|
||||||
|
dofile(conf_env)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- A "relative require" hack. Does the same thing as `require`,
|
-- A "relative require" hack. Does the same thing as `require`,
|
||||||
@ -22,15 +34,43 @@ debug_message = function(msg)
|
|||||||
naughty.notify({title = "Debug message:", text = tostring(msg)})
|
naughty.notify({title = "Debug message:", text = tostring(msg)})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Order matters.
|
|
||||||
config = require("config")
|
|
||||||
beautiful.init(require("theme"))
|
beautiful.init(require("theme"))
|
||||||
|
|
||||||
|
|
||||||
-- Load key bindings
|
-- Load key bindings
|
||||||
local binds = require("binds")
|
local keys = require("core.keybinds")
|
||||||
local keys = binds.keys
|
local buttons = {}
|
||||||
local buttons = binds.buttons
|
|
||||||
|
|
||||||
|
-- Preferred client icon size, in pixels.
|
||||||
|
-- Set this to bar height, since that's the largest icon we'll ever draw.
|
||||||
|
-- This fixes the icon size given by client.icon. Client.icon give the smallest size by default.
|
||||||
|
awesome.set_preferred_icon_size(beautiful.dpi(config.core.bar_height))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Bind first 5 shortcuts to Mod + #.
|
||||||
|
local i = 0
|
||||||
|
for k, v in pairs(config.core.bar_shortcuts) do
|
||||||
|
i = i + 1
|
||||||
|
if (i > 5) then
|
||||||
|
goto done_shortcuts
|
||||||
|
end
|
||||||
|
|
||||||
|
keys = gears.table.join(keys,
|
||||||
|
awful.key(
|
||||||
|
{ "Mod4" }, i,
|
||||||
|
function()
|
||||||
|
awful.spawn(v[1], false)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "Launch ".. v[1],
|
||||||
|
group = "Shortcuts"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
::done_shortcuts::
|
||||||
|
|
||||||
|
|
||||||
-- Load modules
|
-- Load modules
|
||||||
@ -42,7 +82,7 @@ for k, v in pairs(config) do
|
|||||||
elseif (config[k].enabled == false) then
|
elseif (config[k].enabled == false) then
|
||||||
goto skip_module
|
goto skip_module
|
||||||
elseif (config[k].enabled == nil) then
|
elseif (config[k].enabled == nil) then
|
||||||
debug_message("Module " .. k .. " is not explicitly enabled")
|
debug_message("Module " .. k .. " is not enabled, skipping.")
|
||||||
goto skip_module
|
goto skip_module
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -60,7 +100,7 @@ for k, v in pairs(config) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Run all module init methods
|
-- Run all module init methods
|
||||||
for _, mod in ipairs(modules) do
|
for _, mod in pairs(modules) do
|
||||||
if (mod["init"] ~= nil) then
|
if (mod["init"] ~= nil) then
|
||||||
mod["init"]()
|
mod["init"]()
|
||||||
end
|
end
|
||||||
|
@ -19,7 +19,7 @@ local overrides = function(theme)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
theme.prompt_font = "Comfortaa 14"
|
theme.prompt_font = config.core.font.prompt
|
||||||
theme.prompt_fg = theme.color.white
|
theme.prompt_fg = theme.color.white
|
||||||
theme.prompt_bg = "#00000000"
|
theme.prompt_bg = "#00000000"
|
||||||
theme.prompt_fg_cursor = theme.color.black
|
theme.prompt_fg_cursor = theme.color.black
|
||||||
|
@ -19,7 +19,7 @@ local theme = bar(theme)
|
|||||||
local theme = clients(theme)
|
local theme = clients(theme)
|
||||||
local theme = notifications(theme)
|
local theme = notifications(theme)
|
||||||
|
|
||||||
theme.font = "Hack NF 12"
|
theme.font = config.core.font.normal
|
||||||
|
|
||||||
theme.wallpaper = config.core.wallpaper
|
theme.wallpaper = config.core.wallpaper
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ local overrides = function(theme)
|
|||||||
--theme.hotkeys_group_magin = 5
|
--theme.hotkeys_group_magin = 5
|
||||||
|
|
||||||
-- Notification theming
|
-- Notification theming
|
||||||
theme.notification_font = "Comfortaa 8"
|
theme.notification_font = config.core.font.normal_small
|
||||||
theme.notification_bg = theme.color.black
|
theme.notification_bg = theme.color.black
|
||||||
theme.notification_fg = theme.color.white
|
theme.notification_fg = theme.color.white
|
||||||
|
|
||||||
|
117
widgets/dotgrid.lua
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
local dotgrid = {}
|
||||||
|
|
||||||
|
function dotgrid:shuffle(tbl)
|
||||||
|
for i = #tbl, 2, -1 do
|
||||||
|
local j = math.random(i)
|
||||||
|
tbl[i], tbl[j] = tbl[j], tbl[i]
|
||||||
|
end
|
||||||
|
return tbl
|
||||||
|
end
|
||||||
|
|
||||||
|
function dotgrid:new()
|
||||||
|
local dots = wibox.widget.base.make_widget();
|
||||||
|
|
||||||
|
dots.on_color = {1, 0, 0}
|
||||||
|
dots.off_color = {0.5, 0, 0}
|
||||||
|
dots.value = 0
|
||||||
|
dots.max = 100
|
||||||
|
dots.rows = 5
|
||||||
|
dots.cols = 5
|
||||||
|
dots.spacing = 2
|
||||||
|
dots.last_value = 0
|
||||||
|
|
||||||
|
dots.map = {}
|
||||||
|
local idx
|
||||||
|
for i=1, dots.rows*dots.cols do
|
||||||
|
dots.map[i] = false;
|
||||||
|
end
|
||||||
|
--dots.map = dotgrid:shuffle(dots.map)
|
||||||
|
|
||||||
|
|
||||||
|
function dots:fit(context, width, height)
|
||||||
|
local m = math.min(width, height)
|
||||||
|
return m, m
|
||||||
|
end
|
||||||
|
|
||||||
|
function dots:draw(context, cr, width, height)
|
||||||
|
local col_size = math.floor((height - self.spacing * (self.rows-1)) / self.rows)
|
||||||
|
local row_size = math.floor((width - self.spacing * (self.cols-1)) / self.cols)
|
||||||
|
|
||||||
|
-- Compute rounding offsets for better centering
|
||||||
|
local xoffset = math.floor((
|
||||||
|
width - (
|
||||||
|
(col_size * self.cols) +
|
||||||
|
(self.spacing * (self.cols - 1))
|
||||||
|
)
|
||||||
|
) / 2)
|
||||||
|
|
||||||
|
local yoffset = math.floor((
|
||||||
|
height - (
|
||||||
|
(row_size * self.rows) +
|
||||||
|
(self.spacing * (self.rows - 1))
|
||||||
|
)
|
||||||
|
) / 2)
|
||||||
|
|
||||||
|
-- How many dots should be on
|
||||||
|
local on = math.floor((self.value / self.max) * (self.rows * self.cols))
|
||||||
|
|
||||||
|
local flip
|
||||||
|
while self.last_value > on do
|
||||||
|
-- Flip the nth on dot
|
||||||
|
flip = math.random(1, self.last_value)
|
||||||
|
for i=1, dots.rows*dots.cols do
|
||||||
|
if dots.map[i] then
|
||||||
|
if flip == 1 then
|
||||||
|
dots.map[i] = false
|
||||||
|
self.last_value = self.last_value - 1
|
||||||
|
break
|
||||||
|
else
|
||||||
|
flip = flip - 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
while self.last_value < on do
|
||||||
|
-- Flip the nth off dot
|
||||||
|
flip = math.random(1, dots.rows*dots.cols - self.last_value)
|
||||||
|
for i=1, dots.rows*dots.cols do
|
||||||
|
if not dots.map[i] then
|
||||||
|
if flip == 1 then
|
||||||
|
dots.map[i] = true
|
||||||
|
self.last_value = self.last_value + 1
|
||||||
|
break
|
||||||
|
else
|
||||||
|
flip = flip - 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local idx
|
||||||
|
for r=1, self.rows do
|
||||||
|
for c=1, self.cols do
|
||||||
|
idx = c + ((r-1)*self.cols)
|
||||||
|
|
||||||
|
cr:new_path();
|
||||||
|
if self.map[idx] then
|
||||||
|
cr:set_source_rgb(self.on_color[1], self.on_color[2], self.on_color[3])
|
||||||
|
else
|
||||||
|
cr:set_source_rgb(self.off_color[1], self.off_color[2], self.off_color[3])
|
||||||
|
end
|
||||||
|
|
||||||
|
cr:rectangle(
|
||||||
|
(c-1) * (col_size + self.spacing) + xoffset,
|
||||||
|
(r-1) * (row_size + self.spacing) + yoffset,
|
||||||
|
col_size,
|
||||||
|
row_size
|
||||||
|
)
|
||||||
|
cr:fill()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return dots
|
||||||
|
end
|
||||||
|
|
||||||
|
return dotgrid
|