diff --git a/Cargo.lock b/Cargo.lock index 4cfc6c21..b88652b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -154,7 +154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.9.3", + "bitflags 2.9.4", "cc", "cesu8", "jni", @@ -568,12 +568,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -596,7 +590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ "annotate-snippets", - "bitflags 2.9.3", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -633,9 +627,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.3" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -767,9 +761,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "calendrical_calculations" -version = "0.1.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97f73e95d668625c9b28a3072e6326773785a0cf807de9f3d632778438f3d38" +checksum = "53c5d386a9f2c8b97e1a036420bcf937db4e5c9df33eb0232025008ced6104c0" dependencies = [ "core_maths", "displaydoc", @@ -781,7 +775,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "log", "polling 3.10.0", "rustix 0.38.44", @@ -789,13 +783,38 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "calloop" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb9f6e1368bd4621d2c86baa7e37de77a938adf5221e5dd3d6133340101b309e" +dependencies = [ + "bitflags 2.9.4", + "polling 3.10.0", + "rustix 1.0.8", + "slab", + "tracing", +] + [[package]] name = "calloop-wayland-source" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ - "calloop", + "calloop 0.13.0", + "rustix 0.38.44", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a7a1dbbe026a55ef47a500b123af5a9a0914520f061d467914cf21be95daf" +dependencies = [ + "calloop 0.14.3", "rustix 0.38.44", "wayland-backend", "wayland-client", @@ -803,10 +822,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.34" +version = "1.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -1419,12 +1439,12 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?branch=main#8e84152fedf350d2756a2c1c90e07313acb9cdf6" +source = "git+https://github.com/pop-os/cosmic-protocols//?branch=main#6254f50abc6dbfccadc6939f80e20081ab5f9d51" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cosmic-protocols", "libc", - "smithay-client-toolkit", + "smithay-client-toolkit 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client", "wayland-protocols", ] @@ -1442,7 +1462,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1453,7 +1473,7 @@ dependencies = [ "known-folders", "notify", "once_cell", - "ron 0.9.0", + "ron", "serde", "tokio", "tracing", @@ -1464,7 +1484,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "quote", "syn 2.0.106", @@ -1483,7 +1503,7 @@ name = "cosmic-dbus-networkmanager" version = "0.1.0" source = "git+https://github.com/pop-os/dbus-settings-bindings#3b86984332be2c930a3536ab714b843c851fa8ca" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "derive_builder", "procfs", "thiserror 1.0.69", @@ -1541,13 +1561,12 @@ dependencies = [ [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#efbc15c4c3c189d051c57f273162a5fc88a0e99a" +source = "git+https://github.com/pop-os/cosmic-panel#9adf94ebefc7dba5e58dd051e6efa87d058d11aa" dependencies = [ "anyhow", "cosmic-config", - "ron 0.8.1", "serde", - "smithay-client-toolkit", + "smithay-client-toolkit 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "tracing", "wayland-protocols-wlr", "xdg-shell-wrapper-config", @@ -1556,9 +1575,9 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?branch=main#8e84152fedf350d2756a2c1c90e07313acb9cdf6" +source = "git+https://github.com/pop-os/cosmic-protocols//?branch=main#6254f50abc6dbfccadc6939f80e20081ab5f9d51" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1570,15 +1589,15 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#3f72461e99ed9acaccd3199d8888cf619dc5f511" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#b725543b2834e5aa82dded3c73f3be65e18bd83e" dependencies = [ "cosmic-config", - "ron 0.9.0", + "ron", "serde", "serde_with", "thiserror 2.0.16", "tracing", - "xkbcommon", + "xkbcommon 0.7.0", ] [[package]] @@ -1607,7 +1626,7 @@ dependencies = [ "num-traits", "pipewire", "rustix 1.0.8", - "smithay-client-toolkit", + "smithay-client-toolkit 0.20.0 (git+https://github.com/smithay/client-toolkit/)", "thiserror 2.0.16", "tokio", "tokio-stream", @@ -1621,7 +1640,7 @@ name = "cosmic-text" version = "0.14.2" source = "git+https://github.com/pop-os/cosmic-text.git#f7033bb0433f6a9ba109007027781ba46ea9ba27" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "fontdb 0.23.0", "log", "rangemap", @@ -1641,7 +1660,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "almost", "cosmic-config", @@ -1649,7 +1668,7 @@ dependencies = [ "dirs 6.0.0", "lazy_static", "palette", - "ron 0.9.0", + "ron", "serde", "serde_json", "thiserror 2.0.16", @@ -1760,7 +1779,7 @@ version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "libloading", "winapi", ] @@ -1841,9 +1860,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -1978,7 +1997,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.6.1", "libc", "objc2 0.6.2", @@ -2009,10 +2028,10 @@ name = "dnd" version = "0.1.0" source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "mime 0.1.0", "raw-window-handle", - "smithay-client-toolkit", + "smithay-client-toolkit 0.19.2", "smithay-clipboard", ] @@ -2042,7 +2061,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytemuck", "drm-ffi 0.7.1", "drm-fourcc", @@ -2055,7 +2074,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80bc8c5c6c2941f70a55c15f8d9f00f9710ebda3ffda98075f996a0e6c92756f" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytemuck", "drm-ffi 0.9.0", "drm-fourcc", @@ -2279,14 +2298,20 @@ dependencies = [ ] [[package]] -name = "fixed_decimal" -version = "0.5.6" +name = "find-msvc-tools" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0febbeb1118a9ecdee6e4520ead6b54882e843dd0592ad233247dbee84c53db8" +checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" + +[[package]] +name = "fixed_decimal" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35943d22b2f19c0cb198ecf915910a8158e94541c89dcc63300d7799d46c2c5e" dependencies = [ "displaydoc", "smallvec", - "writeable 0.5.5", + "writeable", ] [[package]] @@ -2723,7 +2748,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "gpu-alloc-types", ] @@ -2733,7 +2758,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -2755,7 +2780,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2766,7 +2791,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -2816,7 +2841,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "com", "libc", "libloading", @@ -2955,7 +2980,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "dnd", "iced_accessibility", @@ -2973,7 +2998,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "accesskit", "accesskit_winit", @@ -2982,9 +3007,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytes", "cosmic-client-toolkit", "dnd", @@ -3006,7 +3031,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "futures", "iced_core", @@ -3032,9 +3057,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytemuck", "cosmic-text", "half", @@ -3054,7 +3079,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3066,7 +3091,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -3081,7 +3106,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "bytemuck", "cosmic-text", @@ -3097,10 +3122,10 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.9.3", + "bitflags 2.9.4", "bytemuck", "cosmic-client-toolkit", "futures", @@ -3128,7 +3153,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -3147,7 +3172,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -3168,116 +3193,107 @@ dependencies = [ "winapi", "window_clipboard", "winit", - "xkbcommon", + "xkbcommon 0.7.0", "xkbcommon-dl", "xkeysym", ] [[package]] name = "icu" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff5e3018d703f168b00dcefa540a65f1bbc50754ae32f3f5f0e43fe5ee51502" +checksum = "ab13fe39da5da564b88228e9f08815c9d0efbe9ec244e72b149d9994e10f1054" dependencies = [ "icu_calendar", "icu_casemap", "icu_collator", - "icu_collections 1.5.0", + "icu_collections", "icu_datetime", "icu_decimal", "icu_experimental", "icu_list", - "icu_locid", - "icu_locid_transform", - "icu_normalizer 1.5.0", + "icu_locale", + "icu_normalizer", + "icu_pattern", "icu_plurals", - "icu_properties 1.5.1", - "icu_provider 1.5.0", + "icu_properties", + "icu_provider", "icu_segmenter", - "icu_timezone", + "icu_time", ] [[package]] name = "icu_calendar" -version = "1.5.2" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7265b2137f9a36f7634a308d91f984574bbdba8cfd95ceffe1c345552275a8ff" +checksum = "20d8f41e97997bf55d0533f45d67453355cfa9a8990b0b058bedc28df1a5cec2" dependencies = [ "calendrical_calculations", "displaydoc", "icu_calendar_data", - "icu_locid", - "icu_locid_transform", - "icu_provider 1.5.0", - "tinystr 0.7.6", - "writeable 0.5.5", - "zerovec 0.10.4", + "icu_locale", + "icu_locale_core", + "icu_provider", + "ixdtf", + "tinystr", + "writeable", + "zerovec", ] [[package]] name = "icu_calendar_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820499e77e852162190608b4f444e7b4552619150eafc39a9e39333d9efae9e1" +checksum = "7219c8639ab936713a87b571eed2bc2615aa9137e8af6eb221446ee5644acc18" [[package]] name = "icu_casemap" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff0c8ae9f8d31b12e27fc385ff9ab1f3cd9b17417c665c49e4ec958c37da75f" +checksum = "6dc5e74b3c9d7b63e0d7c5fd54ee8c135705df2ea2aa558082dd555dc9747a97" dependencies = [ "displaydoc", "icu_casemap_data", - "icu_collections 1.5.0", - "icu_locid", - "icu_properties 1.5.1", - "icu_provider 1.5.0", - "writeable 0.5.5", - "zerovec 0.10.4", + "icu_collections", + "icu_locale_core", + "icu_properties", + "icu_provider", + "potential_utf", + "writeable", + "zerovec", ] [[package]] name = "icu_casemap_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bd9f6276270c85a5cd54611adbbf94e993ec464a2a86a452a6c565b7ded5d9" +checksum = "f7584067558ab4c60c95d1ac2abd1588689cb4bcd4e099507f62dae86ae8d2c0" [[package]] name = "icu_collator" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d370371887d31d56f361c3eaa15743e54f13bc677059c9191c77e099ed6966b2" +checksum = "42ad4c6a556938dfd31f75a8c54141079e8821dc697ffb799cfe0f0fa11f2edc" dependencies = [ "displaydoc", "icu_collator_data", - "icu_collections 1.5.0", - "icu_locid_transform", - "icu_normalizer 1.5.0", - "icu_properties 1.5.1", - "icu_provider 1.5.0", + "icu_collections", + "icu_locale", + "icu_locale_core", + "icu_normalizer", + "icu_properties", + "icu_provider", "smallvec", "utf16_iter", "utf8_iter", - "zerovec 0.10.4", + "zerovec", ] [[package]] name = "icu_collator_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b353986d77d28991eca4dea5ef2b8982f639342ae19ca81edc44f048bc38ebb" - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke 0.7.5", - "zerofrom", - "zerovec 0.10.4", -] +checksum = "d880b8e680799eabd90c054e1b95526cd48db16c95269f3c89fb3117e1ac92c5" [[package]] name = "icu_collections" @@ -3287,16 +3303,16 @@ checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", "potential_utf", - "yoke 0.8.0", + "yoke", "zerofrom", - "zerovec 0.11.4", + "zerovec", ] [[package]] name = "icu_datetime" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d115efb85e08df3fd77e77f52e7e087545a783fffba8be80bfa2102f306b1780" +checksum = "0790c15e3d6ae3303365fa2337b4f6469de257916141110d14dcaf73f1d31ac5" dependencies = [ "displaydoc", "either", @@ -3304,99 +3320,126 @@ dependencies = [ "icu_calendar", "icu_datetime_data", "icu_decimal", - "icu_locid", - "icu_locid_transform", + "icu_locale", + "icu_locale_core", + "icu_pattern", "icu_plurals", - "icu_provider 1.5.0", - "icu_timezone", - "litemap 0.7.5", + "icu_provider", + "icu_time", + "potential_utf", "smallvec", - "tinystr 0.7.6", - "writeable 0.5.5", - "zerovec 0.10.4", + "tinystr", + "writeable", + "zerovec", ] [[package]] name = "icu_datetime_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef5f04076123cab1b7a926a7083db27fe0d7a0e575adb984854aae3f3a6507d" +checksum = "83791ac10bb7b774f130bb81fa89c4059de710dcef53caa0b86e645212d6d54c" [[package]] name = "icu_decimal" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb8fd98f86ec0448d85e1edf8884e4e318bb2e121bd733ec929a05c0a5e8b0eb" +checksum = "fec61c43fdc4e368a9f450272833123a8ef0d7083a44597660ce94d791b8a2e2" dependencies = [ "displaydoc", "fixed_decimal", "icu_decimal_data", - "icu_locid_transform", - "icu_provider 1.5.0", - "writeable 0.5.5", + "icu_locale", + "icu_locale_core", + "icu_provider", + "serde", + "tinystr", + "writeable", + "zerovec", ] [[package]] name = "icu_decimal_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c95dd97f5ccf6d837a9c115496ec7d36646fa86ca18e7f1412115b4c820ae2" +checksum = "b70963bc35f9bdf1bc66a5c1f458f4991c1dc71760e00fa06016b2c76b2738d5" [[package]] name = "icu_experimental" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7" +checksum = "ebe3d7e64892a434b08d5a58b53127e47a095ff780305f563c8c01798a1051b0" dependencies = [ "displaydoc", + "either", "fixed_decimal", - "icu_collections 1.5.0", + "icu_casemap", + "icu_collections", "icu_decimal", "icu_experimental_data", - "icu_locid", - "icu_locid_transform", - "icu_normalizer 1.5.0", + "icu_list", + "icu_locale", + "icu_locale_core", + "icu_normalizer", "icu_pattern", "icu_plurals", - "icu_properties 1.5.1", - "icu_provider 1.5.0", - "litemap 0.7.5", + "icu_properties", + "icu_provider", + "litemap", "num-bigint", "num-rational", "num-traits", + "potential_utf", "smallvec", - "tinystr 0.7.6", - "writeable 0.5.5", + "tinystr", + "writeable", "zerofrom", - "zerotrie 0.1.3", - "zerovec 0.10.4", + "zerotrie", + "zerovec", ] [[package]] name = "icu_experimental_data" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121df92eafb8f5286d4e8ff401c1e7db8384377f806db3f8db77b91e5b7bd4dd" +checksum = "b60d32ba5610adfc2083f5a759f55d9a9082ebf72750f126cb1630844eea1acf" [[package]] name = "icu_list" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfeda1d7775b6548edd4e8b7562304a559a91ed56ab56e18961a053f367c365" +checksum = "e26f94ec776bb8b28cedc7dcf91033b822c5cb4c1783cf7a3f796fc168aa0c8b" dependencies = [ "displaydoc", "icu_list_data", - "icu_locid_transform", - "icu_provider 1.5.0", - "regex-automata 0.2.0", - "writeable 0.5.5", + "icu_locale", + "icu_provider", + "regex-automata", + "serde", + "writeable", + "zerovec", ] [[package]] name = "icu_list_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b1a7fbdbf3958f1be8354cb59ac73f165b7b7082d447ff2090355c9a069120" +checksum = "5a456a2412458ca45e181d9d51c5090ef8cd90f5692e11d34bafab3b3be1c76b" + +[[package]] +name = "icu_locale" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae5921528335e91da1b6c695dbf1ec37df5ac13faa3f91e5640be93aa2fbefd" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_locale_data", + "icu_provider", + "potential_utf", + "tinystr", + "zerovec", +] [[package]] name = "icu_locale_core" @@ -3405,62 +3448,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", - "litemap 0.8.0", - "tinystr 0.8.1", - "writeable 0.6.1", - "zerovec 0.11.4", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_data" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap 0.7.5", - "tinystr 0.7.6", - "writeable 0.5.5", - "zerovec 0.10.4", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider 1.5.0", - "tinystr 0.7.6", - "zerovec 0.10.4", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections 1.5.0", - "icu_normalizer_data 1.5.1", - "icu_properties 1.5.1", - "icu_provider 1.5.0", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec 0.10.4", -] +checksum = "4fdef0c124749d06a743c69e938350816554eb63ac979166590e2b4ee4252765" [[package]] name = "icu_normalizer" @@ -3469,20 +3467,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", - "icu_collections 2.0.0", - "icu_normalizer_data 2.0.0", - "icu_properties 2.0.1", - "icu_provider 2.0.0", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", "smallvec", - "zerovec 0.11.4", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", ] -[[package]] -name = "icu_normalizer_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" - [[package]] name = "icu_normalizer_data" version = "2.0.0" @@ -3491,51 +3486,36 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_pattern" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4" +checksum = "983825f401e6bc4a13c45d552ffd9ad6f3f6b6bc0ec03f31d6835a90a46deb1f" dependencies = [ "displaydoc", "either", - "writeable 0.5.5", - "yoke 0.7.5", - "zerofrom", + "writeable", + "yoke", + "zerovec", ] [[package]] name = "icu_plurals" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a70e7c025dbd5c501b0a5c188cd11666a424f0dadcd4f0a95b7dafde3b114" +checksum = "0fd83a65f58b6f28e1f3da8c6ada6b415ee3ad5cb480b75bdb669f34d72dd179" dependencies = [ "displaydoc", "fixed_decimal", - "icu_locid_transform", + "icu_locale", "icu_plurals_data", - "icu_provider 1.5.0", - "zerovec 0.10.4", + "icu_provider", + "zerovec", ] [[package]] name = "icu_plurals_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a483403238cb7d6a876a77a5f8191780336d80fe7b8b00bfdeb20be6abbfd112" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections 1.5.0", - "icu_locid_transform", - "icu_properties_data 1.5.1", - "icu_provider 1.5.0", - "tinystr 0.7.6", - "zerovec 0.10.4", -] +checksum = "9ec552d761eaf4a1c39ad28936e0af77a41bf01ff756ea54be4f8bfc21c265d7" [[package]] name = "icu_properties" @@ -3544,44 +3524,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", - "icu_collections 2.0.0", + "icu_collections", "icu_locale_core", - "icu_properties_data 2.0.1", - "icu_provider 2.0.0", + "icu_properties_data", + "icu_provider", "potential_utf", - "zerotrie 0.2.2", - "zerovec 0.11.4", + "zerotrie", + "zerovec", ] -[[package]] -name = "icu_properties_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" - [[package]] name = "icu_properties_data" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr 0.7.6", - "writeable 0.5.5", - "yoke 0.7.5", - "zerofrom", - "zerovec 0.10.4", -] - [[package]] name = "icu_provider" version = "2.0.0" @@ -3591,67 +3548,63 @@ dependencies = [ "displaydoc", "icu_locale_core", "stable_deref_trait", - "tinystr 0.8.1", - "writeable 0.6.1", - "yoke 0.8.0", + "tinystr", + "writeable", + "yoke", "zerofrom", - "zerotrie 0.2.2", - "zerovec 0.11.4", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "zerotrie", + "zerovec", ] [[package]] name = "icu_segmenter" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a717725612346ffc2d7b42c94b820db6908048f39434504cb130e8b46256b0de" +checksum = "e185fc13b6401c138cf40db12b863b35f5edf31b88192a545857b41aeaf7d3d3" dependencies = [ "core_maths", "displaydoc", - "icu_collections 1.5.0", - "icu_locid", - "icu_provider 1.5.0", + "icu_collections", + "icu_locale", + "icu_locale_core", + "icu_provider", "icu_segmenter_data", + "potential_utf", "utf8_iter", - "zerovec 0.10.4", + "zerovec", ] [[package]] name = "icu_segmenter_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e52775179941363cc594e49ce99284d13d6948928d8e72c755f55e98caa1eb" +checksum = "5360a2fbe97f617c4f8b944356dedb36d423f7da7f13c070995cf89e59f01220" [[package]] -name = "icu_timezone" -version = "1.5.0" +name = "icu_time" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa91ba6a585939a020c787235daa8aee856d9bceebd6355e283c0c310bc6de96" +checksum = "10d01a4a2dcbc5e5180ef113920e7461d0e9caaddb3567d81c4eca262efe55c0" dependencies = [ + "calendrical_calculations", "displaydoc", "icu_calendar", - "icu_provider 1.5.0", - "icu_timezone_data", - "tinystr 0.7.6", - "zerotrie 0.1.3", - "zerovec 0.10.4", + "icu_locale_core", + "icu_provider", + "icu_time_data", + "ixdtf", + "serde", + "tinystr", + "writeable", + "zerotrie", + "zerovec", ] [[package]] -name = "icu_timezone_data" -version = "1.5.1" +name = "icu_time_data" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adcf7b613a268af025bc2a2532b4b9ee294e6051c5c0832d8bff20ac0232e68" +checksum = "8472be4410d26a03d7208cae3a76c798dd6766e8226ab977cd8b2d349a6dbf08" [[package]] name = "ident_case" @@ -3676,20 +3629,21 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ - "icu_normalizer 2.0.0", - "icu_properties 2.0.1", + "icu_normalizer", + "icu_properties", ] [[package]] name = "image" -version = "0.25.6" +version = "0.25.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" +checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" dependencies = [ "bytemuck", "byteorder-lite", + "moxcms", "num-traits", - "png", + "png 0.18.0", "zune-core", "zune-jpeg", ] @@ -3702,9 +3656,9 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" [[package]] name = "immutable-chunkmap" -version = "2.0.6" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" +checksum = "e2194c61e2a29841937e84ec2264a905985c397ccccfbd4783191d3285fa92ef" dependencies = [ "arrayvec", ] @@ -3746,7 +3700,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -3766,7 +3720,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbdc09524a91f9cacd26f16734ff63d7dc650daffadd2b6f84d17a285bd875a9" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "input-sys", "libc", "log", @@ -3824,7 +3778,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -3853,6 +3807,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "ixdtf" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8289f7f711a1a51f80e2e368355d023042ca55d8d554fd5e953f01464c15842d" +dependencies = [ + "displaydoc", +] + [[package]] name = "jni" version = "0.21.1" @@ -3998,7 +3961,7 @@ checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#364c0b938183af799739abd3e870be15601ca727" +source = "git+https://github.com/pop-os/libcosmic#2dd6dce0533118104052594cce250314975453bc" dependencies = [ "apply", "ashpd", @@ -4030,7 +3993,7 @@ dependencies = [ "palette", "raw-window-handle", "rfd", - "ron 0.9.0", + "ron", "rustix 1.0.8", "serde", "shlex", @@ -4075,7 +4038,7 @@ version = "2.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "909eb3049e16e373680fe65afe6e2a722ace06b671250cc4849557bc57d6a397" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "libc", "libpulse-sys", "num-derive", @@ -4102,7 +4065,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "libc", "redox_syscall 0.5.17", ] @@ -4113,7 +4076,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65f3a4b81b2a2d8c7f300643676202debd1b7c929dbf5c9bb89402ea11d19810" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cc", "convert_case", "cookie-factory", @@ -4169,12 +4132,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - [[package]] name = "litemap" version = "0.8.0" @@ -4305,7 +4262,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.4.10", + "regex-automata", ] [[package]] @@ -4356,7 +4313,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block", "core-graphics-types", "foreign-types", @@ -4407,6 +4364,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "moxcms" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +dependencies = [ + "num-traits", + "pxfm", +] + [[package]] name = "mpris2-zbus" version = "0.1.0" @@ -4434,7 +4401,7 @@ checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", @@ -4453,7 +4420,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -4504,7 +4471,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -4515,7 +4482,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -4527,7 +4494,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -4550,7 +4517,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", @@ -4717,7 +4684,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4733,7 +4700,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.6.1", "objc2 0.6.2", "objc2-foundation 0.3.1", @@ -4745,7 +4712,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -4769,7 +4736,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4781,7 +4748,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "dispatch2", "objc2 0.6.2", ] @@ -4822,7 +4789,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "dispatch", "libc", @@ -4835,7 +4802,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "objc2 0.6.2", "objc2-core-foundation", ] @@ -4858,7 +4825,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4870,7 +4837,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4893,7 +4860,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-cloud-kit", @@ -4925,7 +4892,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -5221,7 +5188,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08e645ba5c45109106d56610b3ee60eb13a6f2beb8b74f8dc8186cf261788dda" dependencies = [ "anyhow", - "bitflags 2.9.3", + "bitflags 2.9.4", "libc", "libspa", "libspa-sys", @@ -5261,6 +5228,19 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "png" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +dependencies = [ + "bitflags 2.9.4", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "polling" version = "2.8.0" @@ -5303,7 +5283,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ - "zerovec 0.11.4", + "serde", + "zerovec", ] [[package]] @@ -5396,7 +5377,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "hex", "procfs-core", "rustix 0.38.44", @@ -5408,7 +5389,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "hex", ] @@ -5418,6 +5399,15 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +[[package]] +name = "pxfm" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e790881194f6f6e86945f0a42a6981977323669aeb6c40e9c7ec253133b96f8" +dependencies = [ + "num-traits", +] + [[package]] name = "quick-xml" version = "0.37.5" @@ -5553,7 +5543,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -5606,19 +5596,10 @@ checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.10", + "regex-automata", "regex-syntax", ] -[[package]] -name = "regex-automata" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782" -dependencies = [ - "memchr", -] - [[package]] name = "regex-automata" version = "0.4.10" @@ -5691,26 +5672,14 @@ dependencies = [ "bytemuck", ] -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.9.3", - "serde", - "serde_derive", -] - [[package]] name = "ron" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63f3aa105dea217ef30d89581b65a4d527a19afc95ef5750be3890e8d3c5b837" dependencies = [ - "base64 0.22.1", - "bitflags 2.9.3", + "base64", + "bitflags 2.9.4", "serde", "serde_derive", "unicode-ident", @@ -5794,7 +5763,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -5807,7 +5776,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.9.4", @@ -5826,7 +5795,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytemuck", "libm", "smallvec", @@ -5897,7 +5866,7 @@ dependencies = [ "ab_glyph", "log", "memmap2 0.9.8", - "smithay-client-toolkit", + "smithay-client-toolkit 0.19.2", "tiny-skia", ] @@ -5988,7 +5957,7 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "hex", "indexmap 1.9.3", @@ -6118,15 +6087,13 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.9.3", - "bytemuck", - "calloop", - "calloop-wayland-source", + "bitflags 2.9.4", + "calloop 0.13.0", + "calloop-wayland-source 0.3.0", "cursor-icon", "libc", "log", "memmap2 0.9.8", - "pkg-config", "rustix 0.38.44", "thiserror 1.0.69", "wayland-backend", @@ -6136,7 +6103,65 @@ dependencies = [ "wayland-protocols", "wayland-protocols-wlr", "wayland-scanner", - "xkbcommon", + "xkeysym", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" +dependencies = [ + "bitflags 2.9.4", + "bytemuck", + "calloop 0.14.3", + "calloop-wayland-source 0.4.0", + "cursor-icon", + "libc", + "log", + "memmap2 0.9.8", + "pkg-config", + "rustix 1.0.8", + "thiserror 2.0.16", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-experimental", + "wayland-protocols-misc", + "wayland-protocols-wlr", + "wayland-scanner", + "xkbcommon 0.8.0", + "xkeysym", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.20.0" +source = "git+https://github.com/smithay/client-toolkit/#8a0b33616145b38c7f989f8e468d57e69a2a6748" +dependencies = [ + "bitflags 2.9.4", + "bytemuck", + "calloop 0.14.3", + "calloop-wayland-source 0.4.0", + "cursor-icon", + "libc", + "log", + "memmap2 0.9.8", + "pkg-config", + "rustix 1.0.8", + "thiserror 2.0.16", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-experimental", + "wayland-protocols-misc", + "wayland-protocols-wlr", + "wayland-scanner", + "xkbcommon 0.8.0", "xkeysym", ] @@ -6147,7 +6172,7 @@ source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-5#5a3007de dependencies = [ "libc", "raw-window-handle", - "smithay-client-toolkit", + "smithay-client-toolkit 0.19.2", "wayland-backend", ] @@ -6216,7 +6241,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -6454,12 +6479,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde", @@ -6469,15 +6493,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -6502,7 +6526,7 @@ dependencies = [ "bytemuck", "cfg-if", "log", - "png", + "png 0.17.16", "tiny-skia-path", ] @@ -6530,16 +6554,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec 0.10.4", -] - [[package]] name = "tinystr" version = "0.8.1" @@ -6547,7 +6561,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", - "zerovec 0.11.4", + "zerovec", ] [[package]] @@ -6668,6 +6682,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -6714,7 +6729,7 @@ dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex-automata 0.4.10", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -6792,7 +6807,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" dependencies = [ "serde", - "tinystr 0.8.1", + "tinystr", ] [[package]] @@ -6901,7 +6916,7 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b84ea542ae85c715f07b082438a4231c3760539d902e11d093847a0b22963032" dependencies = [ - "base64 0.22.1", + "base64", "data-url", "flate2", "fontdb 0.18.0", @@ -6936,9 +6951,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -7100,7 +7115,7 @@ version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "rustix 1.0.8", "wayland-backend", "wayland-scanner", @@ -7112,7 +7127,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cursor-icon", "wayland-backend", ] @@ -7134,20 +7149,46 @@ version = "0.32.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "wayland-backend", "wayland-client", "wayland-scanner", "wayland-server", ] +[[package]] +name = "wayland-protocols-experimental" +version = "20250721.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-misc" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfe33d551eb8bffd03ff067a8b44bb963919157841a99957151299a6307d19c" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + [[package]] name = "wayland-protocols-plasma" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7160,7 +7201,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7185,7 +7226,7 @@ version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbd4f3aba6c9fba70445ad2a484c0ef0356c1a9459b1e8e435bedc1971a6222" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "downcast-rs", "rustix 1.0.8", "wayland-backend", @@ -7263,7 +7304,7 @@ checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg_aliases 0.1.1", "document-features", "indexmap 2.11.0", @@ -7290,7 +7331,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.9.3", + "bitflags 2.9.4", "block", "cfg_aliases 0.1.1", "core-graphics-types", @@ -7331,7 +7372,7 @@ version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "js-sys", "web-sys", ] @@ -7815,10 +7856,10 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.9.3", + "bitflags 2.9.4", "block2 0.5.1", "bytemuck", - "calloop", + "calloop 0.13.0", "cfg_aliases 0.2.1", "concurrent-queue", "core-foundation", @@ -7840,7 +7881,7 @@ dependencies = [ "redox_syscall 0.4.1", "rustix 0.38.44", "sctk-adwaita", - "smithay-client-toolkit", + "smithay-client-toolkit 0.19.2", "smol_str", "tracing", "unicode-segmentation", @@ -7888,20 +7929,14 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" -dependencies = [ - "either", -] - [[package]] name = "writeable" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +dependencies = [ + "either", +] [[package]] name = "x11-dl" @@ -7961,7 +7996,7 @@ dependencies = [ [[package]] name = "xdg-shell-wrapper-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#efbc15c4c3c189d051c57f273162a5fc88a0e99a" +source = "git+https://github.com/pop-os/cosmic-panel#9adf94ebefc7dba5e58dd051e6efa87d058d11aa" dependencies = [ "serde", "wayland-protocols-wlr", @@ -7988,13 +8023,24 @@ dependencies = [ "xkeysym", ] +[[package]] +name = "xkbcommon" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9" +dependencies = [ + "libc", + "memmap2 0.9.8", + "xkeysym", +] + [[package]] name = "xkbcommon-dl" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "dlib", "log", "once_cell", @@ -8043,18 +8089,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive 0.7.5", - "zerofrom", -] - [[package]] name = "yoke" version = "0.8.0" @@ -8063,22 +8097,10 @@ checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", - "yoke-derive 0.8.0", + "yoke-derive", "zerofrom", ] -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", - "synstructure", -] - [[package]] name = "yoke-derive" version = "0.8.0" @@ -8261,17 +8283,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f" -dependencies = [ - "displaydoc", - "yoke 0.7.5", - "zerofrom", -] - [[package]] name = "zerotrie" version = "0.2.2" @@ -8279,41 +8290,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" dependencies = [ "displaydoc", - "yoke 0.8.0", + "yoke", "zerofrom", ] -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke 0.7.5", - "zerofrom", - "zerovec-derive 0.10.3", -] - [[package]] name = "zerovec" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ - "yoke 0.8.0", + "yoke", "zerofrom", - "zerovec-derive 0.11.1", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "zerovec-derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 14d6d3ae..68f298ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,8 @@ resolver = "3" [workspace.dependencies] anyhow = "1.0.99" -cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "178eb0b" } +cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "6254f50" } +sctk = { package = "smithay-client-toolkit", version = "0.20.0" } cosmic-applets-config = { path = "cosmic-applets-config" } cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", default-features = false, features = [ "client", @@ -72,9 +73,6 @@ lto = "thin" ignored = ["libcosmic"] # [patch."https://github.com/pop-os/libcosmic"] -# cosmic-config = { git = "https://github.com/pop-os/libcosmic//", branch = "desktop-entries-and-icons" } -# libcosmic = { git = "https://github.com/pop-os/libcosmic//", branch = "desktop-entries-and-icons" } -# iced_futures = { git = "https://github.com/pop-os/libcosmic//", branch = "desktop-entries-and-icons" } # cosmic-config = { path = "../libcosmic/cosmic-config" } # libcosmic = { path = "../libcosmic" } # iced_futures = { path = "../libcosmic/iced/futures" } @@ -82,8 +80,6 @@ ignored = ["libcosmic"] # [patch."https://github.com/pop-os/winit.git"] # winit = { git = "https://github.com/rust-windowing/winit.git", rev = "241b7a80bba96c91fa3901729cd5dec66abb9be4" } # winit = { path = "../winit" } -[patch."https://github.com/smithay/client-toolkit.git"] -sctk = { package = "smithay-client-toolkit", version = "=0.19.2" } [patch."https://github.com/pop-os/cosmic-protocols"] cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", branch = "main" } diff --git a/cosmic-applet-time/Cargo.toml b/cosmic-applet-time/Cargo.toml index 51bfb4d0..caf651c6 100644 --- a/cosmic-applet-time/Cargo.toml +++ b/cosmic-applet-time/Cargo.toml @@ -17,11 +17,7 @@ tokio.workspace = true tracing-log.workspace = true tracing-subscriber.workspace = true tracing.workspace = true -icu = { version = "1.5.0", features = [ - "experimental", - "compiled_data", - "icu_datetime_experimental", -] } +icu = { version = "2.0.0", features = ["compiled_data"] } serde.workspace = true zbus.workspace = true timedate-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings" } diff --git a/cosmic-applet-time/src/time.rs b/cosmic-applet-time/src/time.rs index 4fcb1288..9df0970d 100644 --- a/cosmic-applet-time/src/time.rs +++ b/cosmic-applet-time/src/time.rs @@ -3,8 +3,8 @@ use chrono::{Datelike, Days, NaiveDate, Weekday}; -/// Gets the first date that will be visible on the calender -pub fn get_calender_first(year: i32, month: u32, from_weekday: Weekday) -> NaiveDate { +/// Gets the first date that will be visible on the calendar +pub fn get_calendar_first(year: i32, month: u32, from_weekday: Weekday) -> NaiveDate { let date = NaiveDate::from_ymd_opt(year, month, 1).unwrap(); let num_days = (date.weekday() as u32 + 7 - from_weekday as u32) % 7; // chrono::Weekday.num_days_from date.checked_sub_days(Days::new(num_days as u64)).unwrap() diff --git a/cosmic-applet-time/src/window.rs b/cosmic-applet-time/src/window.rs index da1c1137..fa766b52 100644 --- a/cosmic-applet-time/src/window.rs +++ b/cosmic-applet-time/src/window.rs @@ -1,8 +1,6 @@ // Copyright 2023 System76 // SPDX-License-Identifier: GPL-3.0-only -use std::str::FromStr; - use chrono::{Datelike, Timelike}; use cosmic::iced_futures::stream; use cosmic::widget::Id; @@ -13,7 +11,7 @@ use cosmic::{ cosmic_theme::Spacing, iced::{ Alignment, Length, Rectangle, Subscription, - futures::{SinkExt, StreamExt, TryFutureExt, channel::mpsc}, + futures::{SinkExt, StreamExt, channel::mpsc}, platform_specific::shell::wayland::commands::popup::{destroy_popup, get_popup}, widget::{column, row, vertical_space}, window, @@ -30,27 +28,45 @@ use std::sync::LazyLock; use timedate_zbus::TimeDateProxy; use tokio::{sync::watch, time}; -use icu::{ - calendar::DateTime, - datetime::{ - DateTimeFormatter, DateTimeFormatterOptions, - options::{ - components::{self, Bag}, - preferences, - }, - }, - locid::Locale, -}; - -use crate::{config::TimeAppletConfig, fl, time::get_calender_first}; +use crate::{config::TimeAppletConfig, fl, time::get_calendar_first}; use cosmic::applet::token::subscription::{ TokenRequest, TokenUpdate, activation_token_subscription, }; +use icu::{ + datetime::{ + DateTimeFormatter, DateTimeFormatterPreferences, fieldsets, + input::{Date, DateTime, Time}, + options::TimePrecision, + }, + locale::{Locale, preferences::extensions::unicode::keywords::HourCycle}, +}; static AUTOSIZE_MAIN_ID: LazyLock = LazyLock::new(|| Id::new("autosize-main")); -/// In order to keep the understandable, the chrono types are not globals, -/// to avoid conflict with icu +fn get_system_locale() -> Locale { + for var in ["LC_TIME", "LC_ALL", "LANG"] { + if let Ok(locale_str) = std::env::var(var) { + let cleaned_locale = locale_str + .split('.') + .next() + .unwrap_or(&locale_str) + .replace('_', "-"); + + if let Ok(locale) = Locale::try_from_str(&cleaned_locale) { + return locale; + } + + // Try language-only fallback (e.g., "en" from "en-US") + if let Some(lang) = cleaned_locale.split('-').next() { + if let Ok(locale) = Locale::try_from_str(lang) { + return locale; + } + } + } + } + tracing::warn!("No valid locale found in environment, using fallback"); + Locale::try_from_str("en-US").expect("Failed to parse fallback locale 'en-US'") +} pub struct Window { core: cosmic::app::Core, @@ -84,29 +100,173 @@ pub enum Message { } impl Window { - fn format(&self, bag: Bag, date: &D) -> String { - let options = DateTimeFormatterOptions::Components(bag); + fn create_datetime(&self, date: &D) -> DateTime { + DateTime { + date: Date::try_new_gregorian(date.year(), date.month() as u8, date.day() as u8) + .unwrap(), + time: Time::try_new( + self.now.hour() as u8, + self.now.minute() as u8, + self.now.second() as u8, + 0, + ) + .unwrap(), + } + } - let dtf = - DateTimeFormatter::try_new_experimental(&self.locale.clone().into(), options).unwrap(); + fn calendar_grid(&self) -> Grid<'_, Message> { + let mut calendar: Grid<'_, Message> = grid().width(Length::Fill); + let mut first_day_of_week = chrono::Weekday::try_from(self.config.first_day_of_week) + .unwrap_or(chrono::Weekday::Sun); - let datetime = DateTime::try_new_gregorian_datetime( - date.year(), - date.month() as u8, - date.day() as u8, - // hack cause we know that we will only use "now" - // when we need hours (NaiveDate don't support this functions) - self.now.hour() as u8, - self.now.minute() as u8, - self.now.second() as u8, + let first_day = get_calendar_first( + self.date_selected.year(), + self.date_selected.month(), + first_day_of_week, + ); + + let mut day_iter = first_day.iter_days(); + let prefs = DateTimeFormatterPreferences::from(self.locale.clone()); + let weekday = DateTimeFormatter::try_new(prefs, fieldsets::E::short()).unwrap(); + + for _ in 0..7 { + let date = day_iter.next().unwrap(); + let datetime = self.create_datetime(&date); + calendar = calendar.push( + text(weekday.format(&datetime).to_string()) + .size(12) + .width(Length::Fixed(44.0)) + .align_x(Alignment::Center), + ); + first_day_of_week = first_day_of_week.succ(); + } + calendar = calendar.insert_row(); + + let mut day_iter = first_day.iter_days(); + for i in 0..42 { + if i > 0 && i % 7 == 0 { + calendar = calendar.insert_row(); + } + + let date = day_iter.next().unwrap(); + let is_month = date.month() == self.date_selected.month() + && date.year_ce() == self.date_selected.year_ce(); + let is_day = date.day() == self.date_selected.day() && is_month; + let is_today = date == self.date_today; + + calendar = calendar.push(date_button(date.day(), is_month, is_day, is_today)); + } + + calendar + } + + fn vertical_layout(&self) -> Element { + let mut elements = Vec::new(); + let date = self.now.naive_local(); + let datetime = self.create_datetime(&date); + let mut prefs = DateTimeFormatterPreferences::from(self.locale.clone()); + prefs.hour_cycle = Some(if self.config.military_time { + HourCycle::H23 + } else { + HourCycle::H12 + }); + + if self.config.show_date_in_top_panel { + let formatted_date = DateTimeFormatter::try_new(prefs, fieldsets::MD::medium()) + .unwrap() + .format(&datetime) + .to_string(); + + for p in formatted_date.split_whitespace() { + elements.push(self.core.applet.text(p.to_owned()).into()); + } + elements.push( + horizontal_rule(2) + .width(self.core.applet.suggested_size(true).0) + .into(), + ); + } + let mut fs = fieldsets::T::medium(); + if !self.config.show_seconds { + fs = fs.with_time_precision(TimePrecision::Minute); + } + let formatted_time = DateTimeFormatter::try_new(prefs, fs) + .unwrap() + .format(&datetime) + .to_string(); + + // todo: split using formatToParts when it is implemented + // https://github.com/unicode-org/icu4x/issues/4936#issuecomment-2128812667 + for p in formatted_time.split_whitespace().flat_map(|s| s.split(':')) { + elements.push(self.core.applet.text(p.to_owned()).into()); + } + + let date_time_col = Column::with_children(elements) + .align_x(Alignment::Center) + .spacing(4); + + Element::from( + column!( + date_time_col, + horizontal_space().width(Length::Fixed( + (self.core.applet.suggested_size(true).0 + + 2 * self.core.applet.suggested_padding(true)) as f32 + )) + ) + .align_x(Alignment::Center), ) - .unwrap() - .to_iso() - .to_any(); + } - dtf.format(&datetime) - .expect("can't format value") - .to_string() + fn horizontal_layout(&self) -> Element { + let datetime = self.create_datetime(&self.now); + let mut prefs = DateTimeFormatterPreferences::from(self.locale.clone()); + prefs.hour_cycle = Some(if self.config.military_time { + HourCycle::H23 + } else { + HourCycle::H12 + }); + + let formatted_date = if self.config.show_date_in_top_panel { + if self.config.show_weekday { + let mut fs = fieldsets::MDET::long(); + if !self.config.show_seconds { + fs = fs.with_time_precision(TimePrecision::Minute); + } + DateTimeFormatter::try_new(prefs, fs) + .unwrap() + .format(&datetime) + .to_string() + } else { + let mut fs = fieldsets::MDT::long(); + if !self.config.show_seconds { + fs = fs.with_time_precision(TimePrecision::Minute); + } + DateTimeFormatter::try_new(prefs, fs) + .unwrap() + .format(&datetime) + .to_string() + } + } else { + let mut fs = fieldsets::T::medium(); + if !self.config.show_seconds { + fs = fs.with_time_precision(TimePrecision::Minute); + } + DateTimeFormatter::try_new(prefs, fs) + .unwrap() + .format(&datetime) + .to_string() + }; + + Element::from( + row!( + self.core.applet.text(formatted_date), + container(vertical_space().height(Length::Fixed( + (self.core.applet.suggested_size(true).1 + + 2 * self.core.applet.suggested_padding(true)) as f32 + ))) + ) + .align_y(Alignment::Center), + ) } } @@ -117,24 +277,7 @@ impl cosmic::Application for Window { const APP_ID: &'static str = "com.system76.CosmicAppletTime"; fn init(core: app::Core, _flags: Self::Flags) -> (Self, app::Task) { - fn get_local() -> Result> { - let locale = std::env::var("LC_TIME").or_else(|_| std::env::var("LANG"))?; - let locale = locale - .split('.') - .next() - .ok_or(format!("Can't split the locale {locale}"))?; - - let locale = Locale::from_str(locale).map_err(|e| format!("{e:?}"))?; - Ok(locale) - } - - let locale = match get_local() { - Ok(locale) => locale, - Err(e) => { - tracing::error!("can't get locale {e}"); - Locale::default() - } - }; + let locale = get_system_locale(); // Chrono evaluates the local timezone once whereby it's stored in a thread local // variable but never updated @@ -142,7 +285,7 @@ impl cosmic::Application for Window { // timezone is ever externally changed let now = chrono::Local::now().fixed_offset(); - // get today's date forhighlighting purposes + // get today's date for highlighting purposes let today = chrono::NaiveDate::from(now.naive_local()); // Synch `show_seconds` from the config within the time subscription @@ -249,12 +392,11 @@ impl cosmic::Application for Window { let tz = property.get().await?; output .send(Message::TimezoneUpdate(tz)) + .await .map_err(|e| { zbus::Error::InputOutput(std::sync::Arc::new(std::io::Error::other(e))) - }) - .await?; + })?; } - Ok(()) } @@ -280,8 +422,7 @@ impl cosmic::Application for Window { ) } - // Update the time when waking from sleep, so it doesn't need to wait until the next - // scheduled tick to update. + // Update the time when waking from sleep async fn wake_from_sleep(output: &mut mpsc::Sender) -> zbus::Result<()> { let connection = zbus::Connection::system().await?; let proxy = ManagerProxy::new(&connection).await?; @@ -292,7 +433,6 @@ impl cosmic::Application for Window { let _ = output.send(Message::Tick).await; } } - Ok(()) } @@ -484,103 +624,9 @@ impl cosmic::Application for Window { ); let button = button::custom(if horizontal { - let mut bag = Bag::empty(); - - if self.config.show_date_in_top_panel { - if self.config.show_weekday { - bag.weekday = Some(components::Text::Short); - } - - bag.day = Some(components::Day::NumericDayOfMonth); - bag.month = Some(components::Month::Long); - } - - bag.hour = Some(components::Numeric::Numeric); - bag.minute = Some(components::Numeric::Numeric); - bag.second = self - .config - .show_seconds - .then_some(components::Numeric::Numeric); - - let hour_cycle = if self.config.military_time { - preferences::HourCycle::H23 - } else { - preferences::HourCycle::H12 - }; - - bag.preferences = Some(preferences::Bag::from_hour_cycle(hour_cycle)); - - Element::from( - row!( - self.core.applet.text(self.format(bag, &self.now)), - container(vertical_space().height(Length::Fixed( - (self.core.applet.suggested_size(true).1 - + 2 * self.core.applet.suggested_padding(true)) - as f32 - ))) - ) - .align_y(Alignment::Center), - ) + self.horizontal_layout() } else { - // vertical layout - - let mut elements = Vec::new(); - - if self.config.show_date_in_top_panel { - let mut date_bag = Bag::empty(); - - date_bag.day = Some(components::Day::NumericDayOfMonth); - date_bag.month = Some(components::Month::Short); - - let formated = self.format(date_bag, &self.now); - - for p in formated.split_whitespace() { - elements.push(self.core.applet.text(p.to_owned()).into()); - } - - elements.push( - horizontal_rule(2) - .width(self.core.applet.suggested_size(true).0) - .into(), - ) - } - - let mut time_bag: Bag = Bag::empty(); - - time_bag.hour = Some(components::Numeric::Numeric); - time_bag.minute = Some(components::Numeric::Numeric); - - let hour_cycle = if self.config.military_time { - preferences::HourCycle::H23 - } else { - preferences::HourCycle::H12 - }; - - time_bag.preferences = Some(preferences::Bag::from_hour_cycle(hour_cycle)); - - let formated = self.format(time_bag, &self.now); - - // todo: split using formatToParts when it is implemented - // https://github.com/unicode-org/icu4x/issues/4936#issuecomment-2128812667 - for p in formated.split_whitespace().flat_map(|s| s.split(':')) { - elements.push(self.core.applet.text(p.to_owned()).into()); - } - - let date_time_col = Column::with_children(elements) - .align_x(Alignment::Center) - .spacing(4); - - Element::from( - column!( - date_time_col, - horizontal_space().width(Length::Fixed( - (self.core.applet.suggested_size(true).0 - + 2 * self.core.applet.suggested_padding(true)) - as f32 - )) - ) - .align_x(Alignment::Center), - ) + self.vertical_layout() }) .padding(if horizontal { [0, self.core.applet.suggested_padding(true)] @@ -606,17 +652,22 @@ impl cosmic::Application for Window { space_xxs, space_s, .. } = theme::active().cosmic().spacing; - let mut date_bag = Bag::empty(); - date_bag.month = Some(components::Month::Long); - date_bag.day = Some(components::Day::NumericDayOfMonth); - date_bag.year = Some(components::Year::Numeric); + let datetime = self.create_datetime(&self.date_selected); + let prefs = DateTimeFormatterPreferences::from(self.locale.clone()); - let date = text(self.format(date_bag, &self.date_selected)).size(18); - - let mut day_of_week_bag = Bag::empty(); - day_of_week_bag.weekday = Some(components::Text::Long); - - let day_of_week = text::body(self.format(day_of_week_bag, &self.date_selected)); + let date = text( + DateTimeFormatter::try_new(prefs, fieldsets::YMD::long()) + .unwrap() + .format(&datetime) + .to_string(), + ) + .size(18); + let day_of_week = text::body( + DateTimeFormatter::try_new(prefs, fieldsets::E::long()) + .unwrap() + .format(&datetime) + .to_string(), + ); let month_controls = row![ button::icon(icon::from_name("go-previous-symbolic")) @@ -628,51 +679,8 @@ impl cosmic::Application for Window { ] .spacing(8); - // Calender + let calendar = self.calendar_grid(); - let mut calender: Grid<'_, Message> = grid().width(Length::Fill); - let mut first_day_of_week = chrono::Weekday::try_from(self.config.first_day_of_week) - .unwrap_or(chrono::Weekday::Sun); - - let first_day = get_calender_first( - self.date_selected.year(), - self.date_selected.month(), - first_day_of_week, - ); - - let mut weekday_bag = Bag::empty(); - weekday_bag.weekday = Some(components::Text::Short); - - let mut day_iter = first_day.iter_days(); - - for _ in 0..7 { - calender = calender.push( - text(self.format(weekday_bag, &day_iter.next().unwrap())) - .size(12) - .width(Length::Fixed(44.0)) - .align_x(Alignment::Center), - ); - - first_day_of_week = first_day_of_week.succ(); - } - calender = calender.insert_row(); - - let mut day_iter = first_day.iter_days(); - for i in 0..42 { - if i > 0 && i % 7 == 0 { - calender = calender.insert_row(); - } - - let date = day_iter.next().unwrap(); - let is_month = date.month() == self.date_selected.month() - && date.year_ce() == self.date_selected.year_ce(); - let is_day = date.day() == self.date_selected.day() && is_month; - let is_today = date == self.date_today; - - calender = calender.push(date_button(date.day(), is_month, is_day, is_today)); - } - - // content let content_list = column![ row![ column![date, day_of_week], @@ -681,7 +689,7 @@ impl cosmic::Application for Window { ] .align_y(Alignment::Center) .padding([12, 20]), - calender.padding([0, 12].into()), + calendar.padding([0, 12].into()), padded_control(divider::horizontal::default()).padding([space_xxs, space_s]), menu_button(text::body(fl!("datetime-settings"))) .on_press(Message::OpenDateTimeSettings),