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 cd78954..372e8c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,8 +114,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher", - "cpufeatures", + "cipher 0.4.4", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8" +dependencies = [ + "cipher 0.5.1", + "cpubits", + "cpufeatures 0.3.0", ] [[package]] @@ -147,7 +158,7 @@ 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", @@ -204,6 +215,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "almost" version = "0.2.0" @@ -212,23 +229,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", "num_enum", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] @@ -246,56 +261,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - [[package]] name = "anyhow" version = "1.0.102" @@ -325,9 +290,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", ] @@ -388,7 +353,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.2", + "rand 0.9.4", "raw-window-handle", "serde", "serde_repr", @@ -406,7 +371,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.2", + "rand 0.9.4", "serde", "serde_repr", "tokio", @@ -515,9 +480,9 @@ dependencies = [ [[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", "async-lock", @@ -554,6 +519,12 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "atomic_float" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628d228f918ac3b82fe590352cc719d30664a0c13ca3a60266fe02c7132d480a" + [[package]] name = "atomicwrites" version = "0.4.2" @@ -655,9 +626,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" +checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38" dependencies = [ "arrayvec", ] @@ -706,20 +677,20 @@ 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", ] [[package]] name = "bitstream-io" -version = "4.9.0" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" +checksum = "7eff00be299a18769011411c9def0d827e8f2d7bf0c3dbf53633147a8867fd1f" dependencies = [ - "core2", + "no_std_io2", ] [[package]] @@ -737,6 +708,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", + "zeroize", +] + [[package]] name = "block-padding" version = "0.3.3" @@ -884,9 +865,9 @@ 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", @@ -898,7 +879,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "polling", "rustix 1.1.4", "slab", @@ -923,14 +904,14 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] name = "cc" -version = "1.2.57" +version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" dependencies = [ "find-msvc-tools", "jobserver", @@ -938,12 +919,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" @@ -976,8 +951,6 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", - "pure-rust-locales", - "serde", "wasm-bindgen", "windows-link 0.2.1", ] @@ -988,8 +961,18 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", - "inout", + "crypto-common 0.1.7", + "inout 0.1.4", +] + +[[package]] +name = "cipher" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +dependencies = [ + "crypto-common 0.2.1", + "inout 0.2.2", ] [[package]] @@ -1036,6 +1019,12 @@ dependencies = [ "x11rb", ] +[[package]] +name = "cmov" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f88a43d011fc4a6876cb7344703e297c71dda42494fee094d5f7c76bf13f746" + [[package]] name = "cocoa" version = "0.25.0" @@ -1083,12 +1072,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" -[[package]] -name = "colorchoice" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - [[package]] name = "combine" version = "4.6.7" @@ -1116,9 +1099,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", @@ -1127,9 +1110,9 @@ dependencies = [ [[package]] name = "compio-driver" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8557d3804525f0e97594681f675929931782c9f8783a51c9f86da86b819150" +checksum = "74d42d98dc890ee4db00c1e68a723391711aab6d67085880d716b72830f7c715" dependencies = [ "cfg-if", "cfg_aliases", @@ -1240,10 +1223,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" [[package]] -name = "constant_time_eq" -version = "0.3.1" +name = "const-oid" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "core-foundation" @@ -1301,20 +1290,11 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.1", "libc", ] -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - [[package]] name = "core_affinity" version = "0.8.3" @@ -1335,26 +1315,13 @@ dependencies = [ "libm", ] -[[package]] -name = "cosmic-client-toolkit" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4" -dependencies = [ - "bitflags 2.11.0", - "cosmic-protocols 0.1.0", - "libc", - "smithay-client-toolkit", - "wayland-client", - "wayland-protocols", -] - [[package]] name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=160b086#160b086abe03cd34a8a375d7fbe47b24308d1f38" dependencies = [ - "bitflags 2.11.0", - "cosmic-protocols 0.2.0", + "bitflags 2.11.1", + "cosmic-protocols", "libc", "smithay-client-toolkit", "wayland-client", @@ -1364,7 +1331,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1374,7 +1341,7 @@ dependencies = [ "iced_futures", "known-folders", "notify", - "ron 0.12.0", + "ron 0.12.1", "serde", "tokio", "tracing", @@ -1385,7 +1352,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "quote", "syn", @@ -1393,24 +1360,26 @@ dependencies = [ [[package]] name = "cosmic-files" -version = "1.0.8" -source = "git+https://github.com/pop-os/cosmic-files.git#49d353d369f7cb242ab55ae94ab402873a66a473" +version = "1.0.12" +source = "git+https://github.com/pop-os/cosmic-files.git#77615fc6b5ca349769ab4e2aa148f8fd0921e4b8" dependencies = [ "anyhow", - "chrono", + "atomic_float", + "bstr", "compio", - "cosmic-client-toolkit 0.1.0", + "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", @@ -1419,6 +1388,7 @@ dependencies = [ "mime_guess", "notify-debouncer-full", "num_cpus", + "num_enum", "open", "ordermap", "paste", @@ -1427,13 +1397,16 @@ dependencies = [ "recently-used-xbel", "regex", "rust-embed", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "serde", "shlex", "slotmap", "tar", "tempfile", + "thiserror 2.0.18", "tokio", + "tracing", + "tracing-subscriber", "trash", "url", "uzers", @@ -1447,7 +1420,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", @@ -1458,26 +1431,12 @@ dependencies = [ "xdg", ] -[[package]] -name = "cosmic-protocols" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4" -dependencies = [ - "bitflags 2.11.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "wayland-server", -] - [[package]] name = "cosmic-protocols" 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", @@ -1486,19 +1445,6 @@ dependencies = [ "wayland-server", ] -[[package]] -name = "cosmic-settings-config" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#e37160f14d1e7ee428f973cd2848b4e95f83dfe1" -dependencies = [ - "cosmic-config", - "ron 0.11.0", - "serde", - "serde_with", - "tracing", - "xkbcommon 0.9.0", -] - [[package]] name = "cosmic-settings-daemon" version = "0.1.0" @@ -1509,7 +1455,7 @@ dependencies = [ [[package]] name = "cosmic-term" -version = "1.0.8" +version = "1.0.13" dependencies = [ "alacritty_terminal", "clap_lex", @@ -1520,7 +1466,7 @@ dependencies = [ "i18n-embed", "i18n-embed-fl", "icu", - "indexmap 2.13.0", + "indexmap", "libcosmic", "log", "open", @@ -1540,18 +1486,19 @@ dependencies = [ [[package]] name = "cosmic-text" -version = "0.18.2" -source = "git+https://github.com/pop-os/cosmic-text.git#d5a972a2b63649fad11ea3a7e80f7dc4c592f01a" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ - "bitflags 2.11.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", + "skrifa", "smol_str", "swash", "sys-locale", @@ -1564,7 +1511,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "almost", "configparser", @@ -1572,12 +1519,18 @@ dependencies = [ "csscolorparser", "dirs 6.0.0", "palette", - "ron 0.12.0", + "ron 0.12.1", "serde", "serde_json", "thiserror 2.0.18", ] +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1588,20 +1541,14 @@ dependencies = [ ] [[package]] -name = "crc" -version = "3.3.0" +name = "cpufeatures" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ - "crc-catalog", + "libc", ] -[[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" @@ -1654,12 +1601,12 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/pop-os/glyphon.git?tag=cosmic-0.14#c49de15bce4d8254ac136d1be9911960cc85ce12" +source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", "lru", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "wgpu", ] @@ -1673,6 +1620,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +dependencies = [ + "hybrid-array", +] + [[package]] name = "css-color" version = "0.2.8" @@ -1692,10 +1648,22 @@ dependencies = [ ] [[package]] -name = "ctor-lite" -version = "0.1.2" +name = "ctor" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e162d0c2e2068eb736b71e5597eff0b9944e6b973cd9f37b6a288ab9bf20e300" +checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" +dependencies = [ + "dtor", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] [[package]] name = "cursor-icon" @@ -1709,18 +1677,8 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "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", + "darling_core", + "darling_macro", ] [[package]] @@ -1737,37 +1695,13 @@ dependencies = [ "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]] name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core 0.21.3", - "quote", - "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", + "darling_core", "quote", "syn", ] @@ -1780,9 +1714,9 @@ checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "deflate64" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807800ff3288b621186fe0a8f3392c4652068257302709c24efd918c3dffcdc2" +checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" [[package]] name = "deranged" @@ -1791,7 +1725,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", - "serde_core", ] [[package]] @@ -1800,7 +1733,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7e6f6fa1f03c14ae082120b84b3c7fbd7b8588d924cf2d7c3daf9afd49df8b9" dependencies = [ - "darling 0.21.3", + "darling", "proc-macro2", "quote", "syn", @@ -1823,11 +1756,24 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.7", "subtle", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.0", + "const-oid", + "crypto-common 0.2.1", + "ctutils", + "zeroize", +] + [[package]] name = "dirs" version = "5.0.1" @@ -1897,7 +1843,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -1928,7 +1874,7 @@ name = "dnd" version = "0.1.0" 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", @@ -1953,7 +1899,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" [[package]] name = "drm" @@ -1961,7 +1907,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", @@ -1995,10 +1941,10 @@ dependencies = [ ] [[package]] -name = "dyn-clone" -version = "1.0.20" +name = "dtor" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "either" @@ -2033,29 +1979,6 @@ dependencies = [ "syn", ] -[[package]] -name = "env_filter" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - [[package]] name = "equator" version = "0.4.2" @@ -2110,9 +2033,9 @@ 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", ] @@ -2161,29 +2084,15 @@ checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fax" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" [[package]] name = "fdeflate" @@ -2205,13 +2114,12 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.27" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" +checksum = "2d5b2eef6fafbf69f877e55509ce5b11a760690ac9700a2921be067aa6afaef6" dependencies = [ "cfg-if", "libc", - "libredox", ] [[package]] @@ -2231,9 +2139,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", @@ -2292,7 +2200,7 @@ dependencies = [ "fluent-syntax", "intl-memoizer", "intl_pluralrules", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "self_cell", "smallvec", "unic-langid", @@ -2346,18 +2254,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "font-types" -version = "0.10.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "font-types" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4d2d0cf79d38430cc9dc9aadec84774bff2e1ba30ae2bf6c16cfce9385a23" +checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7" dependencies = [ "bytemuck", ] @@ -2423,9 +2322,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", ] @@ -2439,28 +2338,13 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "freedesktop-desktop-entry" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28273c5c6b97a5f07724f6652f064c0c7f637f9aa5e7c09c83bc3bc4ad4ea245" -dependencies = [ - "bstr", - "gettext-rs", - "log", - "memchr", - "thiserror 2.0.18", - "unicase", - "xdg", -] - [[package]] name = "freedesktop_entry_parser" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6d3a3635983a889f065aa9ce760384713f23a9b4a04f696f86c39a5d7a6a5a" dependencies = [ - "indexmap 2.13.0", + "indexmap", "nom 8.0.0", ] @@ -2627,11 +2511,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] @@ -2641,30 +2523,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", "wasip2", "wasip3", -] - -[[package]] -name = "gettext-rs" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf" -dependencies = [ - "gettext-sys", - "locale_config", -] - -[[package]] -name = "gettext-sys" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9" -dependencies = [ - "cc", - "temp-dir", + "wasm-bindgen", ] [[package]] @@ -2679,9 +2543,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", @@ -2744,35 +2608,18 @@ dependencies = [ "gl_generator", ] -[[package]] -name = "gpu-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" -dependencies = [ - "bitflags 2.11.0", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" -dependencies = [ - "bitflags 2.11.0", -] - [[package]] name = "gpu-allocator" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" +checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" dependencies = [ + "ash", + "hashbrown 0.16.1", "log", "presser", - "thiserror 1.0.69", - "windows 0.58.0", + "thiserror 2.0.18", + "windows 0.62.2", ] [[package]] @@ -2781,7 +2628,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", ] @@ -2792,14 +2639,14 @@ 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]] name = "grid" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e2d4c0a8296178d8802098410ca05d86b17a10bb5ab559b3fb404c1f948220" +checksum = "b40ca9252762c466af32d0b1002e91e4e1bc5398f77455e55474deb466355ff5" [[package]] name = "guillotiere" @@ -2829,19 +2676,13 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "core_maths", - "read-fonts 0.37.0", + "read-fonts", "smallvec", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.15.5" @@ -2857,9 +2698,17 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "heck" version = "0.4.1" @@ -2891,7 +2740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0" dependencies = [ "arrayvec", - "rand 0.8.5", + "rand 0.8.6", "serde", ] @@ -2907,7 +2756,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac", + "hmac 0.12.1", ] [[package]] @@ -2916,7 +2765,16 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", +] + +[[package]] +name = "hmac" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" +dependencies = [ + "digest 0.11.3", ] [[package]] @@ -2928,6 +2786,15 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "i18n-config" version = "0.4.8" @@ -3022,7 +2889,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "dnd", "iced_accessibility", @@ -3043,7 +2910,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "accesskit", "accesskit_winit", @@ -3052,11 +2919,11 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "dnd", "glam", "lilt", @@ -3065,7 +2932,7 @@ dependencies = [ "num-traits", "palette", "raw-window-handle", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "serde", "smol_str", "thiserror 2.0.18", @@ -3076,7 +2943,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "iced_core", "iced_futures", @@ -3086,12 +2953,12 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "futures", "iced_core", "log", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "tokio", "wasm-bindgen-futures", "wasmtimer", @@ -3100,9 +2967,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cosmic-text", "half", @@ -3113,7 +2980,7 @@ dependencies = [ "log", "lyon_path", "raw-window-handle", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "thiserror 2.0.18", "unicode-segmentation", ] @@ -3121,7 +2988,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "iced_graphics", "iced_runtime", @@ -3130,7 +2997,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3142,10 +3009,10 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "bytes", - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "dnd", "iced_core", "iced_futures", @@ -3157,7 +3024,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "bytemuck", "cosmic-text", @@ -3166,7 +3033,7 @@ dependencies = [ "kurbo 0.10.4", "log", "resvg", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "softbuffer", "tiny-skia", ] @@ -3174,12 +3041,12 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "cryoglyph", "futures", "glam", @@ -3190,7 +3057,7 @@ dependencies = [ "lyon", "raw-window-handle", "resvg", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustix 0.38.44", "thiserror 2.0.18", "tiny-xlib", @@ -3205,16 +3072,16 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "dnd", "iced_renderer", "iced_runtime", "log", "num-traits", "ouroboros", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "thiserror 2.0.18", "unicode-segmentation", "window_clipboard", @@ -3223,9 +3090,9 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "cursor-icon", "dnd", "iced_debug", @@ -3235,7 +3102,7 @@ dependencies = [ "iced_runtime", "log", "raw-window-handle", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustix 0.38.44", "thiserror 2.0.18", "wasm-bindgen-futures", @@ -3254,9 +3121,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", @@ -3278,9 +3145,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", @@ -3296,15 +3163,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", @@ -3318,15 +3185,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", @@ -3343,19 +3210,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", @@ -3363,9 +3231,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", @@ -3386,20 +3254,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", @@ -3408,15 +3279,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", @@ -3447,15 +3318,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", @@ -3468,15 +3339,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", @@ -3489,9 +3360,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", @@ -3503,15 +3374,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", @@ -3526,15 +3397,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", @@ -3546,9 +3417,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", @@ -3559,15 +3430,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", @@ -3580,15 +3451,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", @@ -3603,9 +3474,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", @@ -3619,15 +3490,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", @@ -3643,9 +3514,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" @@ -3672,9 +3543,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -3706,7 +3577,7 @@ dependencies = [ "byteorder-lite", "color_quant", "exr", - "gif 0.14.1", + "gif 0.14.2", "image-webp", "moxcms", "num-traits", @@ -3717,7 +3588,7 @@ dependencies = [ "rgb", "tiff", "zune-core 0.5.1", - "zune-jpeg 0.5.13", + "zune-jpeg 0.5.15", ] [[package]] @@ -3738,29 +3609,18 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" +checksum = "40fac9d56ed6437b198fddba683305e8e2d651aa42647f00f5ae542e7f5c94a2" [[package]] name = "indexmap" -version = "1.9.3" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] @@ -3780,7 +3640,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "inotify-sys", "libc", ] @@ -3804,6 +3664,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "inout" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" +dependencies = [ + "hybrid-array", +] + [[package]] name = "interpolate_name" version = "0.2.4" @@ -3853,12 +3722,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - [[package]] name = "itertools" version = "0.14.0" @@ -3870,21 +3733,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.23" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -3896,10 +3759,21 @@ dependencies = [ ] [[package]] -name = "jiff-static" -version = "0.2.23" +name = "jiff-icu" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +checksum = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" +dependencies = [ + "icu_calendar", + "icu_time", + "jiff", +] + +[[package]] +name = "jiff-static" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" dependencies = [ "proc-macro2", "quote", @@ -3923,25 +3797,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" @@ -3955,10 +3865,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -4158,7 +4070,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "serde", ] @@ -4200,11 +4112,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +checksum = "285efcf12ef41bec907b3000d5ffaeb54191d4d9d83c0d6157e6cbc2db255e64" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.11.1", "libc", ] @@ -4249,34 +4161,32 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "f8fc329e1457d97a9d58a4e2ca49e3be572431a7e096008efc2e3a3c19d428f4" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#3da55e807440a99f6ed62edc2e7a84ca4be9b844" +source = "git+https://github.com/pop-os/libcosmic.git#4fab6c777dbd1a023440f08fb2b729c86492366c" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", - "cosmic-client-toolkit 0.2.0", + "cosmic-client-toolkit", "cosmic-config", "cosmic-freedesktop-icons", - "cosmic-settings-config", "cosmic-settings-daemon", "cosmic-theme", "css-color", "derive_setters", "float-cmp 0.10.0", - "freedesktop-desktop-entry", "futures", "i18n-embed", "i18n-embed-fl", @@ -4291,16 +4201,12 @@ dependencies = [ "iced_winit", "image", "jiff", - "libc", "log", - "mime 0.3.17", "palette", "phf 0.13.1", "rfd", "rust-embed", - "rustix 1.1.4", "serde", - "shlex", "slotmap", "taffy", "thiserror 2.0.18", @@ -4339,14 +4245,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "plain", - "redox_syscall 0.7.3", + "redox_syscall 0.7.5", ] [[package]] @@ -4384,9 +4290,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" @@ -4394,19 +4300,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" -[[package]] -name = "locale_config" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" -dependencies = [ - "lazy_static", - "objc", - "objc-foundation", - "regex", - "winapi", -] - [[package]] name = "lock_api" version = "0.4.14" @@ -4447,9 +4340,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" [[package]] name = "lyon" @@ -4463,9 +4356,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9815fac08e6fd96733a11dce4f9d15a3f338e96a2e2311ee21e1b738efc2bc0f" +checksum = "8575c0d003ae459399623c4def180c63b77f343b1a7fee64f249b349e7699a31" dependencies = [ "lyon_path", "num-traits", @@ -4494,9 +4387,9 @@ dependencies = [ [[package]] name = "lyon_tessellation" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a35a7dd71b845ff317ce1834c4185506b79790294bde397df8d5c23031e357" +checksum = "8e43b7e44161571868f5c931d12583592c223c5583eef86b08aa02b7048a3552" dependencies = [ "float_next_after", "lyon_path", @@ -4505,11 +4398,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", ] @@ -4548,7 +4440,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest", + "digest 0.10.7", ] [[package]] @@ -4586,11 +4478,11 @@ dependencies = [ [[package]] name = "metal" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" +checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4641,9 +4533,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", @@ -4678,20 +4570,20 @@ checksum = "13d2233c9842d08cfe13f9eac96e207ca6a2ea10b80259ebe8ad0268be27d2af" [[package]] name = "naga" -version = "27.0.3" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" +checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "codespan-reporting", "half", "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.13.0", + "indexmap", "libm", "log", "num-traits", @@ -4708,8 +4600,8 @@ 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", "num_enum", @@ -4729,7 +4621,7 @@ 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]] @@ -4738,6 +4630,15 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + [[package]] name = "nom" version = "7.1.3" @@ -4769,7 +4670,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", @@ -4800,7 +4701,7 @@ 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]] @@ -4847,9 +4748,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-derive" @@ -4986,7 +4887,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", @@ -5002,7 +4903,7 @@ 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.4", "objc2-core-foundation", @@ -5015,7 +4916,7 @@ 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", @@ -5027,7 +4928,7 @@ 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.4", @@ -5039,7 +4940,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "objc2-core-foundation", ] @@ -5062,7 +4963,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2-core-foundation", "objc2-core-graphics", ] @@ -5079,7 +4980,7 @@ 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", "libc", "objc2 0.5.2", @@ -5091,7 +4992,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -5103,7 +5004,7 @@ 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", @@ -5115,7 +5016,7 @@ 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", @@ -5128,7 +5029,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -5149,17 +5050,11 @@ version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - [[package]] name = "open" -version = "5.3.3" +version = "5.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +checksum = "2fbaa89d2ddc8473c78a3adf69eea8cffa28c483b8e02a971ef31527cd0fc92c" dependencies = [ "is-wsl", "libc", @@ -5174,9 +5069,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orbclient" -version = "0.3.51" +version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59aed3b33578edcfa1bc96a321d590d31832b6ad55a26f0313362ce687e9abd6" +checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" dependencies = [ "libc", "libredox", @@ -5184,9 +5079,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "5.1.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" +checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" dependencies = [ "num-traits", ] @@ -5203,11 +5098,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", "serde", "serde_core", ] @@ -5329,12 +5224,12 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629" dependencies = [ - "digest", - "hmac", + "digest 0.11.3", + "hmac 0.13.0", ] [[package]] @@ -5371,7 +5266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -5438,18 +5333,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" dependencies = [ "proc-macro2", "quote", @@ -5481,9 +5376,9 @@ dependencies = [ [[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" @@ -5510,7 +5405,7 @@ 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", @@ -5545,18 +5440,18 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" 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", @@ -5659,7 +5554,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", @@ -5672,41 +5567,35 @@ 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", ] [[package]] name = "profiling" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", "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.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" +checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" [[package]] name = "qoi" @@ -5735,23 +5624,14 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.38.4" +version = "0.39.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" 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.45" @@ -5775,9 +5655,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -5786,9 +5666,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", @@ -5871,7 +5751,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", @@ -5902,9 +5782,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", @@ -5920,16 +5800,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" @@ -5938,7 +5808,7 @@ checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5" dependencies = [ "bytemuck", "core_maths", - "font-types 0.11.0", + "font-types", ] [[package]] @@ -5963,16 +5833,16 @@ 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.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" +checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -5997,26 +5867,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "regex" version = "1.12.3" @@ -6109,7 +5959,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", @@ -6117,11 +5967,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", @@ -6177,9 +6027,18 @@ 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 = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] [[package]] name = "rustix" @@ -6187,7 +6046,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", @@ -6200,7 +6059,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", @@ -6230,7 +6089,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "core_maths", "log", @@ -6251,30 +6110,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - [[package]] name = "scoped-tls" version = "1.0.1" @@ -6306,7 +6141,7 @@ version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a62d7f86047af0077255a29494136b9aaaf697c76ff70b8e49cded4e2623c14" dependencies = [ - "aes", + "aes 0.8.4", "cbc", "futures-util", "generic-array", @@ -6336,9 +6171,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" @@ -6376,7 +6211,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.13.0", + "indexmap", "itoa", "memchr", "serde", @@ -6395,46 +6230,15 @@ dependencies = [ "syn", ] -[[package]] -name = "serde_with" -version = "3.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.13.0", - "schemars 0.9.0", - "schemars 1.2.1", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" -dependencies = [ - "darling 0.23.0", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sha1" -version = "0.10.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -6444,8 +6248,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.17", + "digest 0.10.7", ] [[package]] @@ -6485,9 +6289,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" @@ -6498,6 +6312,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" @@ -6509,19 +6329,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" 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", -] +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "skrifa" @@ -6530,7 +6340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" dependencies = [ "bytemuck", - "read-fonts 0.37.0", + "read-fonts", ] [[package]] @@ -6560,7 +6370,7 @@ 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", "calloop-wayland-source", @@ -6618,7 +6428,7 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#a3f77e251e7422803f693df6e3fc313c010c4dcb" +source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ "as-raw-xcb-connection", "bytemuck", @@ -6660,7 +6470,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]] @@ -6714,11 +6524,11 @@ 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", ] @@ -6736,9 +6546,9 @@ dependencies = [ [[package]] name = "synchrony" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5f5d3091c2d998f6ab4c8b495c0d232ad0aecbc1fa9ac52c247a79d497e16" +checksum = "416090a4d8f6358526df5f9f65dfe28750b8b7bfd1fd8a5620f483fc4a75722c" dependencies = [ "futures-util", "loom", @@ -6778,21 +6588,15 @@ 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", "xattr", ] -[[package]] -name = "temp-dir" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964" - [[package]] name = "tempfile" version = "3.27.0" @@ -6881,7 +6685,7 @@ dependencies = [ "half", "quick-error", "weezl", - "zune-jpeg 0.5.13", + "zune-jpeg 0.5.15", ] [[package]] @@ -6891,13 +6695,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", - "itoa", "js-sys", "num-conv", "powerfmt", "serde_core", "time-core", - "time-macros", ] [[package]] @@ -6906,16 +6708,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tiny-skia" version = "0.11.4" @@ -6944,12 +6736,12 @@ dependencies = [ [[package]] name = "tiny-xlib" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0324504befd01cab6e0c994f34b2ffa257849ee019d3fb3b64fb2c858887d89e" +checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" dependencies = [ "as-raw-xcb-connection", - "ctor-lite", + "ctor", "libloading", "pkg-config", "tracing", @@ -6957,9 +6749,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", @@ -6983,9 +6775,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.50.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -7000,9 +6792,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -7031,32 +6823,32 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.0.1+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.25.5+spec-1.1.0" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.13.0", + "indexmap", "toml_datetime", "toml_parser", - "winnow 1.0.0", + "winnow", ] [[package]] name = "toml_parser" -version = "1.0.10+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.0", + "winnow", ] [[package]] @@ -7153,7 +6945,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]] @@ -7170,9 +6962,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "uds_windows" @@ -7263,9 +7055,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" @@ -7343,17 +7135,11 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" -version = "1.22.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "js-sys", "serde_core", @@ -7400,7 +7186,7 @@ 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", @@ -7425,11 +7211,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -7438,14 +7224,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", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" dependencies = [ "cfg-if", "once_cell", @@ -7456,23 +7242,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7480,9 +7262,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" dependencies = [ "bumpalo", "proc-macro2", @@ -7493,9 +7275,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" dependencies = [ "unicode-ident", ] @@ -7517,7 +7299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.0", + "indexmap", "wasm-encoder", "wasmparser", ] @@ -7528,9 +7310,9 @@ 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", "semver", ] @@ -7550,9 +7332,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa75f400b7f719bcd68b3f47cd939ba654cedeef690f486db71331eec4c6a406" +checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" dependencies = [ "cc", "downcast-rs", @@ -7564,11 +7346,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.13" +version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab51d9f7c071abeee76007e2b742499e535148035bb835f97aaed1338cf516c3" +checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -7580,16 +7362,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.13" +version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b3298683470fbdc6ca40151dfc48c8f2fd4c41a26e13042f801f85002384091" +checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" dependencies = [ "rustix 1.1.4", "wayland-client", @@ -7598,11 +7380,11 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.11" +version = "0.32.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23b5df31ceff1328f06ac607591d5ba360cf58f90c8fad4ac8d3a55a3c4aec7" +checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7615,7 +7397,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", @@ -7624,11 +7406,11 @@ dependencies = [ [[package]] name = "wayland-protocols-misc" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "429b99200febaf95d4f4e46deff6fe4382bcff3280ee16a41cf887b3c3364984" +checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7637,11 +7419,11 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d392fc283a87774afc9beefcd6f931582bb97fe0e6ced0b306a62cb1d026527c" +checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7650,11 +7432,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78248e4cc0eff8163370ba5c158630dcae1f3497a586b826eca2ef5f348d6235" +checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7664,22 +7446,22 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.9" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86287151a309799b821ca709b7345a048a2956af05957c89cb824ab919fa4e3" +checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" dependencies = [ "proc-macro2", - "quick-xml 0.39.2", + "quick-xml 0.39.4", "quote", ] [[package]] name = "wayland-server" -version = "0.31.12" +version = "0.31.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63736a4a73e781cf6a736aa32c5d6773c3eb5389197562742a8c611b49b5e359" +checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -7688,9 +7470,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374f6b70e8e0d6bf9461a32988fd553b59ff630964924dad6e4a4eb6bd538d17" +checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" dependencies = [ "dlib", "log", @@ -7700,9 +7482,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.91" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" dependencies = [ "js-sys", "wasm-bindgen", @@ -7726,12 +7508,13 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wgpu" -version = "27.0.1" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" +checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" dependencies = [ "arrayvec", - "bitflags 2.11.0", + "bitflags 2.11.1", + "bytemuck", "cfg-if", "cfg_aliases", "document-features", @@ -7755,19 +7538,19 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "27.0.3" +version = "28.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" +checksum = "d23f4642f53f666adcfd2d3218ab174d1e6681101aef18696b90cbe64d1c10f9" dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cfg_aliases", "document-features", "hashbrown 0.16.1", - "indexmap 2.13.0", + "indexmap", "log", "naga", "once_cell", @@ -7787,42 +7570,42 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" +checksum = "87b7b696b918f337c486bf93142454080a32a37832ba8a31e4f48221890047da" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-emscripten" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5" +checksum = "34b251c331f84feac147de3c4aa3aa45112622a95dd7ee1b74384fa0458dbd79" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" +checksum = "68ca976e72b2c9964eb243e281f6ce7f14a514e409920920dcda12ae40febaae" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "27.0.4" +version = "28.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" +checksum = "44d6cb474beb218824dcc9e1ce679d973f719262789bfb27407da560cac20eeb" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "bytemuck", "cfg-if", @@ -7830,7 +7613,6 @@ dependencies = [ "core-graphics-types 0.2.0", "glow", "glutin_wgl_sys", - "gpu-alloc", "gpu-allocator", "gpu-descriptor", "hashbrown 0.16.1", @@ -7857,21 +7639,20 @@ dependencies = [ "wasm-bindgen", "web-sys", "wgpu-types", - "windows 0.58.0", - "windows-core 0.58.0", + "windows 0.62.2", + "windows-core 0.62.2", ] [[package]] name = "wgpu-types" -version = "27.0.1" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" +checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "js-sys", "log", - "thiserror 2.0.18", "web-sys", ] @@ -7937,27 +7718,29 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections", + "windows-collections 0.2.0", "windows-core 0.61.2", - "windows-future", + "windows-future 0.2.1", "windows-link 0.1.3", - "windows-numerics", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", ] [[package]] @@ -7969,6 +7752,15 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.56.0" @@ -7981,19 +7773,6 @@ 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" @@ -8028,7 +7807,18 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] @@ -8042,17 +7832,6 @@ dependencies = [ "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]] name = "windows-implement" version = "0.60.2" @@ -8075,17 +7854,6 @@ dependencies = [ "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]] name = "windows-interface" version = "0.59.3" @@ -8120,19 +7888,20 @@ dependencies = [ ] [[package]] -name = "windows-result" -version = "0.1.2" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-targets 0.52.6", + "windows-core 0.62.2", + "windows-link 0.2.1", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ "windows-targets 0.52.6", ] @@ -8155,16 +7924,6 @@ dependencies = [ "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" @@ -8183,15 +7942,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -8237,21 +7987,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.48.5" @@ -8310,10 +8045,13 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" +name = "windows-threading" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] [[package]] name = "windows_aarch64_gnullvm" @@ -8333,12 +8071,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" @@ -8357,12 +8089,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" @@ -8393,12 +8119,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" @@ -8417,12 +8137,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" @@ -8441,12 +8155,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" @@ -8465,12 +8173,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" @@ -8492,9 +8194,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg_aliases", "cursor-icon", "dpi", @@ -8518,10 +8220,10 @@ dependencies = [ [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ "android-activity", - "bitflags 2.11.0", + "bitflags 2.11.1", "dpi", "ndk", "raw-window-handle", @@ -8533,9 +8235,9 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", "dispatch2", "dpi", @@ -8555,7 +8257,7 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ "memmap2 0.9.10", "objc2 0.6.4", @@ -8570,9 +8272,9 @@ dependencies = [ [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cursor-icon", "dpi", "keyboard-types", @@ -8584,14 +8286,14 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "dpi", "libredox", "orbclient", "raw-window-handle", - "redox_syscall 0.7.3", + "redox_syscall 0.7.5", "smol_str", "tracing", "winit-core", @@ -8600,9 +8302,9 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2 0.6.2", "dispatch2", "dpi", @@ -8620,10 +8322,10 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ "ahash", - "bitflags 2.11.0", + "bitflags 2.11.1", "calloop", "cursor-icon", "dpi", @@ -8646,10 +8348,10 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ "atomic-waker", - "bitflags 2.11.0", + "bitflags 2.11.1", "concurrent-queue", "cursor-icon", "dpi", @@ -8668,9 +8370,9 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cursor-icon", "dpi", "raw-window-handle", @@ -8684,9 +8386,9 @@ dependencies = [ [[package]] name = "winit-x11" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "calloop", "cursor-icon", @@ -8706,18 +8408,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.15" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" dependencies = [ "memchr", ] @@ -8731,6 +8424,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -8750,7 +8449,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.13.0", + "indexmap", "prettyplease", "syn", "wasm-metadata", @@ -8780,8 +8479,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", "log", "serde", "serde_derive", @@ -8800,7 +8499,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.0", + "indexmap", "log", "semver", "serde", @@ -8818,9 +8517,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", ] @@ -8926,24 +8625,13 @@ dependencies = [ "xkeysym", ] -[[package]] -name = "xkbcommon" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a974f48060a14e95705c01f24ad9c3345022f4d97441b8a36beb7ed5c4a02d" -dependencies = [ - "libc", - "memmap2 0.9.10", - "xkeysym", -] - [[package]] name = "xkbcommon-dl" 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", @@ -8961,9 +8649,9 @@ dependencies = [ [[package]] name = "xml" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8aa498d22c9bbaf482329839bc5620c46be275a19a812e9a22a2b07529a642a" +checksum = "636f85e5ca6488e96401b61eb7de54f4e44755c988af0f52cf90230c312a1a89" [[package]] name = "xml-rs" @@ -9006,9 +8694,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", @@ -9017,9 +8705,9 @@ 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", @@ -9029,9 +8717,9 @@ dependencies = [ [[package]] name = "zbus" -version = "5.14.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" +checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" dependencies = [ "async-broadcast", "async-executor", @@ -9057,7 +8745,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 0.7.15", + "winnow", "zbus_macros", "zbus_names", "zvariant", @@ -9089,9 +8777,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.14.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" +checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9104,22 +8792,22 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" +checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow 0.7.15", + "winnow", "zvariant", ] [[package]] name = "zbus_xml" -version = "5.1.0" +version = "5.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "441a0064125265655bccc3a6af6bef56814d9277ac83fce48b1cd7e160b80eac" +checksum = "a8067892e940ed1727dea64690378601603b31d62dfde019a5335fbb7c0e0ed9" dependencies = [ - "quick-xml 0.38.4", + "quick-xml 0.39.4", "serde", "zbus_names", "zvariant", @@ -9133,18 +8821,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.42" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.42" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", @@ -9153,18 +8841,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" 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", @@ -9177,37 +8865,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", -] [[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", @@ -9217,9 +8892,9 @@ 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", @@ -9228,20 +8903,19 @@ dependencies = [ [[package]] name = "zip" -version = "7.2.0" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "aes", + "aes 0.9.0", "bzip2", "constant_time_eq", "crc32fast", "deflate64", "flate2", - "generic-array", - "getrandom 0.3.4", - "hmac", - "indexmap 2.13.0", + "getrandom 0.4.2", + "hmac 0.13.0", + "indexmap", "lzma-rust2", "memchr", "pbkdf2", @@ -9338,33 +9012,33 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.5.13" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c" +checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ "zune-core 0.5.1", ] [[package]] name = "zvariant" -version = "5.10.0" +version = "5.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" +checksum = "1c1567a6ec68df868cbbfde844cfc6d81649fe5109a62b116b19fabd53e618ee" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 0.7.15", + "winnow", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.10.0" +version = "5.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" +checksum = "c7d5b780599bbde114e39d9a0799577fad1ced5105d38515745f7b3099d8ceda" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9375,13 +9049,13 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" +checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" dependencies = [ "proc-macro2", "quote", "serde", "syn", - "winnow 0.7.15", + "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 961a06c..7315cbf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-term" -version = "1.0.8" +version = "1.0.13" authors = ["Jeremy Soller "] edition = "2024" license = "GPL-3.0-only" @@ -40,14 +40,14 @@ git = "https://github.com/pop-os/cosmic-files.git" default-features = false [dependencies.cosmic-text] -git = "https://github.com/pop-os/cosmic-text.git" +version = "0.19" features = ["monospace_fallback", "shape-run-cache"] [dependencies.libcosmic] 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" diff --git a/debian/changelog b/debian/changelog index 0171432..f8a7183 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,27 @@ +cosmic-term (1.0.13) noble; urgency=medium + + * Epoch 1.0.13 version update + + -- Jeremy Soller Tue, 12 May 2026 09:39:57 -0600 + +cosmic-term (1.0.12) noble; urgency=medium + + * Epoch 1.0.12 version update + + -- Jeremy Soller Tue, 05 May 2026 10:25:04 -0600 + +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..f7284d6 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,10 +138,12 @@ 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 } toggle-fullscreen = بدّل ملء الشاشة type-to-search = اكتب للبحث... copy-link = انسخ الرابط +tab-new-inherit-working-directory = الألسنة الجديدة تستخدم المجلد الحالي +tab-new-inherit-working-directory-description = افتح ألسنة جديدة في مجلد العمل الخاص باللسان النشط diff --git a/i18n/ca/cosmic_term.ftl b/i18n/ca/cosmic_term.ftl index e69de29..2b32132 100644 --- a/i18n/ca/cosmic_term.ftl +++ b/i18n/ca/cosmic_term.ftl @@ -0,0 +1,3 @@ +cancel = Cancel·lar +settings = Configuració +quit = Surt diff --git a/i18n/cs/cosmic_term.ftl b/i18n/cs/cosmic_term.ftl index 6e5784f..dcedece 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 @@ -107,3 +107,5 @@ shortcut-replace-body = { $binding } je již přiřazena k „{ $existing }“. shortcut-capture-hint = Stiskněte kombinaci kláves paste-primary = Vložit primární copy-link = Kopírovat odkaz +tab-new-inherit-working-directory = Nové karty používají aktuální adresář +tab-new-inherit-working-directory-description = Otevírat nové karty v pracovním adresáři aktivní karty diff --git a/i18n/de/cosmic_term.ftl b/i18n/de/cosmic_term.ftl index 5d7555b..381a685 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,11 @@ 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; +tab-new-inherit-working-directory = Neue Tabs verwenden das aktuelle Verzeichnis +tab-new-inherit-working-directory-description = Neue Tabs im Arbeitsverzeichnis des aktiven Tabs öffnen diff --git a/i18n/el/cosmic_term.ftl b/i18n/el/cosmic_term.ftl index dffa8dd..99f844a 100644 --- a/i18n/el/cosmic_term.ftl +++ b/i18n/el/cosmic_term.ftl @@ -1,5 +1,5 @@ -cosmic-terminal = Τερματικός COSMIC -new-terminal = Νέος Τερματικός +cosmic-terminal = Τερματικό COSMIC +new-terminal = Νέο τερματικό # Context Pages @@ -14,7 +14,7 @@ rename = Μετονομασία export = Εξαγωγή delete = Διαγραφή import = Εισαγωγή -import-errors = Προβλήματα Εισαγωγής +import-errors = Σφάλματα εισαγωγής ## Profiles @@ -22,16 +22,16 @@ profiles = Προφίλ name = Όνομα command-line = Γραμμή εντολών tab-title = Τίτλος καρτέλας -tab-title-description = Μετονομασία του προεπιλεγμένου τίτλου καρτέλας +tab-title-description = Παράκαμψη του προεπιλεγμένου τίτλου καρτέλας add-profile = Προσθήκη προφίλ new-profile = Νέο προφίλ -make-default = Κάντο προεπιλογή -working-directory = Τρέχων κατάλογος +make-default = Ορισμός ως προεπιλογή +working-directory = Κατάλογος εργασίας ## alt: Παύση -hold = Κράτηση -remain-open = Παραμένει ανοιχτό μετά την έξοδο της θυγατρικής διεργασίας +hold = Διατήρηση +remain-open = Παραμένει ανοικτό μετά την έξοδο από τη θυγατρική διεργασία. ## Settings @@ -41,13 +41,13 @@ settings = Ρυθμίσεις appearance = Εμφάνιση theme = Θέμα -match-desktop = Αυτόματο -dark = Σκοτεινό -light = Φωτεινό -syntax-dark = Σκοτεινός χρωματικός συνδυασμός -syntax-light = Φωτεινός χρωματικός συνδυασμός -default-zoom-step = Βήματα μεγέθυνσης -opacity = Αδιαφάνια υπόβαθρου +match-desktop = Συμφωνία με την επιφάνεια εργασίας +dark = Σκουρόχρωμο +light = Ανοιχτόχρωμο +syntax-dark = Σκουρόχρωμος χρωματικός συνδυασμός +syntax-light = Ανοιχτόχρωμος χρωματικός συνδυασμός +default-zoom-step = Βήματα ζουμ +opacity = Αδιαφάνεια φόντου ### Font @@ -56,21 +56,21 @@ 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 = Κάνε το έντονο κείμενο πιο φωτεινό +default-font-weight = Πάχος κανονικής γραμματοσειράς +default-dim-font-weight = Πάχος θαμπής γραμματοσειράς +default-bold-font-weight = Πάχος έντονης γραμματοσειράς +use-bright-bold = Να εμφανίζεται πιο φωτεινό το κείμενο με έντονη γραφή ### Splits -splits = Διαχωρισμός -focus-follow-mouse = H πληκτρολόγηση να ακολουθεί το ποντίκι +splits = Διαχωρισμοί +focus-follow-mouse = Να ακολουθεί η εστίαση πληκτρολόγησης το ποντίκι ### Advanced -advanced = Προχωρημένα +advanced = Σύνθετες επιλογές show-headerbar = Εμφάνιση κεφαλίδας -show-header-description = Εμφανήστε την κεφαλίδα από το μενού δεξιού κλικ. +show-header-description = Εμφάνιση της κεφαλίδας από το μενού δεξιού κλικ # Find find-placeholder = Εύρεση... find-previous = Εύρεση προηγούμενου @@ -82,12 +82,12 @@ find-next = Εύρεση επόμενου ## File file = Αρχείο -new-tab = Νέα ταμπέλα +new-tab = Νέα καρτέλα new-window = Νέο παράθυρο profile = Προφίλ -menu-profiles = Περισσότερα Προφίλ... +menu-profiles = Προφίλ... close-tab = Κλείσιμο καρτέλας -quit = Τερματισμός +quit = Έξοδος ## Edit @@ -99,19 +99,56 @@ find = Εύρεση ## View -view = Εμφάνιση -zoom-in = Μεγέθυνση κείμενου -zoom-reset = Επαναφορά κειμένου -zoom-out = Σμίκρυνση κείμενου -next-tab = Επόμενη ταμπέλα -previous-tab = Προηγούμενη ταμπέλα +view = Προβολή +zoom-in = Μεγαλύτερο κείμενο +zoom-reset = Προεπιλεγμένο μέγεθος κειμένου +zoom-out = Μικρότερο κείμενο +next-tab = Επόμενη καρτέλα +previous-tab = Προηγούμενη καρτέλα split-horizontal = Οριζόντιος διαχωρισμός split-vertical = Κάθετος διαχωρισμός -pane-toggle-maximize = Εναλλαγή μεγέθυνσης +pane-toggle-maximize = Εναλλαγή μεγιστοποίησης menu-color-schemes = Χρωματικοί συνδυασμοί... menu-settings = Ρυθμίσεις... -menu-about = Σχετικά με τον τερματικό COSMIC... +menu-about = Σχετικά με το Τερματικό COSMIC... repository = Αποθετήριο support = Υποστήριξη cancel = Ακύρωση -menu-keyboard-shortcuts = Συντομεύσεις πλήκτρων... +menu-keyboard-shortcuts = Συντομεύσεις πληκτρολογίου... +replace = Αντικατάσταση +passwords-title = Κωδικοί πρόσβασης +password-input = Κωδικός πρόσβασης +password-input-description = Περιγραφή +add-password = Προσθήκη κωδικού πρόσβασης +menu-password-manager = Κωδικοί πρόσβασης... +clear-scrollback = Απαλοιφή ιστορικού κύλισης +open-link = Άνοιγμα συνδέσμου +comment = Εξομοιωτής τερματικού για το περιβάλλον επιφάνειας εργασίας COSMIC +keyboard-shortcuts = Συντομεύσεις πληκτρολογίου +keywords = Εντολή;Κέλυφος;Τερματικό;Command;Shell;Terminal;CLI; +close-window = Κλείσιμο παραθύρου +disable = Απενεργοποίηση +shortcut-group-clipboard = Πρόχειρο +shortcut-group-tabs = Καρτέλες +shortcut-group-window = Παράθυρο +copy-link = Αντιγραφή συνδέσμου +type-to-search = Πληκτρολογήστε για αναζήτηση... +password-manager = Διαχείριση κωδικών πρόσβασης +shortcut-replace-title = Αντικατάσταση συντόμευσης; +tab-activate = Ενεργοποίηση καρτέλας { $number } +reset-to-default = Επαναφορά προεπιλογών +shortcut-capture-hint = Πατήστε τον συνδυασμό πλήκτρων +toggle-fullscreen = Εναλλαγή πλήρους οθόνης +add-another-keybinding = Προσθήκη άλλου συνδυασμού πλήκτρων +copy-or-sigint = Αντιγραφή ή SIGINT +focus-pane-down = Εστίαση στην κάτω περιοχή +focus-pane-left = Εστίαση στην αριστερή περιοχή +focus-pane-right = Εστίαση στη δεξιά περιοχή +focus-pane-up = Εστίαση στην πάνω περιοχή +no-shortcuts = Δεν υπάρχουν συντομεύσεις +paste-primary = Πρωτεύουσα επικόλληση +shortcut-group-other = Άλλες +shortcut-group-zoom = Ζουμ +shortcut-replace-body = Ο συνδυασμός { $binding } έχει ήδη αντιστοιχιστεί στην ενέργεια «{ $existing }». Θέλετε να αντικατασταθεί με την ενέργεια «{ $new_action }»; +tab-new-inherit-working-directory = Οι νέες καρτέλες χρησιμοποιούν τον τρέχοντα κατάλογο +tab-new-inherit-working-directory-description = Άνοιγμα νέων καρτελών στον τρέχοντα κατάλογο της ενεργής καρτέλας diff --git a/i18n/en/cosmic_term.ftl b/i18n/en/cosmic_term.ftl index 659021d..e2e459f 100644 --- a/i18n/en/cosmic_term.ftl +++ b/i18n/en/cosmic_term.ftl @@ -63,6 +63,8 @@ focus-follow-mouse = Typing focus follows mouse advanced = Advanced show-headerbar = Show header show-header-description = Reveal the header from the right-click menu +tab-new-inherit-working-directory = New tabs use current directory +tab-new-inherit-working-directory-description = Open new tabs in the active tab's working directory ### Keyboard shortcuts add-another-keybinding = Add another keybinding diff --git a/i18n/es-419/cosmic_term.ftl b/i18n/es-419/cosmic_term.ftl index d46447b..e4bdab1 100644 --- a/i18n/es-419/cosmic_term.ftl +++ b/i18n/es-419/cosmic_term.ftl @@ -68,6 +68,8 @@ focus-follow-mouse = El enfoque de escritura sigue al mouse advanced = Avanzado show-headerbar = Mostrar encabezado show-header-description = Mostrar el encabezado desde el menú contextual. +tab-new-inherit-working-directory = Las pestañas nuevas usan el directorio actual +tab-new-inherit-working-directory-description = Abrir pestañas nuevas en el directorio de trabajo de la pestaña activa # Find find-placeholder = Buscar... find-previous = Buscar anterior diff --git a/i18n/es-ES/cosmic_term.ftl b/i18n/es-ES/cosmic_term.ftl index e0ad38b..202761f 100644 --- a/i18n/es-ES/cosmic_term.ftl +++ b/i18n/es-ES/cosmic_term.ftl @@ -70,6 +70,8 @@ focus-follow-mouse = Enfoque del tecleo sigue el ratón advanced = Avanzado show-headerbar = Mostrar encabezado show-header-description = Mostrar encabezado desde el menú del clic secundario. +tab-new-inherit-working-directory = Las pestañas nuevas usan el directorio actual +tab-new-inherit-working-directory-description = Abrir pestañas nuevas en el directorio de trabajo de la pestaña activa # Find find-placeholder = Buscar... find-previous = Buscar previo 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..9eda973 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,20 @@ 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 +tab-new-inherit-working-directory = Uudet välilehdet käyttävät nykyistä hakemistoa +tab-new-inherit-working-directory-description = Avaa uudet välilehdet aktiivisen välilehden työskentelyhakemistossa diff --git a/i18n/fr/cosmic_term.ftl b/i18n/fr/cosmic_term.ftl index e54c823..e702e04 100644 --- a/i18n/fr/cosmic_term.ftl +++ b/i18n/fr/cosmic_term.ftl @@ -147,3 +147,5 @@ reset-to-default = Rétablir les paramètres par défaut toggle-fullscreen = Basculer en plein écran comment = Émulateur de terminal pour le bureau COSMIC keywords = Commande;Shell;Terminal;CLI; +tab-new-inherit-working-directory = Les nouveaux onglets utilisent le répertoire actuel +tab-new-inherit-working-directory-description = Ouvrir les nouveaux onglets dans le répertoire de travail de l'onglet actif diff --git a/i18n/hu/cosmic_term.ftl b/i18n/hu/cosmic_term.ftl index dcc4dc4..97c289e 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 @@ -147,3 +147,5 @@ tab-activate = { $number }. lap aktiválása toggle-fullscreen = Teljes képernyő váltása type-to-search = Gépelj a kereséshez… copy-link = Hivatkozás másolása +tab-new-inherit-working-directory = Az új lapok az aktuális könyvtárat használják +tab-new-inherit-working-directory-description = Az új lapok az aktív lap munkakönyvtárában nyílnak meg diff --git a/i18n/id/cosmic_term.ftl b/i18n/id/cosmic_term.ftl index fdac4c4..cea54ef 100644 --- a/i18n/id/cosmic_term.ftl +++ b/i18n/id/cosmic_term.ftl @@ -107,3 +107,5 @@ focus-pane-up = Fokuskan panel ke atas comment = Emulator terminal untuk desktop COSMIC keywords = Perintah;Shell;Terminal;CLI; copy-link = Salin Tautan +tab-new-inherit-working-directory = Tab baru menggunakan direktori saat ini +tab-new-inherit-working-directory-description = Buka tab baru di direktori pekerjaan tab aktif diff --git a/i18n/it/cosmic_term.ftl b/i18n/it/cosmic_term.ftl index ba59cf0..59dac84 100644 --- a/i18n/it/cosmic_term.ftl +++ b/i18n/it/cosmic_term.ftl @@ -70,6 +70,8 @@ focus-follow-mouse = Il focus di scrittura segue il mouse advanced = Avanzate show-headerbar = Mostra intestazione show-header-description = Mostra intestazione dal menu click destro. +tab-new-inherit-working-directory = Le nuove schede usano la cartella corrente +tab-new-inherit-working-directory-description = Apri nuove schede nella directory di lavoro della scheda attiva # Find find-placeholder = Trova... find-previous = Trova precedente 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/kk/cosmic_term.ftl b/i18n/kk/cosmic_term.ftl index d32b207..9f4f34d 100644 --- a/i18n/kk/cosmic_term.ftl +++ b/i18n/kk/cosmic_term.ftl @@ -107,3 +107,5 @@ type-to-search = Іздеу үшін теріңіз... comment = COSMIC жұмыс үстелі үшін терминал эмуляторы keywords = Command;Shell;Terminal;CLI;Команда;Қоршам;Терминал; copy-link = Сілтемені көшіру +tab-new-inherit-working-directory = Жаңа беттерде ағымдағы буманы қолдану +tab-new-inherit-working-directory-description = Жаңа беттерді белсенді беттің жұмыс бумасында ашу diff --git a/i18n/ko/cosmic_term.ftl b/i18n/ko/cosmic_term.ftl index 45f7b6e..ee46bf2 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,23 @@ 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 = 링크 복사 +no-shortcuts = 단축키 없음 +reset-to-default = 기본값으로 되돌리기 +shortcut-group-other = 기타 +shortcut-group-zoom = 확대 diff --git a/i18n/lo/cosmic_term.ftl b/i18n/lo/cosmic_term.ftl new file mode 100644 index 0000000..e69de29 diff --git a/i18n/lt/cosmic_term.ftl b/i18n/lt/cosmic_term.ftl index 13dd379..9da3c22 100644 --- a/i18n/lt/cosmic_term.ftl +++ b/i18n/lt/cosmic_term.ftl @@ -19,11 +19,11 @@ make-default = Padaryti numatytu working-directory = Darbinis katalogas hold = Laikyti remain-open = Palikti atidarytą išsijungus vaikiniam procesui. -settings = Nustatymai +settings = Nuostatos appearance = Išvaizda theme = Stilius match-desktop = Pagal darbalaukio temą -default-zoom-step = Priartinimo žingsniai +default-zoom-step = Artinimo žingsniai opacity = Fono skaidrumas font = Šriftas advanced-font-settings = Išplėstiniai šrifto nustatymai @@ -38,9 +38,9 @@ focus-follow-mouse = Teksto laukelio aktyvavimas sekant žymeklį advanced = Išplėstiniai show-headerbar = Rodyti antraštę show-header-description = Rodyti antraštę kontekstiname meniu atidaromu dešiniu klavišu -find-placeholder = Surasti... -find-previous = Atgalinis ieškojimas -find-next = Ieškoti sekančio +find-placeholder = Rasti... +find-previous = Ieškoti ankstesnio +find-next = Ieškoti tolesnio file = Failas new-tab = Naujas skirtukas new-window = Naujas langas @@ -50,9 +50,9 @@ close-tab = Uždaryti skirtuką quit = Išeiti edit = Redaguoti copy = Kopijuoti -paste = Įklijuoti -select-all = Pažymėti viską -find = Surasti +paste = Įdėti +select-all = Žymėti viską +find = Rasti clear-scrollback = Išvalyti scrollback open-link = Atidaryti Nuorodą view = Rodymas @@ -65,7 +65,7 @@ split-horizontal = Skaidyti horizontaliai split-vertical = Skaidyti vertikaliai pane-toggle-maximize = Perjungti maksimalų padidinimą menu-color-schemes = Spalvų schemos... -menu-settings = Nustatymai... +menu-settings = Nuostatos... menu-about = Apie COSMIC Terminal... menu-password-manager = Slaptažodžiai... passwords-title = Slaptažodžiai @@ -82,12 +82,12 @@ cancel = Atšaukti close-window = Uždaryti langą copy-or-sigint = Kopijuoti arba SIGINT disable = Išjungti -keyboard-shortcuts = Klaviatūros greitieji klavišai -menu-keyboard-shortcuts = Klaviatūros greitieji klavišai... +keyboard-shortcuts = Spartieji klavišai +menu-keyboard-shortcuts = Spartieji klavišai... no-shortcuts = Nėra nustatytų klaviatūros derinių password-manager = Slaptažodžių tvarkyklė paste-primary = Įklijuotiį pirminį -replace = Pakeisti +replace = Keisti reset-to-default = Nustatyti į numatytąjį shortcut-capture-hint = Nuspauskite klavišų derinį shortcut-group-clipboard = Iškarpinė @@ -101,3 +101,4 @@ tab-activate = Aktyvuoti skirtuką { $number } toggle-fullscreen = Įjungti/išjungti viso ekrano režimą type-to-search = Norint ieškoti, pradėkite rašyti… copy-link = Kopijuoti Nuorodą +syntax-dark = Tamsi spalvų paletė 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/pl/cosmic_term.ftl b/i18n/pl/cosmic_term.ftl index 341a792..69111bb 100644 --- a/i18n/pl/cosmic_term.ftl +++ b/i18n/pl/cosmic_term.ftl @@ -147,3 +147,5 @@ focus-pane-left = Aktywuj lewy panel focus-pane-right = Aktywuj prawy panel focus-pane-up = Aktywuj panel wyżej copy-link = Skopiuj Odnośnik +tab-new-inherit-working-directory = Nowe karty użyją obecnego katalogu +tab-new-inherit-working-directory-description = Otwieraj nowe karty w katalogu roboczym aktywnej karty diff --git a/i18n/pt-BR/cosmic_term.ftl b/i18n/pt-BR/cosmic_term.ftl index 23a7ccd..3307289 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,6 @@ 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 +tab-new-inherit-working-directory = Novas abas usam o diretório atual +tab-new-inherit-working-directory-description = Abrir novas abas no diretório de trabalho da aba ativa diff --git a/i18n/ru/cosmic_term.ftl b/i18n/ru/cosmic_term.ftl index 81d0643..7226000 100644 --- a/i18n/ru/cosmic_term.ftl +++ b/i18n/ru/cosmic_term.ftl @@ -141,3 +141,5 @@ tab-activate = Активировать вкладку { $number } toggle-fullscreen = Вкл./выкл. полноэкранный режим type-to-search = Введите для поиска... copy-link = Копировать ссылку +tab-new-inherit-working-directory = В новых вкладках исп. текущий каталог +tab-new-inherit-working-directory-description = Открывать новые вкладки в рабочем каталоге активной вкладки diff --git a/i18n/sr/cosmic_term.ftl b/i18n/sr/cosmic_term.ftl index e69de29..8afbb4c 100644 --- a/i18n/sr/cosmic_term.ftl +++ b/i18n/sr/cosmic_term.ftl @@ -0,0 +1,111 @@ +quit = Изађи +cancel = Откажи +import = Увези +export = Извези +appearance = Изглед +light = Светла +dark = Тамна +settings = Подешавања +reset-to-default = Врати на подразумевано +type-to-search = Куцајте за претрагу... +add-another-keybinding = Додај још једну комбинацију тастера +replace = Замени +syntax-light = Светла шема боја +default-font-weight = Нормална тежина фонта +add-profile = Додај профил +find-next = Нађи следеће +splits = Подељено +import-errors = Грешке при увозу +zoom-in = Већи текст +select-all = Означи све +previous-tab = Претходни језичак +show-headerbar = Прикажи заглавље +new-window = Нови прозор +zoom-out = Мањи текст +split-vertical = Усправна подела +syntax-dark = Тамна шема боја +menu-profiles = Профили... +new-terminal = Нови терминал +tab-title-description = Замените подразумевани наслов језичка +menu-about = О програму Космик Терминал... +remain-open = Остани отворен након што се дечији процес заврши. +menu-color-schemes = Шеме боја... +working-directory = Радни директоријум +profiles = Профили +opacity = Непровидност позадине +tab-title = Наслов језичка +zoom-reset = Подразумевана величина текста +rename = Преименуј +passwords-title = Лозинке +edit = Уреди +copy = Умножи +pane-toggle-maximize = Окини увећање +theme = Тема +password-input = Лозинка +close-tab = Затвори језичак +color-schemes = Шеме боја +name = Назив +default-dim-font-weight = Пригушена тежина фонта +advanced = Напредно +delete = Обриши +repository = Ризница +use-bright-bold = Учини подебљани текст светлијим +support = Подршка +default-bold-font-weight = Тежина подебљаног фонта +password-input-description = Опис +default-font = Фонт +paste = Залепи +menu-settings = Подешавања... +add-password = Додај лозинку +command-line = Линија наредби +view = Преглед +default-font-stretch = Развлачење писма +hold = Задржи +menu-password-manager = Лозинке... +match-desktop = Прати радну површину +find-previous = Нађи претходно +default-font-size = Величина фонта +cosmic-terminal = Космик терминал +split-horizontal = Водоравна подела +find-placeholder = Пронађи... +focus-follow-mouse = Фокус куцања прати миша +advanced-font-settings = Напредна подешавања фонта +font = Фонт +next-tab = Следећи језичак +default-zoom-step = Кораци увећања +clear-scrollback = Очисти историју помицања +open-link = Отвори везу +file = Датотека +make-default = Постави као подразумеван +new-profile = Нови профил +find = Пронађи +profile = Профил +new-tab = Нови језичак +keyboard-shortcuts = Пречице тастатуре +menu-keyboard-shortcuts = Пречице на тастатури... +comment = Емулатор терминала за Космик радну површину +keywords = Command;Shell;Terminal;CLI;Наредба;Шкољка;Терминал;CLI;naredba;školjka;terminal;cli; +show-header-description = Прикажи заглавље из менија са десним кликом +close-window = Затвори прозор +copy-or-sigint = Копирај или SIGINT +disable = Онемогући +focus-pane-down = Усредсреди површ испод +focus-pane-left = Усредсреди површ лево +focus-pane-right = Усредсреди површ десно +focus-pane-up = Усредсреди површ изнад +no-shortcuts = Нема пречица +password-manager = Управник лозинки +paste-primary = Убаци примарно +shortcut-capture-hint = Притисните комбинацију тастера +shortcut-group-clipboard = Остава +shortcut-group-other = Друго +shortcut-group-tabs = Језичци +shortcut-group-window = Прозор +shortcut-group-zoom = Увећање +shortcut-replace-body = { $binding } је већ додељена за { $existing }. Заменити је са { $new_action }? +shortcut-replace-title = Заменити пречицу? +tab-activate = Активирај језичак { $number } +toggle-fullscreen = Цео екран +copy-link = Копирај везу +tab-new-inherit-working-directory = Нови језичци користе тренутни директоријум +tab-new-inherit-working-directory-description = Отвара нове језичке у радном директоријуму активног језичка diff --git a/i18n/sv-SE/cosmic_term.ftl b/i18n/sv-SE/cosmic_term.ftl index 2e4c56c..489c19f 100644 --- a/i18n/sv-SE/cosmic_term.ftl +++ b/i18n/sv-SE/cosmic_term.ftl @@ -151,3 +151,5 @@ shortcut-group-other = Andra shortcut-group-tabs = Flikar shortcut-group-zoom = Zooma copy-link = Kopiera länk +tab-new-inherit-working-directory-description = Öppna nya flikar i den aktiva flikens arbetskatalog +tab-new-inherit-working-directory = Nya flikar använder aktuell katalog diff --git a/i18n/uk/cosmic_term.ftl b/i18n/uk/cosmic_term.ftl index 9e872f2..c282eca 100644 --- a/i18n/uk/cosmic_term.ftl +++ b/i18n/uk/cosmic_term.ftl @@ -147,3 +147,5 @@ focus-pane-up = Фокус на верхню панель comment = Емулятор терміналу для середовища COSMIC keywords = Команда;Оболонка;Термінал;Інтерфейс;CLI; copy-link = Копіювати ланку +tab-new-inherit-working-directory = У нових вкладках використовується поточний каталог +tab-new-inherit-working-directory-description = Відкривати нові вкладки в робочому каталозі активної вкладки diff --git a/i18n/zh-CN/cosmic_term.ftl b/i18n/zh-CN/cosmic_term.ftl index d02065f..3542be5 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 = 聚焦左侧窗格 @@ -147,3 +147,5 @@ toggle-fullscreen = 切换全屏 comment = COSMIC 桌面的终端模拟器 keywords = 指令;外壳;终端;命令行界面; copy-link = 复制链接 +tab-new-inherit-working-directory = 新标签使用当前目录 +tab-new-inherit-working-directory-description = 在活动标签的工作目录中打开新标签 diff --git a/i18n/zh-TW/cosmic_term.ftl b/i18n/zh-TW/cosmic_term.ftl index d9a3caf..59cc0bf 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,55 @@ 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 桌面終端機模擬器 +tab-new-inherit-working-directory = 新分頁使用目前目錄 +tab-new-inherit-working-directory-description = 在作用中分頁的工作目錄開啟新分頁 diff --git a/src/config.rs b/src/config.rs index 39e6568..49eb079 100644 --- a/src/config.rs +++ b/src/config.rs @@ -235,6 +235,8 @@ pub struct Config { pub syntax_theme_dark: String, pub syntax_theme_light: String, pub focus_follow_mouse: bool, + #[serde(default)] + pub tab_new_inherit_working_directory: bool, pub default_profile: Option, #[serde(default)] pub shortcuts_custom: Shortcuts, @@ -249,6 +251,7 @@ impl Default for Config { color_schemes_light: BTreeMap::new(), dim_font_weight: Weight::NORMAL.0, focus_follow_mouse: false, + tab_new_inherit_working_directory: false, font_name: "Noto Sans Mono".to_string(), font_size: 14, font_size_zoom_step_mul_100: 100, diff --git a/src/main.rs b/src/main.rs index 0db17f2..e8469d3 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, @@ -431,6 +427,7 @@ pub enum Message { ShowHeaderBar(bool), SyntaxTheme(ColorSchemeKind, usize), SystemThemeChange, + TabNewInheritWorkingDirectory(bool), TabActivate(segmented_button::Entity), TabActivateJump(usize), TabClose(Option), @@ -453,6 +450,7 @@ pub enum Message { ZoomIn, ZoomOut, ZoomReset, + ContextMenuPopupClosed(window::Id), } #[derive(Clone, Copy, Debug, Eq, PartialEq)] @@ -523,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, } @@ -545,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 + ); } } } @@ -593,6 +597,18 @@ impl App { } } + fn reset_active_pane_zoom(&mut self) { + if let Some(tab_model) = self.pane_model.active() { + for entity in tab_model.iter() { + if tab_model.is_active(entity) + && let Some(terminal) = tab_model.data::>(entity) + { + terminal.lock().unwrap().set_zoom_adj(0); + } + } + } + } + fn save_shortcuts_custom(&mut self) { self.config.shortcuts_custom = self.shortcuts_config.custom.clone(); match &self.config_handler { @@ -690,21 +706,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); } } } @@ -713,16 +729,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() @@ -745,16 +761,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() { @@ -1017,10 +1033,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; @@ -1483,11 +1499,21 @@ impl App { .toggler(self.config.focus_follow_mouse, Message::FocusFollowMouse), ); - let advanced_section = widget::settings::section().title(fl!("advanced")).add( - widget::settings::item::builder(fl!("show-headerbar")) - .description(fl!("show-header-description")) - .toggler(self.config.show_headerbar, Message::ShowHeaderBar), - ); + let advanced_section = widget::settings::section() + .title(fl!("advanced")) + .add( + widget::settings::item::builder(fl!("show-headerbar")) + .description(fl!("show-header-description")) + .toggler(self.config.show_headerbar, Message::ShowHeaderBar), + ) + .add( + widget::settings::item::builder(fl!("tab-new-inherit-working-directory")) + .description(fl!("tab-new-inherit-working-directory-description")) + .toggler( + self.config.tab_new_inherit_working_directory, + Message::TabNewInheritWorkingDirectory, + ), + ); widget::settings::view_column(vec![ appearance_section.into(), @@ -1501,11 +1527,23 @@ impl App { self.config.default_profile } + fn active_terminal_working_directory(&self) -> Option { + let tab_model = self.pane_model.active()?; + let entity = tab_model.active(); + let terminal = tab_model.data::>(entity)?; + let terminal = terminal.lock().unwrap(); + terminal.working_directory() + } + fn create_and_focus_new_terminal( &mut self, pane: pane_grid::Pane, profile_id_opt: Option, + inherit_working_directory: bool, ) -> Task { + let inherited_working_directory = inherit_working_directory + .then(|| self.active_terminal_working_directory()) + .flatten(); self.pane_model.set_focus(pane); match &self.term_event_tx_opt { Some(term_event_tx) => { @@ -1534,20 +1572,21 @@ 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.or_else( - || { + working_directory: startup_options + .working_directory + .or_else(|| inherited_working_directory.clone()) + .or_else(|| { (!profile.working_directory.is_empty()) .then(|| profile.working_directory.clone().into()) - }, - ), + }), drain_on_exit: startup_options.drain_on_exit || profile.drain_on_exit, ..startup_options @@ -1559,7 +1598,11 @@ impl App { }; (options, tab_title_override) } else { - (self.startup_options.take().unwrap_or_default(), None) + let mut options = self.startup_options.take().unwrap_or_default(); + if options.working_directory.is_none() { + options.working_directory = inherited_working_directory.clone(); + } + (options, None) }; let entity = tab_model @@ -1840,6 +1883,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(), }; @@ -1946,24 +1990,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) => { @@ -2051,7 +2094,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); @@ -2105,15 +2148,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) => { @@ -2127,11 +2168,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()); @@ -2295,7 +2336,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))) => { @@ -2334,13 +2376,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); } } @@ -2348,13 +2390,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); } } @@ -2431,7 +2473,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()) @@ -2450,14 +2491,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; @@ -2541,7 +2580,7 @@ impl Application for App { if let Some((pane, _)) = result { self.terminal_ids.insert(pane, widget::Id::unique()); let command = - self.create_and_focus_new_terminal(pane, self.get_default_profile()); + self.create_and_focus_new_terminal(pane, self.get_default_profile(), false); self.pane_model.panes_created += 1; return command; } @@ -2653,8 +2692,11 @@ impl Application for App { return self.save_profiles(); } Message::ProfileOpen(profile_id) => { - return self - .create_and_focus_new_terminal(self.pane_model.focused(), Some(profile_id)); + return self.create_and_focus_new_terminal( + self.pane_model.focused(), + Some(profile_id), + false, + ); } Message::ProfileRemove(profile_id) => { // Reset matching terminals to default profile @@ -2720,6 +2762,12 @@ impl Application for App { return self.update_config(); } } + Message::TabNewInheritWorkingDirectory(tab_new_inherit_working_directory) => { + config_set!( + tab_new_inherit_working_directory, + tab_new_inherit_working_directory + ); + } Message::UseBrightBold(use_bright_bold) => { if use_bright_bold != self.config.use_bright_bold { config_set!(use_bright_bold, use_bright_bold); @@ -2810,63 +2858,138 @@ 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( self.pane_model.focused(), self.get_default_profile(), + self.config.tab_new_inherit_working_directory, ); } Message::TabNewNoProfile => { - return self.create_and_focus_new_terminal(self.pane_model.focused(), None); + return self.create_and_focus_new_terminal( + self.pane_model.focused(), + None, + self.config.tab_new_inherit_working_directory, + ); } Message::TabNext => { if let Some(tab_model) = self.pane_model.active() { @@ -2888,9 +3011,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 { @@ -2929,13 +3050,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 => { @@ -2945,11 +3066,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 => { @@ -2969,12 +3090,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) => { @@ -2993,11 +3114,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) => { @@ -3130,9 +3251,25 @@ impl Application for App { return self.update_render_active_pane_zoom(message); } Message::ZoomReset => { - self.reset_terminal_panes_zoom(); + self.reset_active_pane_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), @@ -3239,7 +3376,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(), @@ -3267,7 +3423,7 @@ impl Application for App { ) .class(style::Container::Custom(Box::new(|theme| { let cosmic = theme.cosmic(); - cosmic::iced_widget::container::Style { + 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( @@ -3307,25 +3463,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); } @@ -3471,7 +3650,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(), @@ -3480,3 +3659,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 228ab9b..a10ca75 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -7,8 +7,8 @@ use cosmic::widget::{Column, space}; use cosmic::{ Element, app::Core, + iced::core::Border, iced::{Background, Length, advanced::widget::text::Style as TextStyle}, - iced_core::Border, theme, widget::{ self, divider, @@ -26,6 +26,7 @@ static MENU_ID: LazyLock = #[derive(Debug, Clone)] pub struct MenuState { pub position: Option, + pub local_position: Option, pub link: Option, } diff --git a/src/password_manager.rs b/src/password_manager.rs index fdaa672..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,72 +310,68 @@ 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()); diff --git a/src/shortcuts.rs b/src/shortcuts.rs index e626a88..503c8de 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 1d14973..81b9f50 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -28,7 +28,8 @@ use indexmap::IndexSet; use std::{ borrow::Cow, collections::HashMap, - io, mem, + fs, io, mem, + path::PathBuf, sync::{ Arc, Mutex, Weak, atomic::{AtomicU32, Ordering}, @@ -257,6 +258,7 @@ pub struct Terminal { notifier: Notifier, search_regex_opt: Option, search_value: String, + shell_pid: Option, size: Size, use_bright_bold: bool, zoom_adj: i8, @@ -264,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, @@ -303,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) }; @@ -328,6 +331,10 @@ impl Terminal { let window_id = 0; let pty = tty::new(&options, size.into(), window_id)?; + #[cfg(not(windows))] + let shell_pid = Some(pty.child().id()); + #[cfg(windows)] + let shell_pid = pty.child_watcher().pid().map(|pid| pid.get()); let pty_event_loop = EventLoop::new(term.clone(), event_proxy, pty, options.drain_on_exit, false)?; @@ -352,6 +359,7 @@ impl Terminal { profile_id_opt, search_regex_opt: None, search_value: String::new(), + shell_pid, size, tab_title_override, term, @@ -407,6 +415,19 @@ impl Terminal { self.notifier.notify(input); } + pub fn working_directory(&self) -> Option { + #[cfg(target_os = "linux")] + { + let shell_pid = self.shell_pid?; + fs::read_link(format!("/proc/{shell_pid}/cwd")).ok() + } + + #[cfg(not(target_os = "linux"))] + { + None + } + } + pub fn input_scroll>>(&self, input: I) { self.input_no_scroll(input); self.scroll(TerminalScroll::Bottom); @@ -448,8 +469,7 @@ impl Terminal { 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; @@ -632,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; } @@ -692,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) }) }; @@ -868,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 @@ -888,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 @@ -1200,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 513cbf2..e070498 100644 --- a/src/terminal_box.rs +++ b/src/terminal_box.rs @@ -10,15 +10,7 @@ use alacritty_terminal::{ 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, @@ -31,9 +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::{iced::core::SmolStr, widget::menu::key_bind::KeyBind}; use cosmic_text::LayoutGlyph; use indexmap::IndexSet; use std::{ @@ -863,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, @@ -872,9 +871,9 @@ where layout.bounds(), self.padding, multiplier, - ) { - shell.capture_event(); - } + ) + { + shell.capture_event(); } if state.autoscroll.is_active() { shell.request_redraw(); @@ -1300,8 +1299,13 @@ 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, }))); } @@ -1314,21 +1318,20 @@ where } 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; @@ -1339,13 +1342,12 @@ 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)); - shell.capture_event(); - } - } + 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 { @@ -1358,8 +1360,6 @@ where } else { shell.capture_event(); } - } else { - shell.capture_event(); } } Event::Mouse(MouseEvent::ButtonReleased(_button)) => { @@ -1650,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; @@ -1714,6 +1714,7 @@ enum EdgeScrollDirection { Bottom, } +#[allow(clippy::too_many_arguments)] fn edge_scroll_adjustment( y: f32, buffer_height: f32,