diff options
| author | Mustafa Salih <37256744+MustafaSalih1993@users.noreply.github.com> | 2021-09-05 17:22:33 +0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-05 17:22:33 +0300 | 
| commit | ae533f1fe7675efb8b63f0a176e1fafa23dd94f9 (patch) | |
| tree | 7614b39133d62132720e523ab51c6f6e032bde17 | |
| parent | a66c94a1f836b56897a3b5151f93aaa327efc6bd (diff) | |
Dev (#63)
* Closes #62 added brightness block
| -rw-r--r-- | Cargo.lock | 294 | ||||
| -rw-r--r-- | Cargo.toml | 8 | ||||
| -rw-r--r-- | README.md | 20 | ||||
| -rw-r--r-- | rsblocks.yml | 9 | ||||
| -rw-r--r-- | src/blockmanager.rs | 11 | ||||
| -rw-r--r-- | src/config/brightness.rs | 21 | ||||
| -rw-r--r-- | src/config/mod.rs | 6 | ||||
| -rw-r--r-- | src/run.rs | 10 | ||||
| -rw-r--r-- | src/types.rs | 10 | ||||
| -rw-r--r-- | src/utils/brightness.rs | 28 | ||||
| -rw-r--r-- | src/utils/mod.rs | 1 | 
11 files changed, 272 insertions, 146 deletions
@@ -17,7 +17,7 @@ dependencies = [   "alsa-sys",   "bitflags",   "libc", - "nix 0.20.0", + "nix 0.20.1",  ]  [[package]] @@ -83,12 +83,11 @@ dependencies = [  [[package]]  name = "async-io" -version = "1.4.1" +version = "1.6.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bbfd5cf2794b1e908ea8457e6c45f8f8f1f6ec5f74617bf4662623f47503c3b" +checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"  dependencies = [   "concurrent-queue", - "fastrand",   "futures-lite",   "libc",   "log", @@ -121,21 +120,20 @@ dependencies = [  [[package]]  name = "async-net" -version = "1.6.0" +version = "1.6.1"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b0a74e7f70af3c8cf1aa539edbd044795706659ac52b78a71dc1a205ecefdf" +checksum = "5373304df79b9b4395068fb080369ec7178608827306ce4d081cba51cac551df"  dependencies = [   "async-io",   "blocking", - "fastrand",   "futures-lite",  ]  [[package]]  name = "async-std" -version = "1.9.0" +version = "1.10.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341" +checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"  dependencies = [   "async-attributes",   "async-channel", @@ -167,9 +165,9 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"  [[package]]  name = "async-trait" -version = "0.1.50" +version = "0.1.51"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722" +checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e"  dependencies = [   "proc-macro2",   "quote", @@ -245,7 +243,7 @@ dependencies = [   "cty",   "futures-lite",   "gluten-keyboard", - "hashbrown", + "hashbrown 0.9.1",   "log",   "memchr",   "nix 0.19.1", @@ -261,21 +259,21 @@ checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"  [[package]]  name = "bumpalo" -version = "3.6.1" +version = "3.7.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" +checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"  [[package]]  name = "bytemuck" -version = "1.5.1" +version = "1.7.2"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58" +checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"  [[package]]  name = "bytes" -version = "1.0.1" +version = "1.1.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"  [[package]]  name = "cache-padded" @@ -285,9 +283,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"  [[package]]  name = "cc" -version = "1.0.67" +version = "1.0.70"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" +checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"  [[package]]  name = "cfg-if" @@ -335,20 +333,19 @@ checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"  [[package]]  name = "crossbeam-utils" -version = "0.8.4" +version = "0.8.5"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"  dependencies = [ - "autocfg",   "cfg-if",   "lazy_static",  ]  [[package]]  name = "ctor" -version = "0.1.20" +version = "0.1.21"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"  dependencies = [   "quote",   "syn", @@ -362,12 +359,13 @@ checksum = "7313c0d620d0cb4dbd9d019e461a4beb501071ff46ec0ab933efb4daa76d73e3"  [[package]]  name = "dbus" -version = "0.9.2" +version = "0.9.3"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f597e08dfa79b593f23bbfc7840b23b2c5aa2e3a98d8e68b67b5b9ff800dc0db" +checksum = "c8862bb50aa3b2a2db5bfd2c875c73b3038aa931c411087e335ca8ca0ed430b9"  dependencies = [   "libc",   "libdbus-sys", + "winapi",  ]  [[package]] @@ -384,18 +382,18 @@ checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"  [[package]]  name = "fastrand" -version = "1.4.1" +version = "1.5.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb" +checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"  dependencies = [   "instant",  ]  [[package]]  name = "futures" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" +checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"  dependencies = [   "futures-channel",   "futures-core", @@ -408,9 +406,9 @@ dependencies = [  [[package]]  name = "futures-channel" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"  dependencies = [   "futures-core",   "futures-sink", @@ -418,15 +416,15 @@ dependencies = [  [[package]]  name = "futures-core" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"  [[package]]  name = "futures-executor" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" +checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"  dependencies = [   "futures-core",   "futures-task", @@ -435,15 +433,15 @@ dependencies = [  [[package]]  name = "futures-io" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"  [[package]]  name = "futures-lite" -version = "1.11.3" +version = "1.12.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"  dependencies = [   "fastrand",   "futures-core", @@ -456,9 +454,9 @@ dependencies = [  [[package]]  name = "futures-macro" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"  dependencies = [   "autocfg",   "proc-macro-hack", @@ -469,21 +467,21 @@ dependencies = [  [[package]]  name = "futures-sink" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"  [[package]]  name = "futures-task" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"  [[package]]  name = "futures-util" -version = "0.3.15" +version = "0.3.17"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"  dependencies = [   "autocfg",   "futures-channel", @@ -529,34 +527,50 @@ dependencies = [  ]  [[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]]  name = "hermit-abi" -version = "0.1.18" +version = "0.1.19"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"  dependencies = [   "libc",  ]  [[package]] +name = "indexmap" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", +] + +[[package]]  name = "instant" -version = "0.1.9" +version = "0.1.10"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"  dependencies = [   "cfg-if",  ]  [[package]]  name = "itoa" -version = "0.4.7" +version = "0.4.8"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"  [[package]]  name = "js-sys" -version = "0.3.51" +version = "0.3.53"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" +checksum = "e4bf49d50e2961077d9c99f4b7997d770a1114f087c3c2e0069b36c13fc2979d"  dependencies = [   "wasm-bindgen",  ] @@ -584,9 +598,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"  [[package]]  name = "libc" -version = "0.2.94" +version = "0.2.101"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" +checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21"  [[package]]  name = "libdbus-sys" @@ -605,9 +619,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"  [[package]]  name = "lock_api" -version = "0.4.4" +version = "0.4.5"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"  dependencies = [   "scopeguard",  ] @@ -633,17 +647,27 @@ dependencies = [  [[package]]  name = "memchr" -version = "2.4.0" +version = "2.4.1"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memoffset" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" +dependencies = [ + "autocfg", +]  [[package]]  name = "minreq" -version = "2.3.1" +version = "2.4.2"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781e56f7d29192378f0a04948b1e6aec67ce561273b2dd26ac510bbe88d7be70" +checksum = "d5f7db7a675c4b46b8842105b9371d6151e95fbbecd9b0e54dc2ea814397d2cc"  dependencies = [   "lazy_static", + "log",   "rustls",   "serde",   "serde_json", @@ -653,9 +677,9 @@ dependencies = [  [[package]]  name = "mio" -version = "0.7.11" +version = "0.7.13"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956" +checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"  dependencies = [   "libc",   "log", @@ -698,14 +722,28 @@ dependencies = [  [[package]]  name = "nix" -version = "0.20.0" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8e5e343312e7fbeb2a52139114e9e702991ef9c2aea6817ff2440b35647d56" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.22.1"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" +checksum = "e7555d6c7164cc913be1ce7f95cbecdabda61eb2ccd89008524af306fb7f5031"  dependencies = [   "bitflags",   "cc",   "cfg-if",   "libc", + "memoffset",  ]  [[package]] @@ -748,9 +786,9 @@ dependencies = [  [[package]]  name = "once_cell" -version = "1.7.2" +version = "1.8.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"  [[package]]  name = "parking" @@ -760,9 +798,9 @@ checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"  [[package]]  name = "parking_lot" -version = "0.11.1" +version = "0.11.2"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"  dependencies = [   "instant",   "lock_api", @@ -771,9 +809,9 @@ dependencies = [  [[package]]  name = "parking_lot_core" -version = "0.8.3" +version = "0.8.5"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"  dependencies = [   "cfg-if",   "instant", @@ -785,9 +823,9 @@ dependencies = [  [[package]]  name = "pin-project-lite" -version = "0.2.6" +version = "0.2.7"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"  [[package]]  name = "pin-utils" @@ -803,14 +841,14 @@ checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"  [[package]]  name = "polling" -version = "2.0.3" +version = "2.1.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc12d774e799ee9ebae13f4076ca003b40d18a11ac0f3641e6f899618580b7b" +checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"  dependencies = [   "cfg-if",   "libc",   "log", - "wepoll-sys", + "wepoll-ffi",   "winapi",  ] @@ -828,9 +866,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"  [[package]]  name = "proc-macro2" -version = "1.0.26" +version = "1.0.29"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"  dependencies = [   "unicode-xid",  ] @@ -846,9 +884,9 @@ dependencies = [  [[package]]  name = "redox_syscall" -version = "0.2.8" +version = "0.2.10"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"  dependencies = [   "bitflags",  ] @@ -876,7 +914,7 @@ dependencies = [  [[package]]  name = "rsblocks" -version = "0.1.18" +version = "0.1.19"  dependencies = [   "alsa",   "async-std", @@ -889,7 +927,7 @@ dependencies = [   "lazy_static",   "minreq",   "mpd", - "nix 0.20.0", + "nix 0.22.1",   "serde",   "serde_yaml",   "tokio", @@ -938,18 +976,18 @@ dependencies = [  [[package]]  name = "serde" -version = "1.0.126" +version = "1.0.130"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"  dependencies = [   "serde_derive",  ]  [[package]]  name = "serde_derive" -version = "1.0.126" +version = "1.0.130"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"  dependencies = [   "proc-macro2",   "quote", @@ -958,9 +996,9 @@ dependencies = [  [[package]]  name = "serde_json" -version = "1.0.64" +version = "1.0.67"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950"  dependencies = [   "itoa",   "ryu", @@ -969,30 +1007,30 @@ dependencies = [  [[package]]  name = "serde_yaml" -version = "0.8.17" +version = "0.8.20"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15654ed4ab61726bf918a39cb8d98a2e2995b002387807fa6ba58fdf7f59bb23" +checksum = "ad104641f3c958dab30eb3010e834c2622d1f3f4c530fef1dee20ad9485f3c09"  dependencies = [   "dtoa", - "linked-hash-map", + "indexmap",   "serde",   "yaml-rust",  ]  [[package]]  name = "signal-hook-registry" -version = "1.3.0" +version = "1.4.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"  dependencies = [   "libc",  ]  [[package]]  name = "slab" -version = "0.4.3" +version = "0.4.4"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" +checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590"  [[package]]  name = "smallvec" @@ -1002,9 +1040,9 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"  [[package]]  name = "socket2" -version = "0.4.0" +version = "0.4.1"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" +checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad"  dependencies = [   "libc",   "winapi", @@ -1018,9 +1056,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"  [[package]]  name = "syn" -version = "1.0.72" +version = "1.0.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84"  dependencies = [   "proc-macro2",   "quote", @@ -1040,9 +1078,9 @@ dependencies = [  [[package]]  name = "tinyvec" -version = "1.2.0" +version = "1.3.1"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338"  dependencies = [   "tinyvec_macros",  ] @@ -1055,9 +1093,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"  [[package]]  name = "tokio" -version = "1.6.0" +version = "1.11.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd3076b5c8cc18138b8f8814895c11eb4de37114a5d127bafdc5e55798ceef37" +checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce"  dependencies = [   "autocfg",   "bytes", @@ -1075,9 +1113,9 @@ dependencies = [  [[package]]  name = "tokio-macros" -version = "1.2.0" +version = "1.3.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37" +checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110"  dependencies = [   "proc-macro2",   "quote", @@ -1086,9 +1124,9 @@ dependencies = [  [[package]]  name = "typenum" -version = "1.13.0" +version = "1.14.0"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"  [[package]]  name = "unicode-xid" @@ -1142,9 +1180,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"  [[package]]  name = "wasm-bindgen" -version = "0.2.74" +version = "0.2.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" +checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0"  dependencies = [   "cfg-if",   "wasm-bindgen-macro", @@ -1152,9 +1190,9 @@ dependencies = [  [[package]]  name = "wasm-bindgen-backend" -version = "0.2.74" +version = "0.2.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" +checksum = "cfe8dc78e2326ba5f845f4b5bf548401604fa20b1dd1d365fb73b6c1d6364041"  dependencies = [   "bumpalo",   "lazy_static", @@ -1167,9 +1205,9 @@ dependencies = [  [[package]]  name = "wasm-bindgen-futures" -version = "0.4.24" +version = "0.4.26"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" +checksum = "95fded345a6559c2cfee778d562300c581f7d4ff3edb9b0d230d69800d213972"  dependencies = [   "cfg-if",   "js-sys", @@ -1179,9 +1217,9 @@ dependencies = [  [[package]]  name = "wasm-bindgen-macro" -version = "0.2.74" +version = "0.2.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" +checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef"  dependencies = [   "quote",   "wasm-bindgen-macro-support", @@ -1189,9 +1227,9 @@ dependencies = [  [[package]]  name = "wasm-bindgen-macro-support" -version = "0.2.74" +version = "0.2.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" +checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad"  dependencies = [   "proc-macro2",   "quote", @@ -1202,15 +1240,15 @@ dependencies = [  [[package]]  name = "wasm-bindgen-shared" -version = "0.2.74" +version = "0.2.76"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" +checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29"  [[package]]  name = "web-sys" -version = "0.3.51" +version = "0.3.53"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" +checksum = "224b2f6b67919060055ef1a67807367c2066ed520c3862cc013d26cf893a783c"  dependencies = [   "js-sys",   "wasm-bindgen", @@ -1236,10 +1274,10 @@ dependencies = [  ]  [[package]] -name = "wepoll-sys" -version = "3.0.1" +name = "wepoll-ffi" +version = "0.1.2"  source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"  dependencies = [   "cc",  ] @@ -1,6 +1,6 @@  [package]  name = "rsblocks" -version = "0.1.18" +version = "0.1.19"  authors = ["mustafa salih <mustafasalih1991@gmail.com>"]  edition = "2018"  readme = "README.md" @@ -14,10 +14,10 @@ description = "a multi threaded status bar for dwm window manager for linux"  alsa = "0.5"  chrono = "0.4"  mpd = "0.0.12" -nix = "0.20" +nix = "0.22"  battery = "0.7" -dbus = "0.9.1" -serde_yaml = "0.8.15" +dbus = "0.9" +serde_yaml = "0.8.20"  lazy_static = "1.4.0"  # Async deps @@ -10,20 +10,22 @@ A multi threaded fast status bar for dwm window manager written in **Rust** 🦀  ## Features  * Multi Threads -* Time/Date -* Net Usage -* Memory Usage -* Disk Usage -* Weather Temperature -* Sound Volume  * Battery Percentage +* Bitcoin Price +* Brightness  * Cpu Temperature +* Disk Usage  * Load Average -* Public Ip Address -* Bitcoin Price -* Uptime +* Local Ip Address +* Memory Usage  * Mpd Current Song +* Net Usage +* Public Ip Address +* Sound Volume  * Spotify Current Song +* Time/Date +* Uptime +* Weather Temperature  * Easy to configure with `rsblocks.yml` file diff --git a/rsblocks.yml b/rsblocks.yml index f0d6bcf..b9e13ba 100644 --- a/rsblocks.yml +++ b/rsblocks.yml @@ -11,6 +11,15 @@ time:    icon: '' +# Display brightness percentage   +brightness: +  icon: '' +  delay: 60.0  +  enabled: false +  # read the output of the command "ls /sys/class/backlight" to match with the path below +  path: '/sys/class/backlight/intel_backlight' + +    # Time of the system has been running  uptime:    delay: 15.0 diff --git a/src/blockmanager.rs b/src/blockmanager.rs index aa92b64..9a256b1 100644 --- a/src/blockmanager.rs +++ b/src/blockmanager.rs @@ -13,11 +13,11 @@ impl BlockManager {          let root = disp.default_screen().root;          Self {              disp, -            blocks: vec![String::from(""); 15], +            blocks: vec![String::from(""); 16],              root,          }      } - +    // TODO let the user control the indexes of the blocks      pub fn update(&mut self, data: ThreadsData) {          match data {              ThreadsData::Spotify(x) => self.blocks[0] = x, @@ -32,9 +32,10 @@ impl BlockManager {              ThreadsData::Memory(x) => self.blocks[9] = x,              ThreadsData::CpuTemp(x) => self.blocks[10] = x,              ThreadsData::LoadAvg(x) => self.blocks[11] = x, -            ThreadsData::Battery(x) => self.blocks[12] = x, -            ThreadsData::Uptime(x) => self.blocks[13] = x, -            ThreadsData::Time(x) => self.blocks[14] = x, +            ThreadsData::Brightness(x) => self.blocks[12] = x, +            ThreadsData::Battery(x) => self.blocks[13] = x, +            ThreadsData::Uptime(x) => self.blocks[14] = x, +            ThreadsData::Time(x) => self.blocks[15] = x,          }          let mut x = String::new();          for i in self.blocks.iter() { diff --git a/src/config/brightness.rs b/src/config/brightness.rs new file mode 100644 index 0000000..b0b3696 --- /dev/null +++ b/src/config/brightness.rs @@ -0,0 +1,21 @@ +use serde::{Deserialize, Serialize}; +use std::default::Default; + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct Brightness { +    pub icon: String, +    pub enabled: bool, +    pub delay: f64, +    pub path: String, +} + +impl Default for Brightness { +    fn default() -> Self { +        Brightness { +            icon: String::from(""), +            enabled: false, +            delay: 120.0, +            path: String::from("/sys/class/backlight/intel_backlight"), +        } +    } +} diff --git a/src/config/mod.rs b/src/config/mod.rs index 48809a6..83f0491 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -1,5 +1,6 @@  mod battery;  mod bitcoins; +mod brightness;  mod cputemp;  mod disk;  mod loadavg; @@ -17,6 +18,7 @@ mod weather;  use self::battery::Battery;  use self::mpd::Mpd;  use bitcoins::BitCoins; +use brightness::Brightness;  use cputemp::CpuTemp;  use disk::Disk;  use loadavg::LoadAvg; @@ -83,6 +85,9 @@ pub struct Config {      pub battery: Battery,      #[serde(default)] +    pub brightness: Brightness, + +    #[serde(default)]      pub cpu_temperature: CpuTemp,      #[serde(default)] @@ -120,6 +125,7 @@ impl Default for Config {              volume: Default::default(),              weather: Default::default(),              battery: Default::default(), +            brightness: Default::default(),              cpu_temperature: Default::default(),              uptime: Default::default(),              mpd: Default::default(), @@ -95,6 +95,16 @@ pub async fn run(mut blocks: BlockManager) {          task::spawn(b);      } +    // brightness task +    if CONFIG.brightness.enabled { +        let b = init_block( +            tx.clone(), +            brightness::get_brightness, +            CONFIG.brightness.delay, +        ); +        task::spawn(b); +    } +      // BTC task      if CONFIG.bitcoins.enabled {          let b = init_block(tx.clone(), bitcoins::get_price, CONFIG.bitcoins.delay); diff --git a/src/types.rs b/src/types.rs index 3cadf01..a26ffc2 100644 --- a/src/types.rs +++ b/src/types.rs @@ -15,6 +15,7 @@ pub enum ThreadsData {      PubIp(String),      LocalIp(String),      BitCoins(String), +    Brightness(String),  }  #[derive(Clone)] @@ -34,6 +35,7 @@ pub struct Config {      pub pub_ip: PubIp,      pub local_ip: LocalIp,      pub bitcoins: BitCoins, +    pub brightness: Brightness,  }  #[derive(Clone)] @@ -146,3 +148,11 @@ pub struct BitCoins {      pub enabled: bool,      pub delay: f64,  } + +#[derive(Clone)] +pub struct Brightness { +    pub icon: String, +    pub enabled: bool, +    pub delay: f64, +    pub path: String, +} diff --git a/src/utils/brightness.rs b/src/utils/brightness.rs new file mode 100644 index 0000000..b340907 --- /dev/null +++ b/src/utils/brightness.rs @@ -0,0 +1,28 @@ +use crate::config::CONFIG; +use crate::types::ThreadsData; +use std::fs::read_to_string; +use std::path::Path; + +// getting brightness +pub async fn get_brightness() -> ThreadsData { +    let brightness_path = Path::new(&CONFIG.brightness.path); +    if !brightness_path.exists() { +        return ThreadsData::Brightness(String::from("brightness path not found")); +    }; +    let current_brightness = match read_to_string(Path::new(brightness_path).join("brightness")) { +        Ok(brightness) => brightness.trim().to_owned().parse::<f32>().unwrap(), +        _ => return ThreadsData::Brightness(String::from("error reading current brightness")), +    }; +    let max_brightness = match read_to_string(Path::new(brightness_path).join("max_brightness")) { +        Ok(brightness) => brightness.trim().to_owned().parse::<f32>().unwrap(), +        _ => return ThreadsData::Brightness(String::from("error reading max brightness")), +    }; + +    let value = (current_brightness / max_brightness) * 100.0; + +    let result = format!( +        "  {}  {:.0}%  {}", +        CONFIG.brightness.icon, value, CONFIG.seperator +    ); +    ThreadsData::Brightness(result) +} diff --git a/src/utils/mod.rs b/src/utils/mod.rs index cf9ea0d..c565434 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1,5 +1,6 @@  pub mod battery;  pub mod bitcoins; +pub mod brightness;  pub mod cpu;  pub mod disk;  pub mod load_average;  | 
