diff --git a/Cargo.lock b/Cargo.lock index 8924e47..4f4e431 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,17 +45,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "ahash" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.7" @@ -409,6 +398,18 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "atk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -554,9 +555,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9" dependencies = [ "bytemuck_derive", ] @@ -584,12 +585,23 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "calloop" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" dependencies = [ + "async-task", "bitflags 2.4.2", "log", "polling 3.3.2", @@ -619,6 +631,16 @@ dependencies = [ "libc", ] +[[package]] +name = "cfg-expr" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a" +dependencies = [ + "smallvec", + "target-lexicon", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -738,6 +760,26 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-random" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom", + "once_cell", + "tiny-keccak", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -791,7 +833,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-comp#f7b062aa81aacf76cf4dd90154a88df8462e4337" +source = "git+https://github.com/pop-os/cosmic-comp#b46b92611c937ce77062a6496c4018c4d0cfc15f" dependencies = [ "cosmic-config", "input", @@ -801,22 +843,24 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "atomicwrites", "cosmic-config-derive", "dirs 5.0.1", "iced_futures", + "known-folders", "notify", "once_cell", "ron", "serde", + "xdg", ] [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "quote", "syn 1.0.109", @@ -838,7 +882,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.10.0" -source = "git+https://github.com/pop-os/cosmic-text.git#db1530c4ec14bcbb290f9c971d8a6197c90e189a" +source = "git+https://github.com/pop-os/cosmic-text.git#e0ae465f918cd1cffca3a8239547dcf8166d3f77" dependencies = [ "bitflags 2.4.2", "fontdb", @@ -860,7 +904,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "almost", "cosmic-config", @@ -891,7 +935,7 @@ dependencies = [ "itertools 0.12.0", "libcosmic", "log", - "memmap2 0.9.3", + "memmap2 0.9.4", "once_cell", "rust-embed", "tokio", @@ -1052,7 +1096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.3", + "hashbrown", "lock_api", "once_cell", "parking_lot_core 0.9.9", @@ -1117,15 +1161,6 @@ dependencies = [ "dirs-sys 0.3.7", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" @@ -1158,6 +1193,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + [[package]] name = "displaydoc" version = "0.2.4" @@ -1180,9 +1221,12 @@ dependencies = [ [[package]] name = "dlv-list" -version = "0.3.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] [[package]] name = "downcast-rs" @@ -1561,11 +1605,11 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fontconfig-parser" -version = "0.5.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4" +checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d" dependencies = [ - "roxmltree 0.18.1", + "roxmltree", ] [[package]] @@ -1576,7 +1620,7 @@ checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6" dependencies = [ "fontconfig-parser", "log", - "memmap2 0.9.3", + "memmap2 0.9.4", "slotmap", "tinyvec", "ttf-parser", @@ -1643,11 +1687,11 @@ dependencies = [ [[package]] name = "freedesktop-icons" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e" +checksum = "b5339cbd60b2ff6b95ef212ab96bc80bf1a9dff2821b9966c417cdfae2808796" dependencies = [ - "dirs 4.0.0", + "dirs 5.0.1", "once_cell", "rust-ini", "thiserror", @@ -1805,6 +1849,36 @@ dependencies = [ "libc", ] +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -1874,6 +1948,19 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + [[package]] name = "gl_generator" version = "0.14.0" @@ -1891,6 +1978,16 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "glow" version = "0.13.1" @@ -1923,6 +2020,17 @@ dependencies = [ "wgpu", ] +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + [[package]] name = "gpu-alloc" version = "0.6.0" @@ -1964,7 +2072,7 @@ checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" dependencies = [ "bitflags 2.4.2", "gpu-descriptor-types", - "hashbrown 0.14.3", + "hashbrown", ] [[package]] @@ -1982,6 +2090,24 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9" +[[package]] +name = "gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + [[package]] name = "guillotiere" version = "0.6.2" @@ -2002,22 +2128,13 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.7", -] - [[package]] name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.7", + "ahash", "allocator-api2", ] @@ -2139,7 +2256,7 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "iced_accessibility", "iced_core", @@ -2154,7 +2271,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "accesskit", "accesskit_unix", @@ -2163,7 +2280,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "bitflags 1.3.2", "iced_accessibility", @@ -2181,7 +2298,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "futures", "iced_core", @@ -2194,7 +2311,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2217,7 +2334,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2230,7 +2347,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "iced_accessibility", "iced_core", @@ -2242,7 +2359,7 @@ dependencies = [ [[package]] name = "iced_sctk" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "enum-repr", "float-cmp", @@ -2266,7 +2383,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "iced_core", "once_cell", @@ -2276,7 +2393,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "bytemuck", "cosmic-text", @@ -2294,7 +2411,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2314,7 +2431,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "iced_renderer", "iced_runtime", @@ -2373,7 +2490,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown", ] [[package]] @@ -2523,6 +2640,15 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" +[[package]] +name = "known-folders" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "kqueue" version = "1.0.8" @@ -2573,7 +2699,7 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#bb8be4e3d5b080f71c0672c6ae729c02118f4e97" +source = "git+https://github.com/pop-os/libcosmic#3aef16bf9ed7f0b2ffbaa46b0d60b1a663ebcbd7" dependencies = [ "apply", "ashpd", @@ -2595,6 +2721,7 @@ dependencies = [ "iced_widget", "lazy_static", "palette", + "rfd", "ron", "serde", "slotmap", @@ -2707,7 +2834,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown", ] [[package]] @@ -2797,9 +2924,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] @@ -3106,12 +3233,12 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-multimap" -version = "0.4.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" +checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" dependencies = [ "dlv-list", - "hashbrown 0.12.3", + "hashbrown", ] [[package]] @@ -3172,6 +3299,18 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "parking" version = "2.2.0" @@ -3288,18 +3427,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", @@ -3592,9 +3731,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -3630,6 +3769,30 @@ dependencies = [ "usvg", ] +[[package]] +name = "rfd" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f" +dependencies = [ + "ashpd", + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-sys 0.48.0", +] + [[package]] name = "rgb" version = "0.8.37" @@ -3651,15 +3814,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "roxmltree" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302" -dependencies = [ - "xmlparser", -] - [[package]] name = "roxmltree" version = "0.19.0" @@ -3702,9 +3856,9 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" dependencies = [ "cfg-if", "ordered-multimap", @@ -3948,7 +4102,7 @@ dependencies = [ "cursor-icon", "libc", "log", - "memmap2 0.9.3", + "memmap2 0.9.4", "pkg-config", "rustix 0.38.30", "thiserror", @@ -4008,7 +4162,7 @@ dependencies = [ "foreign-types", "js-sys", "log", - "memmap2 0.9.3", + "memmap2 0.9.4", "objc", "raw-window-handle", "redox_syscall 0.4.1", @@ -4120,6 +4274,19 @@ dependencies = [ "libc", ] +[[package]] +name = "system-deps" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml 0.8.8", + "version-compare", +] + [[package]] name = "taffy" version = "0.3.11" @@ -4131,6 +4298,12 @@ dependencies = [ "slotmap", ] +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + [[package]] name = "temp-dir" version = "0.1.12" @@ -4190,6 +4363,15 @@ dependencies = [ "weezl", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tiny-skia" version = "0.11.3" @@ -4530,7 +4712,7 @@ dependencies = [ "imagesize", "kurbo", "log", - "roxmltree 0.19.0", + "roxmltree", "simplecss", "siphasher", "svgtypes", @@ -4571,6 +4753,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + [[package]] name = "version_check" version = "0.9.4" @@ -5325,12 +5513,6 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" -[[package]] -name = "xmlparser" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" - [[package]] name = "xmlwriter" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 74de448..2308507 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] anyhow = "1.0.75" -calloop = "0.12.3" +calloop = { version = "0.12.3", features = ["executor"] } clap = { version = "4", features = ["derive"] } cosmic-comp-config = { git = "https://github.com/pop-os/cosmic-comp" } env_logger = "0.11.0" diff --git a/src/wayland/mod.rs b/src/wayland/mod.rs index c23c8eb..47863d1 100644 --- a/src/wayland/mod.rs +++ b/src/wayland/mod.rs @@ -112,6 +112,7 @@ pub struct AppData { captures: RefCell>>, dmabuf_feedback: Option, gbm: Option<(PathBuf, gbm::Device)>, + scheduler: calloop::futures::Scheduler<()>, } impl AppData { @@ -235,37 +236,37 @@ fn start(conn: Connection) -> mpsc::Receiver { let dmabuf_state = DmabufState::new(&globals, &qh); dmabuf_state.get_default_feedback(&qh).unwrap(); - let registry_state = RegistryState::new(&globals); - let mut app_data = AppData { - conn: conn.clone(), - qh: qh.clone(), - dmabuf_state, - workspace_state: WorkspaceState::new(®istry_state, &qh), // Create before toplevel info state - toplevel_info_state: ToplevelInfoState::new(®istry_state, &qh), - toplevel_manager_state: ToplevelManagerState::new(®istry_state, &qh), - screencopy_state: ScreencopyState::new(&globals, &qh), - registry_state, - seat_state: SeatState::new(&globals, &qh), - shm_state: Shm::bind(&globals, &qh).unwrap(), - sender, - seats: Vec::new(), - capture_filter: CaptureFilter::default(), - captures: RefCell::new(HashMap::new()), - dmabuf_feedback: None, - gbm: None, - }; - - app_data.send_event(Event::Seats(app_data.seat_state.seats().collect())); - app_data.send_event(Event::ToplevelManager( - app_data.toplevel_manager_state.manager.clone(), - )); - if let Ok(manager) = app_data.workspace_state.workspace_manager().get() { - app_data.send_event(Event::WorkspaceManager(manager.clone())); - } - - // XXX also monitor cmd sender? Use calloop? thread::spawn(move || { - //event_queue.blocking_dispatch(&mut app_data).unwrap(); + let (executor, scheduler) = calloop::futures::executor().unwrap(); + + let registry_state = RegistryState::new(&globals); + let mut app_data = AppData { + conn: conn.clone(), + qh: qh.clone(), + dmabuf_state, + workspace_state: WorkspaceState::new(®istry_state, &qh), // Create before toplevel info state + toplevel_info_state: ToplevelInfoState::new(®istry_state, &qh), + toplevel_manager_state: ToplevelManagerState::new(®istry_state, &qh), + screencopy_state: ScreencopyState::new(&globals, &qh), + registry_state, + seat_state: SeatState::new(&globals, &qh), + shm_state: Shm::bind(&globals, &qh).unwrap(), + sender, + seats: Vec::new(), + capture_filter: CaptureFilter::default(), + captures: RefCell::new(HashMap::new()), + dmabuf_feedback: None, + gbm: None, + scheduler, + }; + + app_data.send_event(Event::Seats(app_data.seat_state.seats().collect())); + app_data.send_event(Event::ToplevelManager( + app_data.toplevel_manager_state.manager.clone(), + )); + if let Ok(manager) = app_data.workspace_state.workspace_manager().get() { + app_data.send_event(Event::WorkspaceManager(manager.clone())); + } let (cmd_sender, cmd_channel) = calloop::channel::channel(); app_data.send_event(Event::CmdSender(cmd_sender)); @@ -282,6 +283,7 @@ fn start(conn: Connection) -> mpsc::Receiver { } }) .unwrap(); + event_loop.handle().insert_source(executor, |(), _, _| {}); loop { event_loop.dispatch(None, &mut app_data).unwrap();