From 26bb43beb7d6fcc515c4b0b4ce30cf24771db91c Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 30 Oct 2024 22:51:08 -0400 Subject: [PATCH] update iced --- Cargo.lock | 1679 ++++++++++++----- Cargo.toml | 17 +- cosmic-app-list/src/app.rs | 586 +++--- cosmic-app-list/src/wayland_subscription.rs | 25 +- cosmic-applet-audio/src/lib.rs | 107 +- cosmic-applet-audio/src/mouse_area.rs | 10 +- cosmic-applet-audio/src/mpris_subscription.rs | 15 +- cosmic-applet-audio/src/pulse.rs | 9 +- cosmic-applet-battery/Cargo.toml | 8 +- cosmic-applet-battery/src/app.rs | 97 +- cosmic-applet-battery/src/backend/mod.rs | 20 +- cosmic-applet-battery/src/dgpu.rs | 20 +- cosmic-applet-bluetooth/src/app.rs | 69 +- cosmic-applet-bluetooth/src/bluetooth.rs | 26 +- cosmic-applet-input-sources/Cargo.toml | 4 +- cosmic-applet-input-sources/src/lib.rs | 2 +- cosmic-applet-input-sources/src/window.rs | 57 +- cosmic-applet-minimize/src/lib.rs | 87 +- .../src/wayland_subscription.rs | 24 +- cosmic-applet-minimize/src/window_image.rs | 45 +- cosmic-applet-network/Cargo.toml | 1 - cosmic-applet-network/src/app.rs | 81 +- .../src/network_manager/active_conns.rs | 22 +- .../src/network_manager/devices.rs | 19 +- .../src/network_manager/mod.rs | 20 +- .../src/network_manager/wireless_enabled.rs | 22 +- cosmic-applet-notifications/src/lib.rs | 42 +- .../src/subscriptions/dbus.rs | 16 +- .../src/subscriptions/notifications.rs | 9 +- cosmic-applet-power/src/lib.rs | 120 +- .../src/components/app.rs | 77 +- .../src/components/status_menu.rs | 14 +- .../src/subscriptions/status_notifier_item.rs | 7 +- .../status_notifier_watcher/mod.rs | 21 +- cosmic-applet-tiling/src/lib.rs | 2 +- .../src/wayland_subscription.rs | 9 +- cosmic-applet-tiling/src/window.rs | 39 +- cosmic-applet-time/Cargo.toml | 10 +- cosmic-applet-time/src/lib.rs | 2 +- cosmic-applet-time/src/window.rs | 225 ++- .../src/components/app.rs | 123 +- .../src/wayland_subscription.rs | 9 +- cosmic-applets/src/main.rs | 2 +- cosmic-panel-button/Cargo.toml | 1 + cosmic-panel-button/src/lib.rs | 93 +- 45 files changed, 2358 insertions(+), 1535 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51bb64d0..edd6d962 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,40 +2,107 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ab_glyph" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" + [[package]] name = "accesskit" -version = "0.12.2" -source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#26f729169cd849970af02be62289606c63572d2d" +version = "0.16.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" + +[[package]] +name = "accesskit_atspi_common" +version = "0.9.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" +dependencies = [ + "accesskit", + "accesskit_consumer", + "atspi-common", + "serde", + "thiserror", + "zvariant 3.15.2", +] [[package]] name = "accesskit_consumer" +version = "0.24.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" +dependencies = [ + "accesskit", + "immutable-chunkmap", +] + +[[package]] +name = "accesskit_macos" version = "0.17.0" -source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#26f729169cd849970af02be62289606c63572d2d" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" dependencies = [ "accesskit", + "accesskit_consumer", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", ] [[package]] name = "accesskit_unix" -version = "0.7.1" -source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#26f729169cd849970af02be62289606c63572d2d" +version = "0.12.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" dependencies = [ "accesskit", - "accesskit_consumer", + "accesskit_atspi_common", "atspi", "futures-lite 1.13.0", - "once_cell", "serde", "tokio", "tokio-stream", "zbus 3.15.2", ] +[[package]] +name = "accesskit_windows" +version = "0.22.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" +dependencies = [ + "accesskit", + "accesskit_consumer", + "paste", + "static_assertions", + "windows 0.54.0", +] + +[[package]] +name = "accesskit_winit" +version = "0.22.0" +source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13#956955342dadab7e588e21be726817fca39510f3" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "raw-window-handle", + "winit", +] + [[package]] name = "addr2line" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -92,6 +159,33 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14" +[[package]] +name = "android-activity" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +dependencies = [ + "android-properties", + "bitflags 2.6.0", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys 0.6.0+11769913", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -109,9 +203,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" [[package]] name = "apply" @@ -154,11 +248,11 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "ash" -version = "0.37.3+1.3.251" +version = "0.38.0+1.3.281" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" dependencies = [ - "libloading 0.7.4", + "libloading", ] [[package]] @@ -182,9 +276,9 @@ dependencies = [ [[package]] name = "ashpd" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe7e0dd0ac5a401dc116ed9f9119cf9decc625600474cb41f0fc0a0050abc9a" +checksum = "4d43c03d9e36dd40cab48435be0b09646da362c278223ca535493877b2c1dee9" dependencies = [ "enumflags2", "futures-channel", @@ -372,7 +466,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -401,13 +495,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -476,9 +570,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" @@ -501,6 +595,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "basic-toml" version = "0.1.9" @@ -512,18 +612,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" [[package]] name = "bit_field" @@ -561,6 +661,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + [[package]] name = "blocking" version = "1.6.1" @@ -617,22 +726,22 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -649,9 +758,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "calendrical_calculations" @@ -691,13 +800,21 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.21" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ + "jobserver", + "libc", "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.0" @@ -764,7 +881,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "objc", "objc-foundation", @@ -774,7 +891,7 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "dnd", "mime 0.1.0", @@ -784,7 +901,7 @@ dependencies = [ [[package]] name = "clipboard_x11" version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "thiserror", "x11rb", @@ -867,6 +984,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -957,7 +1084,7 @@ dependencies = [ "futures", "i18n-embed 0.14.1", "i18n-embed-fl 0.8.0", - "image 0.25.2", + "image 0.25.4", "itertools 0.13.0", "libcosmic", "memmap2 0.9.5", @@ -1022,7 +1149,7 @@ dependencies = [ "tracing", "tracing-log", "tracing-subscriber", - "udev", + "udev 0.8.0", "zbus 4.4.0", ] @@ -1051,7 +1178,6 @@ name = "cosmic-applet-input-sources" version = "0.1.0" dependencies = [ "cosmic-comp-config", - "cosmic-time", "i18n-embed 0.14.1", "i18n-embed-fl 0.8.0", "libcosmic", @@ -1073,7 +1199,7 @@ dependencies = [ "anyhow", "i18n-embed 0.14.1", "i18n-embed-fl 0.8.0", - "image 0.25.2", + "image 0.25.4", "libcosmic", "memmap2 0.9.5", "once_cell", @@ -1269,7 +1395,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1291,7 +1417,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "quote", "syn 1.0.109", @@ -1300,7 +1426,7 @@ dependencies = [ [[package]] name = "cosmic-dbus-networkmanager" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#063c2ad0dbe090d7e1221817128098493838b13a" +source = "git+https://github.com/pop-os/dbus-settings-bindings#931f5db558bf3fcb572ff4e18f7f1618a7430046" dependencies = [ "bitflags 2.6.0", "derive_builder", @@ -1314,7 +1440,7 @@ dependencies = [ [[package]] name = "cosmic-notifications-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-notifications#e9abef567a928cfa88949dbbdb5c49bb87c2f6a0" +source = "git+https://github.com/pop-os/cosmic-notifications#980b9621332502af4754c837f54e514282581c2f" dependencies = [ "cosmic-config", "serde", @@ -1323,7 +1449,7 @@ dependencies = [ [[package]] name = "cosmic-notifications-util" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-notifications#e9abef567a928cfa88949dbbdb5c49bb87c2f6a0" +source = "git+https://github.com/pop-os/cosmic-notifications#980b9621332502af4754c837f54e514282581c2f" dependencies = [ "bytemuck", "fast_image_resize", @@ -1340,6 +1466,7 @@ dependencies = [ "cosmic-config", "freedesktop-desktop-entry 0.7.5", "libcosmic", + "once_cell", "serde", "tracing", "tracing-log", @@ -1349,7 +1476,7 @@ dependencies = [ [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#0ce85da198f02f94ad75441e64c0e165c41eb4ae" +source = "git+https://github.com/pop-os/cosmic-panel#041a44eb6f825b7e0b3d45ccf745252b136d5da9" dependencies = [ "anyhow", "cosmic-config", @@ -1386,7 +1513,7 @@ dependencies = [ [[package]] name = "cosmic-settings-subscriptions" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-subscriptions#ece1b2475c9eb90e0f2042b743577670e799a010" +source = "git+https://github.com/pop-os/cosmic-settings-subscriptions#ff9883a029b44fb8eafb7c7a06d08b36a563e481" dependencies = [ "cosmic-dbus-networkmanager", "futures", @@ -1410,12 +1537,12 @@ version = "0.12.1" source = "git+https://github.com/pop-os/cosmic-text.git#4fe90bb6126c22f589b46768d7754d65ae300c5e" dependencies = [ "bitflags 2.6.0", - "fontdb", + "fontdb 0.16.2", "log", "rangemap", "rayon", - "rustc-hash", - "rustybuzz 0.14.1", + "rustc-hash 1.1.0", + "rustybuzz", "self_cell 1.0.4", "smol_str", "swash", @@ -1430,7 +1557,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "almost", "cosmic-config", @@ -1447,7 +1574,7 @@ dependencies = [ [[package]] name = "cosmic-time" version = "0.4.0" -source = "git+https://github.com/pop-os/cosmic-time#447ff6dc0cb63490deb997f830ada8408597945d" +source = "git+https://github.com/pop-os/cosmic-time#b1816cd260e1517d40f39d5fbdee44cd825ebdde" dependencies = [ "float-cmp", "libcosmic", @@ -1569,17 +1696,18 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "synstructure", ] [[package]] name = "d3d12" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017" dependencies = [ "bitflags 2.6.0", - "libloading 0.8.5", + "libloading", "winapi", ] @@ -1628,7 +1756,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -1650,7 +1778,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -1660,7 +1788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core 0.9.10", @@ -1765,7 +1893,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -1833,7 +1961,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -1842,7 +1970,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.5", + "libloading", ] [[package]] @@ -1857,7 +1985,7 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "bitflags 2.6.0", "mime 0.1.0", @@ -1866,12 +1994,26 @@ dependencies = [ "smithay-clipboard", ] +[[package]] +name = "document-features" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +dependencies = [ + "litrs", +] + [[package]] name = "downcast-rs" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dpi" +version = "0.1.1" +source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13#1cc02bdab141072eaabad639d74b032fd0fcc62e" + [[package]] name = "drm" version = "0.11.1" @@ -1923,17 +2065,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" -[[package]] -name = "enum-repr" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad30c9c0fa1aaf1ae5010dab11f1117b15d35faf62cda4bbbc53b9987950f18" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "enumflags2" version = "0.7.10" @@ -1952,7 +2083,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -2083,9 +2214,9 @@ checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" dependencies = [ "simd-adler32", ] @@ -2124,9 +2255,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", @@ -2167,7 +2298,7 @@ dependencies = [ "fluent-syntax", "intl-memoizer", "intl_pluralrules", - "rustc-hash", + "rustc-hash 1.1.0", "self_cell 0.10.3", "smallvec", "unic-langid", @@ -2193,9 +2324,9 @@ dependencies = [ [[package]] name = "flume" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ "spin", ] @@ -2208,9 +2339,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "font-types" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0189ccb084f77c5523e08288d418cbaa09c451a08515678a0aa265df9a8b60" +checksum = "dda6e36206148f69fc6ecb1bb6c0dedd7ee469f3db1d0dc2045beea28430ca43" dependencies = [ "bytemuck", ] @@ -2221,7 +2352,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" dependencies = [ - "roxmltree 0.20.0", + "roxmltree", ] [[package]] @@ -2238,6 +2369,20 @@ dependencies = [ "ttf-parser 0.20.0", ] +[[package]] +name = "fontdb" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e32eac81c1135c1df01d4e6d4233c47ba11f6a6d07f33e0bba09d18797077770" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2 0.9.5", + "slotmap", + "tinyvec", + "ttf-parser 0.21.1", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -2256,7 +2401,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -2337,9 +2482,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -2352,9 +2497,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -2362,15 +2507,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -2380,9 +2525,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -2414,32 +2559,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -2486,9 +2631,9 @@ dependencies = [ [[package]] name = "gettext-rs" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6716b8a0db461a2720b850ba1623e5b69e4b1aa0224cf5e1fb23a0fe49e65c" +checksum = "a44e92f7dc08430aca7ed55de161253a22276dfd69c5526e5c5e95d1f7cf338a" dependencies = [ "gettext-sys", "locale_config", @@ -2496,24 +2641,14 @@ dependencies = [ [[package]] name = "gettext-sys" -version = "0.21.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b8797f28f2dabfbe2caadb6db4f7fd739e251b5ede0a2ba49e506071edcf67" +checksum = "bb45773f5b8945f12aecd04558f545964f943dacda1b1155b3d738f5469ef661" dependencies = [ "cc", "temp-dir", ] -[[package]] -name = "gif" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gif" version = "0.13.1" @@ -2526,9 +2661,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gl_generator" @@ -2543,9 +2678,9 @@ dependencies = [ [[package]] name = "glam" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" [[package]] name = "glow" @@ -2561,24 +2696,13 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" dependencies = [ "gl_generator", ] -[[package]] -name = "glyphon" -version = "0.5.0" -source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8" -dependencies = [ - "cosmic-text", - "etagere", - "lru", - "wgpu", -] - [[package]] name = "gpu-alloc" version = "0.6.0" @@ -2600,33 +2724,33 @@ dependencies = [ [[package]] name = "gpu-allocator" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" +checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" dependencies = [ "log", "presser", "thiserror", "winapi", - "windows", + "windows 0.52.0", ] [[package]] name = "gpu-descriptor" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] name = "gpu-descriptor-types" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ "bitflags 2.6.0", ] @@ -2667,6 +2791,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "hassle-rs" version = "0.11.0" @@ -2676,7 +2806,7 @@ dependencies = [ "bitflags 2.6.0", "com", "libc", - "libloading 0.8.5", + "libloading", "thiserror", "widestring", "winapi", @@ -2793,7 +2923,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.77", + "syn 2.0.85", "unic-langid", ] @@ -2814,21 +2944,21 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.77", + "syn 2.0.85", "unic-langid", ] [[package]] name = "i18n-embed-impl" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58" +checksum = "0f2cc0e0523d1fe6fc2c6f66e5038624ea8091b3e7748b5e8e0c84b1698db6c2" dependencies = [ "find-crate", "i18n-config", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -2842,7 +2972,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -2856,16 +2986,16 @@ dependencies = [ [[package]] name = "iced" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "dnd", "iced_accessibility", "iced_core", "iced_futures", "iced_renderer", - "iced_sctk", "iced_widget", + "iced_winit", "image 0.24.9", "mime 0.1.0", "thiserror", @@ -2875,56 +3005,70 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "accesskit", - "accesskit_unix", + "accesskit_winit", ] [[package]] name = "iced_core" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "bitflags 2.6.0", + "bytes", "dnd", - "iced_accessibility", + "glam", "log", "mime 0.1.0", "num-traits", + "once_cell", "palette", "raw-window-handle", + "rustc-hash 2.0.0", "serde", "smithay-client-toolkit", "smol_str", "thiserror", "web-time", "window_clipboard", - "xxhash-rust", ] [[package]] name = "iced_futures" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "futures", "iced_core", "log", + "rustc-hash 2.0.0", "tokio", "wasm-bindgen-futures", "wasm-timer", ] +[[package]] +name = "iced_glyphon" +version = "0.6.0" +source = "git+https://github.com/pop-os/glyphon.git?tag=iced-0.14-dev#6ef9d12a20cfd0f7bdf38136a26ded9f7459ec8b" +dependencies = [ + "cosmic-text", + "etagere", + "lru", + "rustc-hash 2.0.0", + "wgpu", +] + [[package]] name = "iced_graphics" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "bitflags 2.6.0", "bytemuck", "cosmic-text", - "glam", "half", "iced_core", "iced_futures", @@ -2934,16 +3078,15 @@ dependencies = [ "lyon_path", "once_cell", "raw-window-handle", - "rustc-hash", + "rustc-hash 2.0.0", "thiserror", "unicode-segmentation", - "xxhash-rust", ] [[package]] name = "iced_renderer" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2954,91 +3097,57 @@ dependencies = [ [[package]] name = "iced_runtime" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ + "bytes", "dnd", - "iced_accessibility", "iced_core", "iced_futures", - "smithay-client-toolkit", - "thiserror", - "window_clipboard", -] - -[[package]] -name = "iced_sctk" -version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" -dependencies = [ - "enum-repr", - "float-cmp", - "futures", - "iced_futures", - "iced_graphics", - "iced_runtime", - "iced_style", - "itertools 0.12.1", - "lazy_static", "raw-window-handle", "smithay-client-toolkit", "thiserror", - "tracing", - "wayland-backend", - "wayland-protocols", "window_clipboard", - "xkbcommon", - "xkbcommon-dl", - "xkeysym", -] - -[[package]] -name = "iced_style" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" -dependencies = [ - "iced_core", - "once_cell", - "palette", ] [[package]] name = "iced_tiny_skia" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "bytemuck", "cosmic-text", "iced_graphics", - "kurbo", + "kurbo 0.10.4", "log", "resvg", - "rustc-hash", + "rustc-hash 2.0.0", "softbuffer", "tiny-skia", - "xxhash-rust", ] [[package]] name = "iced_wgpu" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "as-raw-xcb-connection", "bitflags 2.6.0", "bytemuck", "futures", "glam", - "glyphon", "guillotiere", + "iced_glyphon", "iced_graphics", "log", "lyon", "once_cell", "raw-window-handle", "resvg", + "rustc-hash 2.0.0", "rustix 0.38.37", "smithay-client-toolkit", + "thiserror", "tiny-xlib", "wayland-backend", "wayland-client", @@ -3050,21 +3159,49 @@ dependencies = [ [[package]] name = "iced_widget" -version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "dnd", "iced_renderer", "iced_runtime", - "iced_style", "num-traits", + "once_cell", "ouroboros", + "rustc-hash 2.0.0", "smithay-client-toolkit", "thiserror", "unicode-segmentation", "window_clipboard", ] +[[package]] +name = "iced_winit" +version = "0.14.0-dev" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" +dependencies = [ + "dnd", + "iced_futures", + "iced_graphics", + "iced_runtime", + "log", + "raw-window-handle", + "rustc-hash 2.0.0", + "smithay-client-toolkit", + "thiserror", + "tracing", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-protocols", + "web-sys", + "winapi", + "window_clipboard", + "winit", + "xkbcommon", + "xkbcommon-dl", + "xkeysym", +] + [[package]] name = "icu" version = "1.5.0" @@ -3413,7 +3550,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -3485,7 +3622,7 @@ dependencies = [ "byteorder", "color_quant", "exr", - "gif 0.13.1", + "gif", "jpeg-decoder", "num-traits", "png", @@ -3495,9 +3632,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae" dependencies = [ "bytemuck", "byteorder-lite", @@ -3511,13 +3648,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" [[package]] -name = "indexmap" -version = "2.5.0" +name = "immutable-chunkmap" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "indexmap" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.0", ] [[package]] @@ -3542,16 +3688,15 @@ dependencies = [ [[package]] name = "input" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7911ce3db9c10c5ab4a35c49af778a5f9a827bd0f7371d9be56175d8dd2740d0" +checksum = "fbdc09524a91f9cacd26f16734ff63d7dc650daffadd2b6f84d17a285bd875a9" dependencies = [ "bitflags 2.6.0", "input-sys", - "io-lifetimes 1.0.11", "libc", "log", - "udev", + "udev 0.9.1", ] [[package]] @@ -3629,6 +3774,37 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "jpeg-decoder" version = "0.3.1" @@ -3640,9 +3816,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -3663,7 +3839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading 0.8.5", + "libloading", "pkg-config", ] @@ -3704,11 +3880,22 @@ dependencies = [ [[package]] name = "kurbo" -version = "0.9.5" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1618d4ebd923e97d67e7cd363d80aef35fe961005cbbbb3d2dad8bdd1bc63440" +dependencies = [ + "arrayvec", + "smallvec", +] + +[[package]] +name = "kurbo" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" +checksum = "89234b2cc610a7dd927ebde6b41dd1a5d4214cffaef4cf1fb2195d592f92518f" dependencies = [ "arrayvec", + "smallvec", ] [[package]] @@ -3725,17 +3912,17 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#9c62f19e4b80b6bcffde024698015d3a533cb944" +source = "git+https://github.com/pop-os/libcosmic#842cd2ec9418e64911c60588fe70a1ce9c45a1b7" dependencies = [ "apply", - "ashpd 0.9.1", + "ashpd 0.9.2", "chrono", "cosmic-client-toolkit", "cosmic-config", @@ -3752,10 +3939,9 @@ dependencies = [ "iced_futures", "iced_renderer", "iced_runtime", - "iced_sctk", - "iced_style", "iced_tiny_skia", "iced_widget", + "iced_winit", "lazy_static", "libc", "mime 0.3.17", @@ -3785,16 +3971,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libloading" version = "0.8.5" @@ -3846,7 +4022,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.7", ] [[package]] @@ -3883,6 +4059,12 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "locale_config" version = "0.3.0" @@ -3924,12 +4106,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" -dependencies = [ - "hashbrown", -] +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" [[package]] name = "lyon" @@ -3953,9 +4132,9 @@ dependencies = [ [[package]] name = "lyon_geom" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9" +checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570" dependencies = [ "arrayvec", "euclid", @@ -3964,9 +4143,9 @@ dependencies = [ [[package]] name = "lyon_path" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c08a606c7a59638d6c6aa18ac91a06aa9fb5f765a7efb27e6a4da58700740d7" +checksum = "8e0b8aec2f58586f6eef237985b9a9b7cb3a3aff4417c575075cf95bf925252e" dependencies = [ "lyon_geom", "num-traits", @@ -4051,9 +4230,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ "bitflags 2.6.0", "block", @@ -4067,7 +4246,7 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "smithay-clipboard", ] @@ -4085,7 +4264,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", - "simd-adler32", ] [[package]] @@ -4095,6 +4273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -4124,7 +4303,7 @@ dependencies = [ [[package]] name = "mpris2-zbus" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#063c2ad0dbe090d7e1221817128098493838b13a" +source = "git+https://github.com/pop-os/dbus-settings-bindings#931f5db558bf3fcb572ff4e18f7f1618a7430046" dependencies = [ "futures-util", "serde", @@ -4142,24 +4321,64 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b" [[package]] name = "naga" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ "arrayvec", "bit-set", "bitflags 2.6.0", + "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", "indexmap", "log", - "num-traits", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "termcolor", "thiserror", "unicode-xid", ] +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys 0.6.0+11769913", + "num_enum", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "nix" version = "0.26.4" @@ -4272,7 +4491,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -4326,6 +4545,27 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "objc" version = "0.2.7" @@ -4333,7 +4573,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -4348,12 +4587,206 @@ dependencies = [ ] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ - "cc", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2", + "dispatch", + "libc", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", ] [[package]] @@ -4367,18 +4800,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "option-ext" @@ -4386,6 +4819,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "orbclient" +version = "0.3.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +dependencies = [ + "libredox", +] + [[package]] name = "ordered-multimap" version = "0.7.3" @@ -4393,7 +4835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" dependencies = [ "dlv-list", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -4408,9 +4850,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.17.2" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +checksum = "944fa20996a25aded6b4795c6d63f10014a7a83f8be9828a11860b08c5fc4a67" dependencies = [ "aliasable", "ouroboros_macro", @@ -4419,15 +4861,16 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.17.2" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd" dependencies = [ "heck 0.4.1", - "proc-macro-error", + "itertools 0.12.1", "proc-macro2", + "proc-macro2-diagnostics", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -4436,6 +4879,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "owned_ttf_parser" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" +dependencies = [ + "ttf-parser 0.25.0", +] + [[package]] name = "palette" version = "0.7.6" @@ -4458,7 +4910,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -4510,7 +4962,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -4576,7 +5028,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -4585,7 +5037,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -4596,29 +5048,29 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -4645,15 +5097,15 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "png" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" dependencies = [ "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.7.4", + "miniz_oxide 0.8.0", ] [[package]] @@ -4730,7 +5182,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.21", + "toml_edit 0.22.22", ] [[package]] @@ -4759,13 +5211,26 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", + "version_check", + "yansi", +] + [[package]] name = "procfs" version = "0.16.0" @@ -4791,9 +5256,9 @@ dependencies = [ [[package]] name = "profiling" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" [[package]] name = "qoi" @@ -4890,17 +5355,11 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rctree" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" - [[package]] name = "read-fonts" -version = "0.20.0" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c141b9980e1150201b2a3a32879001c8f975fe313ec3df5471a9b5c79a880cd" +checksum = "4a04b892cb6f91951f144c33321843790c8574c825aafdb16d815fd7183b5229" dependencies = [ "bytemuck", "font-types", @@ -4926,9 +5385,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -4946,14 +5405,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -4976,13 +5435,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -4993,9 +5452,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "renderdoc-sys" @@ -5005,15 +5464,14 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "resvg" -version = "0.37.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4" +checksum = "944d052815156ac8fa77eaac055220e95ba0b01fa8887108ca710c03805d9051" dependencies = [ - "gif 0.12.0", + "gif", "jpeg-decoder", "log", "pico-args", - "png", "rgb", "svgtypes", "tiny-skia", @@ -5058,18 +5516,12 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64", + "base64 0.21.7", "bitflags 2.6.0", "serde", "serde_derive", ] -[[package]] -name = "roxmltree" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" - [[package]] name = "roxmltree" version = "0.20.0" @@ -5107,7 +5559,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils 7.8.1", - "syn 2.0.77", + "syn 2.0.85", "walkdir", ] @@ -5120,7 +5572,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils 8.5.0", - "syn 2.0.77", + "syn 2.0.85", "walkdir", ] @@ -5166,6 +5618,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustix" version = "0.37.27" @@ -5195,25 +5653,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rustybuzz" -version = "0.12.1" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c" -dependencies = [ - "bitflags 2.6.0", - "bytemuck", - "smallvec", - "ttf-parser 0.20.0", - "unicode-bidi-mirroring 0.1.0", - "unicode-ccc 0.1.2", - "unicode-properties", - "unicode-script", -] +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rustybuzz" @@ -5226,8 +5668,8 @@ dependencies = [ "libm", "smallvec", "ttf-parser 0.21.1", - "unicode-bidi-mirroring 0.2.0", - "unicode-ccc 0.2.0", + "unicode-bidi-mirroring", + "unicode-ccc", "unicode-properties", "unicode-script", ] @@ -5259,6 +5701,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2 0.9.5", + "smithay-client-toolkit", + "tiny-skia", +] + [[package]] name = "secure-string" version = "0.3.0" @@ -5296,9 +5751,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.210" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" dependencies = [ "serde_derive", ] @@ -5317,20 +5772,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "indexmap", "itoa", @@ -5347,7 +5802,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -5417,11 +5872,17 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "skrifa" -version = "0.20.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abea4738067b1e628c6ce28b2c216c19e9ea95715cdb332680e821c3bec2ef23" +checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" dependencies = [ "bytemuck", "read-fonts", @@ -5619,7 +6080,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -5630,19 +6091,19 @@ checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" [[package]] name = "svgtypes" -version = "0.13.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70" +checksum = "794de53cc48eaabeed0ab6a3404a65f40b3e38c067e4435883a65d2aa4ca000e" dependencies = [ - "kurbo", - "siphasher", + "kurbo 0.11.1", + "siphasher 1.0.1", ] [[package]] name = "swash" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93cdc334a50fcc2aa3f04761af3b28196280a6aaadb1ef11215c478ae32615ac" +checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" dependencies = [ "skrifa", "yazi", @@ -5652,7 +6113,7 @@ dependencies = [ [[package]] name = "switcheroo-control" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#063c2ad0dbe090d7e1221817128098493838b13a" +source = "git+https://github.com/pop-os/dbus-settings-bindings#931f5db558bf3fcb572ff4e18f7f1618a7430046" dependencies = [ "zbus 4.4.0", ] @@ -5670,9 +6131,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", @@ -5687,7 +6148,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -5712,15 +6173,15 @@ dependencies = [ [[package]] name = "temp-dir" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231" +checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand 2.1.1", @@ -5746,22 +6207,22 @@ checksum = "7f1835c76a9d443834c04539860f3ce46b9d93ef8c260057f939e967ca81180a" [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -5818,7 +6279,7 @@ dependencies = [ [[package]] name = "timedate-zbus" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#063c2ad0dbe090d7e1221817128098493838b13a" +source = "git+https://github.com/pop-os/dbus-settings-bindings#931f5db558bf3fcb572ff4e18f7f1618a7430046" dependencies = [ "zbus 4.4.0", ] @@ -5866,7 +6327,7 @@ checksum = "1d52f22673960ad13af14ff4025997312def1223bfa7c8e4949d099e6b3d5d1c" dependencies = [ "as-raw-xcb-connection", "ctor-lite", - "libloading 0.8.5", + "libloading", "pkg-config", "tracing", ] @@ -5898,9 +6359,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", @@ -5923,7 +6384,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -5965,13 +6426,13 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "toml_datetime", - "winnow 0.6.18", + "winnow 0.6.20", ] [[package]] @@ -5993,7 +6454,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -6047,13 +6508,19 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" +[[package]] +name = "ttf-parser" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5902c5d130972a0000f60860bfbf46f7ca3db5391eddfedd1b8728bd9dc96c0e" + [[package]] name = "type-map" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" dependencies = [ - "rustc-hash", + "rustc-hash 1.1.0", ] [[package]] @@ -6074,6 +6541,18 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "udev" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d5c197b95f1769931c89f85c33c407801d1fb7a311113bc0b39ad036f1bd81" +dependencies = [ + "io-lifetimes 1.0.11", + "libc", + "libudev-sys", + "pkg-config", +] + [[package]] name = "uds_windows" version = "1.1.0" @@ -6106,15 +6585,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-bidi-mirroring" -version = "0.1.0" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-bidi-mirroring" @@ -6122,12 +6595,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" -[[package]] -name = "unicode-ccc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" - [[package]] name = "unicode-ccc" version = "0.2.0" @@ -6157,9 +6624,9 @@ dependencies = [ [[package]] name = "unicode-properties" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-script" @@ -6194,7 +6661,7 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "upower_dbus" version = "0.3.2" -source = "git+https://github.com/pop-os/dbus-settings-bindings#063c2ad0dbe090d7e1221817128098493838b13a" +source = "git+https://github.com/pop-os/dbus-settings-bindings#931f5db558bf3fcb572ff4e18f7f1618a7430046" dependencies = [ "serde", "serde_repr", @@ -6234,63 +6701,29 @@ dependencies = [ [[package]] name = "usvg" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756" -dependencies = [ - "base64", - "log", - "pico-args", - "usvg-parser", - "usvg-text-layout", - "usvg-tree", - "xmlwriter", -] - -[[package]] -name = "usvg-parser" -version = "0.37.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd4e3c291f45d152929a31f0f6c819245e2921bfd01e7bd91201a9af39a2bdc" +checksum = "b84ea542ae85c715f07b082438a4231c3760539d902e11d093847a0b22963032" dependencies = [ + "base64 0.22.1", "data-url", "flate2", + "fontdb 0.18.0", "imagesize", - "kurbo", + "kurbo 0.11.1", "log", - "roxmltree 0.19.0", + "pico-args", + "roxmltree", + "rustybuzz", "simplecss", - "siphasher", + "siphasher 1.0.1", + "strict-num", "svgtypes", - "usvg-tree", -] - -[[package]] -name = "usvg-text-layout" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d383a3965de199d7f96d4e11a44dd859f46e86de7f3dca9a39bf82605da0a37c" -dependencies = [ - "fontdb", - "kurbo", - "log", - "rustybuzz 0.12.1", + "tiny-skia-path", "unicode-bidi", "unicode-script", "unicode-vo", - "usvg-tree", -] - -[[package]] -name = "usvg-tree" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee3d202ebdb97a6215604b8f5b4d6ef9024efd623cf2e373a6416ba976ec7d3" -dependencies = [ - "rctree", - "strict-num", - "svgtypes", - "tiny-skia-path", + "xmlwriter", ] [[package]] @@ -6307,9 +6740,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", ] @@ -6350,9 +6783,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -6361,24 +6794,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -6388,9 +6821,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6398,22 +6831,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-timer" @@ -6446,9 +6879,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" dependencies = [ "bitflags 2.6.0", "rustix 0.38.37", @@ -6469,9 +6902,9 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" +checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" dependencies = [ "rustix 0.38.37", "wayland-client", @@ -6480,9 +6913,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.4" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -6491,11 +6924,24 @@ dependencies = [ "wayland-server", ] +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + [[package]] name = "wayland-protocols-wlr" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" +checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -6518,9 +6964,9 @@ dependencies = [ [[package]] name = "wayland-server" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f18d47038c0b10479e695d99ed073e400ccd9bdbb60e6e503c96f62adcb12b6" +checksum = "c89532cc712a2adb119eb4d09694b402576052254d0bb284f82ac1c47fb786ad" dependencies = [ "bitflags 2.6.0", "downcast-rs", @@ -6544,9 +6990,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -6554,9 +7000,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -6570,12 +7016,13 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" dependencies = [ "arrayvec", - "cfg-if", "cfg_aliases 0.1.1", + "document-features", "js-sys", "log", "naga", @@ -6594,14 +7041,15 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ "arrayvec", "bit-vec", "bitflags 2.6.0", "cfg_aliases 0.1.1", - "codespan-reporting", + "document-features", "indexmap", "log", "naga", @@ -6609,18 +7057,18 @@ dependencies = [ "parking_lot 0.12.3", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", - "web-sys", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" dependencies = [ "android_system_properties", "arrayvec", @@ -6640,10 +7088,11 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading 0.8.5", + "libloading", "log", "metal", "naga", + "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", "parking_lot 0.12.3", @@ -6651,7 +7100,7 @@ dependencies = [ "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wasm-bindgen", @@ -6662,8 +7111,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.19.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" dependencies = [ "bitflags 2.6.0", "js-sys", @@ -6698,7 +7148,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -6710,7 +7160,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-8#7c59b07b9172d8e0401f7e06609e1050575309c9" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" dependencies = [ "clipboard-win", "clipboard_macos", @@ -6728,7 +7178,19 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core 0.54.0", + "windows-implement", + "windows-interface", "windows-targets 0.52.6", ] @@ -6741,6 +7203,56 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-interface" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -6768,6 +7280,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -6799,6 +7326,12 @@ dependencies = [ "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -6811,6 +7344,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -6823,6 +7362,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -6841,6 +7386,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -6853,6 +7404,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -6865,6 +7422,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -6877,6 +7440,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -6889,6 +7458,57 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winit" +version = "0.30.5" +source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13#1cc02bdab141072eaabad639d74b032fd0fcc62e" +dependencies = [ + "ahash", + "android-activity", + "atomic-waker", + "bitflags 2.6.0", + "block2", + "bytemuck", + "calloop", + "cfg_aliases 0.2.1", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2 0.9.5", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", + "rustix 0.38.37", + "sctk-adwaita", + "smithay-client-toolkit", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + [[package]] name = "winnow" version = "0.5.40" @@ -6900,9 +7520,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -6922,6 +7542,17 @@ dependencies = [ "either", ] +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + [[package]] name = "x11rb" version = "0.13.1" @@ -6931,7 +7562,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.5", + "libloading", "once_cell", "rustix 0.38.37", "x11rb-protocol", @@ -6968,7 +7599,7 @@ dependencies = [ [[package]] name = "xdg-shell-wrapper-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#0ce85da198f02f94ad75441e64c0e165c41eb4ae" +source = "git+https://github.com/pop-os/cosmic-panel#041a44eb6f825b7e0b3d45ccf745252b136d5da9" dependencies = [ "serde", "wayland-protocols-wlr", @@ -7030,10 +7661,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" [[package]] -name = "xxhash-rust" -version = "0.8.12" +name = "yansi" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yazi" @@ -7061,7 +7692,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "synstructure", ] @@ -7163,7 +7794,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "zvariant_utils 2.1.0", ] @@ -7213,7 +7844,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -7233,7 +7864,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "synstructure", ] @@ -7273,7 +7904,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -7335,7 +7966,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "zvariant_utils 2.1.0", ] @@ -7358,5 +7989,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] diff --git a/Cargo.toml b/Cargo.toml index d758158a..b753bebe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,11 +28,14 @@ cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", default "client", ], rev = "c8d3a1c" } cosmic-settings-subscriptions = { git = "https://github.com/pop-os/cosmic-settings-subscriptions" } +# cosmic-settings-subscriptions = { path = "../cosmic-settings-subscriptions" } + cosmic-time = { git = "https://github.com/pop-os/cosmic-time", default-features = false, features = [ - "libcosmic", "once_cell", ] } - +# cosmic-time = { path = "../cosmic-time", default-features = false, features = [ +# "once_cell", +# ] } futures = "0.3" futures-util = "0.3" @@ -44,11 +47,14 @@ i18n-embed-fl = "0.8" libcosmic = { git = "https://github.com/pop-os/libcosmic", default-features = false, features = [ "applet", "applet-token", + "multi-window", "tokio", "wayland", "desktop-systemd-scope", + "winit", "dbus-config", ] } +once_cell = "1" rust-embed = "8.3" rust-embed-utils = "8.3.0" rustix = { version = "0.38", features = ["fs", "process"] } @@ -63,8 +69,15 @@ freedesktop-desktop-entry = "0.7.5" [profile.release] lto = "fat" + [workspace.metadata.cargo-machete] ignored = ["libcosmic"] # [patch."https://github.com/pop-os/libcosmic"] # cosmic-config = { git = "https://github.com/pop-os/libcosmic//" } # libcosmic = { git = "https://github.com/pop-os/libcosmic//" } +# cosmic-config = { path = "../libcosmic/cosmic-config" } +# libcosmic = { path = "../libcosmic" } + +# [patch."https://github.com/pop-os/winit.git"] +# winit = { git = "https://github.com/rust-windowing/winit.git", rev = "241b7a80bba96c91fa3901729cd5dec66abb9be4" } +# winit = { path = "../winit" } diff --git a/cosmic-app-list/src/app.rs b/cosmic-app-list/src/app.rs index b5029b08..568ed644 100755 --- a/cosmic-app-list/src/app.rs +++ b/cosmic-app-list/src/app.rs @@ -24,32 +24,26 @@ use cosmic::{ desktop::IconSource, iced::{ self, + clipboard::mime::{AllowedMimeTypes, AsMimeTypes}, event::listen_with, - wayland::{ - actions::data_device::{DataFromMimeType, DndIcon}, - popup::{destroy_popup, get_popup}, - }, - widget::{ - column, dnd_listener, dnd_source, mouse_area, row, vertical_rule, vertical_space, - Column, Row, - }, - window, Color, Limits, Subscription, Vector, + platform_specific::shell::commands::popup::{destroy_popup, get_popup}, + widget::{column, mouse_area, row, vertical_rule, vertical_space, Column, Row}, + window, Color, Limits, Subscription, }, iced_core::{Border, Padding, Shadow}, - iced_runtime::core::{alignment::Horizontal, event}, - iced_sctk::commands::data_device::{ - accept_mime_type, finish_dnd, request_dnd_data, set_actions, start_drag, + iced_runtime::{ + core::{alignment::Horizontal, event}, + dnd::peek_dnd, }, - iced_style::{application, svg}, theme::{self, Button, Container}, widget::{ - button, divider, horizontal_space, icon, - icon::from_name, + button, divider, dnd_source, horizontal_space, + icon::{self, from_name}, image::Handle, rectangle_tracker::{rectangle_tracker_subscription, RectangleTracker, RectangleUpdate}, - text, Image, + svg, text, DndDestination, Image, }, - Command, Element, Theme, + Element, Task, }; use cosmic_app_list_config::{AppListConfig, APP_ID}; use cosmic_protocols::{ @@ -62,7 +56,7 @@ use futures::future::pending; use iced::{widget::container, Alignment, Background, Length}; use itertools::Itertools; use rand::{thread_rng, Rng}; -use std::{collections::HashMap, path::PathBuf, rc::Rc, str::FromStr, time::Duration}; +use std::{borrow::Cow, collections::HashMap, path::PathBuf, rc::Rc, str::FromStr, time::Duration}; use switcheroo_control::Gpu; use tokio::time::sleep; use url::Url; @@ -70,7 +64,7 @@ use url::Url; static MIME_TYPE: &str = "text/uri-list"; pub fn run() -> cosmic::iced::Result { - cosmic::applet::run::(true, ()) + cosmic::applet::run::(()) } #[derive(Debug, Clone)] @@ -144,22 +138,6 @@ struct DockItem { original_app_id: String, } -impl DataFromMimeType for DockItem { - fn from_mime_type(&self, mime_type: &str) -> Option> { - if mime_type == MIME_TYPE { - Some( - Url::from_file_path(&self.desktop_info.path) - .ok()? - .to_string() - .as_bytes() - .to_vec(), - ) - } else { - None - } - } -} - impl DockItem { fn as_icon( &self, @@ -188,7 +166,7 @@ impl DockItem { let dots = if toplevels.is_empty() { (0..1) .map(|_| { - container(vertical_space(Length::Fixed(0.0))) + container(vertical_space().height(Length::Fixed(0.0))) .padding(app_icon.dot_radius) .into() }) @@ -197,20 +175,20 @@ impl DockItem { (0..1) .map(|_| { container(if toplevels.len() == 1 { - vertical_space(Length::Fixed(0.0)) + vertical_space().height(Length::Fixed(0.0)) } else { match applet.anchor { PanelAnchor::Left | PanelAnchor::Right => { - vertical_space(app_icon.bar_size) + vertical_space().height(app_icon.bar_size) } PanelAnchor::Top | PanelAnchor::Bottom => { - horizontal_space(app_icon.bar_size) + horizontal_space().width(app_icon.bar_size) } } }) .padding(app_icon.dot_radius) - .style(::Style::Custom(Box::new( - move |theme| container::Appearance { + .class(theme::style::Container::Custom(Box::new(move |theme| { + container::Style { text_color: Some(Color::TRANSPARENT), background: if is_focused { Some(Background::Color(theme.cosmic().accent_color().into())) @@ -224,8 +202,8 @@ impl DockItem { }, shadow: Shadow::default(), icon_color: Some(Color::TRANSPARENT), - }, - ))) + } + }))) .into() }) .collect_vec() @@ -234,38 +212,38 @@ impl DockItem { let icon_wrapper: Element<_> = match applet.anchor { PanelAnchor::Left => row(vec![ column(dots).into(), - horizontal_space(Length::Fixed(1.0)).into(), - cosmic_icon.into(), + horizontal_space().width(Length::Fixed(1.0)).into(), + cosmic_icon.clone().into(), ]) - .align_items(iced::Alignment::Center) + .align_y(iced::Alignment::Center) .into(), PanelAnchor::Right => row(vec![ - cosmic_icon.into(), - horizontal_space(Length::Fixed(1.0)).into(), + cosmic_icon.clone().into(), + horizontal_space().width(Length::Fixed(1.0)).into(), column(dots).into(), ]) - .align_items(iced::Alignment::Center) + .align_y(iced::Alignment::Center) .into(), PanelAnchor::Top => column(vec![ row(dots).into(), - vertical_space(Length::Fixed(1.0)).into(), - cosmic_icon.into(), + vertical_space().height(Length::Fixed(1.0)).into(), + cosmic_icon.clone().into(), ]) - .align_items(iced::Alignment::Center) + .align_x(iced::Alignment::Center) .into(), PanelAnchor::Bottom => column(vec![ - cosmic_icon.into(), - vertical_space(Length::Fixed(1.0)).into(), + cosmic_icon.clone().into(), + vertical_space().height(Length::Fixed(1.0)).into(), row(dots).into(), ]) - .align_items(iced::Alignment::Center) + .align_x(iced::Alignment::Center) .into(), }; let icon_button = button::custom(icon_wrapper) .padding(app_icon.padding) .selected(is_focused) - .style(app_list_icon_style(is_focused)); + .class(app_list_icon_style(is_focused)); let icon_button: Element<_> = if interaction_enabled { mouse_area( @@ -290,12 +268,21 @@ impl DockItem { icon_button.into() }; + let path = desktop_info.path.to_path_buf(); let icon_button = if dnd_source_enabled && interaction_enabled { dnd_source(icon_button) + .window(window_id) + .drag_icon(move || { + ( + cosmic_icon.clone().into(), + iced::core::widget::tree::State::None, + ) + }) .drag_threshold(16.) - .on_drag(|_, _| Message::StartDrag((*id).into())) - .on_cancelled(Message::DragFinished) - .on_finished(Message::DragFinished) + .drag_content(move || DndPathBuf(path.clone())) + .on_start(Some(Message::StartDrag(*id))) + .on_cancel(Some(Message::DragFinished)) + .on_finish(Some(Message::DragFinished)) } else { dnd_source(icon_button) }; @@ -352,13 +339,13 @@ pub enum PopupType { TopLevelList, } -// TODO DnD after sctk merges DnD #[derive(Debug, Clone)] enum Message { Wayland(WaylandUpdate), PinApp(u32), UnpinApp(u32), Popup(u32, window::Id), + Pressed(window::Id), TopLevelListPopup(u32, window::Id), GpuRequest(Option>), CloseRequested(window::Id), @@ -367,17 +354,16 @@ enum Message { Toggle(ZcosmicToplevelHandleV1), Exec(String, Option), Quit(String), - Ignore, NewSeat(WlSeat), - RemovedSeat(WlSeat), + RemovedSeat, Rectangle(RectangleUpdate), StartDrag(u32), DragFinished, - DndEnter(f32, f32), + DndEnter(f64, f64), DndExit, - DndMotion(f32, f32), - DndDrop, - DndData(PathBuf), + DndMotion(f64, f64), + DndDropFinished, + DndData(Option), StartListeningForDnd, StopListeningForDnd, IncrementSubscriptionCtr, @@ -396,8 +382,7 @@ fn index_in_list( if existing_preview.is_some() { list_len += 1; } - let total_len = list_len as f32 * (item_size + divider_size) - divider_size; - let pos_in_list = pos_in_list * total_len; + let index = if (list_len == 0) || (pos_in_list < item_size / 2.0) { 0 } else { @@ -405,7 +390,7 @@ fn index_in_list( let mut pos = item_size / 2.0; while i < list_len { let next_pos = pos + item_size + divider_size; - if pos > pos_in_list && pos_in_list < next_pos { + if pos < pos_in_list && pos_in_list < next_pos { break; } pos = next_pos; @@ -461,20 +446,16 @@ where column![ container(if let Some(img) = img { Element::from( - Image::new(Handle::from_pixels( - img.img.width(), - img.img.height(), - img.clone(), - )) - .width(Length::Fill) - .height(Length::Fill) - .content_fit(cosmic::iced_core::ContentFit::Contain), + Image::new(Handle::from_rgba(img.width, img.height, img.img.clone())) + .width(Length::Fill) + .height(Length::Fill) + .content_fit(cosmic::iced_core::ContentFit::Contain), ) } else { - Image::new(Handle::from_pixels(1, 1, vec![0, 0, 0, 255])).into() + Image::new(Handle::from_rgba(1, 1, vec![0, 0, 0, 255])).into() }) - .style(Container::Custom(Box::new(move |theme| { - container::Appearance { + .class(Container::Custom(Box::new(move |theme| { + container::Style { border: Border { color: theme.cosmic().bg_divider().into(), width: border, @@ -486,12 +467,10 @@ where .padding(border as u16) .height(Length::Fill) .width(Length::Fill), - container(text::body(title).horizontal_alignment(Horizontal::Center),) - .width(Length::Fill) - .center_x(), + container(text::body(title).align_x(Horizontal::Center),).center_x(Length::Fill), ] .spacing(4) - .align_items(Alignment::Center), + .align_x(Alignment::Center), ) .align_x(cosmic::iced_core::alignment::Horizontal::Center) .align_y(cosmic::iced_core::alignment::Vertical::Center) @@ -499,7 +478,7 @@ where .width(Length::Fill), ) .on_press(on_press) - .style(window_menu_style(is_focused)) + .class(window_menu_style(is_focused)) .width(Length::Fixed(TOPLEVEL_BUTTON_WIDTH)) .height(Length::Fixed(TOPLEVEL_BUTTON_HEIGHT)) .selected(is_focused) @@ -508,9 +487,9 @@ where fn window_menu_style(selected: bool) -> cosmic::theme::Button { Button::Custom { active: Box::new(move |focused, theme| { - let a = button::StyleSheet::active(theme, focused, selected, &Button::AppletMenu); + let a = button::Catalog::active(theme, focused, selected, &Button::AppletMenu); let rad_s = theme.cosmic().corner_radii.radius_s; - button::Appearance { + button::Style { background: if selected { Some(Background::Color( theme.cosmic().icon_button.selected_state_color().into(), @@ -527,8 +506,8 @@ fn window_menu_style(selected: bool) -> cosmic::theme::Button { let focused = selected || focused; let rad_s = theme.cosmic().corner_radii.radius_s; - let text = button::StyleSheet::hovered(theme, focused, focused, &Button::AppletMenu); - button::Appearance { + let text = button::Catalog::hovered(theme, focused, focused, &Button::AppletMenu); + button::Style { border_radius: rad_s.into(), outline_width: 0.0, ..text @@ -537,8 +516,8 @@ fn window_menu_style(selected: bool) -> cosmic::theme::Button { disabled: Box::new(|theme| { let rad_s = theme.cosmic().corner_radii.radius_s; - let text = button::StyleSheet::disabled(theme, &Button::AppletMenu); - button::Appearance { + let text = button::Catalog::disabled(theme, &Button::AppletMenu); + button::Style { border_radius: rad_s.into(), outline_width: 0.0, ..text @@ -548,8 +527,8 @@ fn window_menu_style(selected: bool) -> cosmic::theme::Button { let focused = selected || focused; let rad_s = theme.cosmic().corner_radii.radius_s; - let text = button::StyleSheet::pressed(theme, focused, focused, &Button::AppletMenu); - button::Appearance { + let text = button::Catalog::pressed(theme, focused, focused, &Button::AppletMenu); + button::Style { border_radius: rad_s.into(), outline_width: 0.0, ..text @@ -561,8 +540,8 @@ fn window_menu_style(selected: bool) -> cosmic::theme::Button { fn app_list_icon_style(selected: bool) -> cosmic::theme::Button { Button::Custom { active: Box::new(move |focused, theme| { - let a = button::StyleSheet::active(theme, focused, selected, &Button::AppletIcon); - button::Appearance { + let a = button::Catalog::active(theme, focused, selected, &Button::AppletIcon); + button::Style { background: if selected { Some(Background::Color( theme.cosmic().icon_button.selected_state_color().into(), @@ -574,11 +553,11 @@ fn app_list_icon_style(selected: bool) -> cosmic::theme::Button { } }), hovered: Box::new(move |focused, theme| { - button::StyleSheet::hovered(theme, focused, selected, &Button::AppletIcon) + button::Catalog::hovered(theme, focused, selected, &Button::AppletIcon) }), - disabled: Box::new(|theme| button::StyleSheet::disabled(theme, &Button::AppletIcon)), + disabled: Box::new(|theme| button::Catalog::disabled(theme, &Button::AppletIcon)), pressed: Box::new(move |focused, theme| { - button::StyleSheet::pressed(theme, focused, selected, &Button::AppletIcon) + button::Catalog::pressed(theme, focused, selected, &Button::AppletIcon) }), } } @@ -616,7 +595,7 @@ impl cosmic::Application for CosmicAppList { fn init( core: cosmic::app::Core, _flags: Self::Flags, - ) -> (Self, iced::Command>) { + ) -> (Self, iced::Task>) { let config = Config::new(APP_ID, AppListConfig::VERSION) .ok() .and_then(|c| AppListConfig::get_entry(&c).ok()) @@ -645,7 +624,7 @@ impl cosmic::Application for CosmicAppList { ( app_list, - Command::perform(try_get_gpus(), |gpus| { + Task::perform(try_get_gpus(), |gpus| { cosmic::app::Message::App(Message::GpuRequest(gpus)) }), ) @@ -662,7 +641,7 @@ impl cosmic::Application for CosmicAppList { fn update( &mut self, message: Self::Message, - ) -> iced::Command> { + ) -> iced::Task> { match message { Message::Popup(id, parent_window_id) => { if let Some(Popup { @@ -676,10 +655,7 @@ impl cosmic::Application for CosmicAppList { } else { self.overflow_active_popup = None; self.overflow_favorites_popup = None; - return Command::batch(vec![ - destroy_popup(popup_id), - destroy_popup(parent), - ]); + return Task::batch(vec![destroy_popup(popup_id), destroy_popup(parent)]); } } if let Some(toplevel_group) = self @@ -692,7 +668,7 @@ impl cosmic::Application for CosmicAppList { Some(r) => r, None => { tracing::error!("No rectangle found for toplevel group"); - return Command::none(); + return Task::none(); } }; @@ -724,10 +700,10 @@ impl cosmic::Application for CosmicAppList { height: height as i32, }; - let gpu_update = Command::perform(try_get_gpus(), |gpus| { + let gpu_update = Task::perform(try_get_gpus(), |gpus| { cosmic::app::Message::App(Message::GpuRequest(gpus)) }); - return Command::batch([gpu_update, get_popup(popup_settings)]); + return Task::batch([gpu_update, get_popup(popup_settings)]); } } Message::TopLevelListPopup(id, parent_window_id) => { @@ -742,10 +718,7 @@ impl cosmic::Application for CosmicAppList { } else { self.overflow_active_popup = None; self.overflow_favorites_popup = None; - return Command::batch(vec![ - destroy_popup(popup_id), - destroy_popup(parent), - ]); + return Task::batch(vec![destroy_popup(popup_id), destroy_popup(parent)]); } } if let Some(toplevel_group) = self @@ -762,7 +735,7 @@ impl cosmic::Application for CosmicAppList { let rectangle = match self.rectangles.get(&toplevel_group.id.into()) { Some(r) => r, - None => return Command::none(), + None => return Task::none(), }; let new_id = window::Id::unique(); @@ -890,7 +863,7 @@ impl cosmic::Application for CosmicAppList { } } Message::StartDrag(id) => { - if let Some((is_pinned, toplevel_group)) = self + if let Some((_, toplevel_group)) = self .active_list .iter() .find_map(|t| { @@ -915,17 +888,6 @@ impl cosmic::Application for CosmicAppList { { let icon_id = window::Id::unique(); self.dnd_source = Some((icon_id, toplevel_group.clone(), DndAction::empty())); - return start_drag( - vec![MIME_TYPE.to_string()], - if is_pinned { - DndAction::all() - } else { - DndAction::Copy - }, - window::Id::MAIN, - Some((DndIcon::Custom(icon_id), Vector::default())), - Box::new(toplevel_group), - ); } } Message::DragFinished => { @@ -944,10 +906,11 @@ impl cosmic::Application for CosmicAppList { } } Message::DndEnter(x, y) => { - let item_size = self.core.applet.suggested_size(false).0; + let item_size = self.core.applet.suggested_size(false).0 + + 2 * self.core.applet.suggested_padding(false); let pos_in_list = match self.core.applet.anchor { - PanelAnchor::Top | PanelAnchor::Bottom => x, - PanelAnchor::Left | PanelAnchor::Right => y, + PanelAnchor::Top | PanelAnchor::Bottom => x as f32, + PanelAnchor::Left | PanelAnchor::Right => y as f32, }; let num_pinned = self.pinned_list.len(); let index = index_in_list(num_pinned, item_size as f32, 4.0, None, pos_in_list); @@ -955,49 +918,45 @@ impl cosmic::Application for CosmicAppList { preview_index: index, ..DndOffer::default() }); - let mut cmds = vec![ - accept_mime_type(Some(MIME_TYPE.to_string())), - set_actions( - if self.dnd_source.is_some() { - DndAction::Move - } else { - DndAction::Copy - }, - DndAction::all(), - ), - ]; + // TODO dnd if let Some(dnd_source) = self.dnd_source.as_ref() { self.dnd_offer.as_mut().unwrap().dock_item = Some(dnd_source.1.clone()); } else { - cmds.push(request_dnd_data(MIME_TYPE.to_string())); + // TODO dnd + return peek_dnd::() + .map(Message::DndData) + .map(cosmic::app::Message::App); } - return Command::batch(cmds); } Message::DndMotion(x, y) => { - if let Some(DndOffer { preview_index, .. }) = self.dnd_offer.as_mut() { - let item_size = self.core.applet.suggested_size(false).0; - let pos_in_list = match self.core.applet.anchor { - PanelAnchor::Top | PanelAnchor::Bottom => x, - PanelAnchor::Left | PanelAnchor::Right => y, - }; - let num_pinned = self.pinned_list.len(); - let index = index_in_list( - num_pinned, - item_size as f32, - 4.0, - Some(*preview_index), - pos_in_list, - ); - *preview_index = index; + let item_size = self.core.applet.suggested_size(false).0 + + 2 * self.core.applet.suggested_padding(false); + let pos_in_list = match self.core.applet.anchor { + PanelAnchor::Top | PanelAnchor::Bottom => x as f32, + PanelAnchor::Left | PanelAnchor::Right => y as f32, + }; + let num_pinned = self.pinned_list.len(); + let index = index_in_list( + num_pinned, + item_size as f32, + 4.0, + self.dnd_offer.as_ref().map(|o| o.preview_index), + pos_in_list, + ); + if let Some(o) = self.dnd_offer.as_mut() { + o.preview_index = index; } } Message::DndExit => { self.dnd_offer = None; - return accept_mime_type(None); } Message::DndData(file_path) => { + let Some(file_path) = file_path else { + tracing::error!("Couldn't peek at hovered path."); + return Task::none(); + }; if let Some(DndOffer { dock_item, .. }) = self.dnd_offer.as_mut() { - if let Ok(de) = fde::DesktopEntry::from_path(file_path, Some(&self.locales)) { + if let Ok(de) = fde::DesktopEntry::from_path(file_path.0, Some(&self.locales)) { self.item_ctr += 1; *dock_item = Some(DockItem { id: self.item_ctr, @@ -1008,7 +967,7 @@ impl cosmic::Application for CosmicAppList { } } } - Message::DndDrop => { + Message::DndDropFinished => { // we actually should have the data already, if not, we probably shouldn't do // anything anyway if let Some((mut dock_item, index)) = self @@ -1051,7 +1010,6 @@ impl cosmic::Application for CosmicAppList { ); } } - return finish_dnd(); } Message::Wayland(event) => { match event { @@ -1082,7 +1040,7 @@ impl cosmic::Application for CosmicAppList { let subscription_ctr = self.subscription_ctr; let mut rng = thread_rng(); let rand_d = rng.gen_range(0..100); - return iced::Command::perform( + return iced::Task::perform( async move { if let Some(millis) = 2u64 .checked_pow(subscription_ctr) @@ -1139,7 +1097,7 @@ impl cosmic::Application for CosmicAppList { ToplevelUpdate::Update(handle, info) => { // TODO probably want to make sure it is removed if info.app_id.is_empty() { - return Command::none(); + return Task::none(); } 'toplevel_loop: for toplevel_list in self .active_list @@ -1195,7 +1153,7 @@ impl cosmic::Application for CosmicAppList { Message::NewSeat(s) => { self.seat.replace(s); } - Message::RemovedSeat(_) => { + Message::RemovedSeat => { self.seat.take(); } Message::Exec(exec, gpu_idx) => { @@ -1215,7 +1173,6 @@ impl cosmic::Application for CosmicAppList { self.rectangle_tracker.replace(tracker); } }, - Message::Ignore => {} Message::ClosePopup => { if let Some(p) = self.popup.take() { return destroy_popup(p.id); @@ -1291,7 +1248,7 @@ impl cosmic::Application for CosmicAppList { self.overflow_active_popup = Some(new_id); let rectangle = self.rectangles.get(&DockItemId::ActiveOverflow); let mut popup_settings = self.core.applet.get_popup_settings( - window::Id::MAIN, + self.core.main_window_id().unwrap(), new_id, None, None, @@ -1335,7 +1292,7 @@ impl cosmic::Application for CosmicAppList { .min_height(1.); cmds.push(get_popup(popup_settings)); } - return Command::batch(cmds); + return Task::batch(cmds); } Message::OpenFavorites => { let create_new = self.overflow_favorites_popup.is_none(); @@ -1347,7 +1304,7 @@ impl cosmic::Application for CosmicAppList { self.overflow_favorites_popup = Some(new_id); let rectangle = self.rectangles.get(&DockItemId::FavoritesOverflow); let mut popup_settings = self.core.applet.get_popup_settings( - window::Id::MAIN, + self.core.main_window_id().unwrap(), new_id, None, None, @@ -1391,11 +1348,16 @@ impl cosmic::Application for CosmicAppList { .min_height(1.); cmds.push(get_popup(popup_settings)); } - return Command::batch(cmds); + return Task::batch(cmds); + } + Message::Pressed(id) => { + if self.popup.is_some() && self.core.main_window_id() == Some(id) { + return self.close_popups(); + } } } - Command::none() + Task::none() } fn view(&self) -> Element { @@ -1450,7 +1412,7 @@ impl cosmic::Application for CosmicAppList { .iter() .any(|y| focused_item.contains(&y.0)), theme.cosmic().radius_xs(), - window::Id::MAIN, + self.core.main_window_id().unwrap(), ) }) .collect(); @@ -1493,7 +1455,7 @@ impl cosmic::Application for CosmicAppList { self.gpus.as_deref(), item.toplevels.iter().any(|y| focused_item.contains(&y.0)), dot_radius, - window::Id::MAIN, + self.core.main_window_id().unwrap(), ), ); } else if self.is_listening_for_dnd && self.pinned_list.is_empty() { @@ -1530,7 +1492,7 @@ impl cosmic::Application for CosmicAppList { .iter() .any(|y| focused_item.contains(&y.0)), dot_radius, - window::Id::MAIN, + self.core.main_window_id().unwrap(), ) }) .collect(); @@ -1558,20 +1520,20 @@ impl cosmic::Application for CosmicAppList { active.push(btn); } - let window_size = self.core.applet.configure.as_ref(); + let window_size = self.core.applet.suggested_bounds.as_ref(); let max_num = if self.core.applet.is_horizontal() { let suggested_width = self.core.applet.suggested_size(false).0 + self.core.applet.suggested_padding(false) * 2; window_size - .and_then(|w| w.new_size.0) - .map(|b| b.get() / suggested_width as u32) + .map(|w| w.width) + .map(|b| (b / suggested_width as f32) as u32) .unwrap_or(u32::MAX) as usize } else { let suggested_height = self.core.applet.suggested_size(false).1 + self.core.applet.suggested_padding(false) * 2; window_size - .and_then(|w| w.new_size.1) - .map(|b| b.get() / suggested_height as u32) + .map(|w| w.height) + .map(|b| (b / suggested_height as f32) as u32) .unwrap_or(u32::MAX) as usize } .max(4); @@ -1584,7 +1546,10 @@ impl cosmic::Application for CosmicAppList { ( Length::Shrink, Length::Shrink, - dnd_listener(row(favorites).spacing(app_icon.icon_spacing)), + DndDestination::for_data::( + row(favorites).spacing(app_icon.icon_spacing), + |_, _| Message::DndDropFinished, + ), row(active).spacing(app_icon.icon_spacing).into(), container(vertical_rule(1)) .height(Length::Fill) @@ -1595,7 +1560,10 @@ impl cosmic::Application for CosmicAppList { ( Length::Shrink, Length::Shrink, - dnd_listener(column(favorites).spacing(app_icon.icon_spacing)), + DndDestination::for_data( + column(favorites).spacing(app_icon.icon_spacing), + |_data: Option, _| Message::DndDropFinished, + ), column(active).spacing(app_icon.icon_spacing).into(), container(divider::horizontal::default()) .width(Length::Fill) @@ -1605,35 +1573,9 @@ impl cosmic::Application for CosmicAppList { }; let favorites = favorites - .on_enter(|_actions, mime_types, location| { - if self.is_listening_for_dnd || mime_types.iter().any(|m| m == MIME_TYPE) { - Message::DndEnter(location.0, location.1) - } else { - Message::Ignore - } - }) - .on_motion(if self.dnd_offer.is_some() { - Message::DndMotion - } else { - |_, _| Message::Ignore - }) - .on_exit(Message::DndExit) - .on_drop(Message::DndDrop) - .on_data(|mime_type, data| { - if mime_type == MIME_TYPE { - if let Some(p) = String::from_utf8(data) - .ok() - .and_then(|s| Url::from_str(&s).ok()) - .and_then(|u| u.to_file_path().ok()) - { - Message::DndData(p) - } else { - Message::Ignore - } - } else { - Message::Ignore - } - }); + .on_enter(|x, y, _| Message::DndEnter(x, y)) + .on_motion(Message::DndMotion) + .on_leave(|| Message::DndExit); let show_pinned = !self.pinned_list.is_empty() || self.dnd_offer.is_some() || self.is_listening_for_dnd; @@ -1655,14 +1597,14 @@ impl cosmic::Application for CosmicAppList { PanelAnchor::Left | PanelAnchor::Right => container( Column::with_children(content_list) .spacing(4.0) - .align_items(Alignment::Center) + .align_x(Alignment::Center) .height(h) .width(w), ), PanelAnchor::Top | PanelAnchor::Bottom => container( Row::with_children(content_list) .spacing(4.0) - .align_items(Alignment::Center) + .align_y(Alignment::Center) .height(h) .width(w), ), @@ -1671,14 +1613,23 @@ impl cosmic::Application for CosmicAppList { let suggested_size = self.core.applet.suggested_size(false); content = content.width(suggested_size.0).height(suggested_size.1); } - if self.popup.is_some() { - mouse_area(content) - .on_right_release(Message::ClosePopup) - .on_press(Message::ClosePopup) - .into() - } else { - content.into() + + let mut limits = Limits::NONE.min_width(1.).min_height(1.); + + if let Some(b) = self.core.applet.suggested_bounds { + if b.width as i32 > 0 { + limits = limits.max_width(b.width); + } + if b.height as i32 > 0 { + limits = limits.max_height(b.height); + } } + + self.core + .applet + .autosize_window(content) + .limits(limits) + .into() } fn view_window(&self, id: window::Id) -> Element { @@ -1717,12 +1668,12 @@ impl cosmic::Application for CosmicAppList { ) -> cosmic::widget::Button<'a, Message> { button::custom(content) .height(20 + 2 * theme::active().cosmic().space_xxs()) - .style(Button::MenuItem) + .class(Button::MenuItem) .padding(menu_control_padding()) .width(Length::Fill) } - let mut content = column![].align_items(Alignment::Center); + let mut content = column![].align_x(Alignment::Center); if let Some(exec) = desktop_info.exec() { if !toplevels.is_empty() { @@ -1796,15 +1747,15 @@ impl cosmic::Application for CosmicAppList { let svg_accent = Rc::new(|theme: &cosmic::Theme| { let color = theme.cosmic().accent_color().into(); - svg::Appearance { color: Some(color) } + svg::Style { color: Some(color) } }); content = content.push( menu_button( if is_pinned { row![ - icon(from_name("checkbox-checked-symbolic").into()) + icon::icon(from_name("checkbox-checked-symbolic").into()) .size(16) - .style(cosmic::theme::Svg::Custom(svg_accent.clone())), + .class(cosmic::theme::Svg::Custom(svg_accent.clone())), text::body(fl!("pin")) ] } else { @@ -1832,33 +1783,43 @@ impl cosmic::Application for CosmicAppList { ), }; } - container(content) - .padding(1) - //TODO: move style to libcosmic - .style(theme::Container::custom(|theme| { - let cosmic = theme.cosmic(); - let component = &cosmic.background.component; - container::Appearance { - icon_color: Some(component.on.into()), - text_color: Some(component.on.into()), - background: Some(Background::Color(component.base.into())), - border: Border { - radius: 8.0.into(), - width: 1.0, - color: component.divider.into(), - }, - ..Default::default() - } - })) - .width(Length::Fill) + self.core + .applet + .popup_container( + container(content) + .padding(1) + //TODO: move style to libcosmic + .class(theme::Container::custom(|theme| { + let cosmic = theme.cosmic(); + let component = &cosmic.background.component; + container::Style { + icon_color: Some(component.on.into()), + text_color: Some(component.on.into()), + background: Some(Background::Color(component.base.into())), + border: Border { + radius: 8.0.into(), + width: 1.0, + color: component.divider.into(), + }, + ..Default::default() + } + })) + .height(Length::Shrink) + .width(Length::Fill), + ) + .limits( + Limits::NONE + .min_width(1.) + .min_height(1.) + .max_width(300.) + .max_height(1000.), + ) .into() } PopupType::TopLevelList => match self.core.applet.anchor { PanelAnchor::Left | PanelAnchor::Right => { - let mut content = column![] - .padding(8) - .align_items(Alignment::Center) - .spacing(8); + let mut content = + column![].padding(8).align_x(Alignment::Center).spacing(8); for (handle, info, img) in toplevels { let title = if info.title.len() > 18 { format!("{:.16}...", &info.title) @@ -1872,11 +1833,14 @@ impl cosmic::Application for CosmicAppList { self.currently_active_toplevel().contains(handle), )); } - self.core.applet.popup_container(content).into() + self.core + .applet + .popup_container(content) + .limits(Limits::NONE.min_width(1.).min_height(1.).max_height(1000.)) + .into() } PanelAnchor::Bottom | PanelAnchor::Top => { - let mut content = - row![].padding(8).align_items(Alignment::Center).spacing(8); + let mut content = row![].padding(8).align_y(Alignment::Center).spacing(8); for (handle, info, img) in toplevels { let title = if info.title.len() > 18 { format!("{:.16}...", &info.title) @@ -1890,7 +1854,11 @@ impl cosmic::Application for CosmicAppList { self.currently_active_toplevel().contains(handle), )); } - self.core.applet.popup_container(content).into() + self.core + .applet + .popup_container(content) + .limits(Limits::NONE.min_width(1.).min_height(1.).max_height(1000.)) + .into() } }, } @@ -1934,14 +1902,14 @@ impl cosmic::Application for CosmicAppList { PanelAnchor::Left | PanelAnchor::Right => container( Column::with_children(active) .spacing(4.0) - .align_items(Alignment::Center) + .align_x(Alignment::Center) .width(Length::Shrink) .height(Length::Shrink), ), PanelAnchor::Top | PanelAnchor::Bottom => container( Row::with_children(active) .spacing(4.0) - .align_items(Alignment::Center) + .align_y(Alignment::Center) .width(Length::Shrink) .height(Length::Shrink), ), @@ -1949,13 +1917,23 @@ impl cosmic::Application for CosmicAppList { // send clear popup on press content if there is an active popup let content: Element<_> = if self.popup.is_some() { mouse_area(content) + .on_release(Message::ClosePopup) .on_right_release(Message::ClosePopup) - .on_press(Message::ClosePopup) .into() } else { content.into() }; - self.core.applet.popup_container(content).into() + self.core + .applet + .popup_container(content) + .limits( + Limits::NONE + .min_width(1.) + .min_height(1.) + .max_width(1920.) + .max_height(1000.), + ) + .into() } else if self .overflow_favorites_popup .as_ref() @@ -2011,14 +1989,14 @@ impl cosmic::Application for CosmicAppList { PanelAnchor::Left | PanelAnchor::Right => container( Column::with_children(favorites) .spacing(4.0) - .align_items(Alignment::Center) + .align_x(Alignment::Center) .width(Length::Shrink) .height(Length::Shrink), ), PanelAnchor::Top | PanelAnchor::Bottom => container( Row::with_children(favorites) .spacing(4.0) - .align_items(Alignment::Center) + .align_y(Alignment::Center) .width(Length::Shrink) .height(Length::Shrink), ), @@ -2031,7 +2009,17 @@ impl cosmic::Application for CosmicAppList { } else { content.into() }; - self.core.applet.popup_container(content).into() + self.core + .applet + .popup_container(content) + .limits( + Limits::NONE + .min_width(1.) + .min_height(1.) + .max_width(1920.) + .max_height(1000.), + ) + .into() } else { let suggested = self.core.applet.suggested_size(false); iced::widget::row!() @@ -2044,38 +2032,16 @@ impl cosmic::Application for CosmicAppList { fn subscription(&self) -> Subscription { Subscription::batch(vec![ wayland_subscription().map(Message::Wayland), - listen_with(|e, _| match e { + listen_with(|e, _, id| match e { cosmic::iced_runtime::core::Event::PlatformSpecific( event::PlatformSpecific::Wayland(event::wayland::Event::Seat(e, seat)), ) => match e { event::wayland::SeatEvent::Enter => Some(Message::NewSeat(seat)), - event::wayland::SeatEvent::Leave => Some(Message::RemovedSeat(seat)), + event::wayland::SeatEvent::Leave => Some(Message::RemovedSeat), }, - // XXX Must be done to catch a finished drag after the source is removed - // (for now, the source is removed when the drag starts) - cosmic::iced_runtime::core::Event::PlatformSpecific( - event::PlatformSpecific::Wayland(event::wayland::Event::DataSource( - event::wayland::DataSourceEvent::DndFinished - | event::wayland::DataSourceEvent::Cancelled, - )), - ) => Some(Message::DragFinished), - cosmic::iced_runtime::core::Event::PlatformSpecific( - event::PlatformSpecific::Wayland(event::wayland::Event::DndOffer( - event::wayland::DndOfferEvent::Enter { mime_types, .. }, - )), - ) => { - if mime_types.iter().any(|m| m == MIME_TYPE) { - Some(Message::StartListeningForDnd) - } else { - None - } - } - cosmic::iced_runtime::core::Event::PlatformSpecific( - event::PlatformSpecific::Wayland(event::wayland::Event::DndOffer( - event::wayland::DndOfferEvent::Leave - | event::wayland::DndOfferEvent::DropPerformed, - )), - ) => Some(Message::StopListeningForDnd), + cosmic::iced_core::Event::Mouse( + cosmic::iced_core::mouse::Event::ButtonPressed(_), + ) => Some(Message::Pressed(id)), _ => None, }), rectangle_tracker_subscription(0).map(|update| Message::Rectangle(update.1)), @@ -2088,7 +2054,7 @@ impl cosmic::Application for CosmicAppList { ]) } - fn style(&self) -> Option<::Style> { + fn style(&self) -> Option { Some(cosmic::applet::style()) } @@ -2099,7 +2065,7 @@ impl cosmic::Application for CosmicAppList { impl CosmicAppList { /// Close any open popups. - fn close_popups(&mut self) -> Command> { + fn close_popups(&mut self) -> Task> { let mut commands = Vec::new(); if let Some(popup) = self.popup.take() { commands.push(destroy_popup(popup.id)); @@ -2110,23 +2076,22 @@ impl CosmicAppList { if let Some(popup) = self.overflow_favorites_popup.take() { commands.push(destroy_popup(popup)); } - Command::batch(commands) + Task::batch(commands) } /// Returns the length of the group in the favorite list after which items are displayed in a popup. /// Shrink the favorite list until it only has active windows, or until it fits in the length provided. fn panel_overflow_lengths(&self) -> (Option, Option) { let mut favorite_index; let mut active_index = None; - let Some(max_major_axis_len) = self.core.applet.configure.as_ref().and_then(|c| { + let Some(mut max_major_axis_len) = self.core.applet.suggested_bounds.as_ref().map(|c| { // if we have a configure for width and height, we're in a overflow popup match self.core.applet.anchor { - PanelAnchor::Top | PanelAnchor::Bottom => c.new_size.0, - PanelAnchor::Left | PanelAnchor::Right => c.new_size.1, + PanelAnchor::Top | PanelAnchor::Bottom => c.width as u32, + PanelAnchor::Left | PanelAnchor::Right => c.height as u32, } }) else { return (None, active_index); }; - let mut max_major_axis_len = max_major_axis_len.get(); // tracing::error!("{} {}", max_major_axis_len, self.pinned_list.len()); // subtract the divider width max_major_axis_len -= 1; @@ -2212,3 +2177,44 @@ fn launch_on_preferred_gpu(desktop_info: &DesktopEntry, gpus: Option<&[Gpu]>) -> Some(Message::Exec(exec.to_string(), gpu_idx)) } + +#[derive(Debug, Default, Clone)] +pub struct DndPathBuf(PathBuf); + +impl AllowedMimeTypes for DndPathBuf { + fn allowed() -> std::borrow::Cow<'static, [String]> { + std::borrow::Cow::Owned(vec![MIME_TYPE.to_string()]) + } +} + +impl TryFrom<(Vec, String)> for DndPathBuf { + type Error = anyhow::Error; + + fn try_from((data, mime_type): (Vec, String)) -> Result { + if mime_type == MIME_TYPE { + if let Some(p) = String::from_utf8(data) + .ok() + .and_then(|s| Url::from_str(&s).ok()) + .and_then(|u| u.to_file_path().ok()) + { + Ok(DndPathBuf(p)) + } else { + anyhow::bail!("Failed to parse.") + } + } else { + anyhow::bail!("Invalid mime type.") + } + } +} + +impl AsMimeTypes for DndPathBuf { + fn available(&self) -> std::borrow::Cow<'static, [String]> { + std::borrow::Cow::Owned(vec![MIME_TYPE.to_string()]) + } + + fn as_bytes(&self, _mime_type: &str) -> Option> { + Some(Cow::Owned( + self.0.clone().to_str()?.to_string().into_bytes(), + )) + } +} diff --git a/cosmic-app-list/src/wayland_subscription.rs b/cosmic-app-list/src/wayland_subscription.rs index ddb076d3..10ff5f52 100644 --- a/cosmic-app-list/src/wayland_subscription.rs +++ b/cosmic-app-list/src/wayland_subscription.rs @@ -7,7 +7,10 @@ use cctk::{ toplevel_info::ToplevelInfo, wayland_client::protocol::wl_output::WlOutput, }; -use cosmic::{iced, iced::subscription}; +use cosmic::{ + iced::{self, stream, Subscription}, + iced_core::image::Bytes, +}; use cosmic_protocols::{ toplevel_info::v1::client::zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, workspace::v1::client::zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1, @@ -19,7 +22,7 @@ use futures::{ SinkExt, StreamExt, }; use once_cell::sync::Lazy; -use std::{fmt::Debug, sync::Arc}; +use std::fmt::Debug; use tokio::sync::Mutex; use crate::wayland_handler::wayland_handler; @@ -28,16 +31,15 @@ pub static WAYLAND_RX: Lazy>>> = Lazy::new(|| Mutex::new(None)); pub fn wayland_subscription() -> iced::Subscription { - subscription::channel( + Subscription::run_with_id( std::any::TypeId::of::(), - 50, - move |mut output| async move { + stream::channel(50, move |mut output| async move { let mut state = State::Waiting; loop { state = start_listening(state, &mut output).await; } - }, + }), ) } @@ -48,12 +50,19 @@ pub enum State { #[derive(Debug, Clone)] pub struct WaylandImage { - pub img: Arc, + pub img: Bytes, + pub width: u32, + pub height: u32, } impl WaylandImage { pub fn new(img: image::RgbaImage) -> Self { - Self { img: Arc::new(img) } + Self { + // TODO avoid copy? + img: Bytes::copy_from_slice(img.as_bytes()), + width: img.width(), + height: img.height(), + } } } diff --git a/cosmic-applet-audio/src/lib.rs b/cosmic-applet-audio/src/lib.rs index c84d72cc..5b34610e 100644 --- a/cosmic-applet-audio/src/lib.rs +++ b/cosmic-applet-audio/src/lib.rs @@ -9,7 +9,7 @@ use std::time::Duration; use crate::{localize::localize, pulse::DeviceInfo}; use config::AudioAppletConfig; use cosmic::{ - app::Command, + app, applet::{ cosmic_panel_config::PanelAnchor, menu_button, menu_control_padding, padded_control, @@ -24,15 +24,14 @@ use cosmic::{ window, Alignment, Length, Limits, Subscription, }, iced_runtime::core::alignment::Horizontal, - iced_style::application, theme, widget::{button, divider, horizontal_space, icon, text, Column, Row}, - Element, Renderer, Theme, + Element, Renderer, Task, Theme, }; use cosmic_settings_subscriptions::pulse as sub_pulse; use cosmic_time::{anim, chain, id, once_cell::sync::Lazy, Instant, Timeline}; use iced::{ - wayland::popup::{destroy_popup, get_popup}, + platform_specific::shell::wayland::commands::popup::{destroy_popup, get_popup}, widget::container, }; use libpulse_binding::volume::Volume; @@ -52,7 +51,7 @@ const PLAY: &str = "media-playback-start-symbolic"; pub fn run() -> cosmic::iced::Result { localize(); - cosmic::applet::run::