diff --git a/.github/workflows/rust-checks.yml b/.github/workflows/rust-checks.yml index b29c7d4..ebcdd80 100644 --- a/.github/workflows/rust-checks.yml +++ b/.github/workflows/rust-checks.yml @@ -24,3 +24,43 @@ jobs: - name: Check formatting run: cargo fmt --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y pkg-config libxkbcommon-dev libfontconfig1-dev libfreetype6-dev libglvnd-dev libinput-dev libvulkan-dev libwayland-dev libx11-dev libxcursor-dev libxi-dev libxrandr-dev libasound2-dev libdbus-1-dev + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + components: clippy + + - name: Run Clippy + run: cargo clippy --all-targets --all-features -- -D warnings + + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y pkg-config libxkbcommon-dev libfontconfig1-dev libfreetype6-dev libglvnd-dev libinput-dev libvulkan-dev libwayland-dev libx11-dev libxcursor-dev libxi-dev libxrandr-dev libasound2-dev libdbus-1-dev + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + components: clippy + + - name: Run Tests + run: cargo test --all-targets --all-features diff --git a/Cargo.lock b/Cargo.lock index 255a7db..cb03881 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,75 +20,78 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "accesskit" -version = "0.16.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.22.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +dependencies = [ + "uuid", +] [[package]] name = "accesskit_atspi_common" -version = "0.9.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.15.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", "accesskit_consumer", "atspi-common", "serde", - "thiserror 1.0.69", - "zvariant 3.15.2", + "zvariant", ] [[package]] name = "accesskit_consumer" -version = "0.24.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.32.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", - "immutable-chunkmap", + "hashbrown 0.16.1", ] [[package]] name = "accesskit_macos" -version = "0.17.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.23.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", "accesskit_consumer", + "hashbrown 0.16.1", "objc2 0.5.2", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", - "once_cell", ] [[package]] name = "accesskit_unix" -version = "0.12.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.18.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", "accesskit_atspi_common", "atspi", - "futures-lite 1.13.0", + "futures-lite", "serde", "tokio", "tokio-stream", - "zbus 3.15.2", + "zbus", ] [[package]] name = "accesskit_windows" -version = "0.22.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.30.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", "accesskit_consumer", - "paste", + "hashbrown 0.16.1", "static_assertions", - "windows 0.54.0", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] name = "accesskit_winit" -version = "0.22.0" -source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3" +version = "0.30.0" +source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" dependencies = [ "accesskit", "accesskit_macos", @@ -144,20 +147,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46319972e74179d707445f64aaa2893bbf6a111de3a9af29b7eb382f8b39e282" dependencies = [ "base64", - "bitflags 2.11.0", + "bitflags 2.11.1", "home", "libc", "log", "miow", - "parking_lot 0.12.5", + "parking_lot", "piper", - "polling 3.11.0", + "polling", "regex-automata", "rustix 1.1.4", "rustix-openpty", "serde", "signal-hook", - "unicode-width 0.2.2", + "unicode-width", "vte", "windows-sys 0.59.0", ] @@ -209,23 +212,21 @@ checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14" [[package]] name = "android-activity" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.0", + "bitflags 2.11.1", "cc", - "cesu8", "jni", - "jni-sys", "libc", "log", "ndk", "ndk-context", - "ndk-sys 0.6.0+11769913", + "ndk-sys", "num_enum", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] @@ -245,9 +246,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -260,15 +261,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -322,9 +323,9 @@ checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" +checksum = "6a3a1fd6f75306b68087b831f025c712524bcb19aad54e557b1129cfa0a2b207" dependencies = [ "rustversion", ] @@ -337,7 +338,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -385,13 +386,13 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.2", + "rand 0.9.4", "raw-window-handle", "serde", "serde_repr", "tokio", "url", - "zbus 5.13.2", + "zbus", ] [[package]] @@ -403,7 +404,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.2", + "rand 0.9.4", "serde", "serde_repr", "tokio", @@ -411,17 +412,7 @@ dependencies = [ "wayland-backend", "wayland-client", "wayland-protocols", - "zbus 5.13.2", -] - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener 2.5.3", - "futures-core", + "zbus", ] [[package]] @@ -430,7 +421,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.4.1", + "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -456,32 +447,12 @@ checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", + "fastrand", + "futures-lite", "pin-project-lite", "slab", ] -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.28", - "slab", - "socket2 0.4.10", - "waker-fn", -] - [[package]] name = "async-io" version = "2.6.0" @@ -492,51 +463,25 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.6.1", + "futures-lite", "parking", - "polling 3.11.0", + "polling", "rustix 1.1.4", "slab", "windows-sys 0.61.2", ] -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - [[package]] name = "async-lock" version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ - "event-listener 5.4.1", + "event-listener", "event-listener-strategy", "pin-project-lite", ] -[[package]] -name = "async-process" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" -dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.44", - "windows-sys 0.48.0", -] - [[package]] name = "async-process" version = "2.5.0" @@ -544,14 +489,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ "async-channel", - "async-io 2.6.0", - "async-lock 3.4.2", + "async-io", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.1", - "futures-lite 2.6.1", + "event-listener", + "futures-lite", "rustix 1.1.4", ] @@ -563,17 +508,17 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" dependencies = [ - "async-io 2.6.0", - "async-lock 3.4.2", + "async-io", + "async-lock", "atomic-waker", "cfg-if", "futures-core", @@ -598,7 +543,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -619,62 +564,51 @@ dependencies = [ [[package]] name = "atspi" -version = "0.19.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca" +checksum = "c77886257be21c9cd89a4ae7e64860c6f0eefca799bb79127913052bd0eefb3d" dependencies = [ "atspi-common", - "atspi-connection", "atspi-proxies", ] [[package]] name = "atspi-common" -version = "0.3.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5" +checksum = "20c5617155740c98003016429ad13fe43ce7a77b007479350a9f8bf95a29f63d" dependencies = [ "enumflags2", "serde", "static_assertions", - "zbus 3.15.2", - "zbus_names 2.6.1", - "zvariant 3.15.2", -] - -[[package]] -name = "atspi-connection" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939" -dependencies = [ - "atspi-common", - "atspi-proxies", - "futures-lite 1.13.0", - "zbus 3.15.2", + "zbus", + "zbus-lockstep", + "zbus-lockstep-macros", + "zbus_names", + "zvariant", ] [[package]] name = "atspi-proxies" -version = "0.3.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52" +checksum = "2230e48787ed3eb4088996eab66a32ca20c0b67bbd4fd6cdfe79f04f1f04c9fc" dependencies = [ "atspi-common", "serde", - "zbus 3.15.2", + "zbus", ] [[package]] name = "auto_enums" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c170965892137a3a9aeb000b4524aa3cc022a310e709d848b6e1cdce4ab4781" +checksum = "65398a2893f41bce5c9259f6e1a4f03fbae40637c1bdc755b4f387f48c613b03" dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -743,18 +677,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bit_field" @@ -770,9 +704,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ "serde_core", ] @@ -825,7 +759,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" dependencies = [ - "objc2 0.6.3", + "objc2 0.6.4", ] [[package]] @@ -837,10 +771,20 @@ dependencies = [ "async-channel", "async-task", "futures-io", - "futures-lite 2.6.1", + "futures-lite", "piper", ] +[[package]] +name = "borsh" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +dependencies = [ + "bytes", + "cfg_aliases", +] + [[package]] name = "brotli-decompressor" version = "5.0.0" @@ -906,7 +850,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -938,60 +882,34 @@ dependencies = [ [[package]] name = "calendrical_calculations" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a0b39595c6ee54a8d0900204ba4c401d0ab4eb45adaf07178e8d017541529e7" +checksum = "5abbd6eeda6885048d357edc66748eea6e0268e3dd11f326fff5bd248d779c26" dependencies = [ "core_maths", "displaydoc", ] -[[package]] -name = "calloop" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" -dependencies = [ - "bitflags 2.11.0", - "log", - "polling 3.11.0", - "rustix 0.38.44", - "slab", - "thiserror 1.0.69", -] - [[package]] name = "calloop" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.0", - "polling 3.11.0", + "bitflags 2.11.1", + "polling", "rustix 1.1.4", "slab", "tracing", ] -[[package]] -name = "calloop-wayland-source" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" -dependencies = [ - "calloop 0.13.0", - "rustix 0.38.44", - "wayland-backend", - "wayland-client", -] - [[package]] name = "calloop-wayland-source" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" dependencies = [ - "calloop 0.14.4", + "calloop", "rustix 1.1.4", "wayland-backend", "wayland-client", @@ -1008,9 +926,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.56" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -1018,12 +936,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfb" version = "0.7.3" @@ -1041,12 +953,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "cfg_aliases" version = "0.2.1" @@ -1062,10 +968,9 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", - "pure-rust-locales", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -1096,7 +1001,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1106,7 +1011,7 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", @@ -1116,7 +1021,7 @@ dependencies = [ [[package]] name = "clipboard_x11" version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "thiserror 1.0.69", "x11rb", @@ -1131,7 +1036,7 @@ dependencies = [ "bitflags 1.3.2", "block", "cocoa-foundation", - "core-foundation", + "core-foundation 0.9.4", "core-graphics", "foreign-types", "libc", @@ -1146,20 +1051,21 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation", - "core-graphics-types", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", "libc", "objc", ] [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] @@ -1170,40 +1076,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "com" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" -dependencies = [ - "com_macros", -] - -[[package]] -name = "com_macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" -dependencies = [ - "com_macros_support", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "com_macros_support" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" @@ -1232,9 +1107,9 @@ dependencies = [ [[package]] name = "compio-buf" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8777c3ad31ab42f8a3a4a1bd629b78f688371df9b0f528d94dfbdbe5c945c9" +checksum = "a00d719dbd8c602ab0d25d219cbc6b517008858de7a8d6c51b4dc95aefff4dce" dependencies = [ "arrayvec", "bytes", @@ -1243,12 +1118,12 @@ dependencies = [ [[package]] name = "compio-driver" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f5f90a253c667513b9db8138d7db2a034437094fde76e4f57542661a7f9cfda" +checksum = "74d42d98dc890ee4db00c1e68a723391711aab6d67085880d716b72830f7c715" dependencies = [ "cfg-if", - "cfg_aliases 0.2.1", + "cfg_aliases", "compio-buf", "compio-log", "crossbeam-queue", @@ -1258,9 +1133,9 @@ dependencies = [ "once_cell", "paste", "pin-project-lite", - "polling 3.11.0", + "polling", "smallvec", - "socket2 0.6.2", + "socket2", "synchrony", "thin-cell", "windows-sys 0.61.2", @@ -1273,7 +1148,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65ee36e1acf2cec4835efe9a986c012b2462c5ef53580e4ee84ae6d5a3d8e3b3" dependencies = [ "cfg-if", - "cfg_aliases 0.2.1", + "cfg_aliases", "compio-buf", "compio-driver", "compio-io", @@ -1312,10 +1187,10 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f05ed201484967dc70de77a8f7a02b29aaa8e6c81cbea2e75492ee0c8d97766b" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1336,7 +1211,7 @@ dependencies = [ "pin-project-lite", "scoped-tls", "slab", - "socket2 0.6.2", + "socket2", "windows-sys 0.61.2", ] @@ -1357,9 +1232,9 @@ checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "core-foundation" @@ -1371,6 +1246,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1384,8 +1269,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", "foreign-types", "libc", ] @@ -1397,7 +1282,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.1", + "core-foundation 0.10.1", "libc", ] @@ -1432,13 +1328,13 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4" +version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=160b086#160b086abe03cd34a8a375d7fbe47b24308d1f38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cosmic-protocols", "libc", - "smithay-client-toolkit 0.20.0", + "smithay-client-toolkit", "wayland-client", "wayland-protocols", ] @@ -1446,7 +1342,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1456,42 +1352,44 @@ dependencies = [ "iced_futures", "known-folders", "notify", - "ron 0.12.0", + "ron 0.12.1", "serde", "tokio", "tracing", "xdg", - "zbus 5.13.2", + "zbus", ] [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "cosmic-files" -version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-files.git#ee719d578cc18860dc4e707a212a53a87ecba259" +version = "1.0.9" +source = "git+https://github.com/pop-os/cosmic-files.git#9a8910008819718f2c1f45a4f9270a96490ca4ef" dependencies = [ "anyhow", - "chrono", "compio", "cosmic-client-toolkit", "dirs 6.0.0", "env_logger", + "filetime", "flate2", - "fork 0.6.0", + "fork 0.7.0", "glob", "i18n-embed", "i18n-embed-fl", "icu", "ignore", "image", + "jiff", + "jiff-icu", "jxl-oxide", "libc", "libcosmic", @@ -1508,7 +1406,7 @@ dependencies = [ "recently-used-xbel", "regex", "rust-embed", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "serde", "shlex", "slotmap", @@ -1528,7 +1426,7 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#7a61a704f6d1ec41f71cbe766e3cc484858523fa" +source = "git+https://github.com/pop-os/freedesktop-icons#9c562fe3ecf03241a46a60c0078cd6ea10bd75ce" dependencies = [ "bstr", "btoi", @@ -1541,10 +1439,10 @@ dependencies = [ [[package]] name = "cosmic-protocols" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4" +version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=160b086#160b086abe03cd34a8a375d7fbe47b24308d1f38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1556,7 +1454,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#defa9f790432c70054ca1f39737d879ada5d0252" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#716da6d6af0b252e2f78aba2ad72ee19ae0241e0" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1569,14 +1467,14 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#0fa672f8dadb884001ef9a251b149ed432879629" +source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" dependencies = [ - "zbus 5.13.2", + "zbus", ] [[package]] name = "cosmic-term" -version = "1.0.8" +version = "1.0.11" dependencies = [ "alacritty_terminal", "clap_lex", @@ -1587,7 +1485,7 @@ dependencies = [ "i18n-embed", "i18n-embed-fl", "icu", - "indexmap 2.13.0", + "indexmap 2.14.0", "libcosmic", "log", "open", @@ -1608,18 +1506,18 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.18.2" -source = "git+https://github.com/pop-os/cosmic-text.git#f31b9d86959676d97fde54ff5907a58ab4308897" +source = "git+https://github.com/pop-os/cosmic-text.git#4d74f795cc771fdcc7ea0f9cacba63fcf036fad6" dependencies = [ - "bitflags 2.11.0", - "fontdb 0.23.0", + "bitflags 2.11.1", + "fontdb", "harfrust", "linebender_resource_handle", "log", "rangemap", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "self_cell", - "skrifa 0.40.0", - "smol_str 0.3.2", + "skrifa", + "smol_str", "swash", "sys-locale", "unicode-bidi", @@ -1631,7 +1529,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "almost", "configparser", @@ -1639,7 +1537,7 @@ dependencies = [ "csscolorparser", "dirs 6.0.0", "palette", - "ron 0.12.0", + "ron 0.12.1", "serde", "serde_json", "thiserror 2.0.18", @@ -1654,21 +1552,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" version = "1.5.0" @@ -1718,6 +1601,18 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "cryoglyph" +version = "0.1.0" +source = "git+https://github.com/pop-os/glyphon.git?tag=cosmic-0.14#c49de15bce4d8254ac136d1be9911960cc85ce12" +dependencies = [ + "cosmic-text", + "etagere", + "lru", + "rustc-hash 2.1.2", + "wgpu", +] + [[package]] name = "crypto-common" version = "0.1.7" @@ -1736,9 +1631,9 @@ checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a" [[package]] name = "csscolorparser" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a878cfd6075649977f548ed439564cfdbe1f190a6656a00b48af7740f2f148" +checksum = "199f851bd3cb5004c09474252c7f74e7c047441ed0979bf3688a7106a13da952" dependencies = [ "num-traits", "phf 0.13.1", @@ -1758,25 +1653,24 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" -[[package]] -name = "d3d12" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017" -dependencies = [ - "bitflags 2.11.0", - "libloading", - "winapi", -] - [[package]] name = "darling" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -1790,7 +1684,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", ] [[package]] @@ -1799,9 +1706,20 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", "quote", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn", ] [[package]] @@ -1812,9 +1730,9 @@ checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "deflate64" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" +checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" [[package]] name = "deranged" @@ -1826,38 +1744,27 @@ dependencies = [ "serde_core", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_setters" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7e6f6fa1f03c14ae082120b84b3c7fbd7b8588d924cf2d7c3daf9afd49df8b9" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "derive_utils" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccfae181bab5ab6c5478b2ccb69e4c68a02f8c3ec72f6616bfec9dbc599d2ee0" +checksum = "362f47930db19fe7735f527e6595e4900316b893ebf6d48ad3d31be928d57dd6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1934,22 +1841,16 @@ dependencies = [ "winapi", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", "libc", - "objc2 0.6.3", + "objc2 0.6.4", ] [[package]] @@ -1960,14 +1861,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "dlib" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" dependencies = [ "libloading", ] @@ -1975,12 +1876,12 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "mime 0.1.0", "raw-window-handle", - "smithay-client-toolkit 0.19.2", + "smithay-client-toolkit", "smithay-clipboard", ] @@ -2001,8 +1902,8 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" -version = "0.1.1" -source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13-rc#dd46a1499bcc38f2134ab869e8860a32e091c55b" +version = "0.1.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" [[package]] name = "drm" @@ -2010,7 +1911,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "drm-ffi", "drm-fourcc", @@ -2079,14 +1980,14 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "env_filter" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", "regex", @@ -2094,9 +1995,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "anstream", "anstyle", @@ -2122,7 +2023,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2159,30 +2060,13 @@ dependencies = [ [[package]] name = "euclid" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df61bf483e837f88d5c2291dcf55c67be7e676b3a51acc48db3a7b163b91ed63" +checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" dependencies = [ "num-traits", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - [[package]] name = "event-listener" version = "5.4.1" @@ -2200,7 +2084,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", + "event-listener", "pin-project-lite", ] @@ -2227,18 +2111,9 @@ checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" [[package]] name = "fastrand" -version = "1.9.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fax" @@ -2257,7 +2132,7 @@ checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2306,9 +2181,9 @@ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed_decimal" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35eabf480f94d69182677e37571d3be065822acfafd12f2f085db44fbbcc8e57" +checksum = "79c3c892f121fff406e5dd6b28c1b30096b95111c30701a899d4f2b18da6d1bd" dependencies = [ "displaydoc", "smallvec", @@ -2332,6 +2207,15 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + [[package]] name = "float_next_after" version = "1.0.0" @@ -2358,7 +2242,7 @@ dependencies = [ "fluent-syntax", "intl-memoizer", "intl_pluralrules", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "self_cell", "smallvec", "unic-langid", @@ -2405,19 +2289,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] -name = "font-types" -version = "0.10.1" +name = "foldhash" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5" -dependencies = [ - "bytemuck", -] +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "font-types" -version = "0.11.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4d2d0cf79d38430cc9dc9aadec84774bff2e1ba30ae2bf6c16cfce9385a23" +checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7" dependencies = [ "bytemuck", ] @@ -2431,20 +2312,6 @@ dependencies = [ "roxmltree", ] -[[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.10", - "slotmap", - "tinyvec", - "ttf-parser 0.21.1", -] - [[package]] name = "fontdb" version = "0.23.0" @@ -2456,7 +2323,7 @@ dependencies = [ "memmap2 0.9.10", "slotmap", "tinyvec", - "ttf-parser 0.25.1", + "ttf-parser", ] [[package]] @@ -2477,7 +2344,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2497,9 +2364,9 @@ dependencies = [ [[package]] name = "fork" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29714eb48a54d35d6f107e38cc58003f2e26825f222119db8369d28b24b79f2a" +checksum = "5bcc4b4161e53d499e41af904acb23950adf85682c772921ef3957cf1ecc98b3" dependencies = [ "libc", ] @@ -2534,7 +2401,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6d3a3635983a889f065aa9ce760384713f23a9b4a04f696f86c39a5d7a6a5a" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "nom 8.0.0", ] @@ -2595,28 +2462,13 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ - "fastrand 2.3.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -2631,7 +2483,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2663,6 +2515,21 @@ dependencies = [ "slab", ] +[[package]] +name = "generator" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f04ae4152da20c76fe800fa48659201d5cf627c5149ca0b707b69d7eef6cf9" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows-link 0.2.1", + "windows-result 0.4.1", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -2680,7 +2547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ "rustix 1.1.4", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -2701,24 +2568,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", + "js-sys", "libc", - "r-efi", + "r-efi 6.0.0", "wasip2", "wasip3", + "wasm-bindgen", ] [[package]] @@ -2753,9 +2620,9 @@ dependencies = [ [[package]] name = "gif" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" +checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" dependencies = [ "color_quant", "weezl", @@ -2799,9 +2666,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.13.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -2824,7 +2691,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "gpu-alloc-types", ] @@ -2834,20 +2701,19 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] name = "gpu-allocator" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" +checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" dependencies = [ "log", "presser", "thiserror 1.0.69", - "winapi", - "windows 0.52.0", + "windows 0.58.0", ] [[package]] @@ -2856,7 +2722,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2867,7 +2733,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -2894,19 +2760,20 @@ checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "num-traits", "zerocopy", ] [[package]] name = "harfrust" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9f40651a03bc0f7316bd75267ff5767e93017ef3cfffe76c6aa7252cc5a31c" +checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "core_maths", - "read-fonts 0.37.0", + "read-fonts", "smallvec", ] @@ -2922,7 +2789,7 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "foldhash", + "foldhash 0.1.5", ] [[package]] @@ -2930,21 +2797,15 @@ name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", +] [[package]] -name = "hassle-rs" -version = "0.11.0" +name = "hashbrown" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" -dependencies = [ - "bitflags 2.11.0", - "com", - "libc", - "libloading", - "thiserror 1.0.69", - "widestring", - "winapi", -] +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" [[package]] name = "heck" @@ -2958,12 +2819,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hermit-abi" version = "0.5.2" @@ -3013,11 +2868,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -3047,7 +2902,7 @@ dependencies = [ "i18n-embed-impl", "intl-memoizer", "log", - "parking_lot 0.12.5", + "parking_lot", "rust-embed", "sys-locale", "thiserror 1.0.69", @@ -3070,7 +2925,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn", "unic-langid", ] @@ -3084,7 +2939,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3113,26 +2968,29 @@ dependencies = [ [[package]] name = "iced" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "dnd", "iced_accessibility", "iced_core", + "iced_debug", "iced_futures", + "iced_program", "iced_renderer", + "iced_runtime", "iced_widget", "iced_winit", "image", "mime 0.1.0", - "thiserror 1.0.69", + "thiserror 2.0.18", "window_clipboard", ] [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "accesskit", "accesskit_winit", @@ -3140,60 +2998,58 @@ dependencies = [ [[package]] name = "iced_core" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", "cosmic-client-toolkit", "dnd", "glam", + "lilt", "log", "mime 0.1.0", "num-traits", - "once_cell", "palette", "raw-window-handle", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "serde", - "smol_str 0.2.2", - "thiserror 1.0.69", + "smol_str", + "thiserror 2.0.18", "web-time", "window_clipboard", ] +[[package]] +name = "iced_debug" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" +dependencies = [ + "iced_core", + "iced_futures", + "log", +] + [[package]] name = "iced_futures" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "futures", "iced_core", "log", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "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.1.1", - "wgpu", + "wasmtimer", ] [[package]] name = "iced_graphics" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cosmic-text", "half", @@ -3203,29 +3059,37 @@ dependencies = [ "kamadak-exif", "log", "lyon_path", - "once_cell", "raw-window-handle", - "rustc-hash 2.1.1", - "thiserror 1.0.69", + "rustc-hash 2.1.2", + "thiserror 2.0.18", "unicode-segmentation", ] +[[package]] +name = "iced_program" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" +dependencies = [ + "iced_graphics", + "iced_runtime", +] + [[package]] name = "iced_renderer" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "iced_graphics", "iced_tiny_skia", "iced_wgpu", "log", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "iced_runtime" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -3233,48 +3097,49 @@ dependencies = [ "iced_core", "iced_futures", "raw-window-handle", - "thiserror 1.0.69", + "thiserror 2.0.18", "window_clipboard", ] [[package]] name = "iced_tiny_skia" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "bytemuck", "cosmic-text", + "iced_debug", "iced_graphics", "kurbo 0.10.4", "log", "resvg", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "softbuffer", "tiny-skia", ] [[package]] name = "iced_wgpu" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cosmic-client-toolkit", + "cryoglyph", "futures", "glam", "guillotiere", - "iced_glyphon", + "iced_debug", "iced_graphics", "log", "lyon", - "once_cell", "raw-window-handle", "resvg", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustix 0.38.44", - "thiserror 1.0.69", + "thiserror 2.0.18", "tiny-xlib", "wayland-backend", "wayland-client", @@ -3286,8 +3151,8 @@ dependencies = [ [[package]] name = "iced_widget" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.2" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -3295,30 +3160,31 @@ dependencies = [ "iced_runtime", "log", "num-traits", - "once_cell", "ouroboros", - "rustc-hash 2.1.1", - "thiserror 1.0.69", + "rustc-hash 2.1.2", + "thiserror 2.0.18", "unicode-segmentation", "window_clipboard", ] [[package]] name = "iced_winit" -version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "cosmic-client-toolkit", + "cursor-icon", "dnd", + "iced_debug", "iced_futures", "iced_graphics", + "iced_program", "iced_runtime", "log", "raw-window-handle", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustix 0.38.44", - "thiserror 1.0.69", - "tracing", + "thiserror 2.0.18", "wasm-bindgen-futures", "wayland-backend", "wayland-client", @@ -3327,6 +3193,7 @@ dependencies = [ "winapi", "window_clipboard", "winit", + "winit-core", "xkbcommon 0.7.0", "xkbcommon-dl", "xkeysym", @@ -3334,9 +3201,9 @@ dependencies = [ [[package]] name = "icu" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ab713dd86fa032cb5487f9ac3a85d47b5dcf4c7b8c7dd00210b3cadd6a6551" +checksum = "00380f83691e089bcfa4aeb03a2d96a910b1c9ea406d6f822fc19dfb8b58d1ec" dependencies = [ "icu_calendar", "icu_casemap", @@ -3358,9 +3225,9 @@ dependencies = [ [[package]] name = "icu_calendar" -version = "2.1.1" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e" +checksum = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" dependencies = [ "calendrical_calculations", "displaydoc", @@ -3376,15 +3243,15 @@ dependencies = [ [[package]] name = "icu_calendar_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527f04223b17edfe0bd43baf14a0cb1b017830db65f3950dc00224860a9a446d" +checksum = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" [[package]] name = "icu_casemap" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ca9983e8bf51223c2f89014fa4eaa9e9b336c47f3af0d000538f86f841fba1" +checksum = "070f98b5b82798fcb93654bf96ed9f40064fc44c86f51a09ea711092cd5cc5be" dependencies = [ "icu_casemap_data", "icu_collections", @@ -3398,15 +3265,15 @@ dependencies = [ [[package]] name = "icu_casemap_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98d4663d0f99b301033a19e0acf94e9d2fa4b107638580165e5a6ccc49ad1450" +checksum = "846b0857ca091204be3c874bc93daaf89d4777e8d2d20b0d3ffe8f671d98014b" [[package]] name = "icu_collator" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32eed11a5572f1088b63fa21dc2e70d4a865e5739fc2d10abc05be93bae97019" +checksum = "b521b92a2666061ddda902769d8a4cf730b5c9529a845cc1b69770b12a6c9a71" dependencies = [ "icu_collator_data", "icu_collections", @@ -3423,19 +3290,20 @@ dependencies = [ [[package]] name = "icu_collator_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab06f0e83a613efddba3e4913e00e43ed4001fae651cb7d40fc7e66b83b6fb9" +checksum = "038ed8e5817f2059c2f3efb0945ba78d060d3d25e8f1a1bea5139f821a21a2f0" [[package]] name = "icu_collections" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", "serde", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -3443,9 +3311,9 @@ dependencies = [ [[package]] name = "icu_datetime" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9d49f41ded8e63761b6b4c3120dfdc289415a1ed10107db6198eb311057ca5" +checksum = "989d56ea5bbc43ae2b4e0388874b002884eaf4ed3a76c84a6c8c5ad575e04d72" dependencies = [ "displaydoc", "fixed_decimal", @@ -3466,20 +3334,23 @@ dependencies = [ [[package]] name = "icu_datetime_data" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46597233625417b7c8052a63d916e4fdc73df21614ac0b679492a5d6e3b01aeb" +checksum = "40d3cc1b690d9703202bc319692ac8a1f3a6390686f0930ff40542450fa34f0b" [[package]] name = "icu_decimal" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38c52231bc348f9b982c1868a2af3195199623007ba2c7650f432038f5b3e8e" +checksum = "288247df2e32aa776ac54fdd64de552149ac43cb840f2761811f0e8d09719dd4" dependencies = [ + "displaydoc", "fixed_decimal", "icu_decimal_data", "icu_locale", "icu_locale_core", + "icu_pattern", + "icu_plurals", "icu_provider", "serde", "writeable", @@ -3488,15 +3359,15 @@ dependencies = [ [[package]] name = "icu_decimal_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2905b4044eab2dd848fe84199f9195567b63ab3a93094711501363f63546fef7" +checksum = "6f14a5ca9e8af29eef62064f269078424283d90dbaffeac5225addf62aaabc22" [[package]] name = "icu_experimental" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ffa4d60b9cb8b024082afaf9e94d853184e483ec69322c74dc437bf8a882a5" +checksum = "0a881116e620fd635f564fd9cb9bc36c256b9da2221df8b3f55643d8ef32140f" dependencies = [ "displaydoc", "either", @@ -3527,15 +3398,15 @@ dependencies = [ [[package]] name = "icu_experimental_data" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bce39e12480e91c7ddb748218050c459e241f491d130ea6ee92c3e5cd254f7" +checksum = "f72090d4f08a2bc94565cb02de6d5b87939424e462d9927d73a34f6f8e5d1232" [[package]] name = "icu_list" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a0b7b126e2fc42777d3c348611553d540bd3683caa39b387c5dd1036bb21a8" +checksum = "aeeaf517689324395bed4767f7c65504f5455942ed4c14ee54c2087ca00b816e" dependencies = [ "icu_list_data", "icu_locale", @@ -3548,15 +3419,15 @@ dependencies = [ [[package]] name = "icu_list_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51044c242fe2a882cc0a464314bbdb9f441556a1cb238fb527fc47355ec2827b" +checksum = "ed62dbf114db9a4163481ed071509c4cd52cbcef9cb85979eba08a95549d73f3" [[package]] name = "icu_locale" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532b11722e350ab6bf916ba6eb0efe3ee54b932666afec989465f9243fe6dd60" +checksum = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" dependencies = [ "icu_collections", "icu_locale_core", @@ -3569,9 +3440,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -3583,15 +3454,15 @@ dependencies = [ [[package]] name = "icu_locale_data" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c5f1d16b4c3a2642d3a719f18f6b06070ab0aef246a6418130c955ae08aa831" +checksum = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -3606,15 +3477,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_pattern" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7ff8c0ff6f61cdce299dcb54f557b0a251adbc78f6f0c35a21332c452b4a1b" +checksum = "1c4c568054ffe735398a9f4c55aec37ad7c768844553cc0978f09cc9b933a1fb" dependencies = [ "displaydoc", "either", @@ -3626,9 +3497,9 @@ dependencies = [ [[package]] name = "icu_plurals" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9cfe49f5b1d1163cc58db451562339916a9ca5cbcaae83924d41a0bf839474" +checksum = "2a50023f1d49ad5c4333380328a0d4a19e4b9d6d842ec06639affd5ba47c8103" dependencies = [ "fixed_decimal", "icu_locale", @@ -3639,15 +3510,15 @@ dependencies = [ [[package]] name = "icu_plurals_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f018a98dccf7f0eb02ba06ac0ff67d102d8ded80734724305e924de304e12ff0" +checksum = "8485497155dc865f901decb93ecc20d3e467df67bfeceb91e3ba34e2b11e8e1d" [[package]] name = "icu_properties" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ "icu_collections", "icu_locale_core", @@ -3660,15 +3531,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -3683,9 +3554,9 @@ dependencies = [ [[package]] name = "icu_segmenter" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a807a7488f3f758629ae86d99d9d30dce24da2fb2945d74c80a4f4a62c71db73" +checksum = "5c0794db0b1a86193ac9c48768d0e6c52c54448e0870ad87907d456ee0dac964" dependencies = [ "core_maths", "icu_collections", @@ -3699,15 +3570,15 @@ dependencies = [ [[package]] name = "icu_segmenter_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ebbb7321d9e21d25f5660366cb6c08201d0175898a3a6f7a41ee9685af21c80" +checksum = "e4a2c462a4d927d512f5f882a033ddd62f33a05bb9f230d98f736ac3dc85938f" [[package]] name = "icu_time" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8242b00da3b3b6678f731437a11c8833a43c821ae081eca60ba1b7579d45b6d8" +checksum = "ec3af0c141da0a61d4f6970cd1d5f4b388b17ea22f8124f8f6049d3d5147586a" dependencies = [ "calendrical_calculations", "displaydoc", @@ -3723,9 +3594,9 @@ dependencies = [ [[package]] name = "icu_time_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e10b0e5e87a2c84bd5fa407705732052edebe69291d347d0c3033785470edbf" +checksum = "6f2f8aeca682d874a5247084aa4fb7d1cef9ba45d889c21209a8818dcaaa0ec9" [[package]] name = "id-arena" @@ -3778,15 +3649,15 @@ dependencies = [ [[package]] name = "image" -version = "0.25.9" +version = "0.25.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" dependencies = [ "bytemuck", "byteorder-lite", "color_quant", "exr", - "gif 0.14.1", + "gif 0.14.2", "image-webp", "moxcms", "num-traits", @@ -3797,7 +3668,7 @@ dependencies = [ "rgb", "tiff", "zune-core 0.5.1", - "zune-jpeg 0.5.12", + "zune-jpeg 0.5.15", ] [[package]] @@ -3812,9 +3683,9 @@ dependencies = [ [[package]] name = "imagesize" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" +checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" @@ -3822,15 +3693,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" -[[package]] -name = "immutable-chunkmap" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3e98b1520e49e252237edc238a39869da9f3241f2ec19dc788c1d24694d1e4" -dependencies = [ - "arrayvec", -] - [[package]] name = "indexmap" version = "1.9.3" @@ -3844,12 +3706,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -3865,11 +3727,11 @@ dependencies = [ [[package]] name = "inotify" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "inotify-sys", "libc", ] @@ -3893,15 +3755,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "interpolate_name" version = "0.2.4" @@ -3910,7 +3763,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3932,17 +3785,6 @@ dependencies = [ "unic-langid", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "is-docker" version = "0.2.0" @@ -3979,21 +3821,21 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "ixdtf" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992" +checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" [[package]] name = "jiff" -version = "0.2.21" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e3d65f018c6ae946ab16e80944b97096ed73c35b221d1c478a6c81d8f57940" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -4005,21 +3847,32 @@ dependencies = [ ] [[package]] -name = "jiff-static" -version = "0.2.21" +name = "jiff-icu" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17c2b211d863c7fde02cbea8a3c1a439b98e109286554f2860bdded7ff83818" +checksum = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" +dependencies = [ + "icu_calendar", + "icu_time", + "jiff", +] + +[[package]] +name = "jiff-static" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "jiff-tzdb" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2" +checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076" [[package]] name = "jiff-tzdb-platform" @@ -4032,25 +3885,61 @@ dependencies = [ [[package]] name = "jni" -version = "0.21.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "cesu8", "cfg-if", "combine", - "jni-sys", + "jni-macros", + "jni-sys 0.4.1", "log", - "thiserror 1.0.69", + "simd_cesu8", + "thiserror 2.0.18", "walkdir", - "windows-sys 0.45.0", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn", ] [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn", +] [[package]] name = "jobserver" @@ -4062,18 +3951,14 @@ dependencies = [ "libc", ] -[[package]] -name = "jpeg-decoder" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" - [[package]] name = "js-sys" -version = "0.3.88" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e709f3e3d22866f9c25b3aff01af289b18422cc8b4262fb19103ee80fe513d" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -4260,13 +4145,23 @@ dependencies = [ [[package]] name = "kamadak-exif" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077" +checksum = "1130d80c7374efad55a117d715a3af9368f0fa7a2c54573afc15a188cd984837" dependencies = [ "mutate_once", ] +[[package]] +name = "keyboard-types" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" +dependencies = [ + "bitflags 2.11.1", + "serde", +] + [[package]] name = "khronos-egl" version = "6.0.0" @@ -4286,9 +4181,9 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "known-folders" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770919970f7d2f74fea948900d35e2ef64f44129e8ae4015f59de1f0aca7c2a5" +checksum = "7a1886916523694cd6ea3d175f03a1e5010699a2a4cc13696d83d7bea1d80638" dependencies = [ "windows-sys 0.61.2", ] @@ -4360,14 +4255,14 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#384e8f6e219bb458720eafa5bb971b832c057f23" +source = "git+https://github.com/pop-os/libcosmic.git#0d69cd918374c5cccc2d9ce9ea37e0b322df463e" dependencies = [ "apply", "ashpd 0.12.3", @@ -4380,6 +4275,7 @@ dependencies = [ "cosmic-theme", "css-color", "derive_setters", + "float-cmp 0.10.0", "freedesktop-desktop-entry", "futures", "i18n-embed", @@ -4400,7 +4296,6 @@ dependencies = [ "mime 0.3.17", "palette", "phf 0.13.1", - "raw-window-handle", "rfd", "rust-embed", "rustix 1.1.4", @@ -4413,7 +4308,7 @@ dependencies = [ "tracing", "unicode-segmentation", "url", - "zbus 5.13.2", + "zbus", ] [[package]] @@ -4433,7 +4328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -4444,13 +4339,23 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", - "redox_syscall 0.7.1", + "plain", + "redox_syscall 0.7.4", +] + +[[package]] +name = "lilt" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f67562e5eff6b20553fa9be1c503356768420994e28f67e3eafe6f41910e57ad" +dependencies = [ + "web-time", ] [[package]] @@ -4459,12 +4364,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -4485,9 +4384,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "litrs" @@ -4523,6 +4422,20 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "pin-utils", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "loop9" version = "0.1.5" @@ -4534,15 +4447,15 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.5" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" [[package]] name = "lyon" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbcb7d54d54c8937364c9d41902d066656817dce1e03a44e5533afebd1ef4352" +checksum = "bd0578bdecb7d6d88987b8b2b1e3a4e2f81df9d0ece1078623324a567904e7b7" dependencies = [ "lyon_algorithms", "lyon_tessellation", @@ -4550,9 +4463,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c0829e28c4f336396f250d850c3987e16ce6db057ffe047ce0dd54aab6b647" +checksum = "9815fac08e6fd96733a11dce4f9d15a3f338e96a2e2311ee21e1b738efc2bc0f" dependencies = [ "lyon_path", "num-traits", @@ -4560,9 +4473,9 @@ dependencies = [ [[package]] name = "lyon_geom" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e260b6de923e6e47adfedf6243013a7a874684165a6a277594ee3906021b2343" +checksum = "4336502e29e32af93cf2dad2214ed6003c17ceb5bd499df77b1de663b9042b92" dependencies = [ "arrayvec", "euclid", @@ -4571,9 +4484,9 @@ dependencies = [ [[package]] name = "lyon_path" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aeca86bcfd632a15984ba029b539ffb811e0a70bf55e814ef8b0f54f506fdeb" +checksum = "5c463f9c428b7fc5ec885dcd39ce4aa61e29111d0e33483f6f98c74e89d8621e" dependencies = [ "lyon_geom", "num-traits", @@ -4581,9 +4494,9 @@ dependencies = [ [[package]] name = "lyon_tessellation" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f586142e1280335b1bc89539f7c97dd80f08fc43e9ab1b74ef0a42b04aa353" +checksum = "8e43b7e44161571868f5c931d12583592c223c5583eef86b08aa02b7048a3552" dependencies = [ "float_next_after", "lyon_path", @@ -4592,11 +4505,10 @@ dependencies = [ [[package]] name = "lzma-rust2" -version = "0.15.7" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1670343e58806300d87950e3401e820b519b9384281bbabfb15e3636689ffd69" +checksum = "47bb1e988e6fb779cf720ad431242d3f03167c1b3f2b1aae7f1a94b2495b36ae" dependencies = [ - "crc", "sha2", ] @@ -4609,6 +4521,15 @@ dependencies = [ "libc", ] +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "maybe-rayon" version = "0.1.1" @@ -4653,15 +4574,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -4673,13 +4585,13 @@ dependencies = [ [[package]] name = "metal" -version = "0.29.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" +checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", - "core-graphics-types", + "core-graphics-types 0.2.0", "foreign-types", "log", "objc", @@ -4689,7 +4601,7 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -4728,9 +4640,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", @@ -4749,9 +4661,9 @@ dependencies = [ [[package]] name = "moxcms" -version = "0.7.11" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" dependencies = [ "num-traits", "pxfm", @@ -4765,23 +4677,28 @@ checksum = "13d2233c9842d08cfe13f9eac96e207ca6a2ea10b80259ebe8ad0268be27d2af" [[package]] name = "naga" -version = "22.1.0" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" +checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.0", - "cfg_aliases 0.1.1", + "bitflags 2.11.1", + "cfg-if", + "cfg_aliases", "codespan-reporting", + "half", + "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.13.0", + "indexmap 2.14.0", + "libm", "log", + "num-traits", + "once_cell", "rustc-hash 1.1.0", "spirv", - "termcolor", - "thiserror 1.0.69", - "unicode-xid", + "thiserror 2.0.18", + "unicode-ident", ] [[package]] @@ -4790,10 +4707,10 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.0", - "jni-sys", + "bitflags 2.11.1", + "jni-sys 0.3.1", "log", - "ndk-sys 0.6.0+11769913", + "ndk-sys", "num_enum", "raw-window-handle", "thiserror 1.0.69", @@ -4805,22 +4722,13 @@ 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", + "jni-sys 0.3.1", ] [[package]] @@ -4829,18 +4737,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", -] - [[package]] name = "nom" version = "7.1.3" @@ -4872,7 +4768,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "fsevent-sys", "inotify", "kqueue", @@ -4903,7 +4799,16 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", ] [[package]] @@ -4941,9 +4846,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-derive" @@ -4953,7 +4858,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5003,15 +4908,15 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -5019,14 +4924,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5067,9 +4972,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ "objc2-encode", ] @@ -5080,7 +4985,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -5096,43 +5001,20 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", - "objc2 0.6.3", + "objc2 0.6.4", + "objc2-core-foundation", "objc2-foundation 0.3.2", ] -[[package]] -name = "objc2-cloud-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" -dependencies = [ - "bitflags 2.11.0", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-contacts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" -dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-core-data" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5144,9 +5026,21 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", + "block2 0.6.2", "dispatch2", - "objc2 0.6.3", + "objc2 0.6.4", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.1", + "libc", + "objc2-core-foundation", ] [[package]] @@ -5162,15 +5056,14 @@ dependencies = [ ] [[package]] -name = "objc2-core-location" -version = "0.2.2" +name = "objc2-core-video" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-contacts", - "objc2-foundation 0.2.2", + "bitflags 2.11.1", + "objc2-core-foundation", + "objc2-core-graphics", ] [[package]] @@ -5185,9 +5078,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.5.1", - "dispatch", "libc", "objc2 0.5.2", ] @@ -5198,30 +5090,19 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.0", - "objc2 0.6.3", + "bitflags 2.11.1", + "block2 0.6.2", + "objc2 0.6.4", "objc2-core-foundation", ] -[[package]] -name = "objc2-link-presentation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" -dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-metal" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5233,66 +5114,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", "objc2-metal", ] -[[package]] -name = "objc2-symbols" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" -dependencies = [ - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-ui-kit" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.11.0", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", - "objc2-core-location", - "objc2-foundation 0.2.2", - "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 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-user-notifications" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" -dependencies = [ - "bitflags 2.11.0", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", + "bitflags 2.11.1", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-foundation 0.3.2", ] [[package]] @@ -5306,9 +5144,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -5335,14 +5173,23 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orbclient" -version = "0.3.50" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ad2c6bae700b7aa5d1cc30c59bdd3a1c180b09dbaea51e2ae2b8e1cf211fdd" +checksum = "59aed3b33578edcfa1bc96a321d590d31832b6ad55a26f0313362ce687e9abd6" dependencies = [ "libc", "libredox", ] +[[package]] +name = "ordered-float" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-stream" version = "0.2.0" @@ -5355,11 +5202,11 @@ dependencies = [ [[package]] name = "ordermap" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa78c92071bbd3628c22b1a964f7e0eb201dc1456555db072beb1662ecd6715" +checksum = "7f7476a5b122ff1fce7208e7ee9dccd0a516e835f5b8b19b8f3c98a34cf757c1" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "serde", "serde_core", ] @@ -5395,7 +5242,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5404,7 +5251,7 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" dependencies = [ - "ttf-parser 0.25.1", + "ttf-parser", ] [[package]] @@ -5429,7 +5276,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5438,17 +5285,6 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.5" @@ -5456,21 +5292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", - "parking_lot_core 0.9.12", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -5483,7 +5305,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -5557,7 +5379,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ - "fastrand 2.3.0", + "fastrand", "phf_shared 0.13.1", ] @@ -5571,7 +5393,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5584,7 +5406,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "uncased", ] @@ -5615,29 +5437,29 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -5647,20 +5469,26 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" dependencies = [ "atomic-waker", - "fastrand 2.3.0", + "fastrand", "futures-io", ] [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "png" @@ -5681,29 +5509,13 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crc32fast", "fdeflate", "flate2", "miniz_oxide", ] -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - [[package]] name = "polling" version = "3.11.0" @@ -5712,7 +5524,7 @@ checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.2", + "hermit-abi", "pin-project-lite", "rustix 1.1.4", "windows-sys 0.61.2", @@ -5732,18 +5544,18 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" dependencies = [ "portable-atomic", ] [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "serde_core", "writeable", @@ -5784,26 +5596,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit 0.23.10+spec-1.0.0", + "toml_edit", ] [[package]] @@ -5825,7 +5627,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5845,7 +5647,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "version_check", "yansi", ] @@ -5856,7 +5658,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "chrono", "flate2", "procfs-core", @@ -5869,7 +5671,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "chrono", "hex", ] @@ -5890,23 +5692,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] -[[package]] -name = "pure-rust-locales" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "869675ad2d7541aea90c6d88c81f46a7f4ea9af8cd0395d38f11a95126998a0d" - [[package]] name = "pxfm" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" -dependencies = [ - "num-traits", -] +checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" [[package]] name = "qoi" @@ -5938,15 +5731,25 @@ name = "quick-xml" version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quick-xml" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -5957,6 +5760,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.5" @@ -5970,9 +5779,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -6018,9 +5827,9 @@ dependencies = [ [[package]] name = "range-alloc" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" +checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08" [[package]] name = "rangemap" @@ -6055,7 +5864,7 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha 0.9.0", "simd_helpers", "thiserror 2.0.18", @@ -6065,9 +5874,9 @@ dependencies = [ [[package]] name = "ravif" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef69c1990ceef18a116855938e74793a5f7496ee907562bd0857b6ac734ab285" +checksum = "e52310197d971b0f5be7fe6b57530dcd27beb35c1b013f29d66c1ad73fbbcc45" dependencies = [ "avif-serialize", "imgref", @@ -6086,9 +5895,9 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -6104,16 +5913,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "read-fonts" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" -dependencies = [ - "bytemuck", - "font-types 0.10.1", -] - [[package]] name = "read-fonts" version = "0.37.0" @@ -6122,7 +5921,7 @@ checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5" dependencies = [ "bytemuck", "core_maths", - "font-types 0.11.0", + "font-types", ] [[package]] @@ -6141,41 +5940,22 @@ dependencies = [ "url", ] -[[package]] -name = "redox_event" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3514da49aa6ca4cff5088a1b382ef3a0d9149964d29bb49ebd03fd66cc575a18" -dependencies = [ - "bitflags 2.11.0", - "libredox", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] name = "redox_syscall" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35985aa610addc02e24fc232012c86fd11f14111180f902b67e2d5331f8ebf2b" +checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -6217,7 +5997,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6245,9 +6025,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "renderdoc-sys" @@ -6257,18 +6037,19 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "resvg" -version = "0.42.0" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "944d052815156ac8fa77eaac055220e95ba0b01fa8887108ca710c03805d9051" +checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43" dependencies = [ "gif 0.13.3", - "jpeg-decoder", + "image-webp", "log", "pico-args", "rgb", "svgtypes", "tiny-skia", "usvg", + "zune-jpeg 0.4.21", ] [[package]] @@ -6282,7 +6063,7 @@ dependencies = [ "dispatch2", "js-sys", "log", - "objc2 0.6.3", + "objc2 0.6.4", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -6297,9 +6078,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" dependencies = [ "bytemuck", ] @@ -6311,7 +6092,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ "base64", - "bitflags 2.11.0", + "bitflags 2.11.1", "serde", "serde_derive", "unicode-ident", @@ -6319,11 +6100,11 @@ dependencies = [ [[package]] name = "ron" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" +checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "once_cell", "serde", "serde_derive", @@ -6357,7 +6138,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.117", + "syn", "walkdir", ] @@ -6379,22 +6160,17 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] -name = "rustix" -version = "0.37.28" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", + "semver", ] [[package]] @@ -6403,7 +6179,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6416,7 +6192,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys 0.12.1", @@ -6442,14 +6218,16 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rustybuzz" -version = "0.14.1" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" +checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", + "core_maths", + "log", "smallvec", - "ttf-parser 0.21.1", + "ttf-parser", "unicode-bidi-mirroring", "unicode-ccc", "unicode-properties", @@ -6503,14 +6281,14 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +checksum = "1dd3accc0f3f4bbaf2c9e1957a030dc582028130c67660d44c0a0345a22ca69b" dependencies = [ "ab_glyph", "log", "memmap2 0.9.10", - "smithay-client-toolkit 0.19.2", + "smithay-client-toolkit", "tiny-skia", ] @@ -6530,7 +6308,7 @@ dependencies = [ "once_cell", "serde", "sha2", - "zbus 5.13.2", + "zbus", ] [[package]] @@ -6550,9 +6328,9 @@ checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -6581,7 +6359,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6590,7 +6368,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "itoa", "memchr", "serde", @@ -6606,20 +6384,20 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "serde_with" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", "schemars 1.2.1", "serde_core", @@ -6630,14 +6408,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ - "darling", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6662,6 +6440,15 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -6690,9 +6477,19 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] [[package]] name = "simd_helpers" @@ -6703,6 +6500,12 @@ dependencies = [ "quote", ] +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simplecss" version = "0.2.2" @@ -6718,16 +6521,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" -[[package]] -name = "skrifa" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" -dependencies = [ - "bytemuck", - "read-fonts 0.35.0", -] - [[package]] name = "skrifa" version = "0.40.0" @@ -6735,7 +6528,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" dependencies = [ "bytemuck", - "read-fonts 0.37.0", + "read-fonts", ] [[package]] @@ -6759,41 +6552,16 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -[[package]] -name = "smithay-client-toolkit" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" -dependencies = [ - "bitflags 2.11.0", - "calloop 0.13.0", - "calloop-wayland-source 0.3.0", - "cursor-icon", - "libc", - "log", - "memmap2 0.9.10", - "rustix 0.38.44", - "thiserror 1.0.69", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - [[package]] name = "smithay-client-toolkit" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", - "calloop 0.14.4", - "calloop-wayland-source 0.4.1", + "calloop", + "calloop-wayland-source", "cursor-icon", "libc", "log", @@ -6817,47 +6585,32 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-5#5a3007def49eb678d1144850c9ee04b80707c56a" +source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", - "smithay-client-toolkit 0.19.2", + "smithay-client-toolkit", "wayland-backend", ] [[package]] name = "smol_str" -version = "0.2.2" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" dependencies = [ - "serde", -] - -[[package]] -name = "smol_str" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", + "borsh", + "serde_core", ] [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -6867,11 +6620,11 @@ source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#a3f77e251e7422 dependencies = [ "as-raw-xcb-connection", "bytemuck", - "cfg_aliases 0.2.1", + "cfg_aliases", "cocoa", "core-graphics", "drm", - "fastrand 2.3.0", + "fastrand", "foreign-types", "js-sys", "log", @@ -6905,7 +6658,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -6926,7 +6679,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" dependencies = [ - "float-cmp", + "float-cmp 0.9.0", ] [[package]] @@ -6959,26 +6712,15 @@ dependencies = [ [[package]] name = "swash" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" +checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64" dependencies = [ - "skrifa 0.37.0", + "skrifa", "yazi", "zeno", ] -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -6992,11 +6734,12 @@ dependencies = [ [[package]] name = "synchrony" -version = "0.1.1" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0208d3660701622272151bc63c35f5d32ca3d45c19785a9a8dc04dc797dc43" +checksum = "c174d82fd56da8214ec095cfe4568e59e5ccb49d060e70c2f98e3ba352b23e45" dependencies = [ "futures-util", + "loom", ] [[package]] @@ -7007,7 +6750,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7033,9 +6776,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", @@ -7050,12 +6793,12 @@ checksum = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964" [[package]] name = "tempfile" -version = "3.25.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ - "fastrand 2.3.0", - "getrandom 0.4.1", + "fastrand", + "getrandom 0.4.2", "once_cell", "rustix 1.1.4", "windows-sys 0.61.2", @@ -7102,7 +6845,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7113,28 +6856,37 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", ] [[package]] name = "tiff" -version = "0.10.3" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" +checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" dependencies = [ "fax", "flate2", "half", "quick-error", "weezl", - "zune-jpeg 0.4.21", + "zune-jpeg 0.5.15", ] [[package]] name = "time" -version = "0.3.45" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -7148,15 +6900,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.25" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -7203,9 +6955,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "serde_core", @@ -7214,9 +6966,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -7229,16 +6981,16 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" dependencies = [ "bytes", "libc", "mio", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.2", + "socket2", "tokio-macros", "tracing", "windows-sys 0.61.2", @@ -7246,13 +6998,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7277,49 +7029,32 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.11" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" - -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.13.0", - "toml_datetime 0.6.11", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.23.10+spec-1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" -dependencies = [ - "indexmap 2.13.0", - "toml_datetime 0.7.5+spec-1.1.0", + "indexmap 2.14.0", + "toml_datetime", "toml_parser", - "winnow 0.7.14", + "winnow 1.0.1", ] [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 0.7.14", + "winnow 1.0.1", ] [[package]] @@ -7342,7 +7077,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7352,6 +7087,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -7371,12 +7136,6 @@ dependencies = [ "windows 0.56.0", ] -[[package]] -name = "ttf-parser" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" - [[package]] name = "ttf-parser" version = "0.25.1" @@ -7392,7 +7151,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" dependencies = [ - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", ] [[package]] @@ -7415,13 +7174,13 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "uds_windows" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" dependencies = [ - "memoffset 0.9.1", + "memoffset", "tempfile", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -7466,15 +7225,15 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-bidi-mirroring" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" +checksum = "5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe" [[package]] name = "unicode-ccc" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" +checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e" [[package]] name = "unicode-ident" @@ -7502,9 +7261,9 @@ checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-vo" @@ -7512,12 +7271,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - [[package]] name = "unicode-width" version = "0.2.2" @@ -7551,14 +7304,14 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] name = "usvg" -version = "0.42.0" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84ea542ae85c715f07b082438a4231c3760539d902e11d093847a0b22963032" +checksum = "80be9b06fbae3b8b303400ab20778c80bbaf338f563afe567cf3c9eea17b47ef" dependencies = [ "base64", "data-url", "flate2", - "fontdb 0.18.0", + "fontdb", "imagesize", "kurbo 0.11.3", "log", @@ -7596,9 +7349,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.21.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" dependencies = [ "js-sys", "serde_core", @@ -7626,6 +7379,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "version_check" version = "0.9.5" @@ -7639,19 +7398,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5924018406ce0063cd67f8e008104968b74b563ee1b85dde3ed1f7cb87d3dbd" dependencies = [ "arrayvec", - "bitflags 2.11.0", + "bitflags 2.11.1", "cursor-icon", "log", "memchr", "serde", ] -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -7670,11 +7423,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wit-bindgen 0.46.0", + "wit-bindgen", ] [[package]] @@ -7683,14 +7436,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.111" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1adf1535672f5b7824f817792b1afd731d7e843d2d04ec8f27e8cb51edd8ac" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -7701,23 +7454,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.61" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88540d1c934c4ec8e6db0afa536876c5441289d7f9f9123d4f065ac1250a6b" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.111" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e638317c08b21663aed4d2b9a2091450548954695ff4efa75bff5fa546b3b1" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7725,22 +7474,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.111" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c64760850114d03d5f65457e96fc988f11f01d38fbaa51b254e4ab5809102af" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.111" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60eecd4fe26177cfa3339eb00b4a36445889ba3ad37080c2429879718e20ca41" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -7762,43 +7511,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.0", + "indexmap 2.14.0", "wasm-encoder", "wasmparser", ] -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" -dependencies = [ - "futures", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wasmparser" version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", - "indexmap 2.13.0", + "indexmap 2.14.0", "semver", ] [[package]] -name = "wayland-backend" -version = "0.3.12" +name = "wasmtimer" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee64194ccd96bf648f42a65a7e589547096dfa702f7cadef84347b66ad164f9" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", +] + +[[package]] +name = "wayland-backend" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" dependencies = [ "cc", "downcast-rs", @@ -7810,11 +7558,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.12" +version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e6faa537fbb6c186cb9f1d41f2f811a4120d1b57ec61f50da451a0c5122bec" +checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -7826,16 +7574,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.12" +version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5864c4b5b6064b06b1e8b74ead4a98a6c45a285fe7a0e784d24735f011fdb078" +checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" dependencies = [ "rustix 1.1.4", "wayland-client", @@ -7844,11 +7592,11 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.10" +version = "0.32.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baeda9ffbcfc8cd6ddaade385eaf2393bd2115a69523c735f12242353c3df4f3" +checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7861,7 +7609,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7870,11 +7618,11 @@ dependencies = [ [[package]] name = "wayland-protocols-misc" -version = "0.3.10" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791c58fdeec5406aa37169dd815327d1e47f334219b523444bc26d70ceb4c34e" +checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7883,11 +7631,11 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.10" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa98634619300a535a9a97f338aed9a5ff1e01a461943e8346ff4ae26007306b" +checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7896,11 +7644,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.10" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9597cdf02cf0c34cd5823786dce6b5ae8598f05c2daf5621b6e178d4f7345f3" +checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7910,22 +7658,22 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.8" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5423e94b6a63e68e439803a3e153a9252d5ead12fd853334e2ad33997e3889e3" +checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" dependencies = [ "proc-macro2", - "quick-xml 0.38.4", + "quick-xml 0.39.2", "quote", ] [[package]] name = "wayland-server" -version = "0.31.11" +version = "0.31.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9297ab90f8d1f597711d36455c5b1b2290eca59b8134485e377a296b80b118c9" +checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -7934,9 +7682,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.8" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6dbfc3ac5ef974c92a2235805cc0114033018ae1290a72e474aa8b28cbbdfd" +checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" dependencies = [ "dlib", "log", @@ -7946,9 +7694,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.88" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6bb20ed2d9572df8584f6dc81d68a41a625cadc6f15999d649a70ce7e3597a" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -7972,17 +7720,21 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wgpu" -version = "22.1.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" +checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", - "cfg_aliases 0.1.1", + "bitflags 2.11.1", + "cfg-if", + "cfg_aliases", "document-features", + "hashbrown 0.16.1", "js-sys", "log", "naga", - "parking_lot 0.12.5", + "parking_lot", + "portable-atomic", "profiling", "raw-window-handle", "smallvec", @@ -7997,50 +7749,85 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "22.1.0" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" +checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" dependencies = [ "arrayvec", + "bit-set", "bit-vec", - "bitflags 2.11.0", - "cfg_aliases 0.1.1", + "bitflags 2.11.1", + "bytemuck", + "cfg_aliases", "document-features", - "indexmap 2.13.0", + "hashbrown 0.16.1", + "indexmap 2.14.0", "log", "naga", "once_cell", - "parking_lot 0.12.5", + "parking_lot", + "portable-atomic", "profiling", "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.18", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", ] [[package]] -name = "wgpu-hal" -version = "22.0.0" +name = "wgpu-core-deps-apple" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" +checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-hal" +version = "27.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "block", - "cfg_aliases 0.1.1", - "core-graphics-types", - "d3d12", + "bytemuck", + "cfg-if", + "cfg_aliases", + "core-graphics-types 0.2.0", "glow", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hassle-rs", + "hashbrown 0.16.1", "js-sys", "khronos-egl", "libc", @@ -8048,31 +7835,37 @@ dependencies = [ "log", "metal", "naga", - "ndk-sys 0.5.0+25.2.9519653", + "ndk-sys", "objc", "once_cell", - "parking_lot 0.12.5", + "ordered-float", + "parking_lot", + "portable-atomic", + "portable-atomic-util", "profiling", "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash 1.1.0", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.18", "wasm-bindgen", "web-sys", "wgpu-types", - "winapi", + "windows 0.58.0", + "windows-core 0.58.0", ] [[package]] name = "wgpu-types" -version = "22.0.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" +checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", + "bytemuck", "js-sys", + "log", + "thiserror 2.0.18", "web-sys", ] @@ -8116,7 +7909,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", @@ -8128,28 +7921,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "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 0.53.0", - "windows-interface 0.53.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.56.0" @@ -8161,22 +7932,35 @@ dependencies = [ ] [[package]] -name = "windows-core" -version = "0.52.0" +name = "windows" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ + "windows-core 0.58.0", "windows-targets 0.52.6", ] [[package]] -name = "windows-core" -version = "0.54.0" +name = "windows" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", ] [[package]] @@ -8191,6 +7975,32 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + [[package]] name = "windows-core" version = "0.62.2" @@ -8199,20 +8009,20 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement 0.60.2", "windows-interface 0.59.3", - "windows-link", + "windows-link 0.2.1", "windows-result 0.4.1", - "windows-strings", + "windows-strings 0.5.1", ] [[package]] -name = "windows-implement" -version = "0.53.0" +name = "windows-future" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", ] [[package]] @@ -8223,7 +8033,18 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8234,18 +8055,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", -] - -[[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.117", + "syn", ] [[package]] @@ -8256,7 +8066,18 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8267,15 +8088,31 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + [[package]] name = "windows-result" version = "0.1.2" @@ -8285,13 +8122,50 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + [[package]] name = "windows-result" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -8300,16 +8174,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link", -] - -[[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", + "windows-link 0.2.1", ] [[package]] @@ -8354,22 +8219,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link", -] - -[[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", + "windows-link 0.2.1", ] [[package]] @@ -8409,7 +8259,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link", + "windows-link 0.2.1", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -8421,10 +8271,13 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" +name = "windows-threading" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] [[package]] name = "windows_aarch64_gnullvm" @@ -8444,12 +8297,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[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" @@ -8468,12 +8315,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[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" @@ -8504,12 +8345,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[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" @@ -8528,12 +8363,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[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" @@ -8552,12 +8381,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[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" @@ -8576,12 +8399,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[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" @@ -8602,51 +8419,214 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" -version = "0.30.5" -source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13-rc#dd46a1499bcc38f2134ab869e8860a32e091c55b" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "ahash", - "android-activity", - "atomic-waker", - "bitflags 2.11.0", - "block2 0.5.1", - "bytemuck", - "calloop 0.13.0", - "cfg_aliases 0.2.1", - "concurrent-queue", - "core-foundation", - "core-graphics", + "bitflags 2.11.1", + "cfg_aliases", "cursor-icon", "dpi", - "js-sys", "libc", - "libredox", - "memmap2 0.9.10", - "ndk", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", - "objc2-ui-kit", - "orbclient", - "percent-encoding", - "pin-project", "raw-window-handle", - "redox_event", - "rustix 0.38.44", - "sctk-adwaita", - "smithay-client-toolkit 0.19.2", - "smol_str 0.2.2", + "rustix 1.1.4", + "smol_str", + "tracing", + "winit-android", + "winit-appkit", + "winit-common", + "winit-core", + "winit-orbital", + "winit-uikit", + "winit-wayland", + "winit-web", + "winit-win32", + "winit-x11", +] + +[[package]] +name = "winit-android" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "android-activity", + "bitflags 2.11.1", + "dpi", + "ndk", + "raw-window-handle", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-appkit" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "block2 0.6.2", + "dispatch2", + "dpi", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-video", + "objc2-foundation 0.3.2", + "raw-window-handle", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-common" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "memmap2 0.9.10", + "objc2 0.6.4", + "objc2-core-foundation", + "smol_str", + "tracing", + "winit-core", + "x11-dl", + "xkbcommon-dl", +] + +[[package]] +name = "winit-core" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "cursor-icon", + "dpi", + "keyboard-types", + "raw-window-handle", + "smol_str", + "web-time", +] + +[[package]] +name = "winit-orbital" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "dpi", + "libredox", + "orbclient", + "raw-window-handle", + "redox_syscall 0.7.4", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-uikit" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "block2 0.6.2", + "dispatch2", + "dpi", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "raw-window-handle", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-wayland" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "ahash", + "bitflags 2.11.1", + "calloop", + "cursor-icon", + "dpi", + "libc", + "memmap2 0.9.10", + "raw-window-handle", + "rustix 1.1.4", + "sctk-adwaita", + "smithay-client-toolkit", + "smol_str", "tracing", - "unicode-segmentation", - "wasm-bindgen", - "wasm-bindgen-futures", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-protocols-plasma", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-web" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "atomic-waker", + "bitflags 2.11.1", + "concurrent-queue", + "cursor-icon", + "dpi", + "js-sys", + "pin-project", + "raw-window-handle", + "smol_str", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", "web-time", - "windows-sys 0.52.0", + "winit-core", +] + +[[package]] +name = "winit-win32" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "cursor-icon", + "dpi", + "raw-window-handle", + "smol_str", + "tracing", + "unicode-segmentation", + "windows-sys 0.59.0", + "winit-core", +] + +[[package]] +name = "winit-x11" +version = "0.31.0-beta.2" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +dependencies = [ + "bitflags 2.11.1", + "bytemuck", + "calloop", + "cursor-icon", + "dpi", + "libc", + "percent-encoding", + "raw-window-handle", + "rustix 1.1.4", + "smol_str", + "tracing", + "winit-common", + "winit-core", "x11-dl", "x11rb", "xkbcommon-dl", @@ -8654,28 +8634,22 @@ dependencies = [ [[package]] name = "winnow" -version = "0.5.40" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] -[[package]] -name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - [[package]] name = "wit-bindgen" version = "0.51.0" @@ -8704,9 +8678,9 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.13.0", + "indexmap 2.14.0", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -8722,7 +8696,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -8734,8 +8708,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", - "indexmap 2.13.0", + "bitflags 2.11.1", + "indexmap 2.14.0", "log", "serde", "serde_derive", @@ -8754,7 +8728,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "semver", "serde", @@ -8772,9 +8746,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" dependencies = [ "either", ] @@ -8834,16 +8808,6 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5" -[[package]] -name = "xdg-home" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "xdg-mime" version = "0.4.0" @@ -8907,7 +8871,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "dlib", "log", "once_cell", @@ -8970,9 +8934,9 @@ checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -8981,71 +8945,35 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] [[package]] name = "zbus" -version = "3.15.2" +version = "5.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" dependencies = [ - "async-broadcast 0.5.1", - "async-process 1.8.1", - "async-recursion", - "async-trait", - "byteorder", - "derivative", - "enumflags2", - "event-listener 2.5.3", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tokio", - "tracing", - "uds_windows", - "winapi", - "xdg-home", - "zbus_macros 3.15.2", - "zbus_names 2.6.1", - "zvariant 3.15.2", -] - -[[package]] -name = "zbus" -version = "5.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfeff997a0aaa3eb20c4652baf788d2dfa6d2839a0ead0b3ff69ce2f9c4bdd1" -dependencies = [ - "async-broadcast 0.7.2", + "async-broadcast", "async-executor", - "async-io 2.6.0", - "async-lock 3.4.2", - "async-process 2.5.0", + "async-io", + "async-lock", + "async-process", "async-recursion", "async-task", "async-trait", "blocking", "enumflags2", - "event-listener 5.4.1", + "event-listener", "futures-core", - "futures-lite 2.6.1", + "futures-lite", "hex", "libc", "ordered-stream", @@ -9057,50 +8985,49 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 0.7.14", - "zbus_macros 5.13.2", - "zbus_names 4.3.1", - "zvariant 5.9.2", + "winnow 0.7.15", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus-lockstep" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998de05217a084b7578728a9443d04ea4cd80f2a0839b8d78770b76ccd45863" +dependencies = [ + "zbus_xml", + "zvariant", +] + +[[package]] +name = "zbus-lockstep-macros" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "zbus-lockstep", + "zbus_xml", + "zvariant", ] [[package]] name = "zbus_macros" -version = "3.15.2" +version = "5.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "regex", - "syn 1.0.109", - "zvariant_utils 1.0.1", -] - -[[package]] -name = "zbus_macros" -version = "5.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bbd5a90dbe8feee5b13def448427ae314ccd26a49cac47905cafefb9ff846f1" -dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", - "syn 2.0.117", - "zbus_names 4.3.1", - "zvariant 5.9.2", - "zvariant_utils 3.3.0", -] - -[[package]] -name = "zbus_names" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" -dependencies = [ - "serde", - "static_assertions", - "zvariant 3.15.2", + "syn", + "zbus_names", + "zvariant", + "zvariant_utils", ] [[package]] @@ -9110,8 +9037,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" dependencies = [ "serde", - "winnow 0.7.14", - "zvariant 5.9.2", + "winnow 0.7.15", + "zvariant", +] + +[[package]] +name = "zbus_xml" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "441a0064125265655bccc3a6af6bef56814d9277ac83fce48b1cd7e160b80eac" +dependencies = [ + "quick-xml 0.38.4", + "serde", + "zbus_names", + "zvariant", ] [[package]] @@ -9122,42 +9061,42 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -9166,37 +9105,24 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", "zerofrom", + "zerovec", ] [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "serde", "yoke", @@ -9206,20 +9132,20 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "zip" -version = "7.2.0" +version = "8.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" +checksum = "dcab981e19633ebcf0b001ddd37dd802996098bc1864f90b7c5d970ce76c1d59" dependencies = [ "aes", "bzip2", @@ -9227,10 +9153,9 @@ dependencies = [ "crc32fast", "deflate64", "flate2", - "generic-array", - "getrandom 0.3.4", + "getrandom 0.4.2", "hmac", - "indexmap 2.13.0", + "indexmap 2.14.0", "lzma-rust2", "memchr", "pbkdf2", @@ -9245,9 +9170,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c745c48e1007337ed136dc99df34128b9faa6ed542d80a1c673cf55a6d7236c8" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" [[package]] name = "zmij" @@ -9327,77 +9252,39 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.5.12" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410e9ecef634c709e3831c2cfdb8d9c32164fae1c67496d5b68fff728eec37fe" +checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ "zune-core 0.5.1", ] [[package]] name = "zvariant" -version = "3.15.2" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive 3.15.2", -] - -[[package]] -name = "zvariant" -version = "5.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b64ef4f40c7951337ddc7023dd03528a57a3ce3408ee9da5e948bd29b232c4" +checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 0.7.14", - "zvariant_derive 5.9.2", - "zvariant_utils 3.3.0", + "winnow 0.7.15", + "zvariant_derive", + "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "3.15.2" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", - "zvariant_utils 1.0.1", -] - -[[package]] -name = "zvariant_derive" -version = "5.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "484d5d975eb7afb52cc6b929c13d3719a20ad650fea4120e6310de3fc55e415c" -dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", - "syn 2.0.117", - "zvariant_utils 3.3.0", -] - -[[package]] -name = "zvariant_utils" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "syn", + "zvariant_utils", ] [[package]] @@ -9409,6 +9296,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.117", - "winnow 0.7.14", + "syn", + "winnow 0.7.15", ] diff --git a/Cargo.toml b/Cargo.toml index f0a89be..1db1107 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "cosmic-term" -version = "1.0.8" +version = "1.0.11" authors = ["Jeremy Soller "] edition = "2024" license = "GPL-3.0-only" -rust-version = "1.85" +rust-version = "1.90" [dependencies] alacritty_terminal = "0.25.1" @@ -47,7 +47,7 @@ features = ["monospace_fallback", "shape-run-cache"] git = "https://github.com/pop-os/libcosmic.git" default-features = false #TODO: a11y feature crashes file chooser dialog -features = ["about", "multi-window", "tokio", "winit", "surface-message"] +features = ["about", "autosize", "multi-window", "tokio", "winit", "surface-message"] [target.'cfg(unix)'.dependencies] fork = "0.4" @@ -67,7 +67,7 @@ inherits = "release" debug = true -# [patch.'https://github.com/pop-os/libcosmic'] -# libcosmic = { path = "../libcosmic" } -# cosmic-config = { path = "../libcosmic/cosmic-config" } -# cosmic-theme = { path = "../libcosmic/cosmic-theme" } +#[patch.'https://github.com/pop-os/libcosmic'] +#libcosmic = { path = "../libcosmic" } +#cosmic-config = { path = "../libcosmic/cosmic-config" } +#cosmic-theme = { path = "../libcosmic/cosmic-theme" } diff --git a/debian/changelog b/debian/changelog index 0171432..146a837 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +cosmic-term (1.0.11) noble; urgency=medium + + * Epoch 1.0.11 version update + + -- Jeremy Soller Tue, 14 Apr 2026 11:11:05 -0600 + +cosmic-term (1.0.9) noble; urgency=medium + + * Epoch 1.0.9 version update + + -- Jeremy Soller Mon, 06 Apr 2026 15:10:35 -0600 + cosmic-term (1.0.8) noble; urgency=medium * Epoch 1.0.8 version update diff --git a/i18n/ar/cosmic_term.ftl b/i18n/ar/cosmic_term.ftl index b01fbd0..58fa284 100644 --- a/i18n/ar/cosmic_term.ftl +++ b/i18n/ar/cosmic_term.ftl @@ -30,7 +30,7 @@ tab-title-description = تجاوز عنوان اللسان المبدئي add-profile = أضف ملف تعريف new-profile = ملف تعريف جديد make-default = اجعله المبدئي -working-directory = مجلد العمل +working-directory = المجلَّد الحالي hold = التعليق remain-open = البقاء مفتوحًا بعد خروج العملية الفرعية. @@ -138,7 +138,7 @@ shortcut-group-clipboard = الحافظة shortcut-group-other = أخرى shortcut-group-tabs = ألسنة shortcut-group-window = نافذة -shortcut-group-zoom = كبِّر +shortcut-group-zoom = تكبير shortcut-replace-body = عُيِّن { $binding } بالفعل لـ { $existing }. أتريد استبداله بـ { $new_action }؟ shortcut-replace-title = استبدل الاختصار؟ tab-activate = نشّط لسان { $number } diff --git a/i18n/cs/cosmic_term.ftl b/i18n/cs/cosmic_term.ftl index 6e5784f..44d6b34 100644 --- a/i18n/cs/cosmic_term.ftl +++ b/i18n/cs/cosmic_term.ftl @@ -41,7 +41,7 @@ default-font-stretch = Šířka písma default-font-weight = Normální tloušťka písma default-dim-font-weight = Tenká tloušťka písma default-bold-font-weight = Tučná tloušťka písma -use-bright-bold = Zvýraznit tučný text +use-bright-bold = Světlejší tučný text splits = Rozdělení focus-follow-mouse = Zaměření psaní sleduje myš advanced = Pokročilé @@ -86,7 +86,7 @@ disable = Zakázat keyboard-shortcuts = Klávesové zkratky menu-keyboard-shortcuts = Klávesové zkratky... no-shortcuts = Žádné zkratky -password-manager = Manažer hesel +password-manager = Správce hesel replace = Nahradit reset-to-default = Obnovit výchozí shortcut-group-clipboard = Schránka diff --git a/i18n/de/cosmic_term.ftl b/i18n/de/cosmic_term.ftl index 5d7555b..c4fc698 100644 --- a/i18n/de/cosmic_term.ftl +++ b/i18n/de/cosmic_term.ftl @@ -28,7 +28,7 @@ new-profile = Neues Profil make-default = Als Standard festlegen working-directory = Arbeitsverzeichnis hold = Halten -remain-open = Nach Beendigung des Kindprozesses offen bleiben. +remain-open = Nach Beendigung des untergeordneten Prozesses geöffnet lassen. ## Einstellungen @@ -38,7 +38,7 @@ settings = Einstellungen appearance = Aussehen theme = Thema -match-desktop = An System anpassen +match-desktop = An Desktop anpassen dark = Dunkel light = Hell syntax-dark = Dunkles Farbschema @@ -67,7 +67,7 @@ focus-follow-mouse = Tippfokus folgt Maus advanced = Erweitert show-headerbar = Kopfzeile anzeigen -show-header-description = Kopfzeile über das Rechtsklickmenü einblenden. +show-header-description = Kopfzeile über das Rechtsklick-Menü aufzeigen # Suchen find-placeholder = Suchen... find-previous = Vorherigen suchen @@ -141,3 +141,9 @@ type-to-search = Zum Suchen tippen... close-window = Fenster schließen copy-or-sigint = Kopieren oder SIGINT toggle-fullscreen = Vollbild umschalten +shortcut-group-zoom = Zoom +comment = Terminalemulator für den COSMIC Desktop +paste-primary = Primär einfügen +add-another-keybinding = Weitere Tastenbelegung hinzufügen +shortcut-replace-body = { $binding } ist bereits { $existing } zugeordnet. Durch { $new_action } ersetzen? +keywords = Befehl;Shell;Terminal;CLI; diff --git a/i18n/eu/cosmic_term.ftl b/i18n/eu/cosmic_term.ftl new file mode 100644 index 0000000..e69de29 diff --git a/i18n/fi/cosmic_term.ftl b/i18n/fi/cosmic_term.ftl index f7e985e..3cbab75 100644 --- a/i18n/fi/cosmic_term.ftl +++ b/i18n/fi/cosmic_term.ftl @@ -14,7 +14,7 @@ rename = Nimeä uudelleen export = Vie delete = Poista import = Tuo -import-errors = Tuo virheet +import-errors = Tuotaessa tapahtuneet virheet ## Profiles @@ -26,9 +26,9 @@ tab-title-description = Ylikirjoita välilehden oletusotsikko add-profile = Lisää profiili new-profile = Uusi profiili make-default = Aseta oletukseksi -working-directory = Työkansio +working-directory = Työhakemisto hold = Pidä -remain-open = Pysy auki lapsiprosessin sulkeutumisen jälkeen. +remain-open = Pysy avoinna lapsiprosessin sulkeutumisen jälkeen. ## Settings @@ -38,13 +38,13 @@ settings = Asetukset appearance = Ulkoasu theme = Teema -match-desktop = Sovita työpöydän kanssa +match-desktop = Sovita työpöytään dark = Tumma light = Vaalea syntax-dark = Tumma väriteema syntax-light = Vaalea väriteema -default-zoom-step = Zoomausaskeleet -opacity = Taustan läpinäkyvyys +default-zoom-step = Zoomauksen askeleet +opacity = Taustan peittävyys ### Font @@ -52,11 +52,11 @@ font = Fontti advanced-font-settings = Fontin lisäasetukset default-font = Fontti default-font-size = Fontin koko -default-font-stretch = Kirjasimen venyvyys -default-font-weight = Oletuskirjasimen paino -default-dim-font-weight = Kirjasimen painon himmennys -default-bold-font-weight = Paksun kirjasimen paino -use-bright-bold = Näytä paksu kirjasin kirkkaana +default-font-stretch = Fontin venyvyys +default-font-weight = Fontin normaalipaino +default-dim-font-weight = Himmennetyn fontin paino +default-bold-font-weight = Lihavoidun fontin paino +use-bright-bold = Näytä lihavoitu teksti kirkkaampana ### Splits @@ -67,7 +67,7 @@ focus-follow-mouse = Kirjoituksen kohdistus seuraa hiirtä advanced = Lisäasetukset show-headerbar = Näytä otsake -show-header-description = Paljasta otsake hiiren oikean painikkeen valikosta. +show-header-description = Paljasta otsake hiiren oikean painikkeen valikosta # Find @@ -107,7 +107,7 @@ next-tab = Seuraava välilehti previous-tab = Edellinen välilehti split-horizontal = Halkaise näkymä vaakasuunnassa split-vertical = Halkaise näkymä pystysuunnassa -pane-toggle-maximize = Maksimointi päälle tai pois päältä +pane-toggle-maximize = Suurennus päällä tai pois menu-color-schemes = Väriteemat… menu-settings = Asetukset… menu-about = Tietoa COSMICin päätteestä… @@ -134,3 +134,18 @@ menu-keyboard-shortcuts = Pikanäppäimet… tab-activate = Aktivoi välilehti { $number } type-to-search = Etsi kirjoittamalla… password-manager = Salasanahallinta +reset-to-default = Palauta oletukseksi +menu-password-manager = Salasanat… +add-another-keybinding = Lisää toinen näppäinsidos +focus-pane-down = Kohdista alempaan ruutuun +focus-pane-left = Kohdista vasemmanpuoleiseen ruutuun +focus-pane-right = Kohdista oikeanpuoleiseen ruutuun +focus-pane-up = Kohdista ylempään ruutuun +paste-primary = Liitä ensisijainen +shortcut-capture-hint = Paina näppäinyhdistelmää +shortcut-replace-body = { $binding } on jo kytketty toimintoon { $existing }. Korvataanko se toiminnolla { $new_action }? +shortcut-replace-title = Korvataanko pikanäppäin? +copy-or-sigint = Kopioi tai SIGINT +shortcut-group-zoom = Lähennä +toggle-fullscreen = Koko näyttö päällä tai pois +shortcut-group-other = Muut diff --git a/i18n/hu/cosmic_term.ftl b/i18n/hu/cosmic_term.ftl index dcc4dc4..d104797 100644 --- a/i18n/hu/cosmic_term.ftl +++ b/i18n/hu/cosmic_term.ftl @@ -58,7 +58,7 @@ default-font = Betűtípus default-font-size = Betűméret default-font-stretch = Betűszélesség default-font-weight = Normál betűsúly -default-dim-font-weight = Halvány betűsúly +default-dim-font-weight = Vékony betűsúly default-bold-font-weight = Félkövér betűsúly use-bright-bold = Félkövér szöveg világosítása diff --git a/i18n/kab/cosmic_term.ftl b/i18n/kab/cosmic_term.ftl index e69de29..1761fee 100644 --- a/i18n/kab/cosmic_term.ftl +++ b/i18n/kab/cosmic_term.ftl @@ -0,0 +1,107 @@ +cancel = Sefsex +name = Isem +delete = kkes +rename = Snifel isem +quit = Tuffɣa +support = Tallalt +repository = Asarsay +settings = Iɣewwaṛen +appearance = Timeẓri +theme = Asentel +dark = Aɣmayan +light = Aceɛlal +paste = Senteḍ +select-all = Fren akk +view = Wali +menu-settings = Iɣewwaṛen… +match-desktop = Amṣada d tnarit +file = Afaylu +new-window = Asfaylu amaynut +edit = Ẓreg +copy = Nɣel +default-zoom-step = Isurifen n usemɣer +find = Af-d +find-placeholder = Af-d… +find-previous = Af-d uzwir +find-next = Af-d uḍfir +replace = Semselsi +keyboard-shortcuts = Inegzumen n unasiw +menu-keyboard-shortcuts = Inegzumen n unasiw… +new-tab = Iccer amaynut +close-tab = Mdel iccer +import = Kter +export = Sifeḍ +reset-to-default = Ales awennez ɣer umezwer +type-to-search = Aru iwakken ad tnadiḍ… +add-another-keybinding = Rnu yiwen n unegzum n unasiw nniḍen +font = Tasefsit +default-font = Tasefsit +password-input = Awal uffir +password-input-description = Aglam +close-window = Mdel asfaylu +copy-or-sigint = Nɣel neɣ SIGINT +disable = Kkes armad +no-shortcuts = Ulac inegzumen +password-manager = Amsefrak n wawal n uɛeddi +shortcut-group-other = Ayen nniḍen +shortcut-group-tabs = Iccaren +shortcut-group-window = Asfaylu +shortcut-replace-title = Semselsi anegzum? +toggle-fullscreen = Qluqel ɣer ugdil aččuran +shortcut-group-clipboard = Tacfawit +shortcut-group-zoom = Asimɣeṛ +show-header-description = Err-d inixef seg wumuɣ n usiti ayeffus +new-terminal = Ixf amaynut +color-schemes = Azenziɣ n yiniten +import-errors = Kter tuccḍiwin +profiles = imaɣnuten +command-line = Izirig n tladna +tab-title = Azwel n yiccer +tab-title-description = Snifel azwel n yiccer amezwer +add-profile = Rnu amaɣnu +new-profile = Amaɣnu amaynut +make-default = Err-it d amezwer +working-directory = Akaram n umahil +hold = Ṭṭef +syntax-dark = Azenziɣ n yini aɣmayan +syntax-light = Azenziɣ n yini aceɛlal +opacity = Tiḍullest n ugilal +advanced-font-settings = Iɣewwaṛen inaẓiyen n tsefsit +default-font-size = Tiddi n tsefsit +default-font-stretch = Ajbad n tsefsit +default-font-weight = Taẓeyt n tsefsit tamagnut +default-dim-font-weight = Taẓeyt n tsefsit tafessast +default-bold-font-weight = Taẓeyt n tsefsit n tira tazurant +use-bright-bold = Err aḍris azuran yettfeǧǧiǧ +show-headerbar = Sken inixef +profile = Amaɣnu +menu-profiles = imaɣnuten… +remain-open = Qqim teldiḍ deffir n tuffɣa n ukala aqrur. +focus-follow-mouse = Asaḍas n tira yettḍafar taɣerdayt +advanced = Leqqayen +clear-scrollback = Sfeḍ adrurem ɣer deffir +open-link = Ldi aseɣwen +zoom-in = Aḍris ahrawan +zoom-reset = Tiddi n uḍris amezwer +zoom-out = Aḍris wezzilen ugar +next-tab = Iccer uḍfir +previous-tab = Iccer uzwir +split-horizontal = Ẓun s wudem aglawan +split-vertical = Ẓun s wudem ubdid +pane-toggle-maximize = Qluqel asemɣer +menu-about = Ɣef ixf COSMIC… +menu-password-manager = Awalen uffiren... +passwords-title = Awalen uffiren +add-password = Rnu awal uffir +splits = Tiẓunin +menu-color-schemes = Azenziɣ n yini... +comment = Amtellal n yixef i tnarit COSMIC +keywords = Taladna; Ajeɣlal; Ixf; CLI; +focus-pane-down = Err asaḍas ɣer ugalis ukessar +focus-pane-left = Err asaḍas ɣer ugalis uzelmaḍ +focus-pane-right = Err asaḍas ɣer ugalis uyeffus +focus-pane-up = Err asaḍas ɣer ugalis uksawen +paste-primary = Senṭeḍ agejdan +shortcut-capture-hint = Sit ɣef usuddes n tqeffalin +tab-activate = Sermed iccer { $number } +copy-link = Nɣel aseɣwen diff --git a/i18n/ko/cosmic_term.ftl b/i18n/ko/cosmic_term.ftl index 45f7b6e..e8d5a9e 100644 --- a/i18n/ko/cosmic_term.ftl +++ b/i18n/ko/cosmic_term.ftl @@ -51,7 +51,7 @@ default-dim-font-weight = 희미한 글꼴 굵기 advanced = 고급 use-bright-bold = 굵은 텍스트를 더 밝게 표시 default-bold-font-weight = 굵은 글꼴 굵기 -show-header-description = 오른쪽 클릭 메뉴를 통해 헤더를 나타냅니다. +show-header-description = 우클릭 메뉴를 통해 헤더를 나타냅니다 password-input-description = 설명 default-font = 글꼴 paste = 붙여넣기 @@ -78,3 +78,19 @@ find = 찾기 profile = 프로필 new-tab = 새 탭 comment = COSMIC 데스크톱용 터미널 에뮬레이터 +menu-keyboard-shortcuts = 단축키... +keywords = 명령어;셸;터미널;CLI; +cancel = 취소 +close-window = 창 닫기 +disable = 비활성화 +keyboard-shortcuts = 단축키 +password-manager = 암호 관리자 +replace = 대체 +shortcut-group-clipboard = 클립보드 +shortcut-group-tabs = 탭 +shortcut-group-window = 창 +shortcut-replace-title = 단축키를 대체할까요? +tab-activate = 활성 탭 { $number } +toggle-fullscreen = 전체 화면 전환 +type-to-search = 입력하여 검색… +copy-link = 링크 복사 diff --git a/i18n/nb-NO/cosmic_term.ftl b/i18n/nb-NO/cosmic_term.ftl index e214d03..cd98862 100644 --- a/i18n/nb-NO/cosmic_term.ftl +++ b/i18n/nb-NO/cosmic_term.ftl @@ -71,3 +71,4 @@ syntax-light = Fargeskjema lyst default-zoom-step = Zoom steg focus-follow-mouse = Skrivefokus følger musen hold = Hold +cancel = Avbryt diff --git a/i18n/pt-BR/cosmic_term.ftl b/i18n/pt-BR/cosmic_term.ftl index 23a7ccd..b9955dd 100644 --- a/i18n/pt-BR/cosmic_term.ftl +++ b/i18n/pt-BR/cosmic_term.ftl @@ -113,10 +113,10 @@ pane-toggle-maximize = Alternar maximização menu-color-schemes = Esquemas de cores... menu-settings = Configurações... menu-about = Sobre o Terminal... -open-link = Abrir Link +open-link = Abrir link menu-password-manager = Senhas... passwords-title = Senhas -add-password = Adicionar Senha +add-password = Adicionar senha password-input = Senha password-input-description = Descrição add-another-keybinding = Adicionar outra combinação de teclas @@ -124,15 +124,15 @@ cancel = Cancelar close-window = Fechar janela copy-or-sigint = Copiar ou SIGINT disable = Desabilitar -focus-pane-down = Focar painel abaixo -focus-pane-left = Focar painel à esquerda -focus-pane-right = Focar painel à direita -focus-pane-up = Focar painel acima +focus-pane-down = Focar o quadro abaixo +focus-pane-left = Focar o quadro à esquerda +focus-pane-right = Focar o quadro à direita +focus-pane-up = Focar o quadro acima keyboard-shortcuts = Atalhos de teclado menu-keyboard-shortcuts = Atalhos de teclado... no-shortcuts = Sem atalhos password-manager = Gerenciador de senhas -paste-primary = Colar +paste-primary = Colar primário replace = Substituir reset-to-default = Restaurar padrão shortcut-capture-hint = Pressione a combinação de teclas @@ -146,4 +146,4 @@ shortcut-replace-title = Substituir atalho? tab-activate = Ativar aba { $number } toggle-fullscreen = Alternar para tela cheia type-to-search = Digite para pesquisar... -copy-link = Copiar Link +copy-link = Copiar link diff --git a/i18n/zh-CN/cosmic_term.ftl b/i18n/zh-CN/cosmic_term.ftl index d02065f..d2a05eb 100644 --- a/i18n/zh-CN/cosmic_term.ftl +++ b/i18n/zh-CN/cosmic_term.ftl @@ -69,7 +69,7 @@ advanced = 高级 show-headerbar = 显示标题栏 show-header-description = 右键菜单提供显示标题栏选项 # Find -find-placeholder = 查找... +find-placeholder = 查找… find-previous = 查找上一个 find-next = 查找下一个 @@ -82,7 +82,7 @@ file = 文件 new-tab = 新建标签 new-window = 新建窗口 profile = 配置 -menu-profiles = 配置文件... +menu-profiles = 配置文件… close-tab = 关闭标签 quit = 退出 @@ -106,9 +106,9 @@ previous-tab = 上一个标签 split-horizontal = 水平分割 split-vertical = 垂直分割 pane-toggle-maximize = 切换最大化 -menu-color-schemes = 配色方案... -menu-settings = 设置... -menu-about = 关于 COSMIC 终端... +menu-color-schemes = 配色方案… +menu-settings = 设置… +menu-about = 关于 COSMIC 终端… repository = 仓库 support = 支持 open-link = 打开链接 @@ -132,7 +132,7 @@ shortcut-group-clipboard = 剪切板 shortcut-group-other = 其他 shortcut-group-tabs = 标签 shortcut-group-zoom = 缩放 -type-to-search = 输入即可搜索... +type-to-search = 输入即可搜索… copy-or-sigint = 复制或 SIGINT focus-pane-down = 聚焦下方窗格 focus-pane-left = 聚焦左侧窗格 diff --git a/i18n/zh-TW/cosmic_term.ftl b/i18n/zh-TW/cosmic_term.ftl index d9a3caf..657d777 100644 --- a/i18n/zh-TW/cosmic_term.ftl +++ b/i18n/zh-TW/cosmic_term.ftl @@ -1,5 +1,5 @@ cosmic-terminal = COSMIC 終端機 -new-terminal = 新增 終端機 +new-terminal = 新建終端機 # Context Pages @@ -9,7 +9,7 @@ new-terminal = 新增 終端機 ## Color schemes -color-schemes = 主題 +color-schemes = 配色方案 rename = 重命名 export = 匯出 delete = 刪除 @@ -38,36 +38,36 @@ settings = 設定 appearance = 外觀 theme = 主題 -match-desktop = 配合桌面 -dark = 暗色 -light = 亮色 +match-desktop = 符合桌面 +dark = 深色 +light = 淺色 syntax-dark = 暗色調 syntax-light = 亮色調 default-zoom-step = 縮放步進 -opacity = 背景透明度 +opacity = 背景不透明度 ### Font -font = 字體 -advanced-font-settings = 進階字體設定 -default-font = 字體 -default-font-size = 字體大小 -default-font-stretch = 字體延伸 -default-font-weight = 字體粗細 -default-dim-font-weight = 淡色字體粗細 -default-bold-font-weight = 粗字體粗細 -use-bright-bold = 使粗體字更亮 +font = 字型 +advanced-font-settings = 進階字型設定 +default-font = 字型 +default-font-size = 字型大小 +default-font-stretch = 字型伸展 +default-font-weight = 正常字型粗細 +default-dim-font-weight = 黯淡字型粗細 +default-bold-font-weight = 粗體字型粗細 +use-bright-bold = 使粗體文字更亮 ### Splits -splits = 終端介面分割 -focus-follow-mouse = 滑鼠點擊選擇輸入窗口 +splits = 分割 +focus-follow-mouse = 輸入焦點追隨滑鼠 ### Advanced advanced = 進階 show-headerbar = 顯示標題列 -show-header-description = 右鍵選單提供標題列選項。 +show-header-description = 右鍵選單提供標題列選項 # Find find-placeholder = 尋找... find-previous = 上一個 @@ -79,12 +79,12 @@ find-next = 下一個 ## File file = 檔案 -new-tab = 新增分頁 -new-window = 新增視窗 -profile = 設定檔 -menu-profiles = 設定檔... +new-tab = 新建分頁 +new-window = 新建視窗 +profile = 設定檔案 +menu-profiles = 設定檔案... close-tab = 關閉分頁 -quit = 結束 +quit = 退出 ## Edit @@ -97,14 +97,53 @@ find = 尋找 ## View view = 檢視 -zoom-in = 放大文字 -zoom-reset = 重設文字大小 -zoom-out = 縮小文字 +zoom-in = 較大文字 +zoom-reset = 預設文字大小 +zoom-out = 較小文字 next-tab = 下個分頁 previous-tab = 上個分頁 split-horizontal = 水平分割 split-vertical = 垂直分割 pane-toggle-maximize = 切換最大化 -menu-color-schemes = 主題... +menu-color-schemes = 配色方案... menu-settings = 設定... -menu-about = 關於 COSMIC 終端機... +menu-about = 關於 COSMIC 終端機… +cancel = 取消 +repository = 軟體庫源 +support = 支援 +keyboard-shortcuts = 鍵盤快速鍵 +keywords = 指令;殼層;終端;指令行介面CLI; +add-another-keybinding = 添加另一個按鍵組合 +close-window = 關閉視窗 +copy-or-sigint = 複製或 SIGINT +disable = 停用 +menu-keyboard-shortcuts = 鍵盤快速鍵... +no-shortcuts = 無快速鍵 +password-manager = 密碼管理器 +paste-primary = 貼上主要 +replace = 取代 +reset-to-default = 重新設定至預設 +shortcut-capture-hint = 按下組合鍵 +shortcut-group-clipboard = 剪貼簿 +shortcut-group-other = 其它 +shortcut-group-tabs = 分頁 +shortcut-group-window = 視窗 +shortcut-group-zoom = 縮放 +focus-pane-down = 聚焦下方窗格 +focus-pane-left = 聚焦左側窗格 +focus-pane-right = 聚焦右側窗格 +focus-pane-up = 聚焦上方窗格 +open-link = 開啟連結 +menu-password-manager = 密碼… +passwords-title = 密碼 +add-password = 添增密碼 +password-input = 密碼 +password-input-description = 描述 +shortcut-replace-title = 取代快速鍵? +tab-activate = 啟用分頁 { $number } +toggle-fullscreen = 切換全螢幕 +type-to-search = 輸入進行搜尋... +copy-link = 複製連結 +shortcut-replace-body = { $binding } 已經分配至 { $existing }。 要取代它為 { $new_action }? +clear-scrollback = 清除捲動回朔 +comment = COSMIC 桌面終端機模擬器 diff --git a/src/main.rs b/src/main.rs index c64c926..d43673e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,7 @@ use alacritty_terminal::{event::Event as TermEvent, term, term::color::Colors as TermColors, tty}; use cosmic::iced::clipboard::dnd::DndAction; -use cosmic::iced_core::keyboard::key::Named; +use cosmic::iced::core::keyboard::key::Named; use cosmic::widget::menu::action::MenuAction; use cosmic::widget::menu::key_bind::KeyBind; use cosmic::widget::pane_grid::Pane; @@ -177,11 +177,7 @@ fn main() -> Result<(), Box> { let shortcuts_config = shortcuts::ShortcutsConfig::new(config.shortcuts_custom.clone()); - let shell = if let Some(shell_program) = shell_program_opt { - Some(tty::Shell::new(shell_program, shell_args)) - } else { - None - }; + let shell = shell_program_opt.map(|shell_program| tty::Shell::new(shell_program, shell_args)); let startup_options = Some(tty::Options { shell, working_directory, @@ -367,7 +363,7 @@ pub enum Message { ColorSchemeRename(ColorSchemeKind, ColorSchemeId, String), ColorSchemeRenameSubmit, ColorSchemeTabActivate(widget::segmented_button::Entity), - Config(Config), + Config(Box), Copy(Option), CopyOrSigint(Option), CopyPrimary(Option), @@ -379,7 +375,7 @@ pub enum Message { DefaultFontStretch(usize), DefaultFontWeight(usize), DefaultZoomStep(usize), - DialogMessage(DialogMessage), + DialogMessage(Box), // DialogMessage is huge, so we use a box to make the size of this enum smaller on the stack Drop(Option<(pane_grid::Pane, segmented_button::Entity, DndDrop)>), Find(bool), FindNext, @@ -454,6 +450,7 @@ pub enum Message { ZoomIn, ZoomOut, ZoomReset, + ContextMenuPopupClosed(window::Id), } #[derive(Clone, Copy, Debug, Eq, PartialEq)] @@ -524,6 +521,14 @@ pub struct App { shortcut_search_regex: Option, shortcut_search_value: String, modifiers: Modifiers, + context_menu_popup: Option<( + window::Id, + pane_grid::Pane, + segmented_button::Entity, + Option, + widget::Id, + cosmic::iced::Point, + )>, #[cfg(feature = "password_manager")] password_mgr: password_manager::PasswordManager, } @@ -546,21 +551,19 @@ impl App { .config .color_schemes(color_scheme_kind) .get(&color_scheme_id) - { - if self + && self .themes .insert( (color_scheme_name.clone(), color_scheme_kind), color_scheme.into(), ) .is_some() - { - log::warn!( - "custom {:?} color scheme {:?} replaces builtin one", - color_scheme_kind, - color_scheme_name - ); - } + { + log::warn!( + "custom {:?} color scheme {:?} replaces builtin one", + color_scheme_kind, + color_scheme_name + ); } } } @@ -691,21 +694,21 @@ impl App { // but only for the active pane/tab if let Some(tab_model) = self.pane_model.active() { for entity in tab_model.iter() { - if tab_model.is_active(entity) { - if let Some(terminal) = tab_model.data::>(entity) { - let mut terminal = terminal.lock().unwrap(); - let current_zoom_adj = terminal.zoom_adj(); - match zoom_message { - Message::ZoomIn => { - terminal.set_zoom_adj(current_zoom_adj.saturating_add(1)) - } - Message::ZoomOut => { - terminal.set_zoom_adj(current_zoom_adj.saturating_sub(1)) - } - _ => {} + if tab_model.is_active(entity) + && let Some(terminal) = tab_model.data::>(entity) + { + let mut terminal = terminal.lock().unwrap(); + let current_zoom_adj = terminal.zoom_adj(); + match zoom_message { + Message::ZoomIn => { + terminal.set_zoom_adj(current_zoom_adj.saturating_add(1)) } - terminal.set_config(&self.config, &self.themes); + Message::ZoomOut => { + terminal.set_zoom_adj(current_zoom_adj.saturating_sub(1)) + } + _ => {} } + terminal.set_config(&self.config, &self.themes); } } } @@ -714,16 +717,16 @@ impl App { fn save_color_schemes(&mut self, color_scheme_kind: ColorSchemeKind) -> Task { // Optimized for just saving color_schemes - if let Some(ref config_handler) = self.config_handler { - if let Err(err) = config_handler.set( + if let Some(ref config_handler) = self.config_handler + && let Err(err) = config_handler.set( match color_scheme_kind { ColorSchemeKind::Dark => "color_schemes_dark", ColorSchemeKind::Light => "color_schemes_light", }, self.config.color_schemes(color_scheme_kind), - ) { - log::error!("failed to save config: {}", err); - } + ) + { + log::error!("failed to save config: {}", err); } self.update_color_schemes(); Task::none() @@ -746,16 +749,16 @@ impl App { if self.find { widget::text_input::focus(self.find_search_id.clone()) } else if self.core.window.show_context { - match self.context_page { - ContextPage::KeyboardShortcuts => { - if self.shortcut_search_focus.get() { - self.shortcut_search_focus.set(false); - return widget::text_input::focus(self.shortcut_search_id.clone()); - } - } - // TODO focus for other context pages? - _ => {} + // Right now we only care about the KeyboardShortcuts context page, so we use a simple if. + // In the future if we are to care about other conext pages, we could switch this to a match + // statement instead to be cleaner. + if self.context_page == ContextPage::KeyboardShortcuts + && self.shortcut_search_focus.get() + { + self.shortcut_search_focus.set(false); + return widget::text_input::focus(self.shortcut_search_id.clone()); } + Task::none() } else if let Some(terminal_id) = self.terminal_ids.get(&self.pane_model.focused()).cloned() { @@ -950,7 +953,7 @@ impl App { sections.push( widget::row::with_children(vec![ - widget::horizontal_space().into(), + widget::space::horizontal().into(), widget::button::standard(fl!("import")) .on_press(Message::ColorSchemeImport(color_scheme_kind)) .into(), @@ -1004,7 +1007,7 @@ impl App { let mut groups = Vec::new(); //TODO: fix text input focus going outside bounds - groups.push(widget::horizontal_space().into()); + groups.push(widget::space::horizontal().into()); groups.push( widget::text_input::search_input(fl!("type-to-search"), &self.shortcut_search_value) .id(self.shortcut_search_id.clone()) @@ -1018,10 +1021,10 @@ impl App { let mut found_actions = false; for action in group.actions { let action_label = shortcuts::action_label(action); - if let Some(regex) = &self.shortcut_search_regex { - if regex.find(&action_label).is_none() { - continue; - } + if let Some(regex) = &self.shortcut_search_regex + && regex.find(&action_label).is_none() + { + continue; } found_actions = true; @@ -1270,7 +1273,7 @@ impl App { ]) .spacing(space_xxxs) .into(), - widget::horizontal_space().into(), + widget::space::horizontal().into(), widget::toggler(profile.drain_on_exit) .on_toggle(move |t| Message::ProfileHold(profile_id, t)) .into(), @@ -1293,7 +1296,7 @@ impl App { } let add_profile = widget::row::with_children(vec![ - widget::horizontal_space().into(), + widget::space::horizontal().into(), widget::button::standard(fl!("add-profile")) .on_press(Message::ProfileNew) .into(), @@ -1557,13 +1560,13 @@ impl App { self.startup_options.take().unwrap_or_default(); let options = tty::Options { shell: startup_options.shell.or_else(|| { - if let Some(mut args) = shlex::split(&profile.command) { - if !args.is_empty() { - let command = args.remove(0); - return Some(tty::Shell::new(command, args)); - } + if let Some(mut args) = shlex::split(&profile.command) + && !args.is_empty() + { + let command = args.remove(0); + return Some(tty::Shell::new(command, args)); } - return None; + None }), working_directory: startup_options .working_directory @@ -1868,6 +1871,7 @@ impl Application for App { shortcut_search_regex: None, shortcut_search_value: String::new(), modifiers: Modifiers::empty(), + context_menu_popup: None, #[cfg(feature = "password_manager")] password_mgr: Default::default(), }; @@ -1974,24 +1978,23 @@ impl Application for App { .get(&color_scheme_id) .map(|color_scheme| color_scheme.name.clone()), None => Some(format!("COSMIC {:?}", color_scheme_kind)), - } { - if self.dialog_opt.is_none() { - let (dialog, command) = Dialog::new( - DialogSettings::new().kind(DialogKind::SaveFile { - filename: format!("{}.ron", color_scheme_name), - }), - Message::DialogMessage, - move |result| { - Message::ColorSchemeExportResult( - color_scheme_kind, - color_scheme_id_opt, - result, - ) - }, - ); - self.dialog_opt = Some(dialog); - return command; - } + } && self.dialog_opt.is_none() + { + let (dialog, command) = Dialog::new( + DialogSettings::new().kind(DialogKind::SaveFile { + filename: format!("{}.ron", color_scheme_name), + }), + |msg| Message::DialogMessage(Box::new(msg)), + move |result| { + Message::ColorSchemeExportResult( + color_scheme_kind, + color_scheme_id_opt, + result, + ) + }, + ); + self.dialog_opt = Some(dialog); + return command; } } Message::ColorSchemeExportResult(color_scheme_kind, color_scheme_id_opt, result) => { @@ -2079,7 +2082,7 @@ impl Application for App { self.color_scheme_errors.clear(); let (dialog, command) = Dialog::new( DialogSettings::new().kind(DialogKind::OpenMultipleFiles), - Message::DialogMessage, + |msg| Message::DialogMessage(Box::new(msg)), move |result| Message::ColorSchemeImportResult(color_scheme_kind, result), ); self.dialog_opt = Some(dialog); @@ -2133,15 +2136,13 @@ impl Application for App { Message::ColorSchemeRenameSubmit => { if let Some((color_scheme_kind, color_scheme_id, color_scheme_name)) = self.color_scheme_renaming.take() - { - if let Some(color_scheme) = self + && let Some(color_scheme) = self .config .color_schemes_mut(color_scheme_kind) .get_mut(&color_scheme_id) - { - color_scheme.name = color_scheme_name; - return self.save_color_schemes(color_scheme_kind); - } + { + color_scheme.name = color_scheme_name; + return self.save_color_schemes(color_scheme_kind); } } Message::ColorSchemeTabActivate(entity) => { @@ -2155,11 +2156,11 @@ impl Application for App { } } Message::Config(config) => { - if config != self.config { + if *config != self.config { let shortcuts_changed = config.shortcuts_custom != self.config.shortcuts_custom; log::info!("update config"); //TODO: update syntax theme by clearing tabs, only if needed - self.config = config; + self.config = *config; if shortcuts_changed { self.shortcuts_config = shortcuts::ShortcutsConfig::new(self.config.shortcuts_custom.clone()); @@ -2323,7 +2324,8 @@ impl Application for App { }, Message::DialogMessage(dialog_message) => { if let Some(dialog) = &mut self.dialog_opt { - return dialog.update(dialog_message); + // DialogMessage is boxed, so we need to dereference it before updating + return dialog.update(*dialog_message); } } Message::Drop(Some((pane, entity, data))) => { @@ -2362,13 +2364,13 @@ impl Application for App { return self.update_focus(); } Message::FindNext => { - if !self.find_search_value.is_empty() { - if let Some(tab_model) = self.pane_model.active() { - let entity = tab_model.active(); - if let Some(terminal) = tab_model.data::>(entity) { - let mut terminal = terminal.lock().unwrap(); - terminal.search(&self.find_search_value, true); - } + if !self.find_search_value.is_empty() + && let Some(tab_model) = self.pane_model.active() + { + let entity = tab_model.active(); + if let Some(terminal) = tab_model.data::>(entity) { + let mut terminal = terminal.lock().unwrap(); + terminal.search(&self.find_search_value, true); } } @@ -2376,13 +2378,13 @@ impl Application for App { return self.update_focus(); } Message::FindPrevious => { - if !self.find_search_value.is_empty() { - if let Some(tab_model) = self.pane_model.active() { - let entity = tab_model.active(); - if let Some(terminal) = tab_model.data::>(entity) { - let mut terminal = terminal.lock().unwrap(); - terminal.search(&self.find_search_value, false); - } + if !self.find_search_value.is_empty() + && let Some(tab_model) = self.pane_model.active() + { + let entity = tab_model.active(); + if let Some(terminal) = tab_model.data::>(entity) { + let mut terminal = terminal.lock().unwrap(); + terminal.search(&self.find_search_value, false); } } @@ -2459,7 +2461,6 @@ impl Application for App { if let Some(tab_model) = self.pane_model.active() { let entity = tab_model.active(); if let Some(terminal) = tab_model.data::>(entity) { - // Update context menu position let mut terminal = terminal.lock().unwrap(); if let Some(url) = terminal.context_menu.as_ref().and_then(|m| m.link.as_ref()) @@ -2478,14 +2479,12 @@ impl Application for App { if let Some(tab_model) = self.pane_model.active() { let entity = tab_model.active(); if let Some(terminal) = tab_model.data::>(entity) { - // Update context menu position let mut terminal = terminal.lock().unwrap(); if let Some(url) = terminal.context_menu.as_ref().and_then(|m| m.link.as_ref()) + && let Err(err) = open::that_detached(url) { - if let Err(err) = open::that_detached(url) { - log::warn!("failed to open {:?}: {}", url, err); - } + log::warn!("failed to open {:?}: {}", url, err); } terminal.context_menu = None; terminal.active_regex_match = None; @@ -2847,54 +2846,124 @@ impl Application for App { return self.update_title(None); } Message::TabContextAction(entity, action) => { - if let Some(tab_model) = self.pane_model.active() { - if let Some(terminal) = tab_model.data::>(entity) { - // Close context menu - { - let mut terminal = terminal.lock().unwrap(); - //Some actions need the menu_state, - //so only clear the position for them. - match action { - Action::LaunchUrlByMenu | Action::CopyUrlByMenu => { - if let Some(context_menu) = terminal.context_menu.as_mut() { - context_menu.position = None; - } - } - _ => { - terminal.context_menu = None; - } + // Close context menu popup + let mut tasks = Vec::new(); + if let Some((_popup_id, _, _, _, _, _)) = self.context_menu_popup.take() { + #[cfg(feature = "wayland")] + if is_wayland() { + tasks.push(cosmic::task::message(Message::Surface( + cosmic::surface::action::destroy_popup(_popup_id), + ))); + } + } + // Close terminal context menu state + if let Some(tab_model) = self.pane_model.active() + && let Some(terminal) = tab_model.data::>(entity) + { + let mut terminal = terminal.lock().unwrap(); + //Some actions need the menu_state, + //so only clear the position for them. + match action { + Action::LaunchUrlByMenu | Action::CopyUrlByMenu => { + if let Some(context_menu) = terminal.context_menu.as_mut() { + context_menu.position = None; } } - // Run action's message - return self.update(action.message(Some(entity))); + _ => { + terminal.context_menu = None; + } } } + tasks.push(self.update(action.message(Some(entity)))); + return cosmic::Task::batch(tasks); } Message::TabContextMenu(pane, menu_state) => { - // Close any existing context menues - let panes: Vec<_> = self.pane_model.panes.iter().collect(); - for (_pane, tab_model) in panes { - let entity = tab_model.active(); - if let Some(terminal) = tab_model.data::>(entity) { - let mut terminal = terminal.lock().unwrap(); - terminal.context_menu = None; + #[allow(unused_mut)] + let mut tasks = Vec::new(); + + // Close existing context menu popup if any + if let Some((_popup_id, _, _, _, _, _)) = self.context_menu_popup.take() { + #[cfg(feature = "wayland")] + if is_wayland() { + tasks.push(cosmic::task::message(Message::Surface( + cosmic::surface::action::destroy_popup(_popup_id), + ))); } } - // Show the context menu on the correct pane / terminal - if let Some(tab_model) = self.pane_model.panes.get(pane) { - let entity = tab_model.active(); - if let Some(terminal) = tab_model.data::>(entity) { - // Update context menu position - let mut terminal = terminal.lock().unwrap(); - terminal.context_menu = menu_state; + // Clear all terminal context_menu state + for (_, tab_model) in self.pane_model.panes.iter() { + for entity in tab_model.iter() { + if let Some(terminal) = tab_model.data::>(entity) { + let mut terminal = terminal.lock().unwrap(); + terminal.context_menu = None; + } } } - // Shift focus to the pane / terminal - // with the context menu - self.pane_model.set_focus(pane); - return self.update_title(Some(pane)); + if let Some(menu_state) = menu_state { + if let Some(_position) = menu_state.position { + let local_position = menu_state.local_position.unwrap_or(_position); + if let Some(tab_model) = self.pane_model.panes.get(pane) { + let entity = tab_model.active(); + let link = menu_state.link.clone(); + let popup_id = window::Id::unique(); + + if let Some(terminal) = tab_model.data::>(entity) { + let mut terminal = terminal.lock().unwrap(); + terminal.context_menu = Some(menu_state); + } + + self.context_menu_popup = Some(( + popup_id, + pane, + entity, + link, + widget::Id::unique(), + local_position, + )); + + #[cfg(feature = "wayland")] + if is_wayland() { + let main_window = self.core.main_window_id().unwrap(); + let pos_x = _position.x as i32; + let pos_y = _position.y as i32; + + tasks.push(cosmic::task::message(Message::Surface( + cosmic::surface::action::app_popup(move |_app: &mut Self| { + use cosmic::cctk::wayland_protocols::xdg::shell::client::xdg_positioner::{Anchor, Gravity}; + use cosmic::iced::runtime::platform_specific::wayland::popup::{SctkPopupSettings, SctkPositioner}; + + SctkPopupSettings { + parent: main_window, + id: popup_id, + positioner: SctkPositioner { + size: None, + anchor_rect: cosmic::iced::Rectangle { + x: pos_x, + y: pos_y, + width: 1, + height: 1, + }, + anchor: Anchor::None, + gravity: Gravity::BottomRight, + reactive: true, + ..Default::default() + }, + parent_size: None, + grab: true, + close_with_children: false, + input_zone: None, + } + }, None), + ))); + } + } + } + self.pane_model.set_focus(pane); + } + + return cosmic::Task::batch(tasks); } Message::TabNew => { return self.create_and_focus_new_terminal( @@ -2930,9 +2999,7 @@ impl Application for App { let pos = tab_model .position(tab_model.active()) .and_then(|i| (i as usize).checked_sub(1)) - .unwrap_or_else(|| { - tab_model.iter().count().checked_sub(1).unwrap_or_default() - }); + .unwrap_or_else(|| tab_model.iter().count().saturating_sub(1)); let entity = tab_model.iter().nth(pos); if let Some(entity) = entity { @@ -2971,13 +3038,13 @@ impl Application for App { } }, TermEvent::ColorRequest(index, f) => { - if let Some(tab_model) = self.pane_model.panes.get(pane) { - if let Some(terminal) = tab_model.data::>(entity) { - let terminal = terminal.lock().unwrap(); - let rgb = terminal.colors()[index].unwrap_or_default(); - let text = f(rgb); - terminal.input_no_scroll(text.into_bytes()); - } + if let Some(tab_model) = self.pane_model.panes.get(pane) + && let Some(terminal) = tab_model.data::>(entity) + { + let terminal = terminal.lock().unwrap(); + let rgb = terminal.colors()[index].unwrap_or_default(); + let text = f(rgb); + terminal.input_no_scroll(text.into_bytes()); } } TermEvent::CursorBlinkingChange => { @@ -2987,11 +3054,11 @@ impl Application for App { return self.update(Message::TabClose(Some(entity))); } TermEvent::PtyWrite(text) => { - if let Some(tab_model) = self.pane_model.panes.get(pane) { - if let Some(terminal) = tab_model.data::>(entity) { - let terminal = terminal.lock().unwrap(); - terminal.input_no_scroll(text.into_bytes()); - } + if let Some(tab_model) = self.pane_model.panes.get(pane) + && let Some(terminal) = tab_model.data::>(entity) + { + let terminal = terminal.lock().unwrap(); + terminal.input_no_scroll(text.into_bytes()); } } TermEvent::ResetTitle => { @@ -3011,12 +3078,12 @@ impl Application for App { return self.update_title(Some(pane)); } TermEvent::TextAreaSizeRequest(f) => { - if let Some(tab_model) = self.pane_model.panes.get(pane) { - if let Some(terminal) = tab_model.data::>(entity) { - let terminal = terminal.lock().unwrap(); - let text = f(terminal.size().into()); - terminal.input_no_scroll(text.into_bytes()); - } + if let Some(tab_model) = self.pane_model.panes.get(pane) + && let Some(terminal) = tab_model.data::>(entity) + { + let terminal = terminal.lock().unwrap(); + let text = f(terminal.size().into()); + terminal.input_no_scroll(text.into_bytes()); } } TermEvent::Title(title) => { @@ -3035,11 +3102,11 @@ impl Application for App { return self.update_title(Some(pane)); } TermEvent::MouseCursorDirty | TermEvent::Wakeup => { - if let Some(tab_model) = self.pane_model.panes.get(pane) { - if let Some(terminal) = tab_model.data::>(entity) { - let mut terminal = terminal.lock().unwrap(); - terminal.needs_update = true; - } + if let Some(tab_model) = self.pane_model.panes.get(pane) + && let Some(terminal) = tab_model.data::>(entity) + { + let mut terminal = terminal.lock().unwrap(); + terminal.needs_update = true; } } TermEvent::ChildExit(_error_code) => { @@ -3175,6 +3242,22 @@ impl Application for App { self.reset_terminal_panes_zoom(); return self.update_config(); } + Message::ContextMenuPopupClosed(id) => { + if let Some((popup_id, pane, entity, _, _, _)) = &self.context_menu_popup + && id == *popup_id + { + // Clear link underline on the terminal + if let Some(tab_model) = self.pane_model.panes.get(*pane) + && let Some(terminal) = tab_model.data::>(*entity) + { + let mut terminal = terminal.lock().unwrap(); + terminal.context_menu = None; + terminal.active_regex_match = None; + terminal.needs_update = true; + } + self.context_menu_popup = None; + } + } Message::Surface(a) => { return cosmic::task::message(cosmic::Action::Cosmic( cosmic::app::Action::Surface(a), @@ -3281,7 +3364,26 @@ impl Application for App { ] } + fn on_close_requested(&self, id: window::Id) -> Option { + if let Some((popup_id, _, _, _, _, _)) = &self.context_menu_popup + && id == *popup_id + { + return Some(Message::ContextMenuPopupClosed(id)); + } + None + } + fn view_window(&self, window_id: window::Id) -> Element<'_, Message> { + if let Some((popup_id, _pane, entity, ref link, ref autosize_id, _)) = + self.context_menu_popup + && window_id == popup_id + { + return widget::autosize::autosize( + menu::context_menu(&self.config, &self.key_binds, entity, link.clone()), + autosize_id.clone(), + ) + .into(); + } match &self.dialog_opt { Some(dialog) => dialog.view(window_id), None => widget::text("Unknown window ID").into(), @@ -3307,7 +3409,19 @@ impl Application for App { .on_activate(Message::TabActivate) .on_close(|entity| Message::TabClose(Some(entity))), ) - .class(style::Container::Background) + .class(style::Container::Custom(Box::new(|theme| { + let cosmic = theme.cosmic(); + cosmic::iced::widget::container::Style { + icon_color: Some(Color::from(cosmic.background.on)), + text_color: Some(Color::from(cosmic.background.on)), + background: Some(iced::Background::Color( + cosmic.background.base.into(), + )), + border: iced::Border::default(), + shadow: iced::Shadow::default(), + snap: true, + } + }))) .width(Length::Fill), ); } @@ -3337,25 +3451,48 @@ impl Application for App { terminal_box = terminal_box.on_mouse_enter(move || Message::MouseEnter(pane)); } - let context_menu = { - let terminal = terminal.lock().unwrap(); - terminal.context_menu.clone() + // If a context menu popup is active for this pane, inform the + // terminal_box so it will emit on_context_menu(None) on click + // to dismiss the popup. + if self.context_menu_popup.is_some() { + terminal_box = terminal_box.context_menu(cosmic::iced::Point::ORIGIN); + } + + let use_wayland_popup = { + #[cfg(feature = "wayland")] + { + is_wayland() + } + #[cfg(not(feature = "wayland"))] + { + false + } }; - let tab_element: Element<'_, Message> = match context_menu { - Some(menu_state) => match menu_state.position { - Some(point) => widget::popover(terminal_box.context_menu(point)) - .popup(menu::context_menu( - &self.config, - &self.key_binds, - entity, - menu_state.link, - )) - .position(widget::popover::Position::Point(point)) - .into(), - None => terminal_box.into(), - }, - None => terminal_box.into(), + let tab_element: Element<'_, Message> = if !use_wayland_popup { + // Fallback: render context menu as an inline popover + if let Some((_, popup_pane, popup_entity, ref link, _, point)) = + self.context_menu_popup + { + if pane == popup_pane { + let mut popover = widget::popover(terminal_box.context_menu(point)); + popover = popover + .popup(menu::context_menu( + &self.config, + &self.key_binds, + popup_entity, + link.clone(), + )) + .position(widget::popover::Position::Point(point)); + popover.into() + } else { + terminal_box.into() + } + } else { + terminal_box.into() + } + } else { + terminal_box.into() }; tab_column = tab_column.push(tab_element); } @@ -3404,7 +3541,7 @@ impl Application for App { widget::tooltip::Position::Top, ) .into(), - widget::horizontal_space().into(), + widget::space::horizontal().into(), button::custom(icon_cache_get("window-close-symbolic", 16)) .on_press(Message::Find(false)) .padding(space_xxs) @@ -3470,22 +3607,24 @@ impl Application for App { } _ => None, }), - Subscription::run_with_id( - TypeId::of::(), - stream::channel(100, |mut output| async move { - let (event_tx, mut event_rx) = mpsc::unbounded_channel(); - output.send(Message::TermEventTx(event_tx)).await.unwrap(); + Subscription::run_with(TypeId::of::(), |_| { + stream::channel( + 100, + |mut output: iced::futures::channel::mpsc::Sender| async move { + let (event_tx, mut event_rx) = mpsc::unbounded_channel(); + output.send(Message::TermEventTx(event_tx)).await.unwrap(); - while let Some((pane, entity, event)) = event_rx.recv().await { - output - .send(Message::TermEvent(pane, entity, event)) - .await - .unwrap(); - } + while let Some((pane, entity, event)) = event_rx.recv().await { + output + .send(Message::TermEvent(pane, entity, event)) + .await + .unwrap(); + } - panic!("terminal event channel closed"); - }), - ), + panic!("terminal event channel closed"); + }, + ) + }), cosmic_config::config_subscription( TypeId::of::(), Self::APP_ID.into(), @@ -3499,7 +3638,7 @@ impl Application for App { update.errors ); } - Message::Config(update.config) + Message::Config(Box::new(update.config)) }), match &self.dialog_opt { Some(dialog) => dialog.subscription(), @@ -3508,3 +3647,11 @@ impl Application for App { ]) } } + +#[cfg(feature = "wayland")] +fn is_wayland() -> bool { + matches!( + cosmic::app::cosmic::windowing_system(), + Some(cosmic::app::cosmic::WindowingSystem::Wayland) + ) +} diff --git a/src/menu.rs b/src/menu.rs index 36e6ef2..a10ca75 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -1,16 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-only use cosmic::iced::Point; -use cosmic::widget::Column; use cosmic::widget::menu::key_bind::KeyBind; use cosmic::widget::menu::{Item as MenuItem, menu_button}; +use cosmic::widget::{Column, space}; use cosmic::{ Element, app::Core, - iced::{ - Background, Length, advanced::widget::text::Style as TextStyle, widget::horizontal_space, - }, - iced_core::Border, + iced::core::Border, + iced::{Background, Length, advanced::widget::text::Style as TextStyle}, theme, widget::{ self, divider, @@ -28,6 +26,7 @@ static MENU_ID: LazyLock = #[derive(Debug, Clone)] pub struct MenuState { pub position: Option, + pub local_position: Option, pub link: Option, } @@ -57,7 +56,7 @@ pub fn context_menu<'a>( let key = find_key(&action); menu_button(vec![ widget::text(label).into(), - horizontal_space().into(), + space::horizontal().into(), widget::text(key) .class(theme::Text::Custom(key_style)) .into(), @@ -68,7 +67,7 @@ pub fn context_menu<'a>( let menu_checkbox = |label, value, action| { menu_button(vec![ widget::text(label).into(), - widget::horizontal_space().into(), + widget::space::horizontal().into(), widget::toggler(value) .on_toggle(move |_| Message::TabContextAction(entity, action)) .size(16.0) diff --git a/src/password_manager.rs b/src/password_manager.rs index 85e7d6f..a52bd53 100644 --- a/src/password_manager.rs +++ b/src/password_manager.rs @@ -234,10 +234,10 @@ impl PasswordManager { } // Don't do anything if nothing have changed - if let Some(original) = &original { - if original == &input_state.input { - return Task::none(); - } + if let Some(original) = &original + && original == &input_state.input + { + return Task::none(); } cosmic::task::future(async move { @@ -246,19 +246,14 @@ impl PasswordManager { "Failed to add password {identifier}: {err}" ))) } else { - if let Some(original) = original { - if original.identifier != identifier { - if let Err(err) = - store::delete_password(original.identifier.clone()).await - { - return Message::PasswordManager(PasswordManagerMessage::Error( - format!( - "Failed to delete password {}: {err}", - original.identifier - ), - )); - } - } + if let Some(original) = original + && original.identifier != identifier + && let Err(err) = store::delete_password(original.identifier.clone()).await + { + return Message::PasswordManager(PasswordManagerMessage::Error(format!( + "Failed to delete password {}: {err}", + original.identifier + ))); } Message::PasswordManager(PasswordManagerMessage::None) } @@ -315,78 +310,74 @@ impl PasswordManager { .spacing(space_xxs), ); - if expanded { - if let Some(input_state) = &self.input_state { - let expanded_section: Section<'_, Message> = widget::settings::section().add( + if expanded && let Some(input_state) = &self.input_state { + let expanded_section: Section<'_, Message> = widget::settings::section().add( + widget::column::with_children(vec![ widget::column::with_children(vec![ - widget::column::with_children(vec![ - widget::text(fl!("password-input-description")).into(), - widget::text_input("", input_state.input.identifier.clone()) - .on_input(move |text| { - Message::PasswordManager( - PasswordManagerMessage::DescriptionInput(text), - ) - }) - .on_submit(move |text| { - Message::PasswordManager( - PasswordManagerMessage::DescriptionInputAndUpdate(text), - ) - }) - .on_unfocus(Message::PasswordManager( - PasswordManagerMessage::Update, - )) - .into(), - ]) - .spacing(space_xxxs) - .into(), - widget::column::with_children(vec![ - widget::text(fl!("password-input")).into(), - widget::secure_input( - "", - input_state.input.password.clone(), - Some(Message::PasswordManager( - PasswordManagerMessage::ToggleShowPassword, - )), - !input_state.show_password, - ) + widget::text(fl!("password-input-description")).into(), + widget::text_input("", input_state.input.identifier.clone()) .on_input(move |text| { - Message::PasswordManager(PasswordManagerMessage::PasswordInput( - text, - )) + Message::PasswordManager( + PasswordManagerMessage::DescriptionInput(text), + ) }) .on_submit(move |text| { Message::PasswordManager( - PasswordManagerMessage::PasswordInputAndUpdate(text), + PasswordManagerMessage::DescriptionInputAndUpdate(text), ) }) .on_unfocus(Message::PasswordManager( PasswordManagerMessage::Update, )) .into(), - ]) - .spacing(space_xxxs) + ]) + .spacing(space_xxxs) + .into(), + widget::column::with_children(vec![ + widget::text(fl!("password-input")).into(), + widget::secure_input( + "", + input_state.input.password.clone(), + Some(Message::PasswordManager( + PasswordManagerMessage::ToggleShowPassword, + )), + !input_state.show_password, + ) + .on_input(move |text| { + Message::PasswordManager(PasswordManagerMessage::PasswordInput( + text, + )) + }) + .on_submit(move |text| { + Message::PasswordManager( + PasswordManagerMessage::PasswordInputAndUpdate(text), + ) + }) + .on_unfocus(Message::PasswordManager(PasswordManagerMessage::Update)) .into(), ]) - .padding([0, space_s]) - .spacing(space_xs), - ); + .spacing(space_xxxs) + .into(), + ]) + .padding([0, space_s]) + .spacing(space_xs), + ); - let padding = Padding { - top: 0.0, - bottom: 0.0, - left: space_s.into(), - right: space_s.into(), - }; + let padding = Padding { + top: 0.0, + bottom: 0.0, + left: space_s.into(), + right: space_s.into(), + }; - passwords_section = - passwords_section.add(widget::container(expanded_section).padding(padding)) - } + passwords_section = + passwords_section.add(widget::container(expanded_section).padding(padding)) } } sections.push(passwords_section.into()); let add_password = widget::row::with_children(vec![ - widget::horizontal_space().into(), + widget::space::horizontal().into(), widget::button::standard(fl!("add-password")) .on_press(Message::PasswordManager(PasswordManagerMessage::New)) .into(), diff --git a/src/shortcuts.rs b/src/shortcuts.rs index 427ed19..237ff3d 100644 --- a/src/shortcuts.rs +++ b/src/shortcuts.rs @@ -2,8 +2,8 @@ use cosmic::widget::menu::key_bind::{KeyBind, Modifier}; use cosmic::{ + iced::core::keyboard::key::Named, iced::keyboard::{Key, Modifiers}, - iced_core::keyboard::key::Named, }; use serde::{Deserialize, Serialize}; use std::collections::{BTreeMap, HashMap}; @@ -245,11 +245,11 @@ impl ShortcutsConfig { // Remove any matching bindings return false; } - if let Some(default_action) = self.defaults.0.get(binding) { - if *default_action == reset_action { - // Remove binding that overrode a default - return false; - } + if let Some(default_action) = self.defaults.0.get(binding) + && *default_action == reset_action + { + // Remove binding that overrode a default + return false; } true }); diff --git a/src/terminal.rs b/src/terminal.rs index e4c4ed7..81b9f50 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -266,6 +266,7 @@ pub struct Terminal { impl Terminal { //TODO: error handling + #[allow(clippy::too_many_arguments)] pub fn new( pane: pane_grid::Pane, entity: segmented_button::Entity, @@ -305,13 +306,13 @@ impl Terminal { let (cell_width, cell_height) = { let mut font_system = font_system().write().unwrap(); let font_system = font_system.raw(); - buffer.set_wrap(font_system, Wrap::None); + buffer.set_wrap(Wrap::None); // Use size of space to determine cell size - buffer.set_text(font_system, " ", &default_attrs, Shaping::Advanced, None); + buffer.set_text(" ", &default_attrs, Shaping::Advanced, None); let layout = buffer.line_layout(font_system, 0).unwrap(); let w = layout[0].w; - buffer.set_monospace_width(font_system, Some(w)); + buffer.set_monospace_width(Some(w)); (w, metrics.line_height) }; @@ -457,15 +458,18 @@ impl Terminal { if width != self.size.width || height != self.size.height { let instant = Instant::now(); - self.size.width = width; - self.size.height = height; + // Clamp dimensions to ensure at least 1 row and 1 column, + // preventing index-out-of-bounds panics in alacritty_terminal. + let min_width = self.size.cell_width.ceil() as u32; + let min_height = self.size.cell_height.ceil() as u32; + self.size.width = width.max(min_width); + self.size.height = height.max(min_height); self.notifier.on_resize(self.size.into()); self.term.lock().resize(self.size); self.with_buffer_mut(|buffer| { - let mut font_system = font_system().write().unwrap(); - buffer.set_size(font_system.raw(), Some(width as f32), Some(height as f32)); + buffer.set_size(Some(width as f32), Some(height as f32)); }); self.needs_update = true; @@ -648,10 +652,7 @@ impl Terminal { let metrics = config.metrics(zoom_adj); if metrics != self.buffer.metrics() { - { - let mut font_system = font_system().write().unwrap(); - self.with_buffer_mut(|buffer| buffer.set_metrics(font_system.raw(), metrics)); - } + self.with_buffer_mut(|buffer| buffer.set_metrics(metrics)); update_cell_size = true; } @@ -708,19 +709,13 @@ impl Terminal { let (cell_width, cell_height) = { let mut font_system = font_system().write().unwrap(); self.with_buffer_mut(|buffer| { - buffer.set_wrap(font_system.raw(), Wrap::None); + buffer.set_wrap(Wrap::None); // Use size of space to determine cell size - buffer.set_text( - font_system.raw(), - " ", - &default_attrs, - Shaping::Advanced, - None, - ); + buffer.set_text(" ", &default_attrs, Shaping::Advanced, None); let layout = buffer.line_layout(font_system.raw(), 0).unwrap(); let w = layout[0].w; - buffer.set_monospace_width(font_system.raw(), Some(w)); + buffer.set_monospace_width(Some(w)); (w, buffer.metrics().line_height) }) }; @@ -884,13 +879,12 @@ impl Terminal { } // Change color if selected - if let Some(selection) = &term.selection { - if let Some(range) = selection.to_range(&term) { - if range.contains(indexed.point) { - //TODO: better handling of selection - mem::swap(&mut fg, &mut bg); - } - } + if let Some(selection) = &term.selection + && let Some(range) = selection.to_range(&term) + && range.contains(indexed.point) + { + //TODO: better handling of selection + mem::swap(&mut fg, &mut bg); } // Convert foreground to linear @@ -904,10 +898,10 @@ impl Terminal { let mut flags = indexed.cell.flags; - if let Some(active_match) = &self.active_regex_match { - if active_match.contains(&indexed.point) { - flags |= Flags::UNDERLINE; - } + if let Some(active_match) = &self.active_regex_match + && active_match.contains(&indexed.point) + { + flags |= Flags::UNDERLINE; } if let Some(active_id) = &self.active_hyperlink_id { let mut matches_active = indexed @@ -1216,13 +1210,12 @@ impl<'a, T> Iterator for HintPostProcessor<'a, T> { fn next(&mut self) -> Option { let next_match = self.next_match.take()?; - if self.start <= self.end { - if let Some(rm) = self + if self.start <= self.end + && let Some(rm) = self .term .regex_search_right(self.regex, self.start, self.end) - { - self.next_processed_match(rm); - } + { + self.next_processed_match(rm); } Some(next_match) diff --git a/src/terminal_box.rs b/src/terminal_box.rs index 3dc1b8d..e070498 100644 --- a/src/terminal_box.rs +++ b/src/terminal_box.rs @@ -7,19 +7,10 @@ use alacritty_terminal::{ term::{TermMode, cell::Flags}, vte::ansi::{CursorShape, NamedColor}, }; -use cosmic::widget::menu::key_bind::KeyBind; use cosmic::{ Renderer, cosmic_theme::palette::{WithAlpha, blend::Compose}, - iced::{ - Color, Element, Length, Padding, Point, Rectangle, Size, Vector, - advanced::graphics::text::Raw, - event::{Event, Status}, - keyboard::{Event as KeyEvent, Key, Modifiers}, - mouse::{self, Button, Event as MouseEvent, ScrollDelta}, - window::RedrawRequest, - }, - iced_core::{ + iced::core::{ Border, Shell, clipboard::Clipboard, keyboard::key::Named, @@ -32,8 +23,16 @@ use cosmic::{ tree, }, }, + iced::{ + Color, Element, Length, Padding, Point, Rectangle, Size, Vector, + advanced::graphics::text::Raw, + event::Event, + keyboard::{Event as KeyEvent, Key, Modifiers}, + mouse::{self, Button, Event as MouseEvent, ScrollDelta}, + }, theme::Theme, }; +use cosmic::{iced::core::SmolStr, widget::menu::key_bind::KeyBind}; use cosmic_text::LayoutGlyph; use indexmap::IndexSet; use std::{ @@ -263,7 +262,7 @@ where } fn layout( - &self, + &mut self, _tree: &mut widget::Tree, _renderer: &Renderer, limits: &layout::Limits, @@ -297,15 +296,15 @@ where } fn operate( - &self, + &mut self, tree: &mut widget::Tree, - _layout: Layout<'_>, + layout: Layout<'_>, _renderer: &Renderer, operation: &mut dyn Operation, ) { let state = tree.state.downcast_mut::(); - operation.focusable(state, self.id.as_ref()); + operation.focusable(self.id.as_ref(), layout.bounds(), state); } fn mouse_interaction( @@ -316,6 +315,9 @@ where _viewport: &Rectangle, _renderer: &Renderer, ) -> mouse::Interaction { + if self.disabled { + return mouse::Interaction::default(); + } let state = tree.state.downcast_ref::(); if let Some(Dragging::Scrollbar { .. }) = &state.dragging { @@ -348,7 +350,7 @@ where } } - mouse::Interaction::Idle + mouse::Interaction::default() } fn draw( @@ -377,13 +379,41 @@ where let view_position = layout.position() + [self.padding.left, self.padding.top].into(); let view_w = cmp::min(viewport.width as i32, layout.bounds().width as i32) - - self.padding.horizontal() as i32 + - self.padding.x() as i32 - scrollbar_w as i32; let view_h = cmp::min(viewport.height as i32, layout.bounds().height as i32) - - self.padding.vertical() as i32; + - self.padding.y() as i32; if view_w <= 0 || view_h <= 0 { - // Zero sized image + // Pane too small for content, but still fill background + let terminal = self.terminal.lock().unwrap(); + let meta = &terminal.metadata_set[terminal.default_attrs().metadata]; + let background_color = shade(meta.bg, state.is_focused && !self.disabled); + renderer.fill_quad( + Quad { + bounds: layout.bounds(), + border: Border { + radius: if self.show_headerbar { + [0.0, 0.0, corner_radius[2], corner_radius[3]].into() + } else { + corner_radius.into() + }, + width: self.border.width, + color: self.border.color, + }, + snap: true, + ..Default::default() + }, + Color::from_rgba( + f32::from(background_color.r()) / 255.0, + f32::from(background_color.g()) / 255.0, + f32::from(background_color.b()) / 255.0, + match self.opacity { + Some(opacity) => opacity, + None => f32::from(background_color.a()) / 255.0, + }, + ), + ); return; } @@ -415,9 +445,10 @@ where width: self.border.width, color: self.border.color, }, + snap: true, ..Default::default() }, - Color::new( + Color::from_rgba( f32::from(background_color.r()) / 255.0, f32::from(background_color.g()) / 255.0, f32::from(background_color.b()) / 255.0, @@ -468,7 +499,7 @@ where is_focused: bool, ) { let cosmic_text_to_iced_color = |color: cosmic_text::Color| { - Color::new( + Color::from_rgba( f32::from(color.r()) / 255.0, f32::from(color.g()) / 255.0, f32::from(color.b()) / 255.0, @@ -645,7 +676,7 @@ where renderer.fill_raw(Raw { buffer: terminal.buffer_weak(), position: view_position, - color: Color::new(1.0, 1.0, 1.0, 1.0), // TODO + color: Color::from_rgba(1.0, 1.0, 1.0, 1.0), // TODO clip_bounds: Rectangle::new(view_position, Size::new(view_w as f32, view_h as f32)), }); @@ -799,19 +830,19 @@ where log::trace!("redraw {}, {}: {:?}", view_w, view_h, duration); } - fn on_event( + fn update( &mut self, tree: &mut widget::Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor_position: mouse::Cursor, _renderer: &Renderer, _clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, _viewport: &Rectangle, - ) -> Status { + ) { if self.disabled { - return Status::Ignored; + return; } let state = tree.state.downcast_mut::(); let scrollbar_rect = state.scrollbar_rect.get(); @@ -820,7 +851,6 @@ where let is_app_cursor = terminal.term.lock().mode().contains(TermMode::APP_CURSOR); let is_mouse_mode = terminal.term.lock().mode().intersects(TermMode::MOUSE_MODE); - let mut status = Status::Ignored; match event { Event::Window(event) => match event { cosmic::iced::window::Event::Focused => { @@ -832,8 +862,8 @@ where if is_mouse_mode { state.autoscroll.stop(); } else { - if let Some((pointer, multiplier)) = state.autoscroll.next_due() { - if update_buffer_drag( + if let Some((pointer, multiplier)) = state.autoscroll.next_due() + && update_buffer_drag( state, &mut terminal, buffer_size, @@ -841,12 +871,12 @@ where layout.bounds(), self.padding, multiplier, - ) { - status = Status::Captured; - } + ) + { + shell.capture_event(); } if state.autoscroll.is_active() { - shell.request_redraw(RedrawRequest::NextFrame); + shell.request_redraw(); } } } @@ -867,8 +897,9 @@ where .. }) if state.is_focused && named == modified_named => { for key_bind in self.key_binds.keys() { - if key_bind.matches(modifiers, &Key::Named(named)) { - return Status::Captured; + if key_bind.matches(*modifiers, &Key::Named(*named)) { + shell.capture_event(); + return; } } @@ -956,7 +987,9 @@ where }; if let Some(escape_code) = escape_code { terminal.input_scroll(escape_code); - return Status::Captured; + shell.capture_event(); + + return; } //Special handle Enter, Escape, Backspace and Tab as described in @@ -967,11 +1000,11 @@ where Named::Backspace => { let code = if modifiers.control() { "\x08" } else { "\x7f" }; terminal.input_scroll(format!("{alt_prefix}{code}").into_bytes()); - status = Status::Captured; + shell.capture_event(); } Named::Enter => { terminal.input_scroll(format!("{}{}", alt_prefix, "\x0D").into_bytes()); - status = Status::Captured; + shell.capture_event(); } Named::Escape => { //Escape with any modifier will cancel selection @@ -984,31 +1017,19 @@ where } else { terminal.input_scroll(format!("{}{}", alt_prefix, "\x1B").into_bytes()); } - status = Status::Captured; + shell.capture_event(); } - Named::Space => { - // Keep this instead of hardcoding the space to allow for dead keys - let character = text.and_then(|c| c.chars().next()).unwrap_or_default(); - if modifiers.control() { - // Send NUL character (\x00) for Ctrl + Space - terminal.input_scroll(b"\x00".to_vec()); - } else { - terminal - .input_scroll(format!("{}{}", alt_prefix, character).into_bytes()); - } - status = Status::Captured; - } Named::Tab => { let code = if modifiers.shift() { "\x1b[Z" } else { "\x09" }; terminal.input_scroll(format!("{alt_prefix}{code}").into_bytes()); - status = Status::Captured; + shell.capture_event(); } _ => {} } } Event::Keyboard(KeyEvent::ModifiersChanged(modifiers)) => { - state.modifiers = modifiers; + state.modifiers = *modifiers; if modifiers.contains(Modifiers::CTRL) || terminal.active_regex_match.is_some() @@ -1032,6 +1053,31 @@ where update_active_regex_match(&mut terminal, location, Some(&state.modifiers)); } } + Event::Keyboard(KeyEvent::KeyPressed { + text, + modifiers, + key, + .. + }) if state.is_focused && *key == Key::Character(SmolStr::new(" ")) => { + //Special handle Enter, Escape, Backspace and Tab as described in + //https://sw.kovidgoyal.net/kitty/keyboard-protocol/#legacy-key-event-encoding + //Also special handle Ctrl-_ to behave like xterm + let alt_prefix = if modifiers.alt() { "\x1B" } else { "" }; + + // Keep this instead of hardcoding the space to allow for dead keys + let character = text + .as_ref() + .and_then(|c| c.chars().next()) + .unwrap_or_default(); + + if modifiers.control() { + // Send NUL character (\x00) for Ctrl + Space + terminal.input_scroll(b"\x00".to_vec()); + } else { + terminal.input_scroll(format!("{}{}", alt_prefix, character).into_bytes()); + } + shell.capture_event(); + } Event::Keyboard(KeyEvent::KeyPressed { text, modifiers, @@ -1039,11 +1085,16 @@ where .. }) if state.is_focused => { for key_bind in self.key_binds.keys() { - if key_bind.matches(modifiers, &key) { - return Status::Captured; + if key_bind.matches(*modifiers, key) { + shell.capture_event(); + + return; } } - let character = text.and_then(|c| c.chars().next()).unwrap_or_default(); + let character = text + .as_ref() + .and_then(|c| c.chars().next()) + .unwrap_or_default(); match ( modifiers.logo(), modifiers.control(), @@ -1064,7 +1115,7 @@ where str.len() + 1 }; terminal.input_scroll(buf[..len].to_vec()); - status = Status::Captured; + shell.capture_event(); } } (false, true, _, false) => { @@ -1073,7 +1124,7 @@ where let mut buf = [0, 0, 0, 0]; let str = character.encode_utf8(&mut buf); terminal.input_scroll(str.as_bytes().to_vec()); - status = Status::Captured; + shell.capture_event(); } } (false, true, _, true) => { @@ -1081,9 +1132,9 @@ where //is taken by zoom, we send that code for //Ctrl+Underline instead, like xterm and //gnome-terminal - if key == Key::Character("_".into()) { + if *key == Key::Character("_".into()) { terminal.input_scroll(b"\x1F".as_slice()); - status = Status::Captured; + shell.capture_event(); } } (false, false, true, _) => { @@ -1095,7 +1146,7 @@ where str.len() + 1 }; terminal.input_scroll(buf[..len].to_vec()); - status = Status::Captured; + shell.capture_event(); } } (false, false, false, _) => { @@ -1104,7 +1155,7 @@ where let mut buf = [0, 0, 0, 0]; let str = character.encode_utf8(&mut buf); terminal.input_scroll(str.as_bytes().to_vec()); - status = Status::Captured; + shell.capture_event(); } } } @@ -1119,7 +1170,12 @@ where if is_mouse_mode { state.autoscroll.stop(); - terminal.report_mouse(event, &state.modifiers, col as u32, row as u32); + terminal.report_mouse( + event.clone(), + &state.modifiers, + col as u32, + row as u32, + ); } else { state.is_focused = true; @@ -1214,7 +1270,7 @@ where } } } - } else if button == Button::Middle { + } else if *button == Button::Middle { if let Some(on_middle_click) = &self.on_middle_click { shell.publish(on_middle_click()); } @@ -1226,7 +1282,7 @@ where shell.publish(on_context_menu(None)); } None => { - if button == Button::Right { + if *button == Button::Right { let x = p.x - self.padding.left; let y = p.y - self.padding.top; //TODO: better calculation of position @@ -1243,35 +1299,39 @@ where None, ); let link = get_hyperlink(&terminal, location); + let abs = cosmic::iced::Point::new( + layout.bounds().x + p.x, + layout.bounds().y + p.y, + ); shell.publish(on_context_menu(Some(MenuState { - position: Some(p), + position: Some(abs), + local_position: Some(p), link, }))); } } } } - status = Status::Captured; + shell.capture_event(); } } } Event::Mouse(MouseEvent::ButtonReleased(Button::Left)) => { state.autoscroll.stop(); - if let Some(dragging) = state.dragging.take() { - if let Dragging::Buffer { + if let Some(dragging) = state.dragging.take() + && let Dragging::Buffer { last_point, last_side, .. } = dragging + { { - { - let mut term = terminal.term.lock(); - if let Some(selection) = &mut term.selection { - selection.update(last_point, last_side); - } + let mut term = terminal.term.lock(); + if let Some(selection) = &mut term.selection { + selection.update(last_point, last_side); } - terminal.needs_update = true; } + terminal.needs_update = true; } if let Some(p) = cursor_position.position_in(layout.bounds()) { let x = p.x - self.padding.left; @@ -1282,22 +1342,24 @@ where let location = terminal .viewport_to_point(TermPoint::new(row as usize, TermColumn(col as usize))); - if state.modifiers.control() { - if let Some(on_open_hyperlink) = &self.on_open_hyperlink { - if let Some(hyperlink) = get_hyperlink(&terminal, location) { - shell.publish(on_open_hyperlink(hyperlink)); - status = Status::Captured; - } - } + if state.modifiers.control() + && let Some(on_open_hyperlink) = &self.on_open_hyperlink + && let Some(hyperlink) = get_hyperlink(&terminal, location) + { + shell.publish(on_open_hyperlink(hyperlink)); + shell.capture_event(); } if is_mouse_mode { - terminal.report_mouse(event, &state.modifiers, col as u32, row as u32); + terminal.report_mouse( + event.clone(), + &state.modifiers, + col as u32, + row as u32, + ); } else { - status = Status::Captured; + shell.capture_event(); } - } else { - status = Status::Captured; } } Event::Mouse(MouseEvent::ButtonReleased(_button)) => { @@ -1309,7 +1371,12 @@ where let col = x / terminal.size().cell_width; let row = y / terminal.size().cell_height; if is_mouse_mode { - terminal.report_mouse(event, &state.modifiers, col as u32, row as u32); + terminal.report_mouse( + event.clone(), + &state.modifiers, + col as u32, + row as u32, + ); } } } @@ -1351,7 +1418,12 @@ where if is_mouse_mode { if let Some((col, row)) = col_row_opt { - terminal.report_mouse(event, &state.modifiers, col as u32, row as u32); + terminal.report_mouse( + event.clone(), + &state.modifiers, + col as u32, + row as u32, + ); } } else { let handled_buffer_drag = update_buffer_drag( @@ -1364,7 +1436,7 @@ where 0.0, ); if handled_buffer_drag { - status = Status::Captured; + shell.capture_event(); } else if let Some(Dragging::Scrollbar { start_y, start_scroll, @@ -1377,7 +1449,7 @@ where (y - start_y) / buffer.size().1.unwrap_or(1.0) }); terminal.scroll_to(start_scroll.0 + scroll_offset); - status = Status::Captured; + shell.capture_event(); } if matches!(state.dragging, Some(Dragging::Buffer { .. })) { @@ -1389,7 +1461,7 @@ where } else { state.autoscroll.start(p_global); } - shell.request_redraw(RedrawRequest::NextFrame); + shell.request_redraw(); } } else { state.autoscroll.stop(); @@ -1405,15 +1477,15 @@ where //TODO: better calculation of position let col = x / terminal.size().cell_width; let row = y / terminal.size().cell_height; - terminal.scroll_mouse(delta, &state.modifiers, col as u32, row as u32); + terminal.scroll_mouse(*delta, &state.modifiers, col as u32, row as u32); } else if terminal.term.lock().mode().contains(TermMode::ALT_SCREEN) { MouseReporter::report_mouse_wheel_as_arrows( &terminal, terminal.size().cell_width, terminal.size().cell_height, - delta, + *delta, ); - status = Status::Captured; + shell.capture_event(); } else { match delta { ScrollDelta::Lines { x: _, y } => { @@ -1423,7 +1495,7 @@ where if lines != 0 { terminal.scroll(TerminalScroll::Delta(-lines)); } - status = Status::Captured; + shell.capture_event(); } ScrollDelta::Pixels { x: _, y } => { //TODO: this adjustment is just a guess! @@ -1441,7 +1513,7 @@ where if lines != 0 { terminal.scroll(TerminalScroll::Delta(-lines)); } - status = Status::Captured; + shell.capture_event(); } } } @@ -1466,8 +1538,6 @@ where } _ => (), } - - status } } @@ -1580,10 +1650,10 @@ fn update_active_regex_match( .find(|bounds| bounds.contains(&location)) { 'update: { - if let Some(active_match) = &terminal.active_regex_match { - if active_match == match_ { - break 'update; - } + if let Some(active_match) = &terminal.active_regex_match + && active_match == match_ + { + break 'update; } terminal.active_regex_match = Some(match_.clone()); terminal.needs_update = true; @@ -1644,6 +1714,7 @@ enum EdgeScrollDirection { Bottom, } +#[allow(clippy::too_many_arguments)] fn edge_scroll_adjustment( y: f32, buffer_height: f32,