1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-07-02 19:21:03 +02:00

refactor: major client code changes

This does away with `lazy_static` singletons for all the clients, instead putting them all inside a `Clients` struct on the `Ironbar` struct.

Client code has been refactored in places to accommodate this, and module code has been updated to get the clients the new way.

The Wayland client has been re-written from the ground up to remove a lot of the needless complications, provide a nicer interface and reduce some duplicate data.

The MPD music client has been overhauled to use the `mpd_utils` crate, which simplifies the code within Ironbar and should offer more robustness and better recovery when connection is lost to the server.

The launcher module in particular has been affected by the refactor.
This commit is contained in:
Jake Stanger 2024-01-07 23:50:10 +00:00
parent 57b57ed002
commit c702f6fffa
No known key found for this signature in database
GPG key ID: C51FC8F9CB0BEA61
33 changed files with 1081 additions and 1063 deletions

158
Cargo.lock generated
View file

@ -218,8 +218,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -235,8 +235,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -478,8 +478,8 @@ checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -662,9 +662,9 @@ dependencies = [
"codespan-reporting",
"once_cell",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"scratch",
"syn 2.0.28",
"syn 2.0.48",
]
[[package]]
@ -680,8 +680,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -703,7 +703,7 @@ dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"strsim",
"syn 1.0.109",
]
@ -715,7 +715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
dependencies = [
"darling_core",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
]
@ -737,7 +737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
]
@ -760,7 +760,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"rustc_version",
"syn 1.0.109",
]
@ -839,7 +839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e40a16955681d469ab3da85aaa6b42ff656b3c67b52e1d8d3dd36afe97fd462"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
]
@ -860,8 +860,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -980,15 +980,15 @@ checksum = "55a5e644a80e6d96b2b4910fa7993301d7b7926c045b475b62202b20a36ce69e"
dependencies = [
"darling",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
]
[[package]]
name = "futures"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
@ -1017,9 +1017,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
dependencies = [
"futures-core",
"futures-task",
@ -1049,9 +1049,9 @@ dependencies = [
[[package]]
name = "futures-lite"
version = "2.1.0"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
dependencies = [
"fastrand 2.0.1",
"futures-core",
@ -1067,8 +1067,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -1251,8 +1251,8 @@ dependencies = [
"proc-macro-crate 2.0.1",
"proc-macro-error",
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -1352,8 +1352,8 @@ dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -1523,8 +1523,8 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c941d3d52e979612af8cb94e8de49000c7fada2014a7791d173ab41339f4e4eb"
dependencies = [
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -1650,15 +1650,14 @@ dependencies = [
"color-eyre",
"ctrlc",
"dirs",
"futures-lite 2.1.0",
"futures-lite 2.2.0",
"futures-util",
"glib",
"gtk",
"gtk-layer-shell",
"hyprland",
"indexmap 2.1.0",
"lazy_static",
"mpd_client",
"mpd-utils",
"mpris",
"nix 0.27.1",
"notify",
@ -1879,6 +1878,19 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "mpd-utils"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7081a86d39a604868a671b0166febc1f31a4c4801d9436ab733f2664baabf8a4"
dependencies = [
"futures",
"mpd_client",
"thiserror",
"tokio",
"tracing",
]
[[package]]
name = "mpd_client"
version = "1.3.0"
@ -2060,8 +2072,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -2205,8 +2217,8 @@ dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -2302,7 +2314,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
"version_check",
]
@ -2314,15 +2326,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"version_check",
]
[[package]]
name = "proc-macro2"
version = "1.0.66"
version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
dependencies = [
"unicode-ident",
]
@ -2350,9 +2362,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
[[package]]
name = "quote"
version = "1.0.32"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@ -2666,8 +2678,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -2688,8 +2700,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -2874,9 +2886,9 @@ checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"rustversion",
"syn 2.0.28",
"syn 2.0.48",
]
[[package]]
@ -2922,18 +2934,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.28"
version = "2.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"unicode-ident",
]
@ -3037,22 +3049,22 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.40"
version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.40"
version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -3134,8 +3146,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -3254,8 +3266,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"syn 2.0.28",
"quote 1.0.35",
"syn 2.0.48",
]
[[package]]
@ -3466,7 +3478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
]
[[package]]
@ -3521,7 +3533,7 @@ dependencies = [
"log",
"once_cell",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
"wasm-bindgen-shared",
]
@ -3544,7 +3556,7 @@ version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
dependencies = [
"quote 1.0.32",
"quote 1.0.35",
"wasm-bindgen-macro-support",
]
@ -3555,7 +3567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
@ -3648,7 +3660,7 @@ checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
dependencies = [
"proc-macro2",
"quick-xml",
"quote 1.0.32",
"quote 1.0.35",
]
[[package]]
@ -4019,7 +4031,7 @@ checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"regex",
"syn 1.0.109",
"zvariant_utils",
@ -4058,7 +4070,7 @@ checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
"zvariant_utils",
]
@ -4070,6 +4082,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
dependencies = [
"proc-macro2",
"quote 1.0.32",
"quote 1.0.35",
"syn 1.0.109",
]