diff --git a/Cargo.lock b/Cargo.lock index e4c7d3e..106d5bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "ab_glyph" -version = "0.2.31" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d" +checksum = "1e0f4f6fbdc5ee39f2ede9f5f3ec79477271a6d6a2baff22310d51736bda6cea" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -219,9 +219,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -249,22 +249,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -318,16 +318,13 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.2", + "rand 0.9.1", "raw-window-handle", "serde", "serde_repr", "tokio", "url", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "zbus 5.9.0", + "zbus 5.7.1", ] [[package]] @@ -346,7 +343,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.0", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -354,9 +351,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.5.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -373,7 +370,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.3.0", - "futures-lite 2.6.1", + "futures-lite 2.6.0", "pin-project-lite", "slab", ] @@ -400,20 +397,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.5.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca" +checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" dependencies = [ - "async-lock 3.4.1", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.6.1", + "futures-lite 2.6.0", "parking", - "polling 3.10.0", - "rustix 1.0.8", + "polling 3.8.0", + "rustix 1.0.7", "slab", - "windows-sys 0.60.2", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -427,11 +425,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -455,20 +453,21 @@ dependencies = [ [[package]] name = "async-process" -version = "2.4.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00" +checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" dependencies = [ "async-channel", - "async-io 2.5.0", - "async-lock 3.4.1", + "async-io 2.4.1", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.1", - "futures-lite 2.6.1", - "rustix 1.0.8", + "event-listener 5.4.0", + "futures-lite 2.6.0", + "rustix 1.0.7", + "tracing", ] [[package]] @@ -484,20 +483,20 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.12" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1" +checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" dependencies = [ - "async-io 2.5.0", - "async-lock 3.4.1", + "async-io 2.4.1", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 1.0.8", + "rustix 1.0.7", "signal-hook-registry", "slab", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -680,7 +679,16 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" dependencies = [ - "bit-vec", + "bit-vec 0.7.0", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec 0.8.0", ] [[package]] @@ -689,6 +697,12 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + [[package]] name = "bitflags" version = "1.3.2" @@ -739,14 +753,14 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.2" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel", "async-task", "futures-io", - "futures-lite 2.6.1", + "futures-lite 2.6.0", "piper", ] @@ -764,18 +778,18 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" dependencies = [ "proc-macro2", "quote", @@ -808,7 +822,7 @@ checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ "bitflags 2.9.1", "log", - "polling 3.10.0", + "polling 3.8.0", "rustix 0.38.44", "slab", "thiserror 1.0.69", @@ -828,9 +842,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.32" +version = "1.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" dependencies = [ "jobserver", "libc", @@ -854,9 +868,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.20.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d458d63f0f0f482c8da9b7c8b76c21bd885a02056cc94c6404d861ca2b8206" +checksum = "e34e221e91c7eb5e8315b5c9cf1a61670938c0626451f954a51693ed44b37f45" dependencies = [ "smallvec", "target-lexicon", @@ -890,7 +904,6 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", - "serde", "wasm-bindgen", "windows-link", ] @@ -908,9 +921,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.44" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1f056bae57e3e54c3375c41ff79619ddd13460a17d7438712bd0d83fda4ff8" +checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" dependencies = [ "clap_builder", "clap_derive", @@ -918,9 +931,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" dependencies = [ "anstream", "anstyle", @@ -931,9 +944,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.41" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -955,9 +968,9 @@ checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" [[package]] name = "clipboard-win" -version = "5.4.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ "error-code", ] @@ -978,7 +991,7 @@ version = "0.2.2" source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" dependencies = [ "dnd", - "mime 0.1.0", + "mime", "smithay-clipboard", ] @@ -1031,6 +1044,15 @@ dependencies = [ "unicode-width 0.1.14", ] +[[package]] +name = "codespan-reporting" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" +dependencies = [ + "unicode-width 0.2.1", +] + [[package]] name = "color_quant" version = "1.1.0" @@ -1189,7 +1211,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1205,13 +1227,13 @@ dependencies = [ "tokio", "tracing", "xdg", - "zbus 5.9.0", + "zbus 5.7.1", ] [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "quote", "syn 2.0.104", @@ -1224,7 +1246,7 @@ source = "git+https://github.com/pop-os/freedesktop-icons#8a05c322c482ff3c69cf34 dependencies = [ "dirs 5.0.1", "ini_core", - "memmap2 0.9.7", + "memmap2 0.9.5", "thiserror 2.0.12", "tracing", "xdg", @@ -1244,39 +1266,25 @@ dependencies = [ "wayland-server", ] -[[package]] -name = "cosmic-settings-config" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#19f10525ff00d76558147ea060bd856a87122353" -dependencies = [ - "cosmic-config", - "ron 0.9.0", - "serde", - "serde_with", - "thiserror 2.0.12", - "tracing", - "xkbcommon", -] - [[package]] name = "cosmic-settings-daemon" version = "0.1.0" source = "git+https://github.com/pop-os/dbus-settings-bindings#3b86984332be2c930a3536ab714b843c851fa8ca" dependencies = [ - "zbus 5.9.0", + "zbus 5.7.1", ] [[package]] name = "cosmic-text" version = "0.14.2" -source = "git+https://github.com/pop-os/cosmic-text.git#f7033bb0433f6a9ba109007027781ba46ea9ba27" +source = "git+https://github.com/pop-os/cosmic-text.git#3b1aa511d19aaa40be447a9b7ebe212b1bbb6a9a" dependencies = [ "bitflags 2.9.1", "fontdb 0.23.0", "log", "rangemap", "rustc-hash 1.1.0", - "rustybuzz", + "rustybuzz 0.14.1", "self_cell", "smol_str", "swash", @@ -1291,7 +1299,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "almost", "cosmic-config", @@ -1354,9 +1362,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -1508,7 +1516,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", - "serde", ] [[package]] @@ -1524,9 +1531,9 @@ dependencies = [ [[package]] name = "derive_setters" -version = "0.1.8" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae5c625eda104c228c06ecaf988d1c60e542176bd7a490e60eeda3493244c0c9" +checksum = "d9c848e86c87e5cc305313041c5677d4d95d60baa71cf95e5f6ea2554bb629ff" dependencies = [ "darling", "proc-macro2", @@ -1601,7 +1608,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.2", + "redox_users 0.5.0", "windows-sys 0.60.2", ] @@ -1611,6 +1618,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "dispatch2" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0" +dependencies = [ + "bitflags 2.9.1", + "block2 0.6.1", + "libc", + "objc2 0.6.1", +] + [[package]] name = "dispatch2" version = "0.3.0" @@ -1618,8 +1637,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ "bitflags 2.9.1", - "block2 0.6.1", - "libc", "objc2 0.6.1", ] @@ -1649,7 +1666,7 @@ version = "0.1.0" source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f" dependencies = [ "bitflags 2.9.1", - "mime 0.1.0", + "mime", "raw-window-handle", "smithay-client-toolkit", "smithay-clipboard", @@ -1720,12 +1737,6 @@ dependencies = [ "linux-raw-sys 0.6.5", ] -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - [[package]] name = "either" version = "1.15.0" @@ -1848,9 +1859,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -1863,7 +1874,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.0", "pin-project-lite", ] @@ -1901,7 +1912,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78" dependencies = [ "cfg-if", - "rustix 1.0.8", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -1914,6 +1925,42 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "femtovg" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66a4045686ce22a7e99a1e9ec3b5c86f43cdedf678a699f544f10af286da893" +dependencies = [ + "bitflags 2.9.1", + "bytemuck", + "fnv", + "glow 0.16.0", + "image", + "imgref", + "log", + "lru 0.16.0", + "rgb", + "rustybuzz 0.20.1", + "slotmap", + "unicode-bidi", + "unicode-segmentation", + "wasm-bindgen", + "web-sys", + "wgpu 26.0.1", +] + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + [[package]] name = "flate2" version = "1.1.2" @@ -1985,7 +2032,7 @@ checksum = "e32eac81c1135c1df01d4e6d4233c47ba11f6a6d07f33e0bba09d18797077770" dependencies = [ "fontconfig-parser", "log", - "memmap2 0.9.7", + "memmap2 0.9.5", "slotmap", "tinyvec", "ttf-parser 0.21.1", @@ -1999,7 +2046,7 @@ checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905" dependencies = [ "fontconfig-parser", "log", - "memmap2 0.9.7", + "memmap2 0.9.5", "slotmap", "tinyvec", "ttf-parser 0.25.1", @@ -2041,20 +2088,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "freedesktop-desktop-entry" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb78ccb4eb670a9c659f1c61e709d41fd6401cddf562f14cac1a47077918d3" -dependencies = [ - "gettext-rs", - "log", - "memchr", - "thiserror 2.0.12", - "unicase", - "xdg", -] - [[package]] name = "fsevent-sys" version = "4.1.0" @@ -2141,9 +2174,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.6.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -2236,26 +2269,6 @@ dependencies = [ "wasi 0.14.2+wasi-0.2.4", ] -[[package]] -name = "gettext-rs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44e92f7dc08430aca7ed55de161253a22276dfd69c5526e5c5e95d1f7cf338a" -dependencies = [ - "gettext-sys", - "locale_config", -] - -[[package]] -name = "gettext-sys" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb45773f5b8945f12aecd04558f545964f943dacda1b1155b3d738f5469ef661" -dependencies = [ - "cc", - "temp-dir", -] - [[package]] name = "gif" version = "0.13.3" @@ -2348,9 +2361,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "glow" @@ -2364,6 +2377,18 @@ dependencies = [ "web-sys", ] +[[package]] +name = "glow" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "glutin_wgl_sys" version = "0.6.1" @@ -2424,7 +2449,7 @@ checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ "bitflags 2.9.1", "gpu-descriptor-types", - "hashbrown 0.15.5", + "hashbrown", ] [[package]] @@ -2643,19 +2668,14 @@ checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", + "num-traits", ] [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "allocator-api2", "equivalent", @@ -2668,7 +2688,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.15.5", + "hashbrown", ] [[package]] @@ -2791,7 +2811,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "dnd", "iced_accessibility", @@ -2801,7 +2821,7 @@ dependencies = [ "iced_widget", "iced_winit", "image", - "mime 0.1.0", + "mime", "thiserror 1.0.69", "window_clipboard", ] @@ -2809,7 +2829,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "accesskit", "accesskit_winit", @@ -2818,7 +2838,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "bitflags 2.9.1", "bytes", @@ -2826,7 +2846,7 @@ dependencies = [ "glam", "iced_accessibility", "log", - "mime 0.1.0", + "mime", "num-traits", "once_cell", "palette", @@ -2842,7 +2862,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "futures", "iced_core", @@ -2860,15 +2880,15 @@ source = "git+https://github.com/pop-os/glyphon.git?tag=iced-0.14-dev#6ef9d12a20 dependencies = [ "cosmic-text", "etagere", - "lru", + "lru 0.12.5", "rustc-hash 2.1.1", - "wgpu", + "wgpu 22.1.0", ] [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "bitflags 2.9.1", "bytemuck", @@ -2890,7 +2910,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2902,7 +2922,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "bytes", "dnd", @@ -2917,7 +2937,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "bytemuck", "cosmic-text", @@ -2950,7 +2970,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "as-raw-xcb-connection", "bitflags 2.9.1", @@ -2974,14 +2994,14 @@ dependencies = [ "wayland-client", "wayland-protocols", "wayland-sys", - "wgpu", + "wgpu 22.1.0", "x11rb", ] [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "dnd", "iced_accessibility", @@ -3000,7 +3020,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "dnd", "iced_accessibility", @@ -3153,6 +3173,12 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" +[[package]] +name = "imgref" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" + [[package]] name = "immutable-chunkmap" version = "2.0.6" @@ -3162,17 +3188,6 @@ dependencies = [ "arrayvec", ] -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - [[package]] name = "indexmap" version = "2.10.0" @@ -3180,8 +3195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.5", - "serde", + "hashbrown", ] [[package]] @@ -3233,17 +3247,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "io-uring" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "libc", -] - [[package]] name = "is_ci" version = "1.2.0" @@ -3356,11 +3359,11 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "known-folders" -version = "1.3.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c644f4623d1c55eb60a9dac35e0858a59f982fb87db6ce34c872372b0a5b728f" +checksum = "b7d9a1740cc8b46e259a0eb787d79d855e79ff10b9855a5eba58868d5da7927c" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -3395,12 +3398,11 @@ dependencies = [ [[package]] name = "kurbo" -version = "0.11.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62026ae44756f8a599ba21140f350303d4f08dcdcc71b5ad9c9bb8128c13c62" +checksum = "1077d333efea6170d9ccb96d3c3026f300ca0773da4938cc4c811daa6df68b0c" dependencies = [ "arrayvec", - "euclid", "smallvec", ] @@ -3447,14 +3449,14 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#562e88587207368969e7bcd43bce3ccf81aee8d9" +source = "git+https://github.com/pop-os/libcosmic#aaa4b83577a70c15af8b91d1fb161e2a2931596b" dependencies = [ "apply", "ashpd", @@ -3462,12 +3464,10 @@ dependencies = [ "chrono", "cosmic-config", "cosmic-freedesktop-icons", - "cosmic-settings-config", "cosmic-settings-daemon", "cosmic-theme", "css-color", "derive_setters", - "freedesktop-desktop-entry", "futures", "iced", "iced_accessibility", @@ -3481,14 +3481,10 @@ dependencies = [ "iced_winit", "image", "lazy_static", - "libc", - "mime 0.3.17", "palette", "raw-window-handle", "rfd", - "rustix 1.0.8", "serde", - "shlex", "slotmap", "taffy", "thiserror 2.0.12", @@ -3496,7 +3492,7 @@ dependencies = [ "tracing", "unicode-segmentation", "url", - "zbus 5.9.0", + "zbus 5.7.1", ] [[package]] @@ -3506,7 +3502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-targets 0.53.2", ] [[package]] @@ -3517,13 +3513,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.13", ] [[package]] @@ -3569,22 +3565,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litrs" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" - -[[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", -] +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" [[package]] name = "lock_api" @@ -3608,6 +3591,12 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +[[package]] +name = "lru" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed" + [[package]] name = "lumina" version = "0.1.0" @@ -3616,6 +3605,7 @@ dependencies = [ "colors-transform", "crisp", "dirs 5.0.1", + "femtovg", "gstreamer", "gstreamer-app", "iced_video_player", @@ -3742,9 +3732,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -3820,12 +3810,6 @@ dependencies = [ "smithay-clipboard", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -3873,12 +3857,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.6.0", "bitflags 2.9.1", "cfg_aliases 0.1.1", - "codespan-reporting", + "codespan-reporting 0.11.1", "hexf-parse", - "indexmap 2.10.0", + "indexmap", "log", "rustc-hash 1.1.0", "spirv", @@ -3887,6 +3871,31 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "naga" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" +dependencies = [ + "arrayvec", + "bit-set 0.8.0", + "bitflags 2.9.1", + "cfg-if", + "cfg_aliases 0.2.1", + "codespan-reporting 0.12.0", + "half", + "hashbrown", + "hexf-parse", + "indexmap", + "libm", + "log", + "num-traits", + "once_cell", + "rustc-hash 1.1.0", + "thiserror 2.0.12", + "unicode-ident", +] + [[package]] name = "ndk" version = "0.8.0" @@ -3998,11 +4007,12 @@ dependencies = [ [[package]] name = "notify" -version = "8.2.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" +checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ "bitflags 2.9.1", + "filetime", "fsevent-sys", "inotify", "kqueue", @@ -4011,7 +4021,7 @@ dependencies = [ "mio", "notify-types", "walkdir", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -4261,7 +4271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ "bitflags 2.9.1", - "dispatch2", + "dispatch2 0.3.0", "objc2 0.6.1", ] @@ -4539,9 +4549,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owned_ttf_parser" -version = "0.25.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" dependencies = [ "ttf-parser 0.25.1", ] @@ -4626,7 +4636,7 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.13", "smallvec", "windows-targets 0.52.6", ] @@ -4801,16 +4811,17 @@ dependencies = [ [[package]] name = "polling" -version = "3.10.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.5.2", "pin-project-lite", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.0.7", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -4819,6 +4830,21 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.2" @@ -4880,9 +4906,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.96" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beef09f85ae72cea1ef96ba6870c51e6382ebfa4f0e85b643459331f3daa5be0" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -4953,9 +4979,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -5007,9 +5033,9 @@ checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" [[package]] name = "rangemap" -version = "1.6.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223" +checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" [[package]] name = "raw-window-handle" @@ -5047,9 +5073,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags 2.9.1", ] @@ -5067,35 +5093,15 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ "getrandom 0.2.16", "libredox", "thiserror 2.0.12", ] -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "regex" version = "1.11.1" @@ -5164,13 +5170,13 @@ dependencies = [ [[package]] name = "rfd" -version = "0.15.4" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" +checksum = "80c844748fdc82aae252ee4594a89b6e7ebef1063de7951545564cbc4e57075d" dependencies = [ "ashpd", "block2 0.6.1", - "dispatch2", + "dispatch2 0.2.0", "js-sys", "log", "objc2 0.6.1", @@ -5188,9 +5194,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.52" +version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" dependencies = [ "bytemuck", ] @@ -5262,9 +5268,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -5307,22 +5313,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "rustybuzz" @@ -5335,8 +5341,26 @@ dependencies = [ "libm", "smallvec", "ttf-parser 0.21.1", - "unicode-bidi-mirroring", - "unicode-ccc", + "unicode-bidi-mirroring 0.2.0", + "unicode-ccc 0.2.0", + "unicode-properties", + "unicode-script", +] + +[[package]] +name = "rustybuzz" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" +dependencies = [ + "bitflags 2.9.1", + "bytemuck", + "core_maths", + "log", + "smallvec", + "ttf-parser 0.25.1", + "unicode-bidi-mirroring 0.4.0", + "unicode-ccc 0.4.0", "unicode-properties", "unicode-script", ] @@ -5378,30 +5402,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.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - [[package]] name = "scoped-tls" version = "1.0.1" @@ -5422,7 +5422,7 @@ checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" dependencies = [ "ab_glyph", "log", - "memmap2 0.9.7", + "memmap2 0.9.5", "smithay-client-toolkit", "tiny-skia", ] @@ -5465,11 +5465,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.10.0", + "indexmap", "itoa", "memchr", "ryu", @@ -5508,38 +5508,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_with" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.10.0", - "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "sha1" version = "0.10.6" @@ -5579,9 +5547,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -5629,9 +5597,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.11" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "slotmap" @@ -5664,7 +5632,7 @@ dependencies = [ "cursor-icon", "libc", "log", - "memmap2 0.9.7", + "memmap2 0.9.5", "pkg-config", "rustix 0.38.44", "thiserror 1.0.69", @@ -5711,12 +5679,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5734,7 +5702,7 @@ dependencies = [ "foreign-types", "js-sys", "log", - "memmap2 0.9.7", + "memmap2 0.9.5", "objc", "raw-window-handle", "redox_syscall 0.4.1", @@ -5801,14 +5769,14 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 5.4.1", + "event-listener 5.4.0", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.5", + "hashbrown", "hashlink", - "indexmap 2.10.0", + "indexmap", "log", "memchr", "once_cell", @@ -6061,7 +6029,7 @@ version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" dependencies = [ - "kurbo 0.11.3", + "kurbo 0.11.2", "siphasher", ] @@ -6293,12 +6261,6 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" -[[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.20.0" @@ -6308,7 +6270,7 @@ dependencies = [ "fastrand 2.3.0", "getrandom 0.3.3", "once_cell", - "rustix 1.0.8", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -6323,12 +6285,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.0.7", + "windows-sys 0.59.0", ] [[package]] @@ -6489,22 +6451,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", - "io-uring", "libc", "mio", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.5.10", "tokio-macros", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -6556,7 +6516,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.10.0", + "indexmap", "toml_datetime", "winnow 0.5.40", ] @@ -6567,11 +6527,11 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.12", + "winnow 0.7.11", ] [[package]] @@ -6670,12 +6630,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - [[package]] name = "unicode-bidi" version = "0.3.18" @@ -6688,12 +6642,24 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" +[[package]] +name = "unicode-bidi-mirroring" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe" + [[package]] name = "unicode-ccc" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" +[[package]] +name = "unicode-ccc" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -6786,11 +6752,11 @@ dependencies = [ "flate2", "fontdb 0.18.0", "imagesize", - "kurbo 0.11.3", + "kurbo 0.11.2", "log", "pico-args", "roxmltree", - "rustybuzz", + "rustybuzz 0.14.1", "simplecss", "siphasher", "strict-num", @@ -6969,13 +6935,13 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.11" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" dependencies = [ "cc", "downcast-rs", - "rustix 1.0.8", + "rustix 0.38.44", "scoped-tls", "smallvec", "wayland-sys", @@ -6983,12 +6949,12 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.11" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" dependencies = [ "bitflags 2.9.1", - "rustix 1.0.8", + "rustix 0.38.44", "wayland-backend", "wayland-scanner", ] @@ -7006,20 +6972,20 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.11" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" +checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182" dependencies = [ - "rustix 1.0.8", + "rustix 0.38.44", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.32.9" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a" dependencies = [ "bitflags 2.9.1", "wayland-backend", @@ -7030,9 +6996,9 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.9" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" +checksum = "4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175" dependencies = [ "bitflags 2.9.1", "wayland-backend", @@ -7043,9 +7009,9 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.9" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" +checksum = "1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf" dependencies = [ "bitflags 2.9.1", "wayland-backend", @@ -7057,9 +7023,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.7" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", "quick-xml", @@ -7068,22 +7034,22 @@ dependencies = [ [[package]] name = "wayland-server" -version = "0.31.10" +version = "0.31.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbd4f3aba6c9fba70445ad2a484c0ef0356c1a9459b1e8e435bedc1971a6222" +checksum = "485dfb8ccf0daa0d34625d34e6ac15f99e550a7999b6fd88a0835ccd37655785" dependencies = [ "bitflags 2.9.1", "downcast-rs", - "rustix 1.0.8", + "rustix 0.38.44", "wayland-backend", "wayland-scanner", ] [[package]] name = "wayland-sys" -version = "0.31.7" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -7128,7 +7094,7 @@ dependencies = [ "document-features", "js-sys", "log", - "naga", + "naga 22.1.0", "parking_lot 0.12.4", "profiling", "raw-window-handle", @@ -7137,9 +7103,32 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 22.1.0", + "wgpu-hal 22.0.0", + "wgpu-types 22.0.0", +] + +[[package]] +name = "wgpu" +version = "26.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798" +dependencies = [ + "arrayvec", + "bitflags 2.9.1", + "cfg-if", + "cfg_aliases 0.2.1", + "document-features", + "hashbrown", + "log", + "portable-atomic", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wgpu-core 26.0.1", + "wgpu-hal 26.0.4", + "wgpu-types 26.0.0", ] [[package]] @@ -7149,13 +7138,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ "arrayvec", - "bit-vec", + "bit-vec 0.7.0", "bitflags 2.9.1", "cfg_aliases 0.1.1", "document-features", - "indexmap 2.10.0", + "indexmap", "log", - "naga", + "naga 22.1.0", "once_cell", "parking_lot 0.12.4", "profiling", @@ -7163,8 +7152,46 @@ dependencies = [ "rustc-hash 1.1.0", "smallvec", "thiserror 1.0.69", - "wgpu-hal", - "wgpu-types", + "wgpu-hal 22.0.0", + "wgpu-types 22.0.0", +] + +[[package]] +name = "wgpu-core" +version = "26.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9" +dependencies = [ + "arrayvec", + "bit-set 0.8.0", + "bit-vec 0.8.0", + "bitflags 2.9.1", + "cfg_aliases 0.2.1", + "document-features", + "hashbrown", + "indexmap", + "log", + "naga 26.0.0", + "once_cell", + "parking_lot 0.12.4", + "portable-atomic", + "profiling", + "raw-window-handle", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 2.0.12", + "wgpu-core-deps-windows-linux-android", + "wgpu-hal 26.0.4", + "wgpu-types 26.0.0", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14" +dependencies = [ + "wgpu-hal 26.0.4", ] [[package]] @@ -7176,13 +7203,13 @@ dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set", + "bit-set 0.6.0", "bitflags 2.9.1", "block", "cfg_aliases 0.1.1", "core-graphics-types", "d3d12", - "glow", + "glow 0.13.1", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", @@ -7194,7 +7221,7 @@ dependencies = [ "libloading", "log", "metal", - "naga", + "naga 22.1.0", "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", @@ -7208,10 +7235,30 @@ dependencies = [ "thiserror 1.0.69", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 22.0.0", "winapi", ] +[[package]] +name = "wgpu-hal" +version = "26.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df2c64ac282a91ad7662c90bc4a77d4a2135bc0b2a2da5a4d4e267afc034b9e" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "cfg_aliases 0.2.1", + "libloading", + "log", + "naga 26.0.0", + "portable-atomic", + "portable-atomic-util", + "raw-window-handle", + "renderdoc-sys", + "thiserror 2.0.12", + "wgpu-types 26.0.0", +] + [[package]] name = "wgpu-types" version = "22.0.0" @@ -7224,12 +7271,23 @@ dependencies = [ ] [[package]] -name = "whoami" -version = "1.6.1" +name = "wgpu-types" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +checksum = "eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2" dependencies = [ - "libredox", + "bitflags 2.9.1", + "bytemuck", + "log", +] + +[[package]] +name = "whoami" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" +dependencies = [ + "redox_syscall 0.5.13", "wasite", ] @@ -7280,7 +7338,7 @@ dependencies = [ "clipboard_wayland", "clipboard_x11", "dnd", - "mime 0.1.0", + "mime", "raw-window-handle", "thiserror 1.0.69", ] @@ -7458,7 +7516,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.2", ] [[package]] @@ -7509,11 +7567,10 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ - "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -7724,7 +7781,7 @@ dependencies = [ "dpi", "js-sys", "libc", - "memmap2 0.9.7", + "memmap2 0.9.5", "ndk 0.9.0", "objc2 0.5.2", "objc2-app-kit 0.2.2", @@ -7766,9 +7823,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -7877,9 +7934,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.27" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" [[package]] name = "xmlwriter" @@ -7961,23 +8018,23 @@ dependencies = [ [[package]] name = "zbus" -version = "5.9.0" +version = "5.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" +checksum = "d3a7c7cee313d044fca3f48fa782cb750c79e4ca76ba7bc7718cd4024cdf6f68" dependencies = [ "async-broadcast 0.7.2", "async-executor", - "async-io 2.5.0", - "async-lock 3.4.1", - "async-process 2.4.0", + "async-io 2.4.1", + "async-lock 3.4.0", + "async-process 2.3.1", "async-recursion", "async-task", "async-trait", "blocking", "enumflags2", - "event-listener 5.4.1", + "event-listener 5.4.0", "futures-core", - "futures-lite 2.6.1", + "futures-lite 2.6.0", "hex", "nix 0.30.1", "ordered-stream", @@ -7987,10 +8044,10 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.7.12", - "zbus_macros 5.9.0", + "winnow 0.7.11", + "zbus_macros 5.7.1", "zbus_names 4.2.0", - "zvariant 5.6.0", + "zvariant 5.5.3", ] [[package]] @@ -8009,16 +8066,16 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.9.0" +version = "5.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" +checksum = "a17e7e5eec1550f747e71a058df81a9a83813ba0f6a95f39c4e218bdc7ba366a" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.104", "zbus_names 4.2.0", - "zvariant 5.6.0", + "zvariant 5.5.3", "zvariant_utils 3.2.0", ] @@ -8041,8 +8098,8 @@ checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.7.12", - "zvariant 5.6.0", + "winnow 0.7.11", + "zvariant 5.5.3", ] [[package]] @@ -8111,9 +8168,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -8139,9 +8196,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-jpeg" -version = "0.4.20" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1f7e205ce79eb2da3cd71c5f55f3589785cb7c79f6a03d1c8d1491bda5d089" +checksum = "7384255a918371b5af158218d131530f694de9ad3815ebdd0453a940485cb0fa" dependencies = [ "zune-core", ] @@ -8162,16 +8219,16 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.6.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" +checksum = "9d30786f75e393ee63a21de4f9074d4c038d52c5b1bb4471f955db249f9dffb1" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 0.7.12", - "zvariant_derive 5.6.0", + "winnow 0.7.11", + "zvariant_derive 5.5.3", "zvariant_utils 3.2.0", ] @@ -8190,9 +8247,9 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "5.6.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" +checksum = "75fda702cd42d735ccd48117b1630432219c0e9616bf6cb0f8350844ee4d9580" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -8223,5 +8280,5 @@ dependencies = [ "serde", "static_assertions", "syn 2.0.104", - "winnow 0.7.12", + "winnow 0.7.11", ] diff --git a/Cargo.toml b/Cargo.toml index a034fbf..984c4a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ description = "A cli presentation system" [dependencies] clap = { version = "4.5.20", features = ["debug", "derive"] } -libcosmic = { git = "https://github.com/pop-os/libcosmic", default-features = false, features = ["debug", "winit", "desktop", "winit_wgpu", "winit_tokio", "tokio", "rfd", "dbus-config", "a11y", "wgpu", "multi-window"] } +libcosmic = { git = "https://github.com/pop-os/libcosmic", default-features = false, features = ["debug", "winit", "winit_wgpu", "tokio", "rfd", "dbus-config", "a11y", "wgpu", "multi-window"] } lexpr = "0.2.7" miette = { version = "7.2.0", features = ["fancy"] } pretty_assertions = "1.4.1" @@ -29,8 +29,7 @@ gstreamer-app = "0.23.3" # cosmic-time = "0.2.0" url = "2" colors-transform = "0.2.11" -# femtovg = { version = "0.16.0", features = ["wgpu"] } -# wgpu = "26.0.1" +femtovg = { version = "0.16.0", features = ["wgpu"] } # mupdf = "0.5.0" # rfd = { version = "0.12.1", features = ["xdg-portal"], default-features = false } @@ -40,8 +39,7 @@ branch = "cosmic" features = ["wgpu"] [profile.dev] -opt-level = 3 +opt-level = 0 [profile.release] opt-level = 3 -debug = true diff --git a/flake.lock b/flake.lock index a01319c..dc70aa1 100644 --- a/flake.lock +++ b/flake.lock @@ -6,33 +6,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1754980813, - "narHash": "sha256-Wr9ei2V4rfr3HR5eJUA7pjMIrHH5o4DtWazQC5UwxHA=", + "lastModified": 1745303921, + "narHash": "sha256-zYucemS2QvJUR5GKJ/u3eZAoe82AKhcxMtNVZDERXsw=", "owner": "nix-community", "repo": "fenix", - "rev": "a1ce805b08279ee4e697b47aa3aa28fe2b335de6", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "fenix_2": { - "inputs": { - "nixpkgs": [ - "naersk", - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src_2" - }, - "locked": { - "lastModified": 1752475459, - "narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=", - "owner": "nix-community", - "repo": "fenix", - "rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f", + "rev": "14850d5984f3696a2972f85f19085e5fb46daa95", "type": "github" }, "original": { @@ -61,15 +39,14 @@ }, "naersk": { "inputs": { - "fenix": "fenix_2", "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1752689277, - "narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=", + "lastModified": 1743800763, + "narHash": "sha256-YFKV+fxEpMgP5VsUcM6Il28lI0NlpM7+oB1XxbBAYCw=", "owner": "nix-community", "repo": "naersk", - "rev": "0e72363d0938b0208d6c646d10649164c43f4d64", + "rev": "ed0232117731a4c19d3ee93aa0c382a8fe754b01", "type": "github" }, "original": { @@ -80,11 +57,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "lastModified": 1744932701, + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", "type": "github" }, "original": { @@ -96,11 +73,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1752077645, - "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { @@ -112,11 +89,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "lastModified": 1745234285, + "narHash": "sha256-GfpyMzxwkfgRVN0cTGQSkTC0OHhEkv3Jf6Tcjm//qZ0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "rev": "c11863f1e964833214b767f4a369c6e6a7aba141", "type": "github" }, "original": { @@ -137,28 +114,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1754926538, - "narHash": "sha256-fuHLsvM5z5/5ia3yL0/mr472wXnxSrtXECa+pspQchA=", + "lastModified": 1745247864, + "narHash": "sha256-QA1Ba8Flz5K+0GbG03HwiX9t46mh/jjKgwavbuKtwMg=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "9db05508ed08a4c952017769b45b57c4ad505872", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "rust-analyzer-src_2": { - "flake": false, - "locked": { - "lastModified": 1752428706, - "narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "591e3b7624be97e4443ea7b5542c191311aa141d", + "rev": "31dbec70c68e97060916d4754c687a3e93c2440f", "type": "github" }, "original": { diff --git a/src/core/slide.rs b/src/core/slide.rs index b394bdb..277034d 100644 --- a/src/core/slide.rs +++ b/src/core/slide.rs @@ -9,8 +9,6 @@ use std::{ }; use tracing::error; -use crate::ui::text_svg::{self, TextSvg}; - use super::songs::Song; #[derive( @@ -236,8 +234,6 @@ pub struct Slide { video_loop: bool, video_start_time: f32, video_end_time: f32, - #[serde(skip)] - pub text_svg: TextSvg, } impl From<&Slide> for Value { @@ -502,8 +498,6 @@ pub struct SlideBuilder { video_loop: Option, video_start_time: Option, video_end_time: Option, - #[serde(skip)] - text_svg: Option, } impl SlideBuilder { @@ -577,14 +571,6 @@ impl SlideBuilder { self } - pub(crate) fn text_svg( - mut self, - text_svg: impl Into, - ) -> Self { - let _ = self.text_svg.insert(text_svg.into()); - self - } - pub(crate) fn build(self) -> Result { let Some(background) = self.background else { return Err(miette!("No background")); @@ -610,45 +596,18 @@ impl SlideBuilder { let Some(video_end_time) = self.video_end_time else { return Err(miette!("No video_end_time")); }; - if let Some(text_svg) = self.text_svg { - Ok(Slide { - background, - text, - font, - font_size, - text_alignment, - audio: self.audio, - video_loop, - video_start_time, - video_end_time, - text_svg, - ..Default::default() - }) - } else { - let text_svg = TextSvg::new(text.clone()) - .alignment(text_alignment) - .fill("#fff") - .shadow(text_svg::shadow(2, 2, 5, "#000000")) - .stroke(text_svg::stroke(3, "#000")) - .font( - text_svg::Font::from(font.clone()) - .size(font_size.try_into().unwrap()), - ) - .build(); - Ok(Slide { - background, - text, - font, - font_size, - text_alignment, - audio: self.audio, - video_loop, - video_start_time, - video_end_time, - text_svg, - ..Default::default() - }) - } + Ok(Slide { + background, + text, + font, + font_size, + text_alignment, + audio: self.audio, + video_loop, + video_start_time, + video_end_time, + ..Default::default() + }) } } diff --git a/src/main.rs b/src/main.rs index 228d234..c1e4db2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -72,10 +72,7 @@ fn main() -> Result<()> { let settings; if args.ui { debug!("main view"); - settings = Settings::default() - .debug(false) - .is_daemon(true) - .transparent(true); + settings = Settings::default().debug(false).is_daemon(true); } else { debug!("window view"); settings = Settings::default() @@ -108,7 +105,6 @@ struct App { library_width: f32, editor_mode: Option, song_editor: SongEditor, - searching: bool, } #[derive(Debug, Clone)] @@ -130,7 +126,6 @@ enum Message { None, DndLeave(Entity), EditorToggle(bool), - SearchFocus, } const HEADER_SPACE: u16 = 6; @@ -208,7 +203,6 @@ impl cosmic::Application for App { library_width: 60.0, editor_mode: None, song_editor, - searching: false, }; let mut batch = vec![]; @@ -249,18 +243,18 @@ impl cosmic::Application for App { debug!("left"); cosmic::Action::App(Message::DndLeave(entity)) }) - .on_dnd_drop::(|entity, data, action| { - debug!("dropped"); - cosmic::Action::App(Message::DndDrop( - entity, data, action, - )) - }) .drag_id(DragId::new()) .on_context(|id| { cosmic::Action::Cosmic( cosmic::app::Action::NavBarContext(id), ) }) + .on_dnd_drop::(|entity, data, action| { + debug!("dropped"); + cosmic::Action::App(Message::DndDrop( + entity, data, action, + )) + }) .context_menu(None) .into_container() // XXX both must be shrink to avoid flex layout from ignoring it @@ -294,25 +288,6 @@ impl cosmic::Application for App { } fn header_start(&self) -> Vec> { - vec![] - } - - fn header_center(&self) -> Vec> { - vec![search_input("Search...", "") - .on_input(|_| Message::None) - .on_submit(|_| Message::None) - .on_focus(Message::SearchFocus) - .width(1200) - .into()] - } - - fn header_end(&self) -> Vec> { - // let editor_toggle = toggler(self.editor_mode.is_some()) - // .label("Editor") - // .spacing(10) - // .width(Length::Shrink) - // .on_toggle(Message::EditorToggle); - let presenter_window = self.windows.get(1); let text = if self.presentation_open { text::body("End Presentation") @@ -320,7 +295,7 @@ impl cosmic::Application for App { text::body("Present") }; - let row = row![ + vec![ tooltip( button::custom( row!( @@ -343,7 +318,9 @@ impl cosmic::Application for App { )), "Enter Edit Mode", TPosition::Bottom, - ), + ) + .into(), + horizontal_space().width(HEADER_SPACE).into(), tooltip( button::custom( row!( @@ -374,7 +351,33 @@ impl cosmic::Application for App { }), "Start Presentation", TPosition::Bottom, - ), + ) + .into(), + horizontal_space().width(HEADER_SPACE).into(), + ] + } + fn header_center(&self) -> Vec> { + vec![search_input("Search...", "") + .on_input(|_| Message::None) + .on_submit(|_| Message::None) + .width(300) + .into()] + } + fn header_end(&self) -> Vec> { + // let editor_toggle = toggler(self.editor_mode.is_some()) + // .label("Editor") + // .spacing(10) + // .width(Length::Shrink) + // .on_toggle(Message::EditorToggle); + + let presenter_window = self.windows.get(1); + let text = if self.presentation_open { + text::body("End Presentation") + } else { + text::body("Present") + }; + + vec![ tooltip( button::custom( row!( @@ -396,10 +399,9 @@ impl cosmic::Application for App { "Open Library", TPosition::Bottom, ) + .into(), + horizontal_space().width(HEADER_SPACE).into(), ] - .spacing(HEADER_SPACE) - .into(); - vec![row] } fn footer(&self) -> Option> { @@ -464,14 +466,6 @@ impl cosmic::Application for App { None } - fn dialog(&self) -> Option> { - if self.searching { - Some(text("hello").into()) - } else { - None - } - } - fn update(&mut self, message: Message) -> Task { match message { Message::Key(key, modifiers) => { @@ -593,16 +587,16 @@ impl cosmic::Application for App { Message::WindowOpened(id, _) => { debug!(?id, "Window opened"); if self.cli_mode - || id > self.core.main_window_id().expect("Cosmic core seems to be missing a main window, was this started in cli mode?") - { - self.presentation_open = true; - if let Some(video) = &mut self.presenter.video { - video.set_muted(false); - } - window::change_mode(id, Mode::Fullscreen) - } else { - Task::none() - } + || id > self.core.main_window_id().expect("Cosmic core seems to be missing a main window, was this started in cli mode?") + { + self.presentation_open = true; + if let Some(video) = &mut self.presenter.video { + video.set_muted(false); + } + window::change_mode(id, Mode::Fullscreen) + } else { + Task::none() + } } Message::WindowClosed(id) => { warn!("Closing window: {id}"); @@ -664,10 +658,6 @@ impl cosmic::Application for App { } Task::none() } - Message::SearchFocus => { - self.searching = true; - Task::none() - } } } diff --git a/src/ui/mod.rs b/src/ui/mod.rs index ff81e8c..259e2c1 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -6,7 +6,6 @@ pub mod presenter; pub mod song_editor; pub mod text_svg; pub mod video; -pub mod widgets; pub enum EditorMode { Song, diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index 1c3afac..73a359f 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -33,7 +33,6 @@ use url::Url; use crate::{ core::{service_items::ServiceItemModel, slide::Slide}, ui::text_svg::{self, Font as SvgFont}, - // ui::widgets::slide_text, BackgroundKind, }; @@ -89,7 +88,7 @@ impl Presenter { gst::init().into_diagnostic()?; let pipeline = format!( - r#"playbin uri="{}" video-sink="videoscale ! videoconvert ! appsink name=lumina_video drop=true caps=video/x-raw,format=NV12,pixel-aspect-ratio=1/1""#, + r#"playbin uri="{}" video-sink="videoscale ! videoconvert ! appsink name=iced_video drop=true caps=video/x-raw,format=NV12,pixel-aspect-ratio=1/1""#, url.as_str() ); @@ -109,14 +108,13 @@ impl Presenter { .unwrap() .downcast::() .unwrap(); - let video_sink = bin.by_name("lumina_video").unwrap(); + let video_sink = bin.by_name("iced_video").unwrap(); let video_sink = video_sink.downcast::().unwrap(); let result = Video::from_gst_pipeline(pipeline, video_sink, None); result.into_diagnostic() } - pub fn with_items(items: ServiceItemModel) -> Self { let slides = items.to_slides().unwrap_or_default(); let video = { @@ -547,96 +545,90 @@ pub(crate) fn slide_view( ) -> Element<'_, Message> { responsive(move |size| { let width = size.height * 16.0 / 9.0; + let font_size = scale_font(slide.font_size() as f32, width); let slide_text = slide.text(); + // SVG based // let font = SvgFont::from(font).size(font_size.floor() as u8); - let text_container = if delegate { - // text widget based - let font_size = - scale_font(slide.font_size() as f32, width); - let lines = slide_text.lines(); - let text: Vec> = lines - .map(|t| { - rich_text([span(format!("{}\n", t)) - .background( - Background::Color(Color::BLACK) - .scale_alpha(0.4), - ) - .border(border::rounded(10)) - .padding(10)]) + // let text = text_svg::TextSvg::new() + // .text(&slide_text) + // .fill("#fff") + // .shadow(text_svg::shadow(2, 2, 5, "#000000")) + // .stroke(text_svg::stroke(3, "#000")) + // .font(font) + // .view() + // .map(|m| Message::None); + + // text widget based + let lines = slide_text.lines(); + let chars = lines + .map(|t| t.chars().map(|c| format!("{}\n", c))) + .collect(); + let mut spans = vec![]; + for c in chars { + spans.push( + span(format!("{}\n", c)) .size(font_size) .font(font) - .center() - .into() - // let chars: Vec = t - // .chars() - // .map(|c| -> Span { - // let character: String = format!("{}/n", c); - // span(character) - // .size(font_size) - // .font(font) - // .background( - // Background::Color(Color::BLACK) - // .scale_alpha(0.4), - // ) - // .border(border::rounded(10)) - // .padding(10) - }) - .collect(); - let text = Column::with_children(text).spacing(26); - Container::new(text) - .center(Length::Fill) - .align_x(Horizontal::Left) - } else { - // SVG based - let text = slide.text_svg.view().map(|m| Message::None); - Container::new(text) - .center(Length::Fill) - .align_x(Horizontal::Left) - // text widget based - // let font_size = - // scale_font(slide.font_size() as f32, width); - // let lines = slide_text.lines(); - // let text: Vec> = lines - // .map(|t| { - // rich_text([span(format!("{}\n", t)) - // .background( - // Background::Color(Color::BLACK) - // .scale_alpha(0.4), - // ) - // .border(border::rounded(10)) - // .padding(10)]) - // .size(font_size) - // .font(font) - // .center() - // .into() - // // let chars: Vec = t - // // .chars() - // // .map(|c| -> Span { - // // let character: String = format!("{}/n", c); - // // span(character) - // // .size(font_size) - // // .font(font) - // // .background( - // // Background::Color(Color::BLACK) - // // .scale_alpha(0.4), - // // ) - // // .border(border::rounded(10)) - // // .padding(10) - // }) - // .collect(); - // let text = Column::with_children(text).spacing(26); - // Container::new(text) - // .center(Length::Fill) - // .align_x(Horizontal::Left) - }; + .background( + Background::Color(Color::BLACK) + .scale_alpha(0.4), + ) + .border(border::rounded(10)) + .padding(10), + ) + } + let text: Vec> = lines + .map(|t| { + let chars = t + .chars() + .map(|c| { + span(format!("{}\n", c)) + .size(font_size) + .font(font) + .background( + Background::Color(Color::BLACK) + .scale_alpha(0.4), + ) + .border(border::rounded(10)) + .padding(10) + }) + .collect(); + rich_text(chars).center().into() + }) + .collect(); + let text = Column::with_children(text).spacing(26); - // let stroke_text_container = Container::new(stroke_text) - // .center(Length::Fill) - // .align_x(Horizontal::Left); + let lines = slide_text.lines(); + let stroke_text: Vec> = lines + .map(|t| { + let mut stroke_font = font.clone(); + stroke_font.stretch = Stretch::Condensed; + stroke_font.weight = Weight::Bold; + rich_text([span(format!("{}\n", t)) + .size(font_size + 0.3) + .font(stroke_font) + .color(Color::BLACK) + .border(border::rounded(10)) + .padding(10)]) + .center() + .into() + }) + .collect(); + let stroke_text = + Column::with_children(stroke_text).spacing(26); - // let text_stack = - // stack!(stroke_text_container, text_container); + //Next + let text_container = Container::new(text) + .center(Length::Fill) + .align_x(Horizontal::Left); + + let stroke_text_container = Container::new(stroke_text) + .center(Length::Fill) + .align_x(Horizontal::Left); + + let text_stack = + stack!(stroke_text_container, text_container); let black = Container::new(Space::new(0, 0)) .style(|_| { container::background(Background::Color(Color::BLACK)) @@ -664,10 +656,11 @@ pub(crate) fn slide_view( Color::BLACK, )) }) - .center(Length::Fill) + .center_x(width) + .center_y(size.height) .clip(true) - .width(width) - .height(size.height) + .width(Length::Fill) + .height(Length::Fill) } else if let Some(video) = &video { Container::new( VideoPlayer::new(video) @@ -692,11 +685,8 @@ pub(crate) fn slide_view( } } }; - let stack = stack!( - black, - container.center(Length::Fill), - text_container - ); + let stack = + stack!(black, container.center(Length::Fill), text_stack); Container::new(stack).center(Length::Fill).into() }) .into() diff --git a/src/ui/text_svg.rs b/src/ui/text_svg.rs index d690198..6dfa92e 100644 --- a/src/ui/text_svg.rs +++ b/src/ui/text_svg.rs @@ -7,7 +7,7 @@ use colors_transform::Rgb; use cosmic::{ iced::{ font::{Style, Weight}, - Length, Size, + Length, }, prelude::*, widget::{container, lazy, responsive, svg::Handle, Svg}, @@ -61,15 +61,6 @@ impl From for Font { } } -impl From for Font { - fn from(value: String) -> Self { - Self { - name: value, - ..Default::default() - } - } -} - impl From<&str> for Font { fn from(value: &str) -> Self { Self { @@ -177,9 +168,8 @@ pub enum Message { } impl TextSvg { - pub fn new(text: impl Into) -> Self { + pub fn new() -> Self { Self { - text: text.into(), ..Default::default() } } @@ -216,7 +206,7 @@ impl TextSvg { self } - pub fn build(mut self) -> Self { + pub fn view<'a>(self) -> Element<'a, Message> { let shadow = if let Some(shadow) = &self.shadow { format!("", shadow.offset_x, @@ -234,58 +224,38 @@ impl TextSvg { } else { "".into() }; - let size = Size::new(640.0, 360.0); - let total_lines = self.text.lines().count(); - let half_lines = (total_lines / 2) as f32; - let middle_position = size.height / 2.0; - let line_spacing = 10.0; - let text_and_line_spacing = - self.font.size as f32 + line_spacing; - let starting_y_position = - middle_position - (half_lines * text_and_line_spacing); + container( + responsive(move |s| { + let total_lines = self.text.lines().count(); + let half_lines = (total_lines / 2) as f32; + let middle_position = s.height / 2.0; + let line_spacing = 10.0; + let text_and_line_spacing = self.font.size as f32 + line_spacing; + let starting_y_position = middle_position - (half_lines * text_and_line_spacing); - let text_pieces: Vec = self - .text - .lines() - .enumerate() - .map(|(index, text)| { - format!( - "{}", - starting_y_position - + (index as f32 * text_and_line_spacing), - text - ) - }) - .collect(); - let text: String = text_pieces.join("\n"); + let text_pieces: Vec = self.text.lines() + .enumerate() + .map(|(index, text)| { + format!("{}", starting_y_position + (index as f32 * text_and_line_spacing), text) + }).collect(); + let text: String = text_pieces.join("\n"); - let final_svg = format!("{}{}", - size.width, - size.height, + let final_svg = format!("{}{}", + s.width, + s.height, shadow, self.font.name, self.font.size, self.fill, stroke, text); - let handle = Handle::from_memory( - Box::leak( - ::clone(&final_svg) - .into_boxed_str(), - ) - .as_bytes(), - ); - self.handle = Some(handle); - self - } - pub fn view<'a>(&self) -> Element<'a, Message> { - container( - Svg::new(self.handle.clone().unwrap()) - .width(Length::Fill) - .height(Length::Fill), - ) - .width(Length::Fill) - .height(Length::Fill) - .into() + // debug!(final_svg); +Svg::new(Handle::from_memory( + Box::leak(::clone(&final_svg).into_boxed_str()).as_bytes(), + )) + .width(Length::Fill) + .height(Length::Fill) + .into() + })).width(Length::Fill).height(Length::Fill).into() } fn text_spans(&self) -> Vec { diff --git a/src/ui/widgets/mod.rs b/src/ui/widgets/mod.rs deleted file mode 100644 index d786591..0000000 --- a/src/ui/widgets/mod.rs +++ /dev/null @@ -1 +0,0 @@ -// pub mod slide_text; diff --git a/src/ui/widgets/slide_text.rs b/src/ui/widgets/slide_text.rs index d393b44..e69de29 100644 --- a/src/ui/widgets/slide_text.rs +++ b/src/ui/widgets/slide_text.rs @@ -1,116 +0,0 @@ -use cosmic::iced::advanced::layout::{self, Layout}; -use cosmic::iced::advanced::renderer; -use cosmic::iced::advanced::widget::{self, Widget}; -use cosmic::iced::border; -use cosmic::iced::mouse; -use cosmic::iced::{Color, Element, Length, Rectangle, Size}; -use femtovg::renderer::WGPURenderer; -use femtovg::{Canvas, TextContext}; - -pub struct SlideText { - text: String, - font_size: f32, - canvas: Canvas, -} - -impl SlideText { - pub async fn new(text: &str) -> Self { - let backends = wgpu::Backends::PRIMARY; - let instance = - wgpu::Instance::new(wgpu::InstanceDescriptor { - backends, - ..Default::default() - }); - let surface = - instance.create_surface(window.clone()).unwrap(); - let adapter = cosmic::iced::wgpu::util::initialize_adapter_from_env_or_default(&instance, Some(&surface)) - .await - .expect("Failed to find an appropriate adapter"); - let (device, queue) = adapter - .request_device( - &wgpu::DeviceDescriptor { - label: None, - required_features: adapter.features(), - required_limits: wgpu::Limits::default(), - memory_hints: wgpu::MemoryHints::Performance, - }, - None, - ) - .await - .expect("failed to device it"); - let renderer = WGPURenderer::new(device, queue); - let canvas = - Canvas::new_with_text_context(renderer, text_context) - .expect("oops femtovg"); - Self { - text: text.to_owned(), - font_size: 50.0, - canvas, - } - } -} - -fn get_canvas(text_context: TextContext) -> Canvas { - let renderer = WGPURenderer::new(device, queue); - Canvas::new_with_text_context(renderer, text_context) - .expect("oops femtovg") -} - -pub fn slide_text(text: &str) -> SlideText { - SlideText::new(text) -} - -impl Widget - for SlideText -where - Renderer: renderer::Renderer, -{ - fn size(&self) -> Size { - Size { - width: Length::Shrink, - height: Length::Shrink, - } - } - - fn layout( - &self, - _tree: &mut widget::Tree, - _renderer: &Renderer, - _limits: &layout::Limits, - ) -> layout::Node { - layout::Node::new(Size::new( - self.font_size * 2.0, - self.font_size * 2.0, - )) - } - - fn draw( - &self, - _state: &widget::Tree, - renderer: &mut Renderer, - _theme: &Theme, - _style: &renderer::Style, - layout: Layout<'_>, - _cursor: mouse::Cursor, - _viewport: &Rectangle, - ) { - renderer.fill_quad( - renderer::Quad { - bounds: layout.bounds(), - border: border::rounded(self.font_size), - ..renderer::Quad::default() - }, - Color::BLACK, - ); - } -} - -impl From - for Element<'_, Message, Theme, Renderer> -where - Renderer: renderer::Renderer, -{ - fn from(circle: SlideText) -> Self { - Self::new(circle) - } -}