From 0b7803077a92c601521a24fff347c42544638c36 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 1 Jul 2026 23:17:18 -0400 Subject: [PATCH 01/35] feat: blur --- Cargo.lock | 1020 +++++++++++++++++++++++------------------------- Cargo.toml | 19 +- src/common.rs | 85 +++- src/greeter.rs | 88 +++-- src/locker.rs | 79 ++-- 5 files changed, 683 insertions(+), 608 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71d5b2d..3362f51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -181,7 +181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.1", + "bitflags 2.13.0", "cc", "jni", "libc", @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "apply" @@ -237,9 +237,9 @@ checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "arc-swap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3a1fd6f75306b68087b831f025c712524bcb19aad54e557b1129cfa0a2b207" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" dependencies = [ "rustversion", ] @@ -252,7 +252,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -263,9 +263,9 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe" [[package]] name = "as-raw-xcb-connection" @@ -433,7 +433,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -468,7 +468,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -526,21 +526,21 @@ dependencies = [ [[package]] name = "auto_enums" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65398a2893f41bce5c9259f6e1a4f03fbae40637c1bdc755b4f387f48c613b03" +checksum = "2e4487600931c9a89f8db7ffbdf3fbdd45bb7bd85e26861f659a463cd0dff966" dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "av-scenechange" @@ -621,7 +621,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -631,8 +631,8 @@ dependencies = [ "quote", "regex", "rustc-hash 1.1.0", - "shlex", - "syn 2.0.117", + "shlex 1.3.0", + "syn 2.0.118", ] [[package]] @@ -664,9 +664,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" dependencies = [ "serde_core", ] @@ -728,23 +728,32 @@ dependencies = [ [[package]] name = "borsh" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +checksum = "2f3f6da4992df95bbcd9af42a6c7dcb994498fc9048230405f3b36ff7cd3f145" dependencies = [ "bytes", "cfg_aliases", ] [[package]] -name = "bstr" -version = "1.12.1" +name = "bs58" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cee35f73844aa3014bb606320a6c1f010249dbdf43342fe54b5a4f6a8ed4b79" dependencies = [ "memchr", "regex-automata", - "serde", + "serde_core", ] [[package]] @@ -758,15 +767,15 @@ dependencies = [ [[package]] name = "built" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" +checksum = "5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9" [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "by_address" @@ -791,7 +800,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -802,9 +811,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" [[package]] name = "calendrical_calculations" @@ -822,7 +831,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "polling", "rustix 1.1.4", "slab", @@ -843,14 +852,14 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.61" +version = "1.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" +checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex", + "shlex 2.0.1", ] [[package]] @@ -876,9 +885,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", @@ -1035,9 +1044,9 @@ dependencies = [ [[package]] name = "configparser" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" +checksum = "b46dec724fd22199ebde05033a0cbae453bc3b1ecff11eb6a6bb3eec4b90c6a4" [[package]] name = "core-foundation" @@ -1095,7 +1104,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "core-foundation 0.10.1", "libc", ] @@ -1111,8 +1120,8 @@ dependencies = [ [[package]] name = "cosmic-applets-config" -version = "1.0.2" -source = "git+https://github.com/pop-os/cosmic-applets#c003924f0816efff1cf5bbfcdf1d7e1f1f36cae5" +version = "1.0.15" +source = "git+https://github.com/pop-os/cosmic-applets#0441c67b1056cd1033b2d7fdbf139b47408edd1a" dependencies = [ "cosmic-config", "serde", @@ -1121,7 +1130,7 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" -source = "git+https://github.com/pop-os/cosmic-bg#b1ca4c180ab29dd185472b777ab0abdb1f96ccaf" +source = "git+https://github.com/pop-os/cosmic-bg#71bb96b3eaad167c3cb639979d2edb7559866c2f" dependencies = [ "cosmic-config", "derive_setters", @@ -1133,9 +1142,9 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//#8a566624225989629171e732a29e643097a6bea2" +source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cosmic-protocols", "libc", "smithay-client-toolkit", @@ -1146,12 +1155,12 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#b5a1a6d3179810627fa0bffac7bd5d78c7df4fa0" +source = "git+https://github.com/pop-os/cosmic-comp#f5e0ba1594e428954f2a1647b03564be1afaec4a" dependencies = [ "cosmic-config", "cosmic-randr-shell", "input", - "ron 0.12.1", + "ron 0.12.2", "serde", "tracing", ] @@ -1159,7 +1168,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "atomicwrites", "calloop", @@ -1170,7 +1179,7 @@ dependencies = [ "iced_futures", "known-folders", "notify", - "ron 0.12.1", + "ron 0.12.2", "serde", "tokio", "tracing", @@ -1181,16 +1190,16 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "cosmic-dbus-a11y" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -1198,9 +1207,9 @@ dependencies = [ [[package]] name = "cosmic-dbus-networkmanager" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "derive_builder", "jiff", "procfs", @@ -1211,12 +1220,12 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#9c562fe3ecf03241a46a60c0078cd6ea10bd75ce" +source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", "memchr", - "memmap2 0.9.10", + "memmap2 0.9.11", "thiserror 2.0.18", "tracing", "xdg", @@ -1257,9 +1266,9 @@ dependencies = [ "logind-zbus", "pam-client", "pwd", - "ron 0.12.1", + "ron 0.12.2", "rust-embed", - "shlex", + "shlex 1.3.0", "timedate-zbus", "tokio", "tracing", @@ -1297,7 +1306,7 @@ dependencies = [ "libc", "nix", "pwd", - "ron 0.12.1", + "ron 0.12.2", "serde", "tokio", "tracing", @@ -1311,9 +1320,9 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//#8a566624225989629171e732a29e643097a6bea2" +source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1335,7 +1344,7 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#cb58af2be4e96dae60dfeb4fb7c11f64d0832de5" +source = "git+https://github.com/pop-os/cosmic-settings#9f9311235ec7fcbf27e28ae62326ff2f4bb9441d" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1349,7 +1358,7 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#cb58af2be4e96dae60dfeb4fb7c11f64d0832de5" +source = "git+https://github.com/pop-os/cosmic-settings#9f9311235ec7fcbf27e28ae62326ff2f4bb9441d" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1362,7 +1371,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#716da6d6af0b252e2f78aba2ad72ee19ae0241e0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#276fef9834b05c57b67e8ba36b74bea1ba690cee" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1375,7 +1384,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -1383,7 +1392,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#716da6d6af0b252e2f78aba2ad72ee19ae0241e0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#276fef9834b05c57b67e8ba36b74bea1ba690cee" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1396,7 +1405,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "fontdb", "harfrust", "linebender_resource_handle", @@ -1404,7 +1413,7 @@ dependencies = [ "rangemap", "rustc-hash 2.1.2", "self_cell", - "skrifa", + "skrifa 0.40.0", "smol_str", "swash", "sys-locale", @@ -1417,15 +1426,16 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "almost", "configparser", "cosmic-config", "csscolorparser", "dirs", + "hex_color", "palette", - "ron 0.12.1", + "ron 0.12.2", "serde", "serde_json", "thiserror 2.0.18", @@ -1576,7 +1586,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1590,7 +1600,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1603,7 +1613,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1614,7 +1624,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1625,7 +1635,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1636,7 +1646,7 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core 0.23.0", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1645,13 +1655,44 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" +[[package]] +name = "defmt" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b" +dependencies = [ + "defmt-parser", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.18", +] + [[package]] name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ - "powerfmt", "serde_core", ] @@ -1673,7 +1714,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1683,7 +1724,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1695,7 +1736,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1706,7 +1747,7 @@ checksum = "362f47930db19fe7735f527e6595e4900316b893ebf6d48ad3d31be928d57dd6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1746,7 +1787,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -1754,13 +1795,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1777,7 +1818,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.1", + "bitflags 2.13.0", "mime 0.1.0", "raw-window-handle", "smithay-client-toolkit", @@ -1802,7 +1843,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" [[package]] name = "drm" @@ -1810,7 +1851,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "drm-ffi", "drm-fourcc", @@ -1857,9 +1898,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "endi" @@ -1896,7 +1937,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -1916,7 +1957,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -2173,7 +2214,7 @@ checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905" dependencies = [ "fontconfig-parser", "log", - "memmap2 0.9.10", + "memmap2 0.9.11", "slotmap", "tinyvec", "ttf-parser", @@ -2197,7 +2238,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -2308,7 +2349,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -2385,15 +2426,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", - "wasip2", - "wasip3", ] [[package]] @@ -2496,7 +2535,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2507,7 +2546,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", ] [[package]] @@ -2557,10 +2596,10 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "core_maths", - "read-fonts", + "read-fonts 0.37.0", "smallvec", ] @@ -2592,9 +2631,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" @@ -2602,12 +2641,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - [[package]] name = "hermit-abi" version = "0.3.9" @@ -2626,6 +2659,17 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex_color" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0" +dependencies = [ + "arrayvec", + "rand 0.8.6", + "serde", +] + [[package]] name = "hexf-parse" version = "0.2.1" @@ -2682,7 +2726,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.118", "unic-langid", ] @@ -2696,7 +2740,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -2726,7 +2770,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "dnd", "iced_accessibility", @@ -2747,7 +2791,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "accesskit", "accesskit_winit", @@ -2756,9 +2800,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytes", "cosmic-client-toolkit", "dnd", @@ -2773,6 +2817,7 @@ dependencies = [ "serde", "smol_str", "thiserror 2.0.18", + "unicode-segmentation", "web-time", "window_clipboard", ] @@ -2780,7 +2825,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "iced_core", "iced_futures", @@ -2790,7 +2835,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "futures", "iced_core", @@ -2804,9 +2849,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "cosmic-text", "half", @@ -2825,7 +2870,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "iced_graphics", "iced_runtime", @@ -2834,7 +2879,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2846,7 +2891,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -2861,7 +2906,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "bytemuck", "cosmic-text", @@ -2878,10 +2923,10 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "cosmic-client-toolkit", "cryoglyph", @@ -2909,7 +2954,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -2927,7 +2972,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "cosmic-client-toolkit", "cursor-icon", @@ -3028,9 +3073,9 @@ checksum = "846b0857ca091204be3c874bc93daaf89d4777e8d2d20b0d3ffe8f671d98014b" [[package]] name = "icu_collator" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b521b92a2666061ddda902769d8a4cf730b5c9529a845cc1b69770b12a6c9a71" +checksum = "8bbdf98e5e0aa827770acee171ebb568aaab975a36b56afdb5fd0e2f525750bb" dependencies = [ "icu_collator_data", "icu_collections", @@ -3355,12 +3400,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f2f8aeca682d874a5247084aa4fb7d1cef9ba45d889c21209a8818dcaaa0ec9" -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "ident_case" version = "1.0.1" @@ -3434,9 +3473,9 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" -version = "1.12.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40fac9d56ed6437b198fddba683305e8e2d651aa42647f00f5ae542e7f5c94a2" +checksum = "89194689a993ab15268672e99e7b0e19da2da3268ac682e8f02d29d4d1434cd7" [[package]] name = "indenter" @@ -3462,27 +3501,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.17.0", + "hashbrown 0.17.1", "serde", "serde_core", ] [[package]] name = "inotify" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" +checksum = "533e68a5842e734946fe159fb03fc9bbbb254f590dd0d8ad321ae5ff7beca2c1" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "inotify-sys", "libc", ] [[package]] name = "inotify-sys" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "6fda9741ca16536952da2ecaa6105c2f4653fa6f0724681df6d2414c4106d0b0" dependencies = [ "libc", ] @@ -3493,7 +3532,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9793345a65d71317763a33066b5d8351f8760dde8d4930fe9e39b5f14a7959d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "input-sys", "libc", "log", @@ -3514,7 +3553,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -3579,17 +3618,18 @@ checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" [[package]] name = "jiff" -version = "0.2.24" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +checksum = "ccfe6121cbe750cf81efa362d85c0bde7ea298ec43092d3a193baca59cdbd634" dependencies = [ + "defmt", "jiff-static", "jiff-tzdb-platform", "log", "portable-atomic", "portable-atomic-util", "serde_core", - "windows-sys 0.61.2", + "windows-link 0.2.1", ] [[package]] @@ -3605,13 +3645,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.24" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +checksum = "e165e897f662d428f3cd3828a919dbe067c2d42bb1031eede74ef9d27ecdedd2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -3656,7 +3696,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -3684,7 +3724,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -3699,13 +3739,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ "cfg-if", "futures-util", - "once_cell", "wasm-bindgen", ] @@ -3735,7 +3774,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "serde", ] @@ -3767,9 +3806,9 @@ dependencies = [ [[package]] name = "kqueue" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +checksum = "273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5" dependencies = [ "kqueue-sys", "libc", @@ -3777,11 +3816,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b65860415f949f23fa882e669f2dbd4a0f0eeb1acdd56790b30494afd7da2f" +checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "libc", ] @@ -3818,12 +3857,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "lebe" version = "0.5.3" @@ -3839,7 +3872,7 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#528513725d3856e5094cfbff5f0dc1a79d6c4018" +source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" dependencies = [ "apply", "ashpd 0.12.3", @@ -3852,6 +3885,7 @@ dependencies = [ "cosmic-theme", "css-color", "derive_setters", + "enumflags2", "float-cmp 0.10.0", "freedesktop-desktop-entry", "futures", @@ -3878,7 +3912,7 @@ dependencies = [ "rust-embed", "rustix 1.1.4", "serde", - "shlex", + "shlex 1.3.0", "slotmap", "taffy", "thiserror 2.0.18", @@ -3891,9 +3925,9 @@ dependencies = [ [[package]] name = "libfuzzer-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" +checksum = "a9fd2f41a1cba099f79a0b6b6c35656cf7c03351a7bae8ff0f28f25270f929d2" dependencies = [ "arbitrary", "cc", @@ -3917,14 +3951,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "libc", "plain", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", ] [[package]] @@ -4006,9 +4040,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "logind-zbus" @@ -4117,9 +4151,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "memmap2" @@ -4132,9 +4166,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" dependencies = [ "libc", ] @@ -4154,7 +4188,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4205,9 +4239,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "log", @@ -4239,7 +4273,7 @@ checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.1", + "bitflags 2.13.0", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -4263,7 +4297,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "jni-sys 0.3.1", "log", "ndk-sys", @@ -4295,11 +4329,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.31.2" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cfg-if", "cfg_aliases", "libc", @@ -4345,7 +4379,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "fsevent-sys", "inotify", "kqueue", @@ -4363,7 +4397,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", ] [[package]] @@ -4410,9 +4444,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -4422,7 +4456,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -4485,7 +4519,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -4548,7 +4582,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4564,7 +4598,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -4577,7 +4611,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4589,7 +4623,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "dispatch2", "objc2 0.6.4", @@ -4601,7 +4635,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "libc", "objc2-core-foundation", ] @@ -4624,7 +4658,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "objc2-core-foundation", "objc2-core-graphics", ] @@ -4641,7 +4675,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4653,7 +4687,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -4665,7 +4699,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4677,7 +4711,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4690,7 +4724,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -4728,9 +4762,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orbclient" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" +checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" dependencies = [ "libc", "libredox", @@ -4772,11 +4806,11 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -4816,7 +4850,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -4941,7 +4975,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -4954,7 +4988,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "uncased", ] @@ -4985,22 +5019,22 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -5057,7 +5091,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "crc32fast", "fdeflate", "flate2", @@ -5131,16 +5165,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -5169,7 +5193,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -5189,7 +5213,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "version_check", "yansi", ] @@ -5200,7 +5224,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "procfs-core", "rustix 1.1.4", ] @@ -5211,7 +5235,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "hex", ] @@ -5231,7 +5255,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -5258,9 +5282,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.39.3" +version = "0.39.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721da970c312655cde9b4ffe0547f20a8494866a4af5ff51f18b7c633d0c870b" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" dependencies = [ "memchr", "serde", @@ -5268,9 +5292,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.45" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -5293,6 +5317,8 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ + "libc", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] @@ -5302,10 +5328,20 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha", + "rand_chacha 0.9.0", "rand_core 0.9.5", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.9.0" @@ -5321,6 +5357,9 @@ name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] [[package]] name = "rand_core" @@ -5371,7 +5410,7 @@ dependencies = [ "paste", "profiling", "rand 0.9.4", - "rand_chacha", + "rand_chacha 0.9.0", "simd_helpers", "thiserror 2.0.18", "v_frame", @@ -5430,22 +5469,42 @@ dependencies = [ "font-types", ] +[[package]] +name = "read-fonts" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4ed38b89c2c77ff968c524145ad65fb010f38af5c7a224b53b81d47ac2daa81" +dependencies = [ + "bytemuck", + "font-types", +] + +[[package]] +name = "redox_event" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5018d583d6d2f5499352aea8d177e9067d1eb03ab17c78169d5ba7a30001b15" +dependencies = [ + "bitflags 2.13.0", + "libredox", +] + [[package]] name = "redox_syscall" version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", ] [[package]] name = "redox_syscall" -version = "0.7.5" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" +checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", ] [[package]] @@ -5476,14 +5535,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "regex" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" dependencies = [ "aho-corasick", "memchr", @@ -5504,9 +5563,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "renderdoc-sys" @@ -5571,7 +5630,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ "base64", - "bitflags 2.11.1", + "bitflags 2.13.0", "serde", "serde_derive", "unicode-ident", @@ -5579,11 +5638,11 @@ dependencies = [ [[package]] name = "ron" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" +checksum = "81116b9531d61eabc41aeb228e4b6b2435bcca3233b98cf3b3077d4e6e9debb3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "once_cell", "serde", "serde_derive", @@ -5629,7 +5688,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.117", + "syn 2.0.118", "walkdir", ] @@ -5676,7 +5735,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -5689,7 +5748,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys 0.12.1", @@ -5708,7 +5767,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "core_maths", "log", @@ -5773,7 +5832,7 @@ checksum = "1dd3accc0f3f4bbaf2c9e1957a030dc582028130c67660d44c0a0345a22ca69b" dependencies = [ "ab_glyph", "log", - "memmap2 0.9.10", + "memmap2 0.9.11", "smithay-client-toolkit", "tiny-skia", ] @@ -5829,14 +5888,14 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "indexmap 2.14.0", "itoa", @@ -5854,16 +5913,17 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "serde_with" -version = "3.19.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05839ce67618e14a09b286535c0d9c94e85ef25469b0e13cb4f844e5593eb19" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ "base64", + "bs58", "chrono", "hex", "indexmap 1.9.3", @@ -5878,14 +5938,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.19.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2ebbe86054f9b45bc3881e865683ccfaccce97b9b4cb53f3039d67f355a334" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -5914,6 +5974,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -5977,7 +6043,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" dependencies = [ "bytemuck", - "read-fonts", + "read-fonts 0.37.0", +] + +[[package]] +name = "skrifa" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c34617370ae968efb7161bb2beb517d9084659aae19e24b89e3db25b46e4564" +dependencies = [ + "bytemuck", + "read-fonts 0.39.2", ] [[package]] @@ -5997,9 +6073,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" [[package]] name = "smithay-client-toolkit" @@ -6007,14 +6083,14 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "calloop", "calloop-wayland-source", "cursor-icon", "libc", "log", - "memmap2 0.9.10", + "memmap2 0.9.11", "pkg-config", "rustix 1.1.4", "thiserror 2.0.18", @@ -6054,9 +6130,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", "windows-sys 0.61.2", @@ -6077,7 +6153,7 @@ dependencies = [ "foreign-types", "js-sys", "log", - "memmap2 0.9.10", + "memmap2 0.9.11", "objc", "raw-window-handle", "redox_syscall 0.5.18", @@ -6098,7 +6174,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.1", + "bitflags 2.13.0", ] [[package]] @@ -6146,11 +6222,11 @@ dependencies = [ [[package]] name = "swash" -version = "0.2.7" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64" +checksum = "0811b01ca2c4e8718760713911feaf4675c24f94e50530a015ec646cfb622f7c" dependencies = [ - "skrifa", + "skrifa 0.42.1", "yazi", "zeno", ] @@ -6168,9 +6244,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", "quote", @@ -6185,7 +6261,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -6222,7 +6298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix 1.1.4", "windows-sys 0.61.2", @@ -6263,7 +6339,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -6274,7 +6350,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -6288,12 +6364,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.47" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", @@ -6305,15 +6380,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" dependencies = [ "num-conv", "time-core", @@ -6322,7 +6397,7 @@ dependencies = [ [[package]] name = "timedate-zbus" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -6394,9 +6469,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.2" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "110a78583f19d5cdb2c5ccf321d1290344e71313c6c37d43520d386027d18386" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -6418,7 +6493,7 @@ checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -6452,14 +6527,14 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap 2.14.0", "toml_datetime", "toml_parser", - "winnow 1.0.2", + "winnow 1.0.3", ] [[package]] @@ -6468,7 +6543,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.2", + "winnow 1.0.3", ] [[package]] @@ -6491,7 +6566,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -6580,9 +6655,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "udev" @@ -6685,9 +6760,9 @@ checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee" [[package]] name = "unicode-segmentation" -version = "1.13.2" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "unicode-vo" @@ -6707,16 +6782,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "upower_dbus" version = "0.3.2" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "serde", "serde_repr", @@ -6783,9 +6852,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.23.1" +version = "1.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" dependencies = [ "js-sys", "serde_core", @@ -6845,27 +6914,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ - "wit-bindgen 0.57.1", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if", "once_cell", @@ -6876,9 +6936,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" dependencies = [ "js-sys", "wasm-bindgen", @@ -6886,9 +6946,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6896,60 +6956,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap 2.14.0", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.1", - "hashbrown 0.15.5", - "indexmap 2.14.0", - "semver", -] - [[package]] name = "wasmtimer" version = "0.4.3" @@ -6984,7 +7010,7 @@ version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -6996,7 +7022,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cursor-icon", "wayland-backend", ] @@ -7014,11 +7040,11 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.12" +version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7031,7 +7057,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7044,7 +7070,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7057,7 +7083,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7070,7 +7096,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7095,7 +7121,7 @@ version = "0.31.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -7116,9 +7142,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" dependencies = [ "js-sys", "wasm-bindgen", @@ -7147,7 +7173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" dependencies = [ "arrayvec", - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "cfg-if", "cfg_aliases", @@ -7179,7 +7205,7 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "cfg_aliases", "document-features", @@ -7239,7 +7265,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.11.1", + "bitflags 2.13.0", "block", "bytemuck", "cfg-if", @@ -7283,7 +7309,7 @@ version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "js-sys", "log", @@ -7441,7 +7467,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -7452,7 +7478,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -7775,9 +7801,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cfg_aliases", "cursor-icon", "dpi", @@ -7801,10 +7827,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "android-activity", - "bitflags 2.11.1", + "bitflags 2.13.0", "dpi", "ndk", "raw-window-handle", @@ -7816,9 +7842,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "dispatch2", "dpi", @@ -7838,9 +7864,9 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "memmap2 0.9.10", + "memmap2 0.9.11", "objc2 0.6.4", "objc2-core-foundation", "smol_str", @@ -7853,9 +7879,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cursor-icon", "dpi", "keyboard-types", @@ -7867,14 +7893,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "dpi", "libredox", "orbclient", "raw-window-handle", - "redox_syscall 0.7.5", + "redox_event", "smol_str", "tracing", "winit-core", @@ -7883,9 +7909,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "block2 0.6.2", "dispatch2", "dpi", @@ -7903,15 +7929,15 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "ahash", - "bitflags 2.11.1", + "bitflags 2.13.0", "calloop", "cursor-icon", "dpi", "libc", - "memmap2 0.9.10", + "memmap2 0.9.11", "raw-window-handle", "rustix 1.1.4", "sctk-adwaita", @@ -7929,10 +7955,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "atomic-waker", - "bitflags 2.11.1", + "bitflags 2.13.0", "concurrent-queue", "cursor-icon", "dpi", @@ -7951,9 +7977,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "cursor-icon", "dpi", "raw-window-handle", @@ -7967,9 +7993,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "bytemuck", "calloop", "cursor-icon", @@ -7998,107 +8024,19 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck 0.5.0", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck 0.5.0", - "indexmap 2.14.0", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.1", - "indexmap 2.14.0", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.14.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - [[package]] name = "write16" version = "1.0.0" @@ -8187,7 +8125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9" dependencies = [ "libc", - "memmap2 0.9.10", + "memmap2 0.9.11", "xkeysym", ] @@ -8198,7 +8136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a974f48060a14e95705c01f24ad9c3345022f4d97441b8a36beb7ed5c4a02d" dependencies = [ "libc", - "memmap2 0.9.10", + "memmap2 0.9.11", "xkeysym", ] @@ -8208,7 +8146,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.0", "dlib", "log", "once_cell", @@ -8256,9 +8194,9 @@ checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" [[package]] name = "yoke" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -8273,15 +8211,15 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "synstructure", ] [[package]] name = "zbus" -version = "5.15.0" +version = "5.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" +checksum = "eee682d202a77e4a9f3b2c2bdf48a7b28af5c08c34ddf66f98c93e5e39464285" dependencies = [ "async-broadcast", "async-executor", @@ -8307,7 +8245,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 1.0.2", + "winnow 1.0.3", "zbus_macros", "zbus_names", "zvariant", @@ -8331,7 +8269,7 @@ checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "zbus-lockstep", "zbus_xml", "zvariant", @@ -8339,14 +8277,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.15.0" +version = "5.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" +checksum = "adf1bd45a81a103745b1757754762a26e8cd01e4532e4d6c8ec431624b80d1d6" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "zbus_names", "zvariant", "zvariant_utils", @@ -8359,7 +8297,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow 1.0.2", + "winnow 1.0.3", "zvariant", ] @@ -8383,29 +8321,29 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] name = "zerofrom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] @@ -8418,7 +8356,7 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "synstructure", ] @@ -8454,7 +8392,7 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", ] [[package]] @@ -8504,41 +8442,41 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.11.0" +version = "5.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1567a6ec68df868cbbfde844cfc6d81649fe5109a62b116b19fabd53e618ee" +checksum = "a192a0bde63360d77a7523c833d4b4ce6070a927e2c53246e4c540b1a3e27be0" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 1.0.2", + "winnow 1.0.3", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.11.0" +version = "5.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d5b780599bbde114e39d9a0799577fad1ced5105d38515745f7b3099d8ceda" +checksum = "90bc6cde9c01c511074be97f7ccb6c19d0da89e3f8662e812e999dcfd4638737" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.118", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.3.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" +checksum = "1e8535915cfa75547e559d8c68e8139909a4aeee076831e4ef7fc59d8172c4d6" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.117", - "winnow 1.0.2", + "syn 2.0.118", + "winnow 1.0.3", ] diff --git a/Cargo.toml b/Cargo.toml index 170e1ce..40f57ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -156,12 +156,17 @@ default-features = false features = ["advanced-shaping"] [patch."https://github.com/pop-os/cosmic-protocols"] -cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//" } -cctk = { git = "https://github.com/pop-os/cosmic-protocols//", package = "cosmic-client-toolkit" } +cctk = { git = "https://github.com/pop-os/cosmic-protocols//", package = "cosmic-client-toolkit", rev = "32283d7" } +cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "32283d7" } # [patch."https://github.com/pop-os/libcosmic"] -# iced_core = { git = "https://github.com/pop-os/libcosmic//" } -# iced_futures = { git = "https://github.com/pop-os/libcosmic//" } -# libcosmic = { git = "https://github.com/pop-os/libcosmic//" } -# cosmic-config = { git = "https://github.com/pop-os/libcosmic//" } -# cosmic-theme = { git = "https://github.com/pop-os/libcosmic//" } +# iced_core = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } +# iced_futures = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } +# libcosmic = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } +# cosmic-config = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } +# cosmic-theme = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } +# libcosmic = { path = "../libcosmic" } +# cosmic-config = { path = "../libcosmic/cosmic-config" } +# cosmic-theme = { path = "../libcosmic/cosmic-theme" } +# iced_futures = { path = "../libcosmic/iced/futures" } +# iced_winit = { path = "../libcosmic/iced/winit" } diff --git a/src/common.rs b/src/common.rs index 6fdd371..7c8d4b0 100644 --- a/src/common.rs +++ b/src/common.rs @@ -3,12 +3,16 @@ use cosmic::iced::core::SmolStr; use cosmic::iced::event::wayland::{Event as WaylandEvent, OutputEvent, SessionLockEvent}; use cosmic::iced::event::{self}; use cosmic::iced::keyboard::{Event as KeyEvent, Key, Modifiers}; +use cosmic::iced::platform_specific::shell::commands::blur::blur; use cosmic::iced::runtime::core::window::Id as SurfaceId; +use cosmic::iced::runtime::platform_specific::wayland::CornerRadius; use cosmic::iced::{self, Rectangle, Size, Subscription}; -use cosmic::widget; +use cosmic::surface::corner_radius::rounded_rect_strips; +use cosmic::widget::rectangle_tracker::{RectangleUpdate, rectangle_tracker_subscription}; +use cosmic::widget::{self, RectangleTracker}; use cosmic_config::{ConfigSet, CosmicConfigEntry}; use cosmic_greeter_daemon::{BgSource, CosmicCompConfig, UserData}; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::sync::Arc; use wayland_client::protocol::wl_output::WlOutput; @@ -39,8 +43,12 @@ pub struct Common { pub output_names: HashMap, pub power_info_opt: Option<(widget::Icon, f64)>, pub prompt_opt: Option<(String, bool, Option)>, + pub rectangle_tracker: Option>, + pub rectangles: HashMap<(SurfaceId, bool), iced::Rectangle>, + pub include_menu: bool, pub subsurface_rects: HashMap, pub surface_ids: HashMap, + pub subsurface_outputs: HashMap, pub surface_images: HashMap, pub surface_names: HashMap, pub text_input_ids: HashMap, @@ -54,12 +62,14 @@ pub enum Message { Focus(SurfaceId), Key(Modifiers, Key, Option), NetworkIcon(Option<&'static str>), + SubsurfaceOpened(SurfaceId), OutputEvent(OutputEvent, WlOutput), PowerInfo(Option<(f64, bool, bool)>), Prompt(String, bool, Option), SessionLockEvent(SessionLockEvent), Tick, Tz(jiff::tz::TimeZone), + Rectangle(RectangleUpdate<(SurfaceId, bool)>), } impl + Send + 'static> Common { @@ -118,6 +128,10 @@ impl + Send + 'static> Common { battery_percent: 0.0, on_battery: false, charging_limit: None, + subsurface_outputs: HashMap::new(), + rectangle_tracker: None, + rectangles: HashMap::new(), + include_menu: false, }; ( app, @@ -322,13 +336,75 @@ impl + Send + 'static> Common { Message::Tz(tz) => { self.time.set_tz(tz); } + Message::SubsurfaceOpened(id) => { + return self.blur_rects(id); + } + Message::Rectangle(u) => match u { + RectangleUpdate::Rectangle(r) => { + self.rectangles.insert(r.0, r.1); + + return self.blur_rects(r.0.0); + } + RectangleUpdate::Init(tracker) => { + self.rectangle_tracker.replace(tracker); + } + }, + } + Task::none() + } + + pub(crate) fn dropdown_blur_rects(&mut self, enable: bool) -> Task { + let mut ids = HashSet::new(); + for r in self.rectangles.keys() { + ids.insert(r.0); + } + self.include_menu = enable; + Task::batch( + ids.into_iter() + .map(|i| self.blur_rects(i)) + .collect::>(), + ) + } + + fn blur_rects(&mut self, id: SurfaceId) -> Task { + if let Some(output) = self.subsurface_outputs.get(&id) { + if let Some(rect) = self.subsurface_rects.get(output) { + let x = rect.x; + let y = rect.y; + if let Some(rect) = self.rectangles.get(&(id, false)) { + let mut offset_rect = *rect; + offset_rect.x += x; + offset_rect.y += y; + let rad = CornerRadius { + top_left: 16, + top_right: 16, + bottom_left: 16, + bottom_right: 16, + }; + let mut rects = rounded_rect_strips(offset_rect, rad); + if let Some(other_rect) = self.rectangles.get(&(id, true)) + && self.include_menu + { + let mut other = *other_rect; + other.x += x; + other.y += y; + + rects.append(&mut rounded_rect_strips(other, rad)); + } + + return blur(id, Some(rects)).discard(); + } else { + tracing::error!("no rectangle for surface {id:?}"); + } + } } Task::none() } pub fn subscription(&self) -> Subscription { let mut subscriptions = Vec::with_capacity(3); - + subscriptions + .push(rectangle_tracker_subscription(0).map(|update| Message::Rectangle(update.1))); subscriptions.push(event::listen_with(|event, status, id| match event { iced::Event::Keyboard(KeyEvent::KeyPressed { key, @@ -351,6 +427,9 @@ impl + Send + 'static> Common { WaylandEvent::SessionLock(lock_event) => { Some(Message::SessionLockEvent(lock_event)) } + iced::event::wayland::Event::Subsurface( + iced::event::wayland::SubsurfaceEvent::Created, + ) => Some(Message::SubsurfaceOpened(id)), _ => None, }, iced::Event::Window(iced::window::Event::Focused) => Some(Message::Focus(id)), diff --git a/src/greeter.rs b/src/greeter.rs index 14b5eca..977714d 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -24,7 +24,7 @@ use cosmic::iced::platform_specific::shell::wayland::commands::subsurface::repos use cosmic::iced::runtime::core::window::Id as SurfaceId; use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfaceSettings; use cosmic::iced::{ - self, Alignment, Background, Border, Length, Point, Size, Subscription, window, + self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, window, }; use cosmic::widget::{id_container, text}; use cosmic::{Element, executor, surface, theme, widget}; @@ -547,12 +547,12 @@ impl App { Element::from(items) }; - widget::container(items) + let menu = widget::container(items) .padding(1) //TODO: move style to libcosmic .class(theme::Container::custom(|theme| { let cosmic = theme.cosmic(); - let component = &cosmic.background.component; + let component = &cosmic.background(theme.transparent).component; widget::container::Style { icon_color: Some(component.on.into()), text_color: Some(component.on.into()), @@ -565,7 +565,13 @@ impl App { ..Default::default() } })) - .width(Length::Fixed(240.0)) + .width(Length::Fixed(240.0)); + + if let Some(t) = self.common.rectangle_tracker.as_ref() { + Element::from(t.container((id, true), menu)) + } else { + menu.into() + } }; let mut input_button = widget::popover( @@ -928,29 +934,37 @@ impl App { }, ) }; + + let menu = widget::layer_container( + iced::widget::row![left_element, right_element].align_y(Alignment::Start), + ) + .layer(cosmic::cosmic_theme::Layer::Background) + .padding(16) + .class(cosmic::theme::Container::Custom(Box::new( + |theme: &cosmic::Theme| { + // Use background appearance as the base + let mut appearance = + widget::container::Catalog::style(theme, &cosmic::theme::Container::Background); + appearance.background = Some(iced::Background::Color( + // TODO if we can use popups instead of subsurfaces for the greeter and the lockscreen + // then we can allow transparency + theme.cosmic().background(theme.transparent).base.into(), + )); + appearance.border = iced::Border::default().rounded(16); + appearance + }, + ))) + .width(Length::Fixed(800.0)); + let menu = if let Some(t) = self.common.rectangle_tracker.as_ref() { + Element::from(t.container((id, false), menu)) + } else { + menu.into() + }; let menu = widget::container(widget::column::with_children(vec![ widget::space::vertical() .height(Length::FillPortion(1)) .into(), - widget::layer_container( - iced::widget::row![left_element, right_element].align_y(Alignment::Start), - ) - .layer(cosmic::cosmic_theme::Layer::Background) - .padding(16) - .class(cosmic::theme::Container::Custom(Box::new( - |theme: &cosmic::Theme| { - // Use background appearance as the base - let mut appearance = widget::container::Catalog::style( - theme, - &cosmic::theme::Container::Background, - ); - appearance.border = iced::Border::default().rounded(16); - appearance - }, - ))) - .class(cosmic::theme::Container::Background) - .width(Length::Fixed(800.0)) - .into(), + menu, widget::space::vertical() .height(Length::FillPortion(4)) .into(), @@ -959,6 +973,7 @@ impl App { .height(Length::Fill) .align_x(Alignment::Center); + // TODO make these opaque? let popover = widget::popover(menu).modal(true); match self.dialog_page_opt { Some(DialogPage::Restart(instant)) => { @@ -1090,7 +1105,8 @@ impl cosmic::Application for App { } /// Creates the application, and optionally emits command on initialize. - fn init(core: Core, flags: Self::Flags) -> (Self, Task) { + fn init(mut core: Core, flags: Self::Flags) -> (Self, Task) { + core.set_app_type(cosmic::core::AppType::System); let mut tasks = Vec::new(); let (mut common, common_task) = Common::init(core); common.on_output_event = Some(Box::new(|output_event, output| { @@ -1251,7 +1267,12 @@ impl cosmic::Application for App { surface_id, Size::new(unwrapped_size.0 as f32, unwrapped_size.1 as f32), ); - + self.common + .subsurface_rects + .insert(output.clone(), Rectangle::new(loc, sub_size)); + self.common + .subsurface_outputs + .insert(subsurface_id, output.clone()); let msg = cosmic::surface::action::subsurface( move |_: &mut App| SctkSubsurfaceSettings { parent: surface_id, @@ -1330,6 +1351,7 @@ impl cosmic::Application for App { self.selected_session = selected_session; if self.dropdown_opt == Some(Dropdown::Session) { self.dropdown_opt = None; + return self.common.dropdown_blur_rects(false); } } Message::EnterUser(focus_input, username) => { @@ -1346,7 +1368,10 @@ impl cosmic::Application for App { username, }; if focus_input { - return widget::text_input::focus(USERNAME_ID.clone()); + return Task::batch([ + self.common.dropdown_blur_rects(false), + widget::text_input::focus(USERNAME_ID.clone()), + ]); } } Message::Username(username) => { @@ -1384,9 +1409,12 @@ impl cosmic::Application for App { self.send_request(Request::CancelSession); } if let Some(randr_list) = self.randr_list.as_ref() { - return self.update(Message::RandrUpdate { - randr: Arc::new(Ok(randr_list.clone())), - }); + return Task::batch([ + self.common.dropdown_blur_rects(false), + self.update(Message::RandrUpdate { + randr: Arc::new(Ok(randr_list.clone())), + }), + ]); } } } @@ -1529,8 +1557,10 @@ impl cosmic::Application for App { Message::DropdownToggle(dropdown) => { if self.dropdown_opt == Some(dropdown) { self.dropdown_opt = None; + return self.common.dropdown_blur_rects(false); } else { self.dropdown_opt = Some(dropdown); + return self.common.dropdown_blur_rects(true); } } Message::KeyboardLayout(layout_i) => { diff --git a/src/locker.rs b/src/locker.rs index 146aed7..0726571 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -14,6 +14,7 @@ use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfac use cosmic::iced::{ self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, }; +use cosmic::widget::indeterminate_circular; use cosmic::{Element, executor, surface, theme, widget}; use cosmic_config::CosmicConfigEntry; use cosmic_greeter_daemon::{TimeAppletConfig, UserData}; @@ -382,12 +383,12 @@ impl App { Element::from(items) }; - widget::container(items) + let menu = widget::container(items) .padding(1) //TODO: move style to libcosmic .class(theme::Container::custom(|theme| { let cosmic = theme.cosmic(); - let component = &cosmic.background.component; + let component = &cosmic.background(theme.transparent).component; widget::container::Style { icon_color: Some(component.on.into()), text_color: Some(component.on.into()), @@ -400,7 +401,13 @@ impl App { ..Default::default() } })) - .width(Length::Fixed(240.0)) + .width(Length::Fixed(240.0)); + + if let Some(t) = self.common.rectangle_tracker.as_ref() { + Element::from(t.container((surface_id, true), menu)) + } else { + menu.into() + } }; let mut input_button = widget::popover( @@ -585,30 +592,34 @@ impl App { .align_x(Alignment::Center) .width(Length::Fill) }; - + let menu = widget::layer_container( + iced::widget::row![left_element, right_element].align_y(Alignment::Start), + ) + .layer(cosmic::cosmic_theme::Layer::Background) + .padding(16) + .class(cosmic::theme::Container::Custom(Box::new( + |theme: &cosmic::Theme| { + // Use background appearance as the base + let mut appearance = + widget::container::Catalog::style(theme, &cosmic::theme::Container::Background); + let c: iced::Color = theme.cosmic().background(theme.transparent).base.into(); + appearance.background = Some(iced::Background::Color(c)); + appearance.border = iced::Border::default().rounded(16.0); + appearance + }, + ))) + .width(Length::Fill) + .height(Length::Shrink); + let menu = if let Some(t) = self.common.rectangle_tracker.as_ref() { + Element::from(t.container((surface_id, false), menu)) + } else { + menu.into() + }; widget::container(widget::column::with_children(vec![ widget::space::vertical() .height(Length::FillPortion(1)) .into(), - widget::layer_container( - iced::widget::row![left_element, right_element].align_y(Alignment::Start), - ) - .layer(cosmic::cosmic_theme::Layer::Background) - .padding(16) - .class(cosmic::theme::Container::Custom(Box::new( - |theme: &cosmic::Theme| { - // Use background appearance as the base - let mut appearance = widget::container::Catalog::style( - theme, - &cosmic::theme::Container::Background, - ); - appearance.border = iced::Border::default().rounded(16.0); - appearance - }, - ))) - .width(Length::Fill) - .height(Length::Shrink) - .into(), + menu, widget::space::vertical() .height(Length::FillPortion(4)) .into(), @@ -644,7 +655,8 @@ impl cosmic::Application for App { } /// Creates the application, and optionally emits command on initialize. - fn init(core: Core, flags: Self::Flags) -> (Self, Task) { + fn init(mut core: Core, flags: Self::Flags) -> (Self, Task) { + core.set_app_type(cosmic::core::AppType::System); let (mut common, common_task) = Common::init(core); common.on_output_event = Some(Box::new(|output_event, output| { Message::OutputEvent(output_event, output) @@ -714,6 +726,10 @@ impl cosmic::Application for App { return Task::none(); } + self.common + .subsurface_outputs + .insert(subsurface_id, output.clone()); + let size = if let Some((w, h)) = output_info_opt.as_ref().and_then(|info| info.logical_size) { @@ -791,11 +807,11 @@ impl cosmic::Application for App { ); if matches!(self.state, State::Locked { .. }) { - return Task::batch([get_lock_surface(surface_id, output).chain({ + return get_lock_surface(surface_id, output).chain({ cosmic::task::message(cosmic::Action::Cosmic( cosmic::app::Action::Surface(msg), )) - })]); + }); } } OutputEvent::Removed => { @@ -945,11 +961,15 @@ impl cosmic::Application for App { .zip(self.common.output_names.get(output)) { let subsurface_id = SurfaceId::unique(); + self.common + .subsurface_outputs + .insert(subsurface_id, output.clone()); let surface_id = *surface_id; self.common.surface_names.insert(surface_id, name.clone()); self.common .surface_names .insert(subsurface_id, name.clone()); + let msg = cosmic::surface::action::subsurface( move |_: &mut App| SctkSubsurfaceSettings { parent: surface_id, @@ -970,7 +990,7 @@ impl cosmic::Application for App { cosmic::app::Action::Surface(msg), ))); } else { - tracing::error!("no rectangle for subsurface..."); + tracing::error!("no rectangle for subsurface creation..."); } } return Task::batch(commands); @@ -1009,8 +1029,10 @@ impl cosmic::Application for App { Message::DropdownToggle(dropdown) => { if self.dropdown_opt == Some(dropdown) { self.dropdown_opt = None; + return self.common.dropdown_blur_rects(false); } else { self.dropdown_opt = Some(dropdown); + return self.common.dropdown_blur_rects(true); } } Message::Inhibit(inhibit) => match self.state { @@ -1027,7 +1049,8 @@ impl cosmic::Application for App { self.common.set_xkb_config(&self.flags.user_data); } if self.dropdown_opt == Some(Dropdown::Keyboard) { - self.dropdown_opt = None + self.dropdown_opt = None; + return self.common.dropdown_blur_rects(false); } } Message::Submit(value) => { From 119d98fe7c38599dee038157adf382a08ade53c1 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 8 Jul 2026 10:21:16 -0400 Subject: [PATCH 02/35] chore: update deps --- Cargo.lock | 304 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 179 insertions(+), 125 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3362f51..88a6418 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,9 +263,9 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] name = "as-raw-xcb-connection" @@ -688,11 +688,11 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -811,9 +811,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "calendrical_calculations" @@ -852,9 +852,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.65" +version = "1.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" +checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" dependencies = [ "find-msvc-tools", "jobserver", @@ -1048,6 +1048,12 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b46dec724fd22199ebde05033a0cbae453bc3b1ecff11eb6a6bb3eec4b90c6a4" +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "core-foundation" version = "0.9.4" @@ -1121,7 +1127,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" version = "1.0.15" -source = "git+https://github.com/pop-os/cosmic-applets#0441c67b1056cd1033b2d7fdbf139b47408edd1a" +source = "git+https://github.com/pop-os/cosmic-applets#0543dd744100d66b96dcc2fa1ce00c7955d4b68d" dependencies = [ "cosmic-config", "serde", @@ -1130,7 +1136,7 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" -source = "git+https://github.com/pop-os/cosmic-bg#71bb96b3eaad167c3cb639979d2edb7559866c2f" +source = "git+https://github.com/pop-os/cosmic-bg#ed65f7d3dc9e3d4af3cd65244a966e01bff0f730" dependencies = [ "cosmic-config", "derive_setters", @@ -1155,7 +1161,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#f5e0ba1594e428954f2a1647b03564be1afaec4a" +source = "git+https://github.com/pop-os/cosmic-comp#373a44d43105a2c5563ee80657dae3d312d7f508" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1168,7 +1174,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "atomicwrites", "calloop", @@ -1190,7 +1196,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "quote", "syn 2.0.118", @@ -1344,7 +1350,7 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#9f9311235ec7fcbf27e28ae62326ff2f4bb9441d" +source = "git+https://github.com/pop-os/cosmic-settings#d971176acabf039124af3fcad0ecdc7940e8e28b" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1358,7 +1364,7 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#9f9311235ec7fcbf27e28ae62326ff2f4bb9441d" +source = "git+https://github.com/pop-os/cosmic-settings#d971176acabf039124af3fcad0ecdc7940e8e28b" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1371,7 +1377,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#276fef9834b05c57b67e8ba36b74bea1ba690cee" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1392,7 +1398,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#276fef9834b05c57b67e8ba36b74bea1ba690cee" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1411,7 +1417,7 @@ dependencies = [ "linebender_resource_handle", "log", "rangemap", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "self_cell", "skrifa 0.40.0", "smol_str", @@ -1426,7 +1432,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "almost", "configparser", @@ -1443,9 +1449,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] @@ -1461,9 +1467,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1471,18 +1477,18 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crunchy" @@ -1498,18 +1504,17 @@ dependencies = [ "cosmic-text", "etagere", "lru", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "wgpu", ] [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "typenum", + "hybrid-array", ] [[package]] @@ -1657,9 +1662,9 @@ checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "defmt" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" dependencies = [ "bitflags 1.3.2", "defmt-macros", @@ -1667,12 +1672,11 @@ dependencies = [ [[package]] name = "defmt-macros" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" dependencies = [ "defmt-parser", - "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.118", @@ -1752,11 +1756,12 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.7" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", + "const-oid", "crypto-common", ] @@ -2024,14 +2029,16 @@ dependencies = [ [[package]] name = "exr" -version = "1.74.0" +version = "1.74.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" +checksum = "6be87932f10230a4339ab394edd8e4611fcb72553d8295b4d52ea55249b3daa5" dependencies = [ "bit_field", "half", "lebe", "miniz_oxide", + "num-complex", + "pulp", "rayon-core", "smallvec", "zune-inflate", @@ -2145,7 +2152,7 @@ dependencies = [ "fluent-syntax", "intl-memoizer", "intl_pluralrules", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "self_cell", "smallvec", "unic-langid", @@ -2381,16 +2388,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "gethostname" version = "1.1.0" @@ -2676,6 +2673,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "hybrid-array" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +dependencies = [ + "typenum", +] + [[package]] name = "i18n-config" version = "0.4.8" @@ -2770,7 +2776,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "dnd", "iced_accessibility", @@ -2791,7 +2797,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "accesskit", "accesskit_winit", @@ -2800,7 +2806,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "bitflags 2.13.0", "bytes", @@ -2813,7 +2819,7 @@ dependencies = [ "num-traits", "palette", "raw-window-handle", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "serde", "smol_str", "thiserror 2.0.18", @@ -2825,7 +2831,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "iced_core", "iced_futures", @@ -2835,12 +2841,12 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "futures", "iced_core", "log", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "tokio", "wasm-bindgen-futures", "wasmtimer", @@ -2849,7 +2855,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "bitflags 2.13.0", "bytemuck", @@ -2862,7 +2868,7 @@ dependencies = [ "log", "lyon_path", "raw-window-handle", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "thiserror 2.0.18", "unicode-segmentation", ] @@ -2870,7 +2876,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "iced_graphics", "iced_runtime", @@ -2879,7 +2885,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2891,7 +2897,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -2906,7 +2912,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "bytemuck", "cosmic-text", @@ -2915,7 +2921,7 @@ dependencies = [ "kurbo 0.10.4", "log", "resvg", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "softbuffer", "tiny-skia", ] @@ -2923,7 +2929,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.0", @@ -2939,7 +2945,7 @@ dependencies = [ "lyon", "raw-window-handle", "resvg", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.18", "tiny-xlib", @@ -2954,7 +2960,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -2963,7 +2969,7 @@ dependencies = [ "log", "num-traits", "ouroboros", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "thiserror 2.0.18", "unicode-segmentation", "window_clipboard", @@ -2972,7 +2978,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "cosmic-client-toolkit", "cursor-icon", @@ -2984,7 +2990,7 @@ dependencies = [ "iced_runtime", "log", "raw-window-handle", - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.18", "wasm-bindgen-futures", @@ -3508,9 +3514,9 @@ dependencies = [ [[package]] name = "inotify" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533e68a5842e734946fe159fb03fc9bbbb254f590dd0d8ad321ae5ff7beca2c1" +checksum = "dd854a95a4ac672fed8c054136039fd32c22cf039ff09ead7280afe920486483" dependencies = [ "bitflags 2.13.0", "inotify-sys", @@ -3519,9 +3525,9 @@ dependencies = [ [[package]] name = "inotify-sys" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fda9741ca16536952da2ecaa6105c2f4653fa6f0724681df6d2414c4106d0b0" +checksum = "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" dependencies = [ "libc", ] @@ -3656,9 +3662,9 @@ dependencies = [ [[package]] name = "jiff-tzdb" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076" +checksum = "6142247df1a93c2b3587402a19710be3e6e942f1581a1702e76408f2c21d6590" [[package]] name = "jiff-tzdb-platform" @@ -3729,11 +3735,11 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.3", "libc", ] @@ -3872,7 +3878,7 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#20dfd7c236208930634881ec52d22e7a353206dd" +source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" dependencies = [ "apply", "ashpd 0.12.3", @@ -4151,9 +4157,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.2" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memmap2" @@ -4221,6 +4227,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime 0.3.17", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -4425,9 +4441,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", @@ -4439,6 +4455,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ + "bytemuck", "num-traits", ] @@ -4470,11 +4487,10 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -5258,6 +5274,29 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "pulp" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a" +dependencies = [ + "bytemuck", + "cfg-if", + "libm", + "num-complex", + "paste", + "pulp-wasm-simd-flag", + "raw-cpuid", + "reborrow", + "version_check", +] + +[[package]] +name = "pulp-wasm-simd-flag" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740" + [[package]] name = "pwd" version = "1.4.0" @@ -5270,9 +5309,9 @@ dependencies = [ [[package]] name = "pxfm" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" +checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" [[package]] name = "quick-error" @@ -5287,7 +5326,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" dependencies = [ "memchr", - "serde", ] [[package]] @@ -5432,6 +5470,15 @@ dependencies = [ "rgb", ] +[[package]] +name = "raw-cpuid" +version = "11.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +dependencies = [ + "bitflags 2.13.0", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -5479,6 +5526,12 @@ dependencies = [ "font-types", ] +[[package]] +name = "reborrow" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" + [[package]] name = "redox_event" version = "0.4.8" @@ -5670,9 +5723,9 @@ dependencies = [ [[package]] name = "rust-embed" -version = "8.11.0" +version = "8.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" +checksum = "e9e7760e252aaba7b09f4be00e36476cf585bdb68a53552ac954cdf504ab4bc9" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -5681,10 +5734,11 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "8.11.0" +version = "8.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" +checksum = "3bcfc4d6f53af43755f7a723e4b6b8794fcce052a178dd8c6c1dadc5f5343097" dependencies = [ + "mime_guess", "proc-macro2", "quote", "rust-embed-utils", @@ -5694,9 +5748,9 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "8.11.0" +version = "8.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" +checksum = "42ffa149f6aa81b58a5b3011d01a857c4ed12c7a732d2c51947a4c7c692185f0" dependencies = [ "sha2", "walkdir", @@ -5716,9 +5770,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "rustc_version" @@ -5757,9 +5811,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "rustybuzz" @@ -5950,9 +6004,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", "cpufeatures", @@ -6644,7 +6698,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" dependencies = [ - "rustc-hash 2.1.2", + "rustc-hash 2.1.3", ] [[package]] @@ -8217,9 +8271,9 @@ dependencies = [ [[package]] name = "zbus" -version = "5.16.0" +version = "5.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee682d202a77e4a9f3b2c2bdf48a7b28af5c08c34ddf66f98c93e5e39464285" +checksum = "a28b97f866896a4be7aefd2b5a8e01bb6773d19a775d54ab28b4d094b9a4480e" dependencies = [ "async-broadcast", "async-executor", @@ -8277,9 +8331,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.16.0" +version = "5.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf1bd45a81a103745b1757754762a26e8cd01e4532e4d6c8ec431624b80d1d6" +checksum = "5e05ad887425eecf5e8384dc2406a4a9313eb73468712fc1cdea362eb4fe0469" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8292,9 +8346,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.2" +version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" +checksum = "1039ca249fee9559680f3a9f05b55e0761fee51af4f6c1e7d8c1f31e549721d2" dependencies = [ "serde", "winnow 1.0.3", @@ -8303,12 +8357,12 @@ dependencies = [ [[package]] name = "zbus_xml" -version = "5.1.1" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8067892e940ed1727dea64690378601603b31d62dfde019a5335fbb7c0e0ed9" +checksum = "59ab0513c0a66a60a8718d5ad712a5094845a20d95b5c1c81e2bd8e904a52b4f" dependencies = [ - "quick-xml", "serde", + "winnow 1.0.3", "zbus_names", "zvariant", ] @@ -8321,18 +8375,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" +checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" +checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71" dependencies = [ "proc-macro2", "quote", @@ -8442,9 +8496,9 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.12.0" +version = "5.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a192a0bde63360d77a7523c833d4b4ce6070a927e2c53246e4c540b1a3e27be0" +checksum = "7cf057bb00bf5c9ad77abb6147b0ca4818236a1858416e9d988e40d6322fefa7" dependencies = [ "endi", "enumflags2", @@ -8457,9 +8511,9 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "5.12.0" +version = "5.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc6cde9c01c511074be97f7ccb6c19d0da89e3f8662e812e999dcfd4638737" +checksum = "8118ca6bda77bfc0ab51d660db0c955f2505eef854c9a449435bccb616933b31" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8470,9 +8524,9 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8535915cfa75547e559d8c68e8139909a4aeee076831e4ef7fc59d8172c4d6" +checksum = "90cb9383f9b45290407a1258b202d3f8f01db719eb60b4e4055c6375af4fc7c7" dependencies = [ "proc-macro2", "quote", From 6a19629f159459e920f36329d6c5baa72b15b9e7 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 8 Jul 2026 15:38:39 -0400 Subject: [PATCH 03/35] fix: update libcosmic --- Cargo.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 88a6418..07a5c0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1174,7 +1174,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "atomicwrites", "calloop", @@ -1196,7 +1196,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "quote", "syn 2.0.118", @@ -1432,7 +1432,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "almost", "configparser", @@ -2776,7 +2776,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "dnd", "iced_accessibility", @@ -2797,7 +2797,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "accesskit", "accesskit_winit", @@ -2806,7 +2806,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "bitflags 2.13.0", "bytes", @@ -2831,7 +2831,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "iced_core", "iced_futures", @@ -2841,7 +2841,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "futures", "iced_core", @@ -2855,7 +2855,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "bitflags 2.13.0", "bytemuck", @@ -2876,7 +2876,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "iced_graphics", "iced_runtime", @@ -2885,7 +2885,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2897,7 +2897,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -2912,7 +2912,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "bytemuck", "cosmic-text", @@ -2929,7 +2929,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.0", @@ -2960,7 +2960,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -2978,7 +2978,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "cosmic-client-toolkit", "cursor-icon", @@ -3514,9 +3514,9 @@ dependencies = [ [[package]] name = "inotify" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd854a95a4ac672fed8c054136039fd32c22cf039ff09ead7280afe920486483" +checksum = "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" dependencies = [ "bitflags 2.13.0", "inotify-sys", @@ -3878,7 +3878,7 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#be419278591649b6d0fed8b1f97a80b6b53ecc6c" +source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" dependencies = [ "apply", "ashpd 0.12.3", @@ -5758,9 +5758,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" [[package]] name = "rustc-hash" From 05f09fe33c880c87d547674ef3013351eda85345 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 8 Jul 2026 18:27:28 -0400 Subject: [PATCH 04/35] improv: use the new menu column widget --- src/common.rs | 7 ++++++- src/greeter.rs | 5 +++-- src/locker.rs | 42 +++++++++++++++++++++--------------------- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/common.rs b/src/common.rs index 7c8d4b0..edfa99f 100644 --- a/src/common.rs +++ b/src/common.rs @@ -388,7 +388,12 @@ impl + Send + 'static> Common { let mut other = *other_rect; other.x += x; other.y += y; - + let rad = CornerRadius { + top_left: 8, + top_right: 8, + bottom_left: 8, + bottom_right: 8, + }; rects.append(&mut rounded_rect_strips(other, rad)); } diff --git a/src/greeter.rs b/src/greeter.rs index 977714d..e86e366 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -24,7 +24,8 @@ use cosmic::iced::platform_specific::shell::wayland::commands::subsurface::repos use cosmic::iced::runtime::core::window::Id as SurfaceId; use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfaceSettings; use cosmic::iced::{ - self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, window, + self, Alignment, Background, Border, Color, Length, Point, Rectangle, Size, Subscription, + window, }; use cosmic::widget::{id_container, text}; use cosmic::{Element, executor, surface, theme, widget}; @@ -537,7 +538,7 @@ impl App { let dropdown_menu = |items: Vec<_>| { let item_cnt = items.len(); - let items = widget::column::with_children(items); + let items = widget::menu::menu_column::MenuColumn::with_children(items); let items = if item_cnt > 7 { Element::from( widget::scrollable(items) diff --git a/src/locker.rs b/src/locker.rs index 0726571..5bf0569 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -14,7 +14,6 @@ use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfac use cosmic::iced::{ self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, }; -use cosmic::widget::indeterminate_circular; use cosmic::{Element, executor, surface, theme, widget}; use cosmic_config::CosmicConfigEntry; use cosmic_greeter_daemon::{TimeAppletConfig, UserData}; @@ -373,7 +372,7 @@ impl App { let dropdown_menu = |items: Vec<_>| { let item_cnt = items.len(); - let items = widget::column::with_children(items); + let items = widget::menu::menu_column::MenuColumn::with_children(items); let items = if item_cnt > 7 { Element::from( widget::scrollable(items) @@ -383,25 +382,26 @@ impl App { Element::from(items) }; - let menu = widget::container(items) - .padding(1) - //TODO: move style to libcosmic - .class(theme::Container::custom(|theme| { - let cosmic = theme.cosmic(); - let component = &cosmic.background(theme.transparent).component; - widget::container::Style { - icon_color: Some(component.on.into()), - text_color: Some(component.on.into()), - background: Some(Background::Color(component.base.into())), - border: Border { - radius: 8.0.into(), - width: 1.0, - color: component.divider.into(), - }, - ..Default::default() - } - })) - .width(Length::Fixed(240.0)); + let menu: widget::Container<'_, Message, cosmic::prelude::Theme> = + widget::container(items) + .padding(1) + //TODO: move style to libcosmic + .class(theme::Container::custom(|theme| { + let cosmic = theme.cosmic(); + let component = &cosmic.background(theme.transparent).component; + widget::container::Style { + icon_color: Some(component.on.into()), + text_color: Some(component.on.into()), + background: Some(Background::Color(component.base.into())), + border: Border { + radius: 8.0.into(), + width: 1.0, + color: component.divider.into(), + }, + ..Default::default() + } + })) + .width(Length::Fixed(240.0)); if let Some(t) = self.common.rectangle_tracker.as_ref() { Element::from(t.container((surface_id, true), menu)) From 95067445bec3815fa90977c0e67292bad3298f6f Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 8 Jul 2026 18:42:18 -0400 Subject: [PATCH 05/35] improv: better handling of popover dialog after dropdown --- src/common.rs | 2 +- src/greeter.rs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/common.rs b/src/common.rs index edfa99f..b284ee5 100644 --- a/src/common.rs +++ b/src/common.rs @@ -366,7 +366,7 @@ impl + Send + 'static> Common { ) } - fn blur_rects(&mut self, id: SurfaceId) -> Task { + pub fn blur_rects(&mut self, id: SurfaceId) -> Task { if let Some(output) = self.subsurface_outputs.get(&id) { if let Some(rect) = self.subsurface_rects.get(output) { let x = rect.x; diff --git a/src/greeter.rs b/src/greeter.rs index e86e366..e10dc3b 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -1527,6 +1527,9 @@ impl cosmic::Application for App { if let Some(handle) = self.heartbeat_handle.take() { handle.abort(); } + if self.dropdown_opt.is_some() { + return self.common.dropdown_blur_rects(true); + } } Message::DialogConfirm => match self.dialog_page_opt.take() { Some(DialogPage::Restart(_)) => { @@ -1553,7 +1556,11 @@ impl cosmic::Application for App { }) .discard(); } - None => {} + None => { + if self.dropdown_opt.is_some() { + return self.common.dropdown_blur_rects(true); + } + } }, Message::DropdownToggle(dropdown) => { if self.dropdown_opt == Some(dropdown) { @@ -1614,7 +1621,8 @@ impl cosmic::Application for App { .abortable(); self.heartbeat_handle = Some(handle); - return heartbeat; + self.common.include_menu = false; + return Task::batch(vec![self.common.dropdown_blur_rects(false), heartbeat]); } } Message::Heartbeat => match self.dialog_page_opt { From 2290aae5e2e078a1d79c6ec1a27cdf3ccc366a45 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Thu, 9 Jul 2026 18:29:50 -0400 Subject: [PATCH 06/35] chore: update libcosmic --- Cargo.lock | 70 +++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07a5c0a..0f7609e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1127,7 +1127,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" version = "1.0.15" -source = "git+https://github.com/pop-os/cosmic-applets#0543dd744100d66b96dcc2fa1ce00c7955d4b68d" +source = "git+https://github.com/pop-os/cosmic-applets#3f4d0f43a0a7e75c983c83ca09454e65afc3bc71" dependencies = [ "cosmic-config", "serde", @@ -1161,7 +1161,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#373a44d43105a2c5563ee80657dae3d312d7f508" +source = "git+https://github.com/pop-os/cosmic-comp#693d1ad775193deb95a33810b5eac59684ca2ac0" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1174,7 +1174,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "atomicwrites", "calloop", @@ -1196,7 +1196,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "quote", "syn 2.0.118", @@ -1350,7 +1350,7 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#d971176acabf039124af3fcad0ecdc7940e8e28b" +source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1364,7 +1364,7 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#d971176acabf039124af3fcad0ecdc7940e8e28b" +source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1432,7 +1432,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "almost", "configparser", @@ -2776,7 +2776,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "dnd", "iced_accessibility", @@ -2797,7 +2797,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "accesskit", "accesskit_winit", @@ -2806,7 +2806,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bitflags 2.13.0", "bytes", @@ -2831,7 +2831,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_core", "iced_futures", @@ -2841,7 +2841,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "futures", "iced_core", @@ -2855,7 +2855,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bitflags 2.13.0", "bytemuck", @@ -2876,7 +2876,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_graphics", "iced_runtime", @@ -2885,7 +2885,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2897,7 +2897,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -2912,7 +2912,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bytemuck", "cosmic-text", @@ -2929,7 +2929,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.0", @@ -2960,7 +2960,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -2978,7 +2978,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "cosmic-client-toolkit", "cursor-icon", @@ -3624,9 +3624,9 @@ checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" [[package]] name = "jiff" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccfe6121cbe750cf81efa362d85c0bde7ea298ec43092d3a193baca59cdbd634" +checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" dependencies = [ "defmt", "jiff-static", @@ -3651,9 +3651,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e165e897f662d428f3cd3828a919dbe067c2d42bb1031eede74ef9d27ecdedd2" +checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" dependencies = [ "proc-macro2", "quote", @@ -3662,9 +3662,9 @@ dependencies = [ [[package]] name = "jiff-tzdb" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6142247df1a93c2b3587402a19710be3e6e942f1581a1702e76408f2c21d6590" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" [[package]] name = "jiff-tzdb-platform" @@ -3878,7 +3878,7 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#74b2407342de7de1d9093a7dce34e4f58e6b53cd" +source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "apply", "ashpd 0.12.3", @@ -5593,9 +5593,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.4" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" +checksum = "2a0e75113e14dc5acb068cd0786884f214f1312650a3d36d269f5c4f3cdee8a2" dependencies = [ "aho-corasick", "memchr", @@ -5605,9 +5605,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "1f388202e4b80542a0921078cc23b6333bcf1409c1e3f86404cae4766a6131db" dependencies = [ "aho-corasick", "memchr", @@ -8375,18 +8375,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.53" +version = "0.8.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1" +checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.53" +version = "0.8.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71" +checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" dependencies = [ "proc-macro2", "quote", From 766a77a2a75bf8a9659483f6f89d259fe1176073 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 28 Jul 2026 10:01:58 +0200 Subject: [PATCH 07/35] i18n: translation updates from weblate Co-authored-by: Andi Chandler Co-authored-by: Ettore Atalan Co-authored-by: Hosted Weblate Co-authored-by: Prasanta-Hembram Co-authored-by: Saeed Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/de/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/en_GB/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/fa/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/sat/ Translation: Pop OS/COSMIC Greeter --- i18n/de/cosmic_greeter.ftl | 4 ++-- i18n/en-GB/cosmic_greeter.ftl | 1 + i18n/fa/cosmic_greeter.ftl | 1 + i18n/sat/cosmic_greeter.ftl | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 i18n/sat/cosmic_greeter.ftl diff --git a/i18n/de/cosmic_greeter.ftl b/i18n/de/cosmic_greeter.ftl index 5edaa51..286810f 100644 --- a/i18n/de/cosmic_greeter.ftl +++ b/i18n/de/cosmic_greeter.ftl @@ -27,11 +27,11 @@ accessibility = Barrierefreiheit .magnifier = Vergrößerungsglas .high-contrast = Hoher Kontrast .invert-colors = Farben invertieren -enter-user = Name manuell eingeben… +enter-user = Name manuell eingeben ... type-username = Benutzername: auth-error-default = Authentifizierung fehlgeschlagen. Bitte versuche es erneut. auth-error-credentials = Falsches Passwort. Bitte überprüfe deine Tastaturbelegung und versuche es erneut. auth-error-denied = Zugriff verweigert. auth-error-maxtries = Zu viele fehlgeschlagene Authentifizierungsversuche. auth-error-account = Konto ist nicht verfügbar oder deaktiviert. -authenticating = Authentifizierung... +authenticating = Authentifizierung ... diff --git a/i18n/en-GB/cosmic_greeter.ftl b/i18n/en-GB/cosmic_greeter.ftl index e69de29..269cddf 100644 --- a/i18n/en-GB/cosmic_greeter.ftl +++ b/i18n/en-GB/cosmic_greeter.ftl @@ -0,0 +1 @@ +cancel = Cancel diff --git a/i18n/fa/cosmic_greeter.ftl b/i18n/fa/cosmic_greeter.ftl index e69de29..dc16d57 100644 --- a/i18n/fa/cosmic_greeter.ftl +++ b/i18n/fa/cosmic_greeter.ftl @@ -0,0 +1 @@ +cancel = لغو diff --git a/i18n/sat/cosmic_greeter.ftl b/i18n/sat/cosmic_greeter.ftl new file mode 100644 index 0000000..67f522a --- /dev/null +++ b/i18n/sat/cosmic_greeter.ftl @@ -0,0 +1 @@ +cancel = ᱵᱟᱹᱛᱤᱞ From d39915ae2381424d406cd511a2310ef928144f4c Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Fri, 24 Jul 2026 12:18:43 -0700 Subject: [PATCH 08/35] Use `cosmic-keymap-unstable-v1` --- src/common.rs | 67 +++++++------- src/greeter.rs | 24 +---- src/keyboard_layout_wayland.rs | 157 +++++++++++++++++++++++++++++++++ src/lib.rs | 2 + src/locker.rs | 8 +- 5 files changed, 198 insertions(+), 60 deletions(-) create mode 100644 src/keyboard_layout_wayland.rs diff --git a/src/common.rs b/src/common.rs index b284ee5..51db69b 100644 --- a/src/common.rs +++ b/src/common.rs @@ -10,11 +10,14 @@ use cosmic::iced::{self, Rectangle, Size, Subscription}; use cosmic::surface::corner_radius::rounded_rect_strips; use cosmic::widget::rectangle_tracker::{RectangleUpdate, rectangle_tracker_subscription}; use cosmic::widget::{self, RectangleTracker}; -use cosmic_config::{ConfigSet, CosmicConfigEntry}; -use cosmic_greeter_daemon::{BgSource, CosmicCompConfig, UserData}; +use cosmic_greeter_daemon::{BgSource, UserData}; +use cosmic_protocols::keyboard_layout::v1::client::zcosmic_keyboard_layout_v1::ZcosmicKeyboardLayoutV1; use std::collections::{HashMap, HashSet}; use std::sync::Arc; use wayland_client::protocol::wl_output::WlOutput; +use wayland_client::{Connection, Proxy}; + +use crate::keyboard_layout_wayland; pub const DEFAULT_MENU_ITEM_HEIGHT: f32 = 36.; @@ -26,13 +29,15 @@ pub struct ActiveLayout { } pub struct Common { + pub wayland_connection: Option, + pub keyboard_layout: Option, + pub current_keyboard_layout: usize, pub active_layouts: Vec, pub active_surface_id_opt: Option, pub on_battery: bool, pub battery_percent: f64, pub charging_limit: Option, pub caps_lock: bool, - pub comp_config_handler: Option, pub core: Core, pub error_opt: Option, pub fallback_background: widget::image::Handle, @@ -70,6 +75,7 @@ pub enum Message { Tick, Tz(jiff::tz::TimeZone), Rectangle(RectangleUpdate<(SurfaceId, bool)>), + KeyboardLayoutWayland(keyboard_layout_wayland::Event), } impl + Send + 'static> Common { @@ -82,17 +88,6 @@ impl + Send + 'static> Common { core.window.show_minimize = false; core.window.use_template = false; - let comp_config_handler = match cosmic_config::Config::new( - "com.system76.CosmicComp", - CosmicCompConfig::VERSION, - ) { - Ok(config_handler) => Some(config_handler), - Err(err) => { - tracing::error!("failed to create cosmic-comp config handler: {}", err); - None - } - }; - let layouts_opt = match xkb_data::all_keyboard_layouts() { Ok(ok) => Some(Arc::new(ok)), Err(err) => { @@ -102,10 +97,12 @@ impl + Send + 'static> Common { }; let app = Self { + wayland_connection: None, + keyboard_layout: None, + current_keyboard_layout: 0, active_layouts: Vec::new(), active_surface_id_opt: None, caps_lock: false, - comp_config_handler, core, error_opt: None, fallback_background: widget::image::Handle::from_bytes( @@ -142,27 +139,6 @@ impl + Send + 'static> Common { ) } - pub fn set_xkb_config(&self, user_data: &UserData) { - if let Some(mut xkb_config) = user_data.xkb_config_opt.clone() { - xkb_config.layout = String::new(); - xkb_config.variant = String::new(); - for (i, layout) in self.active_layouts.iter().enumerate() { - if i > 0 { - xkb_config.layout.push(','); - xkb_config.variant.push(','); - } - xkb_config.layout.push_str(&layout.layout); - xkb_config.variant.push_str(&layout.variant); - } - if let Some(comp_config_handler) = &self.comp_config_handler { - match comp_config_handler.set("xkb_config", xkb_config) { - Ok(()) => tracing::info!("updated cosmic-comp xkb_config"), - Err(err) => tracing::error!("failed to update cosmic-comp xkb_config: {}", err), - } - } - } - } - pub fn update_wallpapers(&mut self, user_data: &UserData) { for (_output, surface_id) in self.surface_ids.iter() { if self.surface_images.contains_key(surface_id) { @@ -301,6 +277,11 @@ impl + Send + 'static> Common { network_icon_opt.map(|name| widget::icon::from_name(name).into()); } Message::OutputEvent(output_event, output) => { + if self.wayland_connection.is_none() { + if let Some(backend) = output.backend().upgrade() { + self.wayland_connection = Some(Connection::from_backend(backend)); + } + } if let Some(on_output_event) = &self.on_output_event { return Task::done(cosmic::Action::App(on_output_event(output_event, output))); } @@ -349,6 +330,14 @@ impl + Send + 'static> Common { self.rectangle_tracker.replace(tracker); } }, + Message::KeyboardLayoutWayland(w) => match w { + keyboard_layout_wayland::Event::KeyboardLayout(keyboard_layout) => { + self.keyboard_layout = Some(keyboard_layout); + } + keyboard_layout_wayland::Event::Group(group) => { + self.current_keyboard_layout = group; + } + }, } Task::none() } @@ -441,6 +430,12 @@ impl + Send + 'static> Common { _ => None, })); + if let Some(conn) = self.wayland_connection.clone() { + subscriptions.push( + keyboard_layout_wayland::subscription(conn).map(Message::KeyboardLayoutWayland), + ); + } + #[cfg(feature = "networkmanager")] { subscriptions.push(crate::networkmanager::subscription().map(Message::NetworkIcon)); diff --git a/src/greeter.rs b/src/greeter.rs index e10dc3b..929459a 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -586,7 +586,7 @@ impl App { for (i, layout) in self.common.active_layouts.iter().enumerate() { items.push(menu_checklist( &layout.description, - i == 0, + i == self.common.current_keyboard_layout, Message::KeyboardLayout(i), )); } @@ -1029,19 +1029,6 @@ impl App { } } - fn set_xkb_config(&self) { - let user_data = match self - .selected_username - .data_idx - .and_then(|i| self.flags.user_datas.get(i)) - { - Some(some) => some, - None => return, - }; - - self.common.set_xkb_config(user_data); - } - fn update_user_data(&mut self) -> Task { let user_data = match self .selected_username @@ -1056,9 +1043,6 @@ impl App { self.common.update_user_data(user_data); - // Ensure that user's xkb config is used - self.common.set_xkb_config(user_data); - if let Some(builder) = &user_data.theme_builder_opt { self.theme_builder = builder.clone(); } @@ -1572,10 +1556,10 @@ impl cosmic::Application for App { } } Message::KeyboardLayout(layout_i) => { - if layout_i < self.common.active_layouts.len() { - self.common.active_layouts.swap(0, layout_i); - self.set_xkb_config(); + if let Some(keyboard_layout) = &self.common.keyboard_layout { + keyboard_layout.set_group(layout_i as u32); } + self.common.current_keyboard_layout = layout_i; if self.dropdown_opt == Some(Dropdown::Keyboard) { self.dropdown_opt = None } diff --git a/src/keyboard_layout_wayland.rs b/src/keyboard_layout_wayland.rs new file mode 100644 index 0000000..93221d9 --- /dev/null +++ b/src/keyboard_layout_wayland.rs @@ -0,0 +1,157 @@ +use cctk::{ + cosmic_protocols::keyboard_layout::v1::client::zcosmic_keyboard_layout_v1::ZcosmicKeyboardLayoutV1, + keyboard_layout::{KeyboardLayoutHandler, KeyboardLayoutState}, + sctk::{ + self, + registry::{ProvidesRegistryState, RegistryState}, + seat::{Capability, SeatHandler, SeatState}, + }, + wayland_client::{ + Connection, QueueHandle, delegate_noop, + globals::registry_queue_init, + protocol::{wl_keyboard, wl_seat}, + }, +}; +use cosmic::iced; +use cosmic::iced::futures::{SinkExt, channel::mpsc, executor::block_on}; +use std::{hash::Hash, thread}; + +#[derive(Clone, Debug)] +pub enum Event { + KeyboardLayout(ZcosmicKeyboardLayoutV1), + Group(usize), +} + +pub fn subscription(connection: Connection) -> iced::Subscription { + #[derive(Clone)] + struct WaylandSubscription(Connection); + impl Hash for WaylandSubscription { + fn hash(&self, state: &mut H) { + self.0.backend().display_id().hash(state); + } + } + iced::Subscription::run_with( + WaylandSubscription(connection), + |WaylandSubscription(connection)| { + let connection = connection.clone(); + iced::stream::channel(8, move |sender| async move { + thread::spawn(move || thread(connection, sender)); + }) + }, + ) +} + +struct Keyboard { + seat: wl_seat::WlSeat, + keyboard_layout: ZcosmicKeyboardLayoutV1, +} + +impl Drop for Keyboard { + fn drop(&mut self) { + self.keyboard_layout.destroy(); + } +} + +struct AppData { + seat_state: SeatState, + registry_state: RegistryState, + keyboard_layout_state: KeyboardLayoutState, + keyboard: Option, + sender: mpsc::Sender, +} + +impl KeyboardLayoutHandler for AppData { + fn group( + &mut self, + _conn: &Connection, + _qh: &QueueHandle, + _keyboard: &wl_keyboard::WlKeyboard, + _keyboard_layout: &ZcosmicKeyboardLayoutV1, + group: u32, + ) { + let _ = block_on(self.sender.send(Event::Group(group as usize))); + } +} + +impl ProvidesRegistryState for AppData { + fn registry(&mut self) -> &mut RegistryState { + &mut self.registry_state + } + + sctk::registry_handlers![SeatState,]; +} + +impl SeatHandler for AppData { + fn seat_state(&mut self) -> &mut SeatState { + &mut self.seat_state + } + + fn new_seat(&mut self, _: &Connection, _: &QueueHandle, _: wl_seat::WlSeat) {} + + fn new_capability( + &mut self, + _conn: &Connection, + qh: &QueueHandle, + seat: wl_seat::WlSeat, + capability: Capability, + ) { + if capability == Capability::Keyboard && self.keyboard.is_none() { + let keyboard = seat.get_keyboard(qh, ()); + let keyboard_layout = self + .keyboard_layout_state + .get_keyboard_layout(&keyboard, qh); + keyboard.release(); + + if let Some(keyboard_layout) = keyboard_layout { + let _ = block_on( + self.sender + .send(Event::KeyboardLayout(keyboard_layout.clone())), + ); + self.keyboard = Some(Keyboard { + seat, + keyboard_layout, + }); + } else { + keyboard.release(); + } + } + } + + fn remove_capability( + &mut self, + _conn: &Connection, + _: &QueueHandle, + seat: wl_seat::WlSeat, + _capability: Capability, + ) { + self.keyboard.take_if(|x| x.seat == seat); + } + + fn remove_seat(&mut self, _: &Connection, _: &QueueHandle, seat: wl_seat::WlSeat) { + self.keyboard.take_if(|x| x.seat == seat); + } +} + +fn thread(conn: Connection, sender: mpsc::Sender) { + let (globals, mut event_queue) = registry_queue_init(&conn).unwrap(); + let qh = event_queue.handle(); + let registry_state = RegistryState::new(&globals); + let seat_state = SeatState::new(&globals, &qh); + let keyboard_layout_state = KeyboardLayoutState::new(®istry_state, &qh); + + let mut app_data = AppData { + seat_state, + registry_state, + keyboard_layout_state, + keyboard: None, + sender, + }; + loop { + event_queue.blocking_dispatch(&mut app_data).unwrap(); + } +} + +sctk::delegate_registry!(AppData); +sctk::delegate_seat!(AppData); +cctk::delegate_keyboard_layout!(AppData); +delegate_noop!(AppData: ignore wl_keyboard::WlKeyboard); diff --git a/src/lib.rs b/src/lib.rs index 8535a1e..91736b9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,6 +8,8 @@ mod wayland; mod common; +mod keyboard_layout_wayland; + mod localize; #[cfg(feature = "logind")] diff --git a/src/locker.rs b/src/locker.rs index 5bf0569..952d00a 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -421,7 +421,7 @@ impl App { for (i, layout) in self.common.active_layouts.iter().enumerate() { items.push(menu_checklist( &layout.description, - i == 0, + i == self.common.current_keyboard_layout, Message::KeyboardLayout(i), )); } @@ -1044,10 +1044,10 @@ impl cosmic::Application for App { } }, Message::KeyboardLayout(layout_i) => { - if layout_i < self.common.active_layouts.len() { - self.common.active_layouts.swap(0, layout_i); - self.common.set_xkb_config(&self.flags.user_data); + if let Some(keyboard_layout) = &self.common.keyboard_layout { + keyboard_layout.set_group(layout_i as u32); } + self.common.current_keyboard_layout = layout_i; if self.dropdown_opt == Some(Dropdown::Keyboard) { self.dropdown_opt = None; return self.common.dropdown_blur_rects(false); From f64e2d8fab716a2a8a23a5082041762a2cdf7215 Mon Sep 17 00:00:00 2001 From: Hugo Date: Wed, 29 Jul 2026 17:51:37 +0200 Subject: [PATCH 09/35] fix: detect and enable logind functionality at runtime Downstream distributions have optional logind, but the logind feature must be defined at compile time. If cosmic-greeter is compiled with logind support it fails to run on a host that's not running logind. Detect whether logind is present at runtime, enabling the use of the same binaries regardless of whether logind is installed or not. --- src/greeter.rs | 56 ++++++++++++++++++++++++++++---------------------- src/locker.rs | 34 ++++++++++++++++-------------- src/logind.rs | 21 +++++++++++++++++++ 3 files changed, 71 insertions(+), 40 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index 929459a..b53e4f4 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -280,6 +280,8 @@ pub fn main() -> Result<(), Box> { sessions }; + let logind_available = cfg!(feature = "logind") && crate::logind::is_available(); + let flags = Flags { user_icons: user_datas .iter_mut() @@ -289,6 +291,7 @@ pub fn main() -> Result<(), Box> { sessions, greeter_config, greeter_config_handler, + logind_available, }; let settings = Settings::default().no_main_window(true); @@ -305,6 +308,7 @@ pub struct Flags { sessions: HashMap, Vec)>, greeter_config: CosmicGreeterConfig, greeter_config_handler: Option, + logind_available: bool, } #[derive(Clone, Debug)] @@ -688,7 +692,7 @@ impl App { let accessibility_button = accessibility_dropdown; - let button_row = iced::widget::row![ + let mut button_row = iced::widget::row![ widget::tooltip( accessibility_button, text(fl!("accessibility")), @@ -709,30 +713,32 @@ impl App { text(fl!("session")), widget::tooltip::Position::Top ), - widget::tooltip( - widget::button::custom(widget::icon::from_name("system-suspend-symbolic")) - .padding(12.0) - .on_press(Message::Suspend), - text(fl!("suspend")), - widget::tooltip::Position::Top - ), - widget::tooltip( - widget::button::custom(widget::icon::from_name("system-reboot-symbolic")) - .padding(12.0) - .on_press(Message::Restart), - text(fl!("restart")), - widget::tooltip::Position::Top - ), - widget::tooltip( - widget::button::custom(widget::icon::from_name("system-shutdown-symbolic")) - .padding(12.0) - .on_press(Message::Shutdown), - text(fl!("shutdown")), - widget::tooltip::Position::Top - ) - ] - .padding([16.0, 0.0, 0.0, 0.0]) - .spacing(8.0); + ]; + if self.flags.logind_available { + button_row = button_row + .push(widget::tooltip( + widget::button::custom(widget::icon::from_name("system-suspend-symbolic")) + .padding(12.0) + .on_press(Message::Suspend), + text(fl!("suspend")), + widget::tooltip::Position::Top, + )) + .push(widget::tooltip( + widget::button::custom(widget::icon::from_name("system-reboot-symbolic")) + .padding(12.0) + .on_press(Message::Restart), + text(fl!("restart")), + widget::tooltip::Position::Top, + )) + .push(widget::tooltip( + widget::button::custom(widget::icon::from_name("system-shutdown-symbolic")) + .padding(12.0) + .on_press(Message::Shutdown), + text(fl!("shutdown")), + widget::tooltip::Position::Top, + )); + } + let button_row = button_row.padding([16.0, 0.0, 0.0, 0.0]).spacing(8.0); widget::container(iced::widget::column![ date_time_column, diff --git a/src/locker.rs b/src/locker.rs index 952d00a..d7fd18b 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -79,6 +79,8 @@ pub fn main(user: pwd::Passwd) -> Result<(), Box> { // We are already the user at this point user_data.load_config_as_user(); + let logind_available = cfg!(feature = "logind") && crate::logind::is_available(); + let flags = Flags { user_icon: user_data .icon_opt @@ -86,6 +88,7 @@ pub fn main(user: pwd::Passwd) -> Result<(), Box> { .map(widget::image::Handle::from_bytes), user_data, lockfile_opt: lockfile_opt(), + logind_available, }; let settings = Settings::default().no_main_window(true); @@ -247,6 +250,7 @@ pub struct Flags { user_data: UserData, user_icon: Option, lockfile_opt: Option, + logind_available: bool, } ///TODO: this is custom code that should be better handled by libcosmic @@ -429,7 +433,7 @@ impl App { } //TODO: implement these buttons - let button_row = iced::widget::row![ + let mut button_row = iced::widget::row![ /*TODO: greeter accessibility options widget::button::custom(widget::icon::from_name( "applications-accessibility-symbolic" @@ -442,16 +446,17 @@ impl App { widget::text(fl!("keyboard-layout")), widget::tooltip::Position::Top ), - widget::tooltip( + ]; + if cfg!(feature = "logind") && self.flags.logind_available { + button_row = button_row.push(widget::tooltip( widget::button::custom(widget::icon::from_name("system-suspend-symbolic")) .padding(12.0) .on_press(Message::Suspend), widget::text(fl!("suspend")), - widget::tooltip::Position::Top - ), - ] - .padding([16.0, 0.0, 0.0, 0.0]) - .spacing(8.0); + widget::tooltip::Position::Top, + )); + } + let button_row = button_row.padding([16.0, 0.0, 0.0, 0.0]).spacing(8.0); widget::container(iced::widget::column![ date_time_column, @@ -679,18 +684,18 @@ impl cosmic::Application for App { authenticating: false, }; - let task = if cfg!(feature = "logind") { + let task = if cfg!(feature = "logind") && app.flags.logind_available { if already_locked { // Recover previously locked state tracing::info!("recovering previous locked state"); app.state = State::Locking; lock() } else { - // When logind feature is used, wait for lock signal + // When logind is available, wait for lock signal Task::none() } } else { - // When logind feature not used, lock immediately + // When logind is not available, lock immediately tracing::info!("locking immediately"); app.state = State::Locking; lock() @@ -1005,11 +1010,11 @@ impl cosmic::Application for App { self.common.window_size.remove(surface_id); commands.push(destroy_lock_surface(*surface_id)); } - if cfg!(feature = "logind") { + if cfg!(feature = "logind") && self.flags.logind_available { return Task::batch(commands); - // When using logind feature, stick around for more lock signals + // When logind is available, stick around for more lock signals } else { - // When not using logind feature, exit immediately after unlocking + // When logind is not available, exit immediately after unlocking //TODO: cleaner method to exit? process::exit(0); } @@ -1212,8 +1217,7 @@ impl cosmic::Application for App { }), ); - #[cfg(feature = "logind")] - { + if cfg!(feature = "logind") && self.flags.logind_available { subscriptions.push(crate::logind::subscription()); } diff --git a/src/logind.rs b/src/logind.rs index c5561f3..74da8e4 100644 --- a/src/logind.rs +++ b/src/logind.rs @@ -13,6 +13,27 @@ use zbus::Connection; use crate::common; use crate::locker::Message; +/// Checks whether logind (either elogind or systemd-logind) is reachable on the system bus. +pub fn is_available() -> bool { + fn ping() -> zbus::Result<()> { + let connection = zbus::blocking::Connection::system()?; + connection.call_method( + Some("org.freedesktop.login1"), + "/org/freedesktop/login1", + Some("org.freedesktop.DBus.Peer"), + "Ping", + &(), + )?; + Ok(()) + } + if let Err(err) = ping() { + tracing::info!("logind not available: {}", err); + false + } else { + true + } +} + pub async fn power_off() -> zbus::Result<()> { let connection = Connection::system().await?; let manager = ManagerProxy::new(&connection).await?; From ae627ab0d0e9f3c94ccc62500137789a8233424f Mon Sep 17 00:00:00 2001 From: Ralph S Date: Mon, 17 Aug 2026 15:45:03 -0400 Subject: [PATCH 10/35] fix: ignore empty password --- src/locker.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locker.rs b/src/locker.rs index d7fd18b..482a335 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -1059,6 +1059,9 @@ impl cosmic::Application for App { } } Message::Submit(value) => { + if value.is_empty() { + return Task::none(); + } self.common.error_opt = None; self.authenticating = true; match self.value_tx_opt.take() { From 088f26cbb877e97320ab1cf9257fcfdc04546ce2 Mon Sep 17 00:00:00 2001 From: chris-010 <10660568+chris-010@users.noreply.github.com> Date: Mon, 17 Aug 2026 11:53:41 +0200 Subject: [PATCH 11/35] fix: ignore empty responses on the login screen Message::Auth is constructed in exactly one place, the .on_submit of the password input, and it forwards whatever the field holds to greetd. An empty field therefore sends PostAuthMessageResponse with response Some(""), PAM rejects it, and greetd tears the session down; the greeter then reconnects with a fresh CreateSession. Every stray Enter costs that round trip, and while it runs the user is looking at the authenticating spinner. Non-interactive auth messages (AuthMessageType::Info) are acknowledged separately with response None and never reach Message::Auth, so an empty Some can only come from the user submitting an empty field. This is the login-screen counterpart of the lock-screen fix in #509. The two do not overlap; that one guards Message::Submit in locker.rs. Drafted with AI assistance (Claude Code); the change was reviewed, built and tested by me as described. Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com> --- src/greeter.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/greeter.rs b/src/greeter.rs index b53e4f4..6431496 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -1486,6 +1486,9 @@ impl cosmic::Application for App { } } Message::Auth(response) => { + if response.as_deref() == Some("") { + return Task::none(); + } self.common.error_opt = None; self.authenticating = true; self.send_request(Request::PostAuthMessageResponse { response }); From aee6352fdcea301ca0656836efa0d8e80d515bb1 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 18 Aug 2026 11:08:21 +0200 Subject: [PATCH 12/35] i18n: translation updates from weblate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: CodeBeats Co-authored-by: Hosted Weblate Co-authored-by: Martin Meizoso Co-authored-by: Michael Millet Co-authored-by: Quentin PAGÈS Co-authored-by: Steen Rabol Co-authored-by: Walter William Beckerleg Bruckman Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/da/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/gl/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/oc/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/pt_BR/ Translation: Pop OS/COSMIC Greeter --- i18n/da/cosmic_greeter.ftl | 37 +++++++++++++++++++++++++++++++++++ i18n/gl/cosmic_greeter.ftl | 37 +++++++++++++++++++++++++++++++++++ i18n/oc/cosmic_greeter.ftl | 15 ++++++++++++++ i18n/pt-BR/cosmic_greeter.ftl | 2 +- 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 i18n/gl/cosmic_greeter.ftl diff --git a/i18n/da/cosmic_greeter.ftl b/i18n/da/cosmic_greeter.ftl index e69de29..877d130 100644 --- a/i18n/da/cosmic_greeter.ftl +++ b/i18n/da/cosmic_greeter.ftl @@ -0,0 +1,37 @@ +cancel = Annuller +restart = Genstart +caps-lock = Skiftelås er aktiv. +enter-user = Indtast navn manuelt... +type-username = Brugernavn: +keyboard-layout = Tastaturopsætning +restart-now = Genstart nu? +session = Session +shutdown = Luk ned +shutdown-now = Luk ned nu? +user = Bruger +suspend = Slumre +auth-error-default = Godkendelse fejlede. Prøv venligst igen. +auth-error-credentials = Ukorrekt adgangskode. Kontrollér venligst din tastaturopsætning og prøv igen. +auth-error-denied = Adgang nægtet. +auth-error-maxtries = For mange mislykkede godkendelsesforsøg. +auth-error-account = Konto er utilgængelig eller deaktiveret. +accessibility = Accessibility + .screen-reader = Skærmlæser + .magnifier = Forstørrelsesglas + .high-contrast = Høj kontrast + .invert-colors = Invertér Farver +authenticating = Godkender... +restart-timeout = + The system will restart automatically + { $seconds -> + [0] now. + [1] in 1 second. + *[other] in { $seconds } seconds. + } +shutdown-timeout = + Systemet lukker automatisk ned + { $seconds -> + [0] nu. + [1] om 1 sekund. + *[other] om { $seconds } sekunder. + } diff --git a/i18n/gl/cosmic_greeter.ftl b/i18n/gl/cosmic_greeter.ftl new file mode 100644 index 0000000..7b02560 --- /dev/null +++ b/i18n/gl/cosmic_greeter.ftl @@ -0,0 +1,37 @@ +cancel = Cancelar +accessibility = Accesibilidade + .screen-reader = Lector de pantalla + .magnifier = Lupa + .high-contrast = Alto contraste + .invert-colors = Inverter cores +authenticating = Autentificando... +caps-lock = Bloqueo de Maiúsculas activo. +enter-user = Introducir nome manualmente... +type-username = Nome de usuario: +keyboard-layout = Distribución do teclado +restart = Reiniciar +restart-now = Reiniciar agora? +restart-timeout = + O sistema reiniciarase automaticamente + { $seconds -> + [0] agora. + [1] dentro de 1 segundo. + *[other] dentro de { $seconds } segundos. + } +session = Sesión +shutdown = Apagar +shutdown-now = Apagar agora? +shutdown-timeout = + O sistema apagarase automaticamente + { $seconds -> + [0] agora. + [1] dentro de 1 segundo. + *[other] dentro de { $seconds } segundos. + } +suspend = Suspender +user = Usuario +auth-error-default = A autenticación fallou. Téntao de novo. +auth-error-credentials = Contrasinal incorrecto. Comproba a distribución do teclado e téntao de novo. +auth-error-denied = Acceso denegado. +auth-error-maxtries = Demasiados intentos de autenticación. +auth-error-account = A conta non estña dispoñible ou está deshabilitada. diff --git a/i18n/oc/cosmic_greeter.ftl b/i18n/oc/cosmic_greeter.ftl index e69de29..2ca5d44 100644 --- a/i18n/oc/cosmic_greeter.ftl +++ b/i18n/oc/cosmic_greeter.ftl @@ -0,0 +1,15 @@ +shutdown = Atudar +restart-timeout = + Lo sistèma reaviarà automaticament + { $seconds -> + [0] ara. + [1] d’aquí 1 segondas. + *[other] d’aquí { $seconds } segondas. + } +shutdown-timeout = + Lo sistèma s'atudarà automaticament + { $seconds -> + [0] ara. + [1] d’aquí 1 segondas. + *[other] d’aquí { $seconds } segondas. + } diff --git a/i18n/pt-BR/cosmic_greeter.ftl b/i18n/pt-BR/cosmic_greeter.ftl index 7288818..654fec1 100644 --- a/i18n/pt-BR/cosmic_greeter.ftl +++ b/i18n/pt-BR/cosmic_greeter.ftl @@ -29,7 +29,7 @@ shutdown-timeout = } suspend = Suspender user = Usuário -authenticating = Autenticando… +authenticating = Autenticando... auth-error-default = A autenticação falhou. Tente novamente. auth-error-credentials = Senha incorreta. Verifique o layout do seu teclado e tente novamente. auth-error-denied = Acesso negado. From e9ab9e74a5133f21c76a86985afd6d2909760053 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Mon, 17 Aug 2026 19:49:14 +0200 Subject: [PATCH 13/35] feat: enable JPEG-XL and AVIF image support --- Cargo.lock | 371 ++++++++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 3 + debian/control | 1 + src/main.rs | 3 + 4 files changed, 376 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f7609e..e6a243f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -162,6 +162,21 @@ dependencies = [ "equator", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -542,6 +557,19 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" +[[package]] +name = "av-data" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca67ba5d317924c02180c576157afd54babe48a76ebc66ce6d34bb8ba08308e" +dependencies = [ + "byte-slice-cast", + "bytes", + "num-derive", + "num-rational", + "num-traits", +] + [[package]] name = "av-scenechange" version = "0.14.1" @@ -671,6 +699,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "bitreader" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "886559b1e163d56c765bc3a985febb4eee8009f625244511d8ee3c432e08c066" +dependencies = [ + "cfg-if", +] + [[package]] name = "bitstream-io" version = "4.10.0" @@ -736,6 +773,16 @@ dependencies = [ "cfg_aliases", ] +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bs58" version = "0.5.1" @@ -783,6 +830,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" +[[package]] +name = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + [[package]] name = "bytemuck" version = "1.25.0" @@ -803,6 +856,12 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "byteorder-lite" version = "0.1.0" @@ -871,6 +930,16 @@ dependencies = [ "nom 7.1.3", ] +[[package]] +name = "cfg-expr" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" +dependencies = [ + "smallvec", + "target-lexicon", +] + [[package]] name = "cfg-if" version = "1.0.4" @@ -1267,6 +1336,7 @@ dependencies = [ "image", "jiff", "jiff-icu", + "jxl-oxide", "kdl", "libcosmic", "logind-zbus", @@ -1660,6 +1730,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" +[[package]] +name = "dav1d" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee89cb860616069c67520dcd66cacdb900b57c799f634a0eb6d91f6e2a82b61" +dependencies = [ + "av-data", + "bitflags 2.13.0", + "dav1d-sys", + "static_assertions", +] + +[[package]] +name = "dav1d-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c91aea6668645415331133ed6f8ddf0e7f40160cd97a12d59e68716a58704b" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "defmt" version = "1.1.1" @@ -2054,6 +2146,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fallible_collections" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a88c69768c0a15262df21899142bc6df9b9b823546d4b4b9a7bc2d6c448ec6fd" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "fast-srgb8" version = "1.0.0" @@ -2081,7 +2182,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] @@ -2606,6 +2707,15 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -2638,6 +2748,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.3.9" @@ -3441,9 +3557,11 @@ checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" dependencies = [ "bytemuck", "byteorder-lite", + "dav1d", "exr", "image-webp", "moxcms", + "mp4parse", "num-traits", "png 0.18.1", "ravif", @@ -3754,6 +3872,186 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jxl-bitstream" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b480e752277e29eb4054f69546887a9b84656fe78c08f54ba5850ced98a378fe" +dependencies = [ + "tracing", +] + +[[package]] +name = "jxl-coding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd972bcd125e776f1eb241ac50e39f956095a1c2770c64736c968f8946bd9a3c" +dependencies = [ + "jxl-bitstream", + "tracing", +] + +[[package]] +name = "jxl-color" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f316b1358c1711755b3ee8e8cb5c4a1dad12e796233088a7a513440782de80b2" +dependencies = [ + "jxl-bitstream", + "jxl-coding", + "jxl-grid", + "jxl-image", + "jxl-oxide-common", + "jxl-threadpool", + "tracing", +] + +[[package]] +name = "jxl-frame" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d967c6fd669c7c01060b5022d8835fa82fd46b06ffc98b549f17600a097c2b3" +dependencies = [ + "jxl-bitstream", + "jxl-coding", + "jxl-grid", + "jxl-image", + "jxl-modular", + "jxl-oxide-common", + "jxl-threadpool", + "jxl-vardct", + "tracing", +] + +[[package]] +name = "jxl-grid" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01671307879a033bfa52e6e8784b941aca770b3f3a7d33830b455b6844f793fb" +dependencies = [ + "tracing", +] + +[[package]] +name = "jxl-image" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f752d62577c702a94dbbce4045caf08cb58639e8a4d56464b40ecf33ffe565" +dependencies = [ + "jxl-bitstream", + "jxl-grid", + "jxl-oxide-common", + "tracing", +] + +[[package]] +name = "jxl-jbr" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35d032bcec660647828527ff42c6f5776d2fd44b8357f9f6d9ac6dc07218e46" +dependencies = [ + "brotli-decompressor", + "jxl-bitstream", + "jxl-frame", + "jxl-grid", + "jxl-image", + "jxl-modular", + "jxl-oxide-common", + "jxl-threadpool", + "jxl-vardct", + "tracing", +] + +[[package]] +name = "jxl-modular" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2f045b24c738dd91d482be385512b512721ae08a671bd4b27bf1c47f215235" +dependencies = [ + "jxl-bitstream", + "jxl-coding", + "jxl-grid", + "jxl-oxide-common", + "jxl-threadpool", + "tracing", +] + +[[package]] +name = "jxl-oxide" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36c662923f47586880211f3bc7c0d83fb3a9b410d278c7bde93450748abeef3" +dependencies = [ + "brotli-decompressor", + "bytemuck", + "image", + "jxl-bitstream", + "jxl-color", + "jxl-frame", + "jxl-grid", + "jxl-image", + "jxl-jbr", + "jxl-oxide-common", + "jxl-render", + "jxl-threadpool", + "tracing", +] + +[[package]] +name = "jxl-oxide-common" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62394c5021b3a9e7e0dbb2d639d555d019090c9946c39f6d3b09d390db4157b" +dependencies = [ + "jxl-bitstream", +] + +[[package]] +name = "jxl-render" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34386bfdb6a19b5a30cc9beb4d475d537422c31ae8c39bb69640fcce3fcaf19" +dependencies = [ + "bytemuck", + "jxl-bitstream", + "jxl-coding", + "jxl-color", + "jxl-frame", + "jxl-grid", + "jxl-image", + "jxl-modular", + "jxl-oxide-common", + "jxl-threadpool", + "jxl-vardct", + "tracing", +] + +[[package]] +name = "jxl-threadpool" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f15eb830aa77a7f21148d72e153562a26bfe570139bd4922eab1908dd499d3" +dependencies = [ + "rayon", + "rayon-core", + "tracing", +] + +[[package]] +name = "jxl-vardct" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce72a18c6d3a47172ab6c479be2bdb56f22066b5d7092663f03b4490820b4511" +dependencies = [ + "jxl-bitstream", + "jxl-coding", + "jxl-grid", + "jxl-modular", + "jxl-oxide-common", + "jxl-threadpool", + "tracing", +] + [[package]] name = "kamadak-exif" version = "0.6.1" @@ -4275,6 +4573,20 @@ dependencies = [ "pxfm", ] +[[package]] +name = "mp4parse" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63a35203d3c6ce92d5251c77520acb2e57108c88728695aa883f70023624c570" +dependencies = [ + "bitreader", + "byteorder", + "fallible_collections", + "log", + "num-traits", + "static_assertions", +] + [[package]] name = "mutate_once" version = "0.1.2" @@ -4822,7 +5134,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "proc-macro2-diagnostics", "quote", @@ -5970,6 +6282,15 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_with" version = "3.21.0" @@ -6327,6 +6648,19 @@ dependencies = [ "libc", ] +[[package]] +name = "system-deps" +version = "7.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 1.1.3+spec-1.1.0", + "version-compare", +] + [[package]] name = "taffy" version = "0.9.2" @@ -6339,6 +6673,12 @@ dependencies = [ "slotmap", ] +[[package]] +name = "target-lexicon" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" + [[package]] name = "temp-dir" version = "0.1.16" @@ -6570,6 +6910,21 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow 1.0.3", +] + [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -6600,6 +6955,12 @@ dependencies = [ "winnow 1.0.3", ] +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + [[package]] name = "tracing" version = "0.1.44" @@ -6944,6 +7305,12 @@ dependencies = [ "time", ] +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + [[package]] name = "version_check" version = "0.9.5" diff --git a/Cargo.toml b/Cargo.toml index 40f57ab..618aaa0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,12 +79,15 @@ cosmic-randr-shell = { workspace = true } kdl.workspace = true color-eyre.workspace = true image = { version = "0.25", default-features = false, features = [ + "avif-native", "jpeg", "png", "rayon", "webp", "hdr", ] } +# JPEG-XL support +jxl-oxide = { version = "0.12.6", features = ["image"] } [dependencies.greetd_ipc] version = "0.10.3" diff --git a/debian/control b/debian/control index 4ed59b9..f193b0e 100644 --- a/debian/control +++ b/debian/control @@ -7,6 +7,7 @@ Build-Depends: git, just (>= 1.13.0), libclang-dev, + libdav1d-dev, libinput-dev, libpam-dev, libwayland-dev, diff --git a/src/main.rs b/src/main.rs index 7a2b73e..7aa05a7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,9 @@ fn main() -> Result<(), Box> { } } + // Enable jpeg-xl support for image-rs. + let _ = jxl_oxide::integration::register_image_decoding_hook(); + match pwd::Passwd::current_user() { Some(current_user) => match current_user.name.as_str() { "cosmic-greeter" => greeter::main(), From c35a64e704efc1ee2469652f435e7b99e1aa5380 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 22 Aug 2026 19:35:58 +0200 Subject: [PATCH 14/35] i18n: translation updates from weblate Co-authored-by: Hosted Weblate Co-authored-by: Jens Peter Nielsen Co-authored-by: lorduskordus Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/cs/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/da/ Translation: Pop OS/COSMIC Greeter --- i18n/cs/cosmic_greeter.ftl | 2 +- i18n/da/cosmic_greeter.ftl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/cs/cosmic_greeter.ftl b/i18n/cs/cosmic_greeter.ftl index 0f16321..752b814 100644 --- a/i18n/cs/cosmic_greeter.ftl +++ b/i18n/cs/cosmic_greeter.ftl @@ -2,7 +2,7 @@ accessibility = Přístupnost .screen-reader = Čtečka obrazovky .magnifier = Lupa .high-contrast = Vysoký kontrast - .invert-colors = Převrátit barvy + .invert-colors = Inverze barev cancel = Zrušit caps-lock = Caps Lock je aktivní. enter-user = Zadat jméno ručně... diff --git a/i18n/da/cosmic_greeter.ftl b/i18n/da/cosmic_greeter.ftl index 877d130..71244ce 100644 --- a/i18n/da/cosmic_greeter.ftl +++ b/i18n/da/cosmic_greeter.ftl @@ -1,4 +1,4 @@ -cancel = Annuller +cancel = Afbryd restart = Genstart caps-lock = Skiftelås er aktiv. enter-user = Indtast navn manuelt... From 935891e36bf265a3c65906694badc1e66cfc091d Mon Sep 17 00:00:00 2001 From: chris-010 <10660568+chris-010@users.noreply.github.com> Date: Sun, 9 Aug 2026 06:34:15 +0200 Subject: [PATCH 15/35] fix(greeter): do not cancel the session on a non-fatal PAM error message greetd delivers PAM_ERROR_MSG as an auth message of type Error, and ipc.rs turned that into Message::Error, which cancels the greetd session. But such a message describes the current attempt, not the end of the conversation: pam_fprintd reports "Failed to match fingerprint" this way and then retries until max-tries is reached. The consequence at the login screen is that a single failed fingerprint press ends the conversation. The greeter reconnects and immediately creates a new session, whose PAM worker calls fprintd's Claim 14 ms later while the previous worker still holds it, so the claim is denied and no fingerprint prompt ever appears again. The previous worker only exits when it next tries to talk to the greeter, which can be arbitrarily far in the future, so delaying the new session does not help either. Per the greetd protocol every auth message has to be acknowledged with PostAuthMessageResponse, and for a non-interactive one the response is None, which is what the Info arm already does. Route the Error message to its own Message::AuthError that shows the text and acknowledges it. Message::Error and the Response::Error path stay as they are, so a failed authentication still cancels the session. Drafted with AI assistance (Claude Code); the change and the measurements behind it were reviewed and tested by me on real hardware. Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com> --- src/greeter.rs | 10 ++++++++++ src/greeter/ipc.rs | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/greeter.rs b/src/greeter.rs index 6431496..4a6063f 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -363,6 +363,9 @@ pub enum Message { Common(common::Message), OutputEvent(OutputEvent, WlOutput), Auth(Option), + /// Non-fatal error message from PAM (`PAM_ERROR_MSG`), reported by greetd as an auth + /// message of type `Error`. Unlike [`Message::Error`] the conversation stays alive. + AuthError(String), ConfigUpdateUser, DialogCancel, DialogConfirm, @@ -1493,6 +1496,13 @@ impl cosmic::Application for App { self.authenticating = true; self.send_request(Request::PostAuthMessageResponse { response }); } + Message::AuthError(error) => { + // The conversation continues, so acknowledge like any other + // non-interactive auth message rather than cancelling the session. + self.common.error_opt = Some(error); + self.authenticating = false; + self.send_request(Request::PostAuthMessageResponse { response: None }); + } Message::Login => { self.common.prompt_opt = None; self.common.error_opt = None; diff --git a/src/greeter/ipc.rs b/src/greeter/ipc.rs index d3f1e45..4e92afe 100644 --- a/src/greeter/ipc.rs +++ b/src/greeter/ipc.rs @@ -115,7 +115,8 @@ pub fn subscription() -> Subscription { .await; } greetd_ipc::AuthMessageType::Error => { - _ = sender.send(Message::Error(auth_message)).await; + // PAM_ERROR_MSG: a failed attempt, not a dead session. + _ = sender.send(Message::AuthError(auth_message)).await; } }, greetd_ipc::Response::Error { From 4c995b533cc49ccd204d861c12187106c9a10435 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 27 Aug 2026 07:58:50 +0200 Subject: [PATCH 16/35] chore: fige Cargo.lock tel que resolu apres le merge 1.7.0 Co-Authored-By: Claude Opus 5 (1M context) --- Cargo.lock | 347 +++++++++++++---------------------------------------- 1 file changed, 85 insertions(+), 262 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e6a243f..a301b0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,12 +282,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "as-slice" version = "0.2.1" @@ -812,6 +806,13 @@ dependencies = [ "num-traits", ] +[[package]] +name = "build_helpers" +version = "0.14.0" +dependencies = [ + "cfg_aliases", +] + [[package]] name = "built" version = "0.8.1" @@ -992,7 +993,6 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1002,22 +1002,12 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", "smithay-clipboard", ] -[[package]] -name = "clipboard_x11" -version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" -dependencies = [ - "thiserror 1.0.69", - "x11rb", -] - [[package]] name = "cocoa" version = "0.25.0" @@ -1195,8 +1185,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" -version = "1.0.15" -source = "git+https://github.com/pop-os/cosmic-applets#3f4d0f43a0a7e75c983c83ca09454e65afc3bc71" +version = "1.3.0" dependencies = [ "cosmic-config", "serde", @@ -1205,7 +1194,6 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" -source = "git+https://github.com/pop-os/cosmic-bg#ed65f7d3dc9e3d4af3cd65244a966e01bff0f730" dependencies = [ "cosmic-config", "derive_setters", @@ -1217,7 +1205,6 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ "bitflags 2.13.0", "cosmic-protocols", @@ -1230,7 +1217,6 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#693d1ad775193deb95a33810b5eac59684ca2ac0" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1243,7 +1229,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "atomicwrites", "calloop", @@ -1265,7 +1250,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "quote", "syn 2.0.118", @@ -1282,7 +1266,6 @@ dependencies = [ [[package]] name = "cosmic-dbus-networkmanager" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "bitflags 2.13.0", "derive_builder", @@ -1295,7 +1278,6 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", @@ -1338,7 +1320,7 @@ dependencies = [ "jiff-icu", "jxl-oxide", "kdl", - "libcosmic", + "libcosmic-yoda", "logind-zbus", "pam-client", "pwd", @@ -1396,7 +1378,6 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ "bitflags 2.13.0", "wayland-backend", @@ -1409,8 +1390,7 @@ dependencies = [ [[package]] name = "cosmic-randr-shell" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-randr#6e8e795970fa06d434af22775e415b517f7552d3" +version = "1.3.0" dependencies = [ "kdl", "slotmap", @@ -1419,8 +1399,7 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" -version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" +version = "1.7.0" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1433,8 +1412,7 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" -version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" +version = "1.7.0" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1447,7 +1425,6 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1459,8 +1436,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" +version = "0.1.1-yoda.1" dependencies = [ "zbus", ] @@ -1468,7 +1444,6 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1478,8 +1453,6 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ "bitflags 2.13.0", "fontdb", @@ -1497,12 +1470,12 @@ dependencies = [ "unicode-linebreak", "unicode-script", "unicode-segmentation", + "unicode-width 0.2.2", ] [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "almost", "configparser", @@ -1569,7 +1542,6 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", @@ -1605,15 +1577,6 @@ dependencies = [ "uncased", ] -[[package]] -name = "ctor" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" -dependencies = [ - "dtor", -] - [[package]] name = "cursor-icon" version = "1.2.0" @@ -1913,7 +1876,6 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "bitflags 2.13.0", "mime 0.1.0", @@ -1940,52 +1902,6 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" - -[[package]] -name = "drm" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" -dependencies = [ - "bitflags 2.13.0", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" -dependencies = [ - "drm-sys", - "rustix 0.38.44", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" -dependencies = [ - "libc", - "linux-raw-sys 0.6.5", -] - -[[package]] -name = "dtor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "dyn-clone" @@ -2390,9 +2306,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -2405,9 +2321,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -2415,15 +2331,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -2432,9 +2348,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-lite" @@ -2451,32 +2367,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.3", ] [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -2489,16 +2405,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -2892,8 +2798,8 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ + "build_helpers", "dnd", "iced_accessibility", "iced_core", @@ -2913,7 +2819,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "accesskit", "accesskit_winit", @@ -2922,9 +2827,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bitflags 2.13.0", + "build_helpers", "bytes", "cosmic-client-toolkit", "dnd", @@ -2947,7 +2852,6 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_core", "iced_futures", @@ -2957,7 +2861,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "futures", "iced_core", @@ -2971,7 +2874,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bitflags 2.13.0", "bytemuck", @@ -2992,7 +2894,6 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_graphics", "iced_runtime", @@ -3001,7 +2902,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3013,8 +2913,8 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ + "build_helpers", "bytes", "cosmic-client-toolkit", "dnd", @@ -3028,7 +2928,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ "bytemuck", "cosmic-text", @@ -3045,10 +2944,9 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ - "as-raw-xcb-connection", "bitflags 2.13.0", + "build_helpers", "bytemuck", "cosmic-client-toolkit", "cryoglyph", @@ -3064,20 +2962,18 @@ dependencies = [ "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.18", - "tiny-xlib", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-sys", "wgpu", - "x11rb", ] [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ + "build_helpers", "cosmic-client-toolkit", "dnd", "iced_renderer", @@ -3094,8 +2990,8 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" dependencies = [ + "build_helpers", "cosmic-client-toolkit", "cursor-icon", "dnd", @@ -4174,13 +4070,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] -name = "libcosmic" -version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +name = "libcosmic-yoda" +version = "0.1.0-yoda.2" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", + "build_helpers", "cosmic-client-toolkit", "cosmic-config", "cosmic-freedesktop-icons", @@ -4296,12 +4192,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4514,7 +4404,6 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -6485,7 +6374,6 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", @@ -6516,31 +6404,26 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ - "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", - "drm", "fastrand", "foreign-types", "js-sys", + "libredox", "log", "memmap2 0.9.11", "objc", "raw-window-handle", - "redox_syscall 0.5.18", "rustix 0.38.44", - "tiny-xlib", "wasm-bindgen", "wayland-backend", "wayland-client", "wayland-sys", "web-sys", "windows-sys 0.52.0", - "x11rb", ] [[package]] @@ -6628,6 +6511,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.13.2" @@ -6791,7 +6685,6 @@ dependencies = [ [[package]] name = "timedate-zbus" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -6822,19 +6715,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-xlib" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" -dependencies = [ - "as-raw-xcb-connection", - "ctor", - "libloading", - "pkg-config", - "tracing", -] - [[package]] name = "tinystr" version = "0.8.3" @@ -6863,9 +6743,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.3" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "bytes", "libc", @@ -7200,7 +7080,6 @@ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "upower_dbus" version = "0.3.2" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "serde", "serde_repr", @@ -7777,12 +7656,10 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", - "clipboard_x11", "dnd", "mime 0.1.0", "raw-window-handle", @@ -8222,7 +8099,6 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "cfg_aliases", @@ -8242,13 +8118,11 @@ dependencies = [ "winit-wayland", "winit-web", "winit-win32", - "winit-x11", ] [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "android-activity", "bitflags 2.13.0", @@ -8263,7 +8137,6 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "block2 0.6.2", @@ -8285,7 +8158,6 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8293,14 +8165,12 @@ dependencies = [ "smol_str", "tracing", "winit-core", - "x11-dl", "xkbcommon-dl", ] [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "cursor-icon", @@ -8314,7 +8184,6 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "dpi", @@ -8330,7 +8199,6 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "block2 0.6.2", @@ -8350,7 +8218,6 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "ahash", "bitflags 2.13.0", @@ -8376,7 +8243,6 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "atomic-waker", "bitflags 2.13.0", @@ -8398,7 +8264,6 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" dependencies = [ "bitflags 2.13.0", "cursor-icon", @@ -8411,29 +8276,6 @@ dependencies = [ "winit-core", ] -[[package]] -name = "winit-x11" -version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" -dependencies = [ - "bitflags 2.13.0", - "bytemuck", - "calloop", - "cursor-icon", - "dpi", - "libc", - "percent-encoding", - "raw-window-handle", - "rustix 1.1.4", - "smol_str", - "tracing", - "winit-common", - "winit-core", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - [[package]] name = "winnow" version = "0.6.24" @@ -8473,39 +8315,6 @@ dependencies = [ "either", ] -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc", - "libloading", - "once_cell", - "rustix 1.1.4", - "x11rb-protocol", - "xcursor", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - [[package]] name = "xcursor" version = "0.3.10" @@ -8638,9 +8447,9 @@ dependencies = [ [[package]] name = "zbus" -version = "5.17.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b97f866896a4be7aefd2b5a8e01bb6773d19a775d54ab28b4d094b9a4480e" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" dependencies = [ "async-broadcast", "async-executor", @@ -8698,14 +8507,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.17.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e05ad887425eecf5e8384dc2406a4a9313eb73468712fc1cdea362eb4fe0469" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.3", "zbus_names", "zvariant", "zvariant_utils", @@ -8713,9 +8522,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.3" +version = "4.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039ca249fee9559680f3a9f05b55e0761fee51af4f6c1e7d8c1f31e549721d2" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" dependencies = [ "serde", "winnow 1.0.3", @@ -8734,6 +8543,15 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zcheapstr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + [[package]] name = "zeno" version = "0.3.3" @@ -8863,41 +8681,46 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.13.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cf057bb00bf5c9ad77abb6147b0ca4818236a1858416e9d988e40d6322fefa7" +checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" dependencies = [ "endi", "enumflags2", "serde", "url", "winnow 1.0.3", + "zcheapstr", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.13.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8118ca6bda77bfc0ab51d660db0c955f2505eef854c9a449435bccb616933b31" +checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.3", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.5.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90cb9383f9b45290407a1258b202d3f8f01db719eb60b4e4055c6375af4fc7c7" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.118", + "syn 3.0.3", "winnow 1.0.3", ] + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" From cde1a13140270e7de0e78c1c327cb64ed38086ac Mon Sep 17 00:00:00 2001 From: demi Date: Tue, 1 Sep 2026 10:04:46 -0500 Subject: [PATCH 17/35] fix: handle sequential PAM prompts in greeter and locker --- src/greeter.rs | 6 ++++++ src/locker.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/greeter.rs b/src/greeter.rs index 4a6063f..5ef234b 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -1181,6 +1181,12 @@ impl cosmic::Application for App { fn update(&mut self, message: Self::Message) -> Task { match message { Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } // In greetd's IPC protocol, the greeter must acknowledge auth messages by // sending PostAuthMessageResponse. For non-interactive "info" messages // (fingerprint prompts typically come through here), the correct response diff --git a/src/locker.rs b/src/locker.rs index 482a335..c59e38e 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -709,6 +709,12 @@ impl cosmic::Application for App { match message { Message::None => {} Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } return self.common.update(common_message); } Message::OutputEvent(output_event, output) => { From 0a16d339a4b611e92a139c3422dbef76c5f3418e Mon Sep 17 00:00:00 2001 From: Frederic Laing Date: Mon, 31 Aug 2026 22:26:27 +0200 Subject: [PATCH 18/35] fix: remove unused Color import --- src/greeter.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index 5ef234b..b5d24b7 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -24,8 +24,7 @@ use cosmic::iced::platform_specific::shell::wayland::commands::subsurface::repos use cosmic::iced::runtime::core::window::Id as SurfaceId; use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfaceSettings; use cosmic::iced::{ - self, Alignment, Background, Border, Color, Length, Point, Rectangle, Size, Subscription, - window, + self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, window, }; use cosmic::widget::{id_container, text}; use cosmic::{Element, executor, surface, theme, widget}; From 499f13a63482e5fcbd86ded3b74ee1362ab0ae3b Mon Sep 17 00:00:00 2001 From: r0chd Date: Wed, 9 Sep 2026 01:51:29 +0200 Subject: [PATCH 19/35] chore: add nix --- default.nix | 37 +++++++++++++++ flake.lock | 45 ++++++++++++++++++ flake.nix | 84 ++++++++++++++++++++++++++++++++++ nix/flake-parse.nix | 12 +++++ nix/formatter.nix | 17 +++++++ nix/package.nix | 108 ++++++++++++++++++++++++++++++++++++++++++++ nix/shell.nix | 31 +++++++++++++ 7 files changed, 334 insertions(+) create mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nix/flake-parse.nix create mode 100644 nix/formatter.nix create mode 100644 nix/package.nix create mode 100644 nix/shell.nix diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..e613104 --- /dev/null +++ b/default.nix @@ -0,0 +1,37 @@ +{ + rust-overlay ? import (import ./nix/flake-parse.nix "rust-overlay"), + pkgs ? import (import ./nix/flake-parse.nix "nixpkgs") { + system = builtins.currentSystem; + overlays = [ rust-overlay ]; + }, +}: +let + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ + "rust-analyzer" + "rust-src" + "llvm-tools" + ]; + }; +in +{ + shell = import ./nix/shell.nix { + inherit pkgs rustToolchain; + }; + + formatter = import ./nix/formatter.nix { inherit pkgs rustToolchain; }; + + packages = + let + rustPlatform = pkgs.makeRustPlatform { + cargo = rustToolchain; + rustc = rustToolchain; + }; + in + rec { + default = pkgs.callPackage ./nix/package.nix { + inherit rustPlatform; + }; + sessiond-seat = default; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..014c16f --- /dev/null +++ b/flake.lock @@ -0,0 +1,45 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1788881743, + "narHash": "sha256-151taSq/21cxagiIu7hyMVl68+FbHfwBP4lh6TB6KOM=", + "rev": "d6524aaca2ff07876657ae2b323f24be4874944b", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1069856.d6524aaca2ff/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1788851328, + "narHash": "sha256-YOwlUD0Lt/3SulKhZ7z0Jmgbq/DWh8SjnGwUlFSw+YM=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "6ae57a71bcb0bebc7a66cc2bd76942c4cf649167", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..8a12faa --- /dev/null +++ b/flake.nix @@ -0,0 +1,84 @@ +{ + inputs = { + nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { + self, + nixpkgs, + rust-overlay, + ... + }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; + + pkgsFor = + system: + import nixpkgs { + inherit system; + overlays = [ rust-overlay.overlays.default ]; + }; + + forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f (pkgsFor system)); + in + { + devShells = forAllSystems (pkgs: { + default = + let + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ + "rust-analyzer" + "rust-src" + "llvm-tools" + ]; + }; + in + import ./nix/shell.nix { inherit pkgs rustToolchain; }; + }); + + packages = forAllSystems ( + pkgs: + let + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ + "rust-analyzer" + "rust-src" + "llvm-tools" + ]; + }; + rustPlatform = pkgs.makeRustPlatform { + cargo = rustToolchain; + rustc = rustToolchain; + }; + in + { + cosmic-greeter = pkgs.callPackage ./nix/package.nix { + inherit rustPlatform; + }; + default = self.packages.${pkgs.stdenv.hostPlatform.system}.cosmic-greeter; + } + ); + + formatter = forAllSystems ( + pkgs: + let + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ + "rust-analyzer" + "rust-src" + "llvm-tools" + ]; + }; + in + import ./nix/formatter.nix { inherit pkgs rustToolchain; } + ); + }; +} diff --git a/nix/flake-parse.nix b/nix/flake-parse.nix new file mode 100644 index 0000000..45799f4 --- /dev/null +++ b/nix/flake-parse.nix @@ -0,0 +1,12 @@ +inputName: +let + lock = builtins.fromJSON (builtins.readFile ../flake.lock); + namedNode = lock.nodes.${lock.nodes.root.inputs.${inputName}}.locked; + githubTarball = fetchTarball { + url = + namedNode.url + or "https://github.com/${namedNode.owner}/${namedNode.repo}/archive/${namedNode.rev}.tar.gz"; + sha256 = namedNode.narHash; + }; +in +githubTarball diff --git a/nix/formatter.nix b/nix/formatter.nix new file mode 100644 index 0000000..c5039e8 --- /dev/null +++ b/nix/formatter.nix @@ -0,0 +1,17 @@ +{ pkgs, rustToolchain }: +pkgs.writeShellApplication { + name = "nix3-fmt-wrapper"; + runtimeInputs = builtins.attrValues { + inherit (pkgs) + nixfmt + taplo + fd + ; + inherit rustToolchain; + }; + text = '' + fd "$@" -t f -e nix -x nixfmt -q '{}' + fd "$@" -t f -e toml -x taplo format '{}' + cargo fmt + ''; +} diff --git a/nix/package.nix b/nix/package.nix new file mode 100644 index 0000000..5dbad01 --- /dev/null +++ b/nix/package.nix @@ -0,0 +1,108 @@ +{ + lib, + stdenv, + fetchFromGitHub, + rustPlatform, + libcosmicAppHook, + cmake, + just, + cosmic-randr, + dav1d, + libinput, + linux-pam, + udev, + coreutils, + xkeyboard_config, + nixosTests, + orca, + withLogind ? true, + withUpower ? true, + withNetworkManager ? true, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "cosmic-greeter"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = "cosmic-greeter"; + tag = "epoch-${finalAttrs.version}"; + hash = "sha256-hDVdl2+7NVLA+YxO2HToni57IEr0i4OGTsYDc3YGTuw="; + }; + + postPatch = '' + substituteInPlace src/greeter.rs --replace-fail '/usr/bin/env' '${lib.getExe' coreutils "env"}' + substituteInPlace src/greeter.rs --replace-fail '/usr/bin/orca' '${lib.getExe orca}' + ''; + + cargoHash = "sha256-vHR9go8/iVUT7oBV8h+mmBvhi2oSKNBKtV0uoDOr6go="; + + buildNoDefaultFeatures = true; + + buildFeatures = + lib.optionals withLogind [ "logind" ] + ++ lib.optionals withUpower [ "upower" ] + ++ lib.optionals withNetworkManager [ "networkmanager" ]; + + separateDebugInfo = true; + __structuredAttrs = true; + + env.VERGEN_GIT_SHA = finalAttrs.src.tag; + + nativeBuildInputs = [ + rustPlatform.bindgenHook + cmake + just + libcosmicAppHook + ]; + + buildInputs = [ + cosmic-randr + dav1d + libinput + linux-pam + udev + orca + ]; + + dontUseJustBuild = true; + dontUseJustCheck = true; + + justFlags = [ + "--set" + "prefix" + (placeholder "out") + "--set" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" + ]; + + preFixup = '' + libcosmicAppWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ cosmic-randr ]} + --set-default X11_BASE_RULES_XML ${xkeyboard_config}/share/X11/xkb/rules/base.xml + --set-default X11_BASE_EXTRA_RULES_XML ${xkeyboard_config}/share/X11/xkb/rules/extra.xml + ) + ''; + + passthru = { + tests = { + inherit (nixosTests) + cosmic + cosmic-autologin + cosmic-noxwayland + cosmic-autologin-noxwayland + ; + }; + }; + + meta = { + homepage = "https://github.com/pop-os/cosmic-greeter"; + description = "Greeter for the COSMIC Desktop Environment"; + mainProgram = "cosmic-greeter"; + license = lib.licenses.gpl3Only; + teams = [ lib.teams.cosmic ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/nix/shell.nix b/nix/shell.nix new file mode 100644 index 0000000..e188f12 --- /dev/null +++ b/nix/shell.nix @@ -0,0 +1,31 @@ +{ pkgs, rustToolchain }: +pkgs.mkShell { + name = "cosmic-greeter-devshell"; + packages = builtins.attrValues { + inherit + rustToolchain + ; + inherit (pkgs) + rust-analyzer-unwrapped + nixd + libxkbcommon + dav1d + libinput + linux-pam + gcc + glibc + cmake + ; + inherit (pkgs.llvmPackages) + libclang + llvm + ; + }; + + nativeBuildInputs = [ pkgs.pkg-config ]; + + RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library"; + LLVM_CONFIG_PATH = "${pkgs.llvmPackages.llvm}/bin/llvm-config"; + LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; + BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.linux-pam}/include -I${pkgs.glibc.dev}/include"; +} From 14cc125fcde876f4e4cfd56321933fc7d6a6dfcc Mon Sep 17 00:00:00 2001 From: r0chd Date: Wed, 9 Sep 2026 02:24:24 +0200 Subject: [PATCH 20/35] fix: compile without the `logind` feature --- src/greeter.rs | 7 ++++--- src/locker.rs | 10 ++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index b5d24b7..01ebad1 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -279,8 +279,6 @@ pub fn main() -> Result<(), Box> { sessions }; - let logind_available = cfg!(feature = "logind") && crate::logind::is_available(); - let flags = Flags { user_icons: user_datas .iter_mut() @@ -290,7 +288,10 @@ pub fn main() -> Result<(), Box> { sessions, greeter_config, greeter_config_handler, - logind_available, + #[cfg(feature = "logind")] + logind_available: crate::logind::is_available(), + #[cfg(not(feature = "logind"))] + logind_available: false, }; let settings = Settings::default().no_main_window(true); diff --git a/src/locker.rs b/src/locker.rs index c59e38e..74d0273 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -79,8 +79,6 @@ pub fn main(user: pwd::Passwd) -> Result<(), Box> { // We are already the user at this point user_data.load_config_as_user(); - let logind_available = cfg!(feature = "logind") && crate::logind::is_available(); - let flags = Flags { user_icon: user_data .icon_opt @@ -88,7 +86,10 @@ pub fn main(user: pwd::Passwd) -> Result<(), Box> { .map(widget::image::Handle::from_bytes), user_data, lockfile_opt: lockfile_opt(), - logind_available, + #[cfg(feature = "logind")] + logind_available: crate::logind::is_available(), + #[cfg(not(feature = "logind"))] + logind_available: false, }; let settings = Settings::default().no_main_window(true); @@ -1226,7 +1227,8 @@ impl cosmic::Application for App { }), ); - if cfg!(feature = "logind") && self.flags.logind_available { + #[cfg(feature = "logind")] + if self.flags.logind_available { subscriptions.push(crate::logind::subscription()); } From 601e16af0e8d0ac6e0da3ce1d716e75c7ea6f423 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Thu, 10 Sep 2026 16:24:12 -0600 Subject: [PATCH 21/35] chore: adapt to the changes in libcosmic --- Cargo.lock | 86 ++++++++++++++++++++++++++++---------------------- src/greeter.rs | 10 ++---- src/locker.rs | 14 +++----- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e6a243f..259f7a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -812,6 +812,14 @@ dependencies = [ "num-traits", ] +[[package]] +name = "build_helpers" +version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +dependencies = [ + "cfg_aliases", +] + [[package]] name = "built" version = "0.8.1" @@ -1056,7 +1064,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ "serde", "termcolor", - "unicode-width 0.2.2", + "unicode-width", ] [[package]] @@ -1243,7 +1251,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "atomicwrites", "calloop", @@ -1265,7 +1273,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "quote", "syn 2.0.118", @@ -1447,7 +1455,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#67c995d5e659173352ca0adfb22108ac1bf91f5a" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1502,7 +1510,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "almost", "configparser", @@ -1940,7 +1948,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" [[package]] name = "drm" @@ -2892,8 +2900,9 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ + "build_helpers", "dnd", "iced_accessibility", "iced_core", @@ -2913,7 +2922,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "accesskit", "accesskit_winit", @@ -2922,9 +2931,10 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bitflags 2.13.0", + "build_helpers", "bytes", "cosmic-client-toolkit", "dnd", @@ -2947,7 +2957,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_core", "iced_futures", @@ -2957,7 +2967,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "futures", "iced_core", @@ -2971,7 +2981,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bitflags 2.13.0", "bytemuck", @@ -2992,7 +3002,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_graphics", "iced_runtime", @@ -3001,7 +3011,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3013,8 +3023,9 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ + "build_helpers", "bytes", "cosmic-client-toolkit", "dnd", @@ -3028,7 +3039,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bytemuck", "cosmic-text", @@ -3045,10 +3056,11 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.0", + "build_helpers", "bytemuck", "cosmic-client-toolkit", "cryoglyph", @@ -3076,8 +3088,9 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ + "build_helpers", "cosmic-client-toolkit", "dnd", "iced_renderer", @@ -3094,8 +3107,9 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ + "build_helpers", "cosmic-client-toolkit", "cursor-icon", "dnd", @@ -4176,11 +4190,12 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#8cb10bf6e24b86a7d2a9cf8c662d3e0154db1b21" +source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", + "build_helpers", "cosmic-client-toolkit", "cosmic-config", "cosmic-freedesktop-icons", @@ -4213,6 +4228,7 @@ dependencies = [ "palette", "phf 0.13.1", "rfd", + "roxmltree", "rust-embed", "rustix 1.1.4", "serde", @@ -4508,7 +4524,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" dependencies = [ "cfg-if", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] @@ -7191,12 +7207,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - [[package]] name = "upower_dbus" version = "0.3.2" @@ -8222,7 +8232,7 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "cfg_aliases", @@ -8248,7 +8258,7 @@ dependencies = [ [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", "bitflags 2.13.0", @@ -8263,7 +8273,7 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "block2 0.6.2", @@ -8285,7 +8295,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#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8300,7 +8310,7 @@ dependencies = [ [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "cursor-icon", @@ -8314,7 +8324,7 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "dpi", @@ -8330,7 +8340,7 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "block2 0.6.2", @@ -8350,7 +8360,7 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", "bitflags 2.13.0", @@ -8376,7 +8386,7 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", "bitflags 2.13.0", @@ -8398,7 +8408,7 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "cursor-icon", @@ -8414,7 +8424,7 @@ dependencies = [ [[package]] name = "winit-x11" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#f737f1f5900b3399b56951305b0f155afc9c9ee5" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.0", "bytemuck", diff --git a/src/greeter.rs b/src/greeter.rs index 01ebad1..710213b 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -389,7 +389,7 @@ pub enum Message { Session(String), Shutdown, Socket(SocketState), - Surface(surface::Action), + Surface(surface::Action), Suspend, Username(String), EnterUser(bool, String), @@ -1309,9 +1309,7 @@ impl cosmic::Application for App { exclusive_zone: -1, size_limits: iced::Limits::NONE.min_width(1.0).min_height(1.0), }), - cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(msg), - )), + cosmic::task::message(cosmic::Action::Surface(msg)), ]); } OutputEvent::Removed => { @@ -1659,9 +1657,7 @@ impl cosmic::Application for App { self.greetd_sender = Some(sender); } Message::Surface(a) => { - return cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(a), - )); + return cosmic::task::message(cosmic::Action::Surface(a)); } Message::ScreenReader(enabled) => { if enabled diff --git a/src/locker.rs b/src/locker.rs index 74d0273..8b23d04 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -273,7 +273,7 @@ pub enum Message { KeyboardLayout(usize), Inhibit(Arc), Submit(String), - Surface(surface::Action), + Surface(surface::Action), Suspend, TimeAppletConfig(TimeAppletConfig), Error(String), @@ -820,9 +820,7 @@ impl cosmic::Application for App { if matches!(self.state, State::Locked { .. }) { return get_lock_surface(surface_id, output).chain({ - cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(msg), - )) + cosmic::task::message(cosmic::Action::Surface(msg)) }); } } @@ -998,9 +996,7 @@ impl cosmic::Application for App { app.menu(subsurface_id).map(cosmic::Action::App) })), ); - commands.push(cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(msg), - ))); + commands.push(cosmic::task::message(cosmic::Action::Surface(msg))); } else { tracing::error!("no rectangle for subsurface creation..."); } @@ -1165,9 +1161,7 @@ impl cosmic::Application for App { } } Message::Surface(a) => { - return cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(a), - )); + return cosmic::task::message(cosmic::Action::Surface(a)); } } Task::none() From 06a762caca6aabc73095c918f46b01e2bb12aaa3 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Fri, 28 Aug 2026 14:49:47 -0700 Subject: [PATCH 22/35] locker: Rely on cosmic-bg for showing background Requires https://github.com/pop-os/cosmic-comp/pull/2792 and https://github.com/pop-os/cosmic-bg/pull/144. --- Cargo.lock | 1 + Cargo.toml | 1 + src/locker.rs | 14 +++----------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 259f7a2..78d33a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1336,6 +1336,7 @@ dependencies = [ "cosmic-settings-accessibility-subscription", "cosmic-settings-daemon-config", "dirs", + "enumflags2", "futures-util", "greetd_ipc", "i18n-embed", diff --git a/Cargo.toml b/Cargo.toml index 618aaa0..5ce50bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,6 +88,7 @@ image = { version = "0.25", default-features = false, features = [ ] } # JPEG-XL support jxl-oxide = { version = "0.12.6", features = ["image"] } +enumflags2 = "0.7.12" [dependencies.greetd_ipc] version = "0.10.3" diff --git a/src/locker.rs b/src/locker.rs index 8b23d04..2920531 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -663,6 +663,7 @@ impl cosmic::Application for App { /// Creates the application, and optionally emits command on initialize. fn init(mut core: Core, flags: Self::Flags) -> (Self, Task) { core.set_app_type(cosmic::core::AppType::System); + core.set_auto_blur(enumflags2::BitFlags::empty()); let (mut common, common_task) = Common::init(core); common.on_output_event = Some(Box::new(|output_event, output| { Message::OutputEvent(output_event, output) @@ -1173,17 +1174,8 @@ impl cosmic::Application for App { } /// Creates a view after each update. - fn view_window(&self, surface_id: SurfaceId) -> Element<'_, Self::Message> { - let img = self - .common - .surface_images - .get(&surface_id) - .unwrap_or(&self.common.fallback_background); - widget::image(img) - .content_fit(iced::ContentFit::Cover) - .width(Length::Fill) - .height(Length::Fill) - .into() + fn view_window(&self, _surface_id: SurfaceId) -> Element<'_, Self::Message> { + widget::space::horizontal().into() } fn subscription(&self) -> Subscription { From 31ca2e67b34e9080a9a8dd96b14b4b70be90b44d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 12 Sep 2026 13:51:38 +0200 Subject: [PATCH 23/35] i18n: translation updates from weblate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amadɣas Co-authored-by: Hosted Weblate Co-authored-by: Kurt Harren Catindig Co-authored-by: Quentin PAGÈS Co-authored-by: Satakun Utama Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/kab/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/oc/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-greeter/th/ Translation: Pop OS/COSMIC Greeter --- i18n/fil/cosmic_greeter.ftl | 0 i18n/kab/cosmic_greeter.ftl | 2 +- i18n/oc/cosmic_greeter.ftl | 2 ++ i18n/th/cosmic_greeter.ftl | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 i18n/fil/cosmic_greeter.ftl diff --git a/i18n/fil/cosmic_greeter.ftl b/i18n/fil/cosmic_greeter.ftl new file mode 100644 index 0000000..e69de29 diff --git a/i18n/kab/cosmic_greeter.ftl b/i18n/kab/cosmic_greeter.ftl index 911c8f4..b5d125e 100644 --- a/i18n/kab/cosmic_greeter.ftl +++ b/i18n/kab/cosmic_greeter.ftl @@ -1,4 +1,4 @@ -cancel = Sefsex +cancel = Semmet restart-timeout = Anagraw ad yales tanekra s wudem awurman { $seconds -> diff --git a/i18n/oc/cosmic_greeter.ftl b/i18n/oc/cosmic_greeter.ftl index 2ca5d44..ef74145 100644 --- a/i18n/oc/cosmic_greeter.ftl +++ b/i18n/oc/cosmic_greeter.ftl @@ -13,3 +13,5 @@ shutdown-timeout = [1] d’aquí 1 segondas. *[other] d’aquí { $seconds } segondas. } +cancel = Anullar +user = Utilizaire diff --git a/i18n/th/cosmic_greeter.ftl b/i18n/th/cosmic_greeter.ftl index 7171fa5..82b47f4 100644 --- a/i18n/th/cosmic_greeter.ftl +++ b/i18n/th/cosmic_greeter.ftl @@ -2,10 +2,10 @@ cancel = ยกเลิก keyboard-layout = ผังคีย์บอร์ด restart = รีสตาร์ท restart-now = รีสตาร์ทตอนนี้เลยหรือไม่ -restart-timeout = ระบบจะรีสตาร์ทโดยอัตโนมัติภายใน {$seconds} วินาที +restart-timeout = ระบบจะรีสตาร์ทโดยอัตโนมัติภายใน { $seconds } วินาที session = เซสชั่น shutdown = ปิดระบบ shutdown-now = ปิดระบบตอนนี้เลยหรือไม่ -shutdown-timeout = ระบบจะปิดลงโดยอัตโนมัติภายใน {$seconds} วินาที +shutdown-timeout = ระบบจะปิดลงโดยอัตโนมัติภายใน { $seconds } วินาที suspend = ระงับ user = ผู้ใช้ From 0b0d2925ffa18ffb9a7f7175f90097bb502fbf43 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Tue, 15 Sep 2026 23:01:47 -0400 Subject: [PATCH 24/35] chore: blur updates --- Cargo.lock | 1456 +++++++++++++++++++++++++----------------------- Cargo.toml | 4 +- src/greeter.rs | 53 +- src/locker.rs | 34 +- 4 files changed, 828 insertions(+), 719 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 78d33a7..dc2e1c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] @@ -196,7 +196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.13.0", + "bitflags 2.13.2", "cc", "jni", "libc", @@ -205,7 +205,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] @@ -216,18 +216,18 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] [[package]] name = "anyhow" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "apply" @@ -267,7 +267,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -315,7 +315,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.4", + "rand 0.9.5", "raw-window-handle", "serde", "serde_repr", @@ -333,7 +333,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.4", + "rand 0.9.5", "serde", "serde_repr", "tokio", @@ -448,7 +448,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -477,13 +477,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -541,14 +541,14 @@ dependencies = [ [[package]] name = "auto_enums" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e4487600931c9a89f8db7ffbdf3fbdd45bb7bd85e26861f659a463cd0dff966" +checksum = "3091d68264354f211516b91dce6f71046e444fab1867716035f736667243affb" dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -585,7 +585,7 @@ dependencies = [ "num-traits", "pastey", "rayon", - "thiserror 2.0.18", + "thiserror 2.0.20", "v_frame", "y4m", ] @@ -622,7 +622,7 @@ dependencies = [ "addr2line", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.8.9", "object", "rustc-demangle", "windows-link 0.2.1", @@ -634,6 +634,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "basic-toml" version = "0.1.10" @@ -649,7 +655,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cexpr", "clang-sys", "itertools 0.12.1", @@ -660,7 +666,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex 1.3.0", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -692,9 +698,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.13.0" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" dependencies = [ "serde_core", ] @@ -752,9 +758,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" dependencies = [ "async-channel", "async-task", @@ -765,9 +771,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3f6da4992df95bbcd9af42a6c7dcb994498fc9048230405f3b36ff7cd3f145" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" dependencies = [ "bytes", "cfg_aliases", @@ -794,9 +800,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cee35f73844aa3014bb606320a6c1f010249dbdf43342fe54b5a4f6a8ed4b79" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" dependencies = [ "memchr", "regex-automata", @@ -815,7 +821,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "cfg_aliases", ] @@ -846,22 +852,22 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.2" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -898,7 +904,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "polling", "rustix 1.1.4", "slab", @@ -919,9 +925,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.66" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "jobserver", @@ -940,9 +946,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" +checksum = "fe4ece8474b5f766c63426647e7b4b316b67431ade1036a8313cee24a03ae917" dependencies = [ "smallvec", "target-lexicon", @@ -956,9 +962,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" [[package]] name = "chrono" @@ -974,9 +980,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.8.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a" dependencies = [ "glob", "libc", @@ -984,9 +990,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" [[package]] name = "clipboard-win" @@ -1064,7 +1070,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ "serde", "termcolor", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -1102,9 +1108,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "combine" -version = "4.6.7" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" dependencies = [ "bytes", "memchr", @@ -1121,9 +1127,9 @@ dependencies = [ [[package]] name = "configparser" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46dec724fd22199ebde05033a0cbae453bc3b1ecff11eb6a6bb3eec4b90c6a4" +checksum = "031ad3d167622974ed636505ae4556267ed4aa2aea0464122fa6bc9698a32825" [[package]] name = "const-oid" @@ -1187,7 +1193,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "core-foundation 0.10.1", "libc", ] @@ -1204,7 +1210,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" version = "1.0.15" -source = "git+https://github.com/pop-os/cosmic-applets#3f4d0f43a0a7e75c983c83ca09454e65afc3bc71" +source = "git+https://github.com/pop-os/cosmic-applets#0bfc3da2cb838b702bc75809bf9d9288d77e366f" dependencies = [ "cosmic-config", "serde", @@ -1213,7 +1219,7 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" -source = "git+https://github.com/pop-os/cosmic-bg#ed65f7d3dc9e3d4af3cd65244a966e01bff0f730" +source = "git+https://github.com/pop-os/cosmic-bg#9d82a34dab4e73d90ba66c9f72d18d0f9b8be208" dependencies = [ "cosmic-config", "derive_setters", @@ -1225,9 +1231,9 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" +source = "git+https://github.com/pop-os/cosmic-protocols//?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cosmic-protocols", "libc", "smithay-client-toolkit", @@ -1238,7 +1244,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#693d1ad775193deb95a33810b5eac59684ca2ac0" +source = "git+https://github.com/pop-os/cosmic-comp#a7349b72e39fd91d7ed25eddb2fa24b900a615d5" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1251,7 +1257,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "atomicwrites", "calloop", @@ -1273,10 +1279,10 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1292,7 +1298,7 @@ name = "cosmic-dbus-networkmanager" version = "0.1.0" source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "derive_builder", "jiff", "procfs", @@ -1309,7 +1315,7 @@ dependencies = [ "btoi", "memchr", "memmap2 0.9.11", - "thiserror 2.0.18", + "thiserror 2.0.20", "tracing", "xdg", ] @@ -1405,9 +1411,9 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" +source = "git+https://github.com/pop-os/cosmic-protocols//?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1423,13 +1429,13 @@ source = "git+https://github.com/pop-os/cosmic-randr#6e8e795970fa06d434af22775e4 dependencies = [ "kdl", "slotmap", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] name = "cosmic-settings-a11y-manager-subscription" -version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" +version = "1.9.0" +source = "git+https://github.com/pop-os/cosmic-settings#e6e2acc18878d224ba5027da44ee228384385c65" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1442,8 +1448,8 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" -version = "1.0.7" -source = "git+https://github.com/pop-os/cosmic-settings#ae5c7506627373f62e78372ce9e932fb591de35b" +version = "1.9.0" +source = "git+https://github.com/pop-os/cosmic-settings#e6e2acc18878d224ba5027da44ee228384385c65" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1455,8 +1461,8 @@ dependencies = [ [[package]] name = "cosmic-settings-config" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#67c995d5e659173352ca0adfb22108ac1bf91f5a" +version = "1.9.0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1476,8 +1482,8 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#8c54bbbc10485c31e8717c21e119e19b87eeb3ea" +version = "1.9.0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1490,7 +1496,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "fontdb", "harfrust", "linebender_resource_handle", @@ -1511,7 +1517,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "almost", "configparser", @@ -1523,32 +1529,32 @@ dependencies = [ "ron 0.12.2", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1556,18 +1562,18 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.20" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crunchy" @@ -1604,12 +1610,12 @@ checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a" [[package]] name = "csscolorparser" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199f851bd3cb5004c09474252c7f74e7c047441ed0979bf3688a7106a13da952" +checksum = "168dbdf4dced8f57fa4246ac9080598452b49d70bb2d0e46422142f113140dd8" dependencies = [ "num-traits", - "phf 0.13.1", + "phf", "serde", "uncased", ] @@ -1651,12 +1657,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", + "darling_core 0.24.1", + "darling_macro 0.24.1", ] [[package]] @@ -1670,7 +1676,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1684,20 +1690,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] name = "darling_core" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" dependencies = [ "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -1708,7 +1714,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1719,18 +1725,18 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] name = "darling_macro" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ - "darling_core 0.23.0", + "darling_core 0.24.1", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -1746,7 +1752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ee89cb860616069c67520dcd66cacdb900b57c799f634a0eb6d91f6e2a82b61" dependencies = [ "av-data", - "bitflags 2.13.0", + "bitflags 2.13.2", "dav1d-sys", "static_assertions", ] @@ -1780,7 +1786,7 @@ dependencies = [ "defmt-parser", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1789,7 +1795,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" dependencies = [ - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] @@ -1819,7 +1825,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1829,7 +1835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -1841,18 +1847,18 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] name = "derive_utils" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "362f47930db19fe7735f527e6595e4900316b893ebf6d48ad3d31be928d57dd6" +checksum = "dc05a5d33db20c784f873e84934ad94bb209a090987ac5f62fede2c178234f23" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -1893,7 +1899,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -1901,13 +1907,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -1924,7 +1930,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.13.0", + "bitflags 2.13.2", "mime 0.1.0", "raw-window-handle", "smithay-client-toolkit", @@ -1957,7 +1963,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "drm-ffi", "drm-fourcc", @@ -2004,9 +2010,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "endi" @@ -2043,7 +2049,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -2063,7 +2069,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -2084,9 +2090,9 @@ dependencies = [ [[package]] name = "error-code" -version = "3.3.2" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" +checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" [[package]] name = "etagere" @@ -2109,11 +2115,10 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] @@ -2130,14 +2135,14 @@ dependencies = [ [[package]] name = "exr" -version = "1.74.1" +version = "1.74.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be87932f10230a4339ab394edd8e4611fcb72553d8295b4d52ea55249b3daa5" +checksum = "711fe42c9964295e01ee3fba3f9fe0e1d24b98886950d68efe81b1c76e21adf3" dependencies = [ "bit_field", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.9", "num-complex", "pulp", "rayon-core", @@ -2147,10 +2152,11 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.12" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "c08309dbcc659c5549a24ddb9b27027640641b282ef5768267c7e675558986a3" dependencies = [ + "autocfg", "indenter", "once_cell", ] @@ -2164,17 +2170,11 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "fast-srgb8" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" - [[package]] name = "fastrand" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "fdeflate" @@ -2196,9 +2196,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "fixed_decimal" @@ -2213,12 +2213,13 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.9.1", + "zlib-rs", ] [[package]] @@ -2284,7 +2285,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198" dependencies = [ "memchr", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] @@ -2314,6 +2315,15 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "font-types" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8eb065f3251655b3c90e22e5e363f310fc5332fb3402e37bbc94752283248f6" +dependencies = [ + "bytemuck", +] + [[package]] name = "fontconfig-parser" version = "0.5.8" @@ -2349,13 +2359,13 @@ dependencies = [ [[package]] name = "foreign-types-macros" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -2375,15 +2385,15 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28273c5c6b97a5f07724f6652f064c0c7f637f9aa5e7c09c83bc3bc4ad4ea245" +checksum = "9cfa09933e03f1ced380ad639822d65cb59a1914217da6c72aa8db3563e94214" dependencies = [ "bstr", "gettext-rs", "log", "memchr", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicase", "xdg", ] @@ -2399,9 +2409,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -2414,9 +2424,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -2424,15 +2434,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -2441,9 +2451,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-lite" @@ -2460,32 +2470,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -2544,9 +2554,9 @@ dependencies = [ [[package]] name = "gettext-rs" -version = "0.7.7" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf" +checksum = "9df5e3fa8c077b15fdfa8ce130e2bc73d663b8aaa6d51b71421b8659980b1d80" dependencies = [ "gettext-sys", "locale_config", @@ -2554,9 +2564,9 @@ dependencies = [ [[package]] name = "gettext-sys" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9" +checksum = "4caa7e4460b196107cc1bb2629488e8b6dbb7f34f6683ea6753c4ac22f590785" dependencies = [ "cc", "temp-dir", @@ -2597,9 +2607,9 @@ checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" [[package]] name = "glob" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" [[package]] name = "glow" @@ -2632,7 +2642,7 @@ dependencies = [ "hashbrown 0.16.1", "log", "presser", - "thiserror 2.0.18", + "thiserror 2.0.20", "windows 0.62.2", ] @@ -2642,7 +2652,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2653,7 +2663,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", ] [[package]] @@ -2703,7 +2713,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "core_maths", "read-fonts 0.37.0", @@ -2771,9 +2781,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "hex" @@ -2788,7 +2798,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0" dependencies = [ "arrayvec", - "rand 0.8.6", + "rand 0.8.8", "serde", ] @@ -2800,9 +2810,9 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "hybrid-array" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" dependencies = [ "typenum", ] @@ -2844,20 +2854,20 @@ dependencies = [ [[package]] name = "i18n-embed-fl" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e598ed73b67db92f61e04672e599eef2991a262a40e1666735b8a86d2e7e9f30" +checksum = "602e6bd30c3db2749e13e38b363a3d98d9d41de1d8de7a79c31bb69e45b47cda" dependencies = [ "find-crate", "fluent", "fluent-syntax", "i18n-config", "i18n-embed", - "proc-macro-error2", + "proc-macro-error3", "proc-macro2", "quote", "strsim", - "syn 2.0.118", + "syn 2.0.119", "unic-langid", ] @@ -2871,7 +2881,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -2901,7 +2911,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "dnd", @@ -2916,14 +2926,14 @@ dependencies = [ "iced_winit", "image", "mime 0.1.0", - "thiserror 2.0.18", + "thiserror 2.0.20", "window_clipboard", ] [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "accesskit", "accesskit_winit", @@ -2932,9 +2942,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "build_helpers", "bytes", "cosmic-client-toolkit", @@ -2949,7 +2959,7 @@ dependencies = [ "rustc-hash 2.1.3", "serde", "smol_str", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicode-segmentation", "web-time", "window_clipboard", @@ -2958,7 +2968,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_core", "iced_futures", @@ -2968,7 +2978,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "futures", "iced_core", @@ -2982,9 +2992,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "cosmic-text", "half", @@ -2996,14 +3006,14 @@ dependencies = [ "lyon_path", "raw-window-handle", "rustc-hash 2.1.3", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicode-segmentation", ] [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_graphics", "iced_runtime", @@ -3012,19 +3022,19 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_graphics", "iced_tiny_skia", "iced_wgpu", "log", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "bytes", @@ -3033,14 +3043,14 @@ dependencies = [ "iced_core", "iced_futures", "raw-window-handle", - "thiserror 2.0.18", + "thiserror 2.0.20", "window_clipboard", ] [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "bytemuck", "cosmic-text", @@ -3051,16 +3061,16 @@ dependencies = [ "resvg", "rustc-hash 2.1.3", "softbuffer", - "tiny-skia", + "tiny-skia 0.11.4", ] [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.13.0", + "bitflags 2.13.2", "build_helpers", "bytemuck", "cosmic-client-toolkit", @@ -3076,7 +3086,7 @@ dependencies = [ "resvg", "rustc-hash 2.1.3", "rustix 0.38.44", - "thiserror 2.0.18", + "thiserror 2.0.20", "tiny-xlib", "wayland-backend", "wayland-client", @@ -3089,7 +3099,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3100,7 +3110,7 @@ dependencies = [ "num-traits", "ouroboros", "rustc-hash 2.1.3", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicode-segmentation", "window_clipboard", ] @@ -3108,7 +3118,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3123,7 +3133,7 @@ dependencies = [ "raw-window-handle", "rustc-hash 2.1.3", "rustix 0.38.44", - "thiserror 2.0.18", + "thiserror 2.0.20", "wasm-bindgen-futures", "wayland-backend", "wayland-client", @@ -3140,9 +3150,9 @@ dependencies = [ [[package]] name = "icu" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00380f83691e089bcfa4aeb03a2d96a910b1c9ea406d6f822fc19dfb8b58d1ec" +checksum = "4867dd3a39b9d48632416cc7fc3dfa1913d89fd36cc02fe7bfc1dddc6fda3cde" dependencies = [ "icu_calendar", "icu_casemap", @@ -3164,15 +3174,15 @@ dependencies = [ [[package]] name = "icu_calendar" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" +checksum = "58655df2f728e46e4eee80bddebefacf52ec3e77cdb925014b47c5a5905eb55c" dependencies = [ "calendrical_calculations", "displaydoc", "icu_calendar_data", - "icu_locale", "icu_locale_core", + "icu_locale_fallback", "icu_provider", "ixdtf", "serde", @@ -3182,15 +3192,15 @@ dependencies = [ [[package]] name = "icu_calendar_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" +checksum = "dc00caaa3fb3201ff7a18aa458e8c3ab042b9da154cfdf948bdde3936c31c36e" [[package]] name = "icu_casemap" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "070f98b5b82798fcb93654bf96ed9f40064fc44c86f51a09ea711092cd5cc5be" +checksum = "f2edfd120d8445de853cf53a1abec916f638f933a70a6f4bf8f7e2d7b7f884e9" dependencies = [ "icu_casemap_data", "icu_collections", @@ -3204,20 +3214,20 @@ dependencies = [ [[package]] name = "icu_casemap_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "846b0857ca091204be3c874bc93daaf89d4777e8d2d20b0d3ffe8f671d98014b" +checksum = "059fcda0fc8d33effc6633a8cf0d8a3c17caf7d7c91918fba9918744f501e4e8" [[package]] name = "icu_collator" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbdf98e5e0aa827770acee171ebb568aaab975a36b56afdb5fd0e2f525750bb" +checksum = "08984ed58ac439ebf3e13d2cf26b0c46a60afcd21721c1d14087c0b240344dda" dependencies = [ "icu_collator_data", "icu_collections", - "icu_locale", "icu_locale_core", + "icu_locale_fallback", "icu_normalizer", "icu_properties", "icu_provider", @@ -3229,15 +3239,15 @@ dependencies = [ [[package]] name = "icu_collator_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038ed8e5817f2059c2f3efb0945ba78d060d3d25e8f1a1bea5139f821a21a2f0" +checksum = "f7d7e54efdddeb1208c08dd5d32b53a879ac00d2d3d051b2255fd26821d16368" [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -3250,17 +3260,17 @@ dependencies = [ [[package]] name = "icu_datetime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989d56ea5bbc43ae2b4e0388874b002884eaf4ed3a76c84a6c8c5ad575e04d72" +checksum = "c44df99c4c5297b05653d1a1629f13bdc9fd4044acfbbaf30b15194a1eed4cd6" dependencies = [ "displaydoc", "fixed_decimal", "icu_calendar", "icu_datetime_data", "icu_decimal", - "icu_locale", "icu_locale_core", + "icu_locale_fallback", "icu_pattern", "icu_plurals", "icu_provider", @@ -3273,21 +3283,21 @@ dependencies = [ [[package]] name = "icu_datetime_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d3cc1b690d9703202bc319692ac8a1f3a6390686f0930ff40542450fa34f0b" +checksum = "8bb5555f6e4b42233f58564351ce16d73e9e6ebfce6bdcf29875d0cfc554d6a8" [[package]] name = "icu_decimal" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "288247df2e32aa776ac54fdd64de552149ac43cb840f2761811f0e8d09719dd4" +checksum = "9eb8f655bba2d0c0459e43a5b0e6cd3cd388109898fb3d85d048165e8b0abd08" dependencies = [ "displaydoc", "fixed_decimal", "icu_decimal_data", - "icu_locale", "icu_locale_core", + "icu_locale_fallback", "icu_pattern", "icu_plurals", "icu_provider", @@ -3298,15 +3308,15 @@ dependencies = [ [[package]] name = "icu_decimal_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f14a5ca9e8af29eef62064f269078424283d90dbaffeac5225addf62aaabc22" +checksum = "e4c887fc7d4c297cf3f9436864af9e3dba7f8be9415a6c2a7f392f3b1636298c" [[package]] name = "icu_experimental" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a881116e620fd635f564fd9cb9bc36c256b9da2221df8b3f55643d8ef32140f" +checksum = "7c09609ad18e249b97a0afa20e19502c4d11ab039e6e35f5ecf48bebd4eedd7e" dependencies = [ "displaydoc", "either", @@ -3318,6 +3328,7 @@ dependencies = [ "icu_list", "icu_locale", "icu_locale_core", + "icu_locale_fallback", "icu_normalizer", "icu_pattern", "icu_plurals", @@ -3337,18 +3348,18 @@ dependencies = [ [[package]] name = "icu_experimental_data" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f72090d4f08a2bc94565cb02de6d5b87939424e462d9927d73a34f6f8e5d1232" +checksum = "377481a8935d6774f410424d79a6dc8a09d9bd8def9560cff17abe755a246280" [[package]] name = "icu_list" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeeaf517689324395bed4767f7c65504f5455942ed4c14ee54c2087ca00b816e" +checksum = "5a5c625125085fac4bf9ad111888a90c6ab9dc7bcaec392ca79cab417f46e3fb" dependencies = [ "icu_list_data", - "icu_locale", + "icu_locale_fallback", "icu_provider", "regex-automata", "serde", @@ -3358,30 +3369,30 @@ dependencies = [ [[package]] name = "icu_list_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed62dbf114db9a4163481ed071509c4cd52cbcef9cb85979eba08a95549d73f3" +checksum = "4ffef91ee351bd195a803115615a034dfb9f02bb48850980548c31cb78568a91" [[package]] name = "icu_locale" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" +checksum = "785f595c61ef57169a467eeed7b4b6936a66f6cacbb116a96ee86da983251bf4" dependencies = [ "icu_collections", "icu_locale_core", "icu_locale_data", + "icu_locale_fallback", "icu_provider", - "potential_utf", "tinystr", "zerovec", ] [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -3393,15 +3404,35 @@ dependencies = [ [[package]] name = "icu_locale_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" +checksum = "d37d91460e362a5cf58907cd7ce871411775ee6294e49a5cc8e6cec16dfa75ea" + +[[package]] +name = "icu_locale_fallback" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "251af8e57c9400e3eb58242fe5b8b1152b2a64fdf4cf632f923c38ccee6f2fa9" +dependencies = [ + "icu_locale_core", + "icu_locale_fallback_data", + "icu_provider", + "potential_utf", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locale_fallback_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "decf2a22ec8fa68f1a0c1129a3f8583f8f8bc24e8b9ccbe98ead99f62a4dc3a8" [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -3416,15 +3447,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_pattern" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4c568054ffe735398a9f4c55aec37ad7c768844553cc0978f09cc9b933a1fb" +checksum = "2b3db611446bd92c246b03e4aa0bafa71ddb194af431ddbb42b9d70e4bfce1a0" dependencies = [ "displaydoc", "either", @@ -3436,12 +3467,12 @@ dependencies = [ [[package]] name = "icu_plurals" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a50023f1d49ad5c4333380328a0d4a19e4b9d6d842ec06639affd5ba47c8103" +checksum = "e475e6766ef87b1d3c1f97be6363995b0bfaeddbc789671615df598a97ff0593" dependencies = [ "fixed_decimal", - "icu_locale", + "icu_locale_fallback", "icu_plurals_data", "icu_provider", "zerovec", @@ -3449,16 +3480,17 @@ dependencies = [ [[package]] name = "icu_plurals_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8485497155dc865f901decb93ecc20d3e467df67bfeceb91e3ba34e2b11e8e1d" +checksum = "1251aa39a95e1333888e499b1263e1c196447a28948acf5bdabd82c046f153bf" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -3470,15 +3502,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", @@ -3493,31 +3525,32 @@ dependencies = [ [[package]] name = "icu_segmenter" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0794db0b1a86193ac9c48768d0e6c52c54448e0870ad87907d456ee0dac964" +checksum = "82d07aafccd67af15d02512a6adf5896fbc5ed00f2e99b471d2efa14016db3db" dependencies = [ "core_maths", "icu_collections", - "icu_locale", + "icu_locale_fallback", "icu_provider", "icu_segmenter_data", "potential_utf", + "smallvec", "utf8_iter", "zerovec", ] [[package]] name = "icu_segmenter_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a2c462a4d927d512f5f882a033ddd62f33a05bb9f230d98f736ac3dc85938f" +checksum = "ae293c039020f9ec10710af98d29ce6aa2051486638b49c9a6409f3b4a9e98ad" [[package]] name = "icu_time" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3af0c141da0a61d4f6970cd1d5f4b388b17ea22f8124f8f6049d3d5147586a" +checksum = "af37e1c3b9f3ab564b619fdf4b22de169f6381eb0f7048e3ca454290c438126b" dependencies = [ "calendrical_calculations", "displaydoc", @@ -3533,9 +3566,9 @@ dependencies = [ [[package]] name = "icu_time_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2f8aeca682d874a5247084aa4fb7d1cef9ba45d889c21209a8818dcaaa0ec9" +checksum = "005ff86fa5851a77fc0a977b72d717f777bd9230415a247219d7898aefb1517a" [[package]] name = "ident_case" @@ -3581,7 +3614,7 @@ dependencies = [ "png 0.18.1", "ravif", "rayon", - "zune-core 0.5.1", + "zune-core 0.5.3", "zune-jpeg 0.5.15", ] @@ -3612,9 +3645,9 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89194689a993ab15268672e99e7b0e19da2da3268ac682e8f02d29d4d1434cd7" +checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f" [[package]] name = "indenter" @@ -3635,9 +3668,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown 0.17.1", @@ -3647,11 +3680,11 @@ dependencies = [ [[package]] name = "inotify" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" +checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "inotify-sys", "libc", ] @@ -3671,7 +3704,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9793345a65d71317763a33066b5d8351f8760dde8d4930fe9e39b5f14a7959d" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "input-sys", "libc", "log", @@ -3692,7 +3725,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -3751,17 +3784,18 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "ixdtf" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" +checksum = "4d3667095d64c3ecffc96463a21157b04bf3e252f6e8d5750b20c02e33c194e3" [[package]] name = "jiff" -version = "0.2.32" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" +checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb" dependencies = [ "defmt", + "jiff-core", "jiff-static", "jiff-tzdb-platform", "log", @@ -3771,6 +3805,16 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "jiff-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" +dependencies = [ + "defmt", + "log", +] + [[package]] name = "jiff-icu" version = "0.2.2" @@ -3784,13 +3828,14 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.32" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" +checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212" dependencies = [ + "jiff-core", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -3820,7 +3865,7 @@ dependencies = [ "jni-sys 0.4.1", "log", "simd_cesu8", - "thiserror 2.0.18", + "thiserror 2.0.20", "walkdir", "windows-link 0.2.1", ] @@ -3835,7 +3880,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -3863,7 +3908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -3878,9 +3923,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", @@ -4093,7 +4138,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "serde", ] @@ -4125,9 +4170,9 @@ dependencies = [ [[package]] name = "kqueue" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5" +checksum = "8d763e5b24120b4ddf50de6c92308156765aabfbbccebf401da7cff2d70a41ea" dependencies = [ "kqueue-sys", "libc", @@ -4139,7 +4184,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "libc", ] @@ -4184,14 +4229,14 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.186" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "apply", "ashpd 0.12.3", @@ -4227,7 +4272,7 @@ dependencies = [ "log", "mime 0.3.17", "palette", - "phf 0.13.1", + "phf", "rfd", "roxmltree", "rust-embed", @@ -4236,7 +4281,7 @@ dependencies = [ "shlex 1.3.0", "slotmap", "taffy", - "thiserror 2.0.18", + "thiserror 2.0.20", "tokio", "tracing", "unicode-segmentation", @@ -4272,14 +4317,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.18" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" +checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "libc", "plain", - "redox_syscall 0.9.0", + "redox_syscall 0.9.4", ] [[package]] @@ -4294,9 +4339,9 @@ dependencies = [ [[package]] name = "lilt" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f67562e5eff6b20553fa9be1c503356768420994e28f67e3eafe6f41910e57ad" +checksum = "337d4c256f7d9f2dbd633891d48ace853efa5b1554122d9220b172ad9c03c3a9" dependencies = [ "web-time", ] @@ -4327,9 +4372,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "litrs" @@ -4361,9 +4406,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "logind-zbus" @@ -4402,9 +4447,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8575c0d003ae459399623c4def180c63b77f343b1a7fee64f249b349e7699a31" +checksum = "cdfa8785f95e57914ddb35e3b59994aeba6f5e79e9cfd03da1c269f010f36009" dependencies = [ "lyon_path", "num-traits", @@ -4433,9 +4478,9 @@ dependencies = [ [[package]] name = "lyon_tessellation" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e43b7e44161571868f5c931d12583592c223c5583eef86b08aa02b7048a3552" +checksum = "43b8dcf906637ecef61b3c0740c7a4e7f27caeb31257cfac0cc579ce15be6005" dependencies = [ "float_next_after", "lyon_path", @@ -4509,7 +4554,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4525,7 +4570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" dependencies = [ "cfg-if", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -4569,10 +4614,20 @@ dependencies = [ ] [[package]] -name = "mio" -version = "1.2.1" +name = "miniz_oxide" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "log", @@ -4618,21 +4673,21 @@ checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.13.0", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "codespan-reporting", "half", "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.14.0", + "indexmap 2.14.2", "libm", "log", "num-traits", "once_cell", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicode-ident", ] @@ -4642,7 +4697,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "jni-sys 0.3.1", "log", "ndk-sys", @@ -4678,7 +4733,7 @@ version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "libc", @@ -4724,7 +4779,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "fsevent-sys", "inotify", "kqueue", @@ -4742,7 +4797,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", ] [[package]] @@ -4802,14 +4857,14 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" dependencies = [ "num-traits", ] @@ -4864,7 +4919,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -4927,7 +4982,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4943,7 +4998,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -4956,7 +5011,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4968,7 +5023,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "objc2 0.6.4", @@ -4980,7 +5035,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "libc", "objc2-core-foundation", ] @@ -5003,7 +5058,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "objc2-core-foundation", "objc2-core-graphics", ] @@ -5020,7 +5075,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -5032,7 +5087,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -5044,7 +5099,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5056,7 +5111,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5069,7 +5124,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -5117,9 +5172,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "5.3.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +checksum = "8c7c9e0d9b23589f26070720bac724174bfec1083e82f7854cdd0267518343c0" dependencies = [ "num-traits", ] @@ -5155,7 +5210,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -5169,35 +5224,41 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" +checksum = "13c45bb4a6ae1280ec0803b1ef9d3455eb50f01efbbe1447ab020f1d54fba9d8" [[package]] name = "palette" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" +checksum = "ddeed8580d347d2abf3dcf06a5f0b3dc020258338526b277847cd4248a70fc64" dependencies = [ "approx", - "fast-srgb8", "palette_derive", - "phf 0.11.3", + "palette_math", + "phf", "serde", ] [[package]] name = "palette_derive" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" +checksum = "88537020289b719d81be994ccf1bbf4990f477e2f69ee52fe3e45f43a02e56be" dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] +[[package]] +name = "palette_math" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e6eb142958d64335fb0e345c5b9ead2ecd6fc438c307e9d7d3c4fd428dbaf12" + [[package]] name = "pam-client" version = "0.5.0" @@ -5269,37 +5330,17 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", -] - [[package]] name = "phf" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", + "phf_macros", + "phf_shared", "serde", ] -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.6", -] - [[package]] name = "phf_generator" version = "0.13.1" @@ -5307,20 +5348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.118", + "phf_shared", ] [[package]] @@ -5329,23 +5357,14 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", "uncased", ] -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - [[package]] name = "phf_shared" version = "0.13.1" @@ -5379,7 +5398,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -5407,9 +5426,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "plain" @@ -5427,7 +5446,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5436,11 +5455,11 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5451,7 +5470,7 @@ checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.2", + "hermit-abi 0.5.3", "pin-project-lite", "rustix 1.1.4", "windows-sys 0.61.2", @@ -5465,24 +5484,24 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" [[package]] name = "portable-atomic" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" dependencies = [ "portable-atomic", ] [[package]] name = "potential_utf" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "serde_core", "writeable", @@ -5520,32 +5539,32 @@ dependencies = [ ] [[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" +name = "proc-macro-error-attr3" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +checksum = "9e564d14133360e1ae169ffde5da25881b5fa47261665b8e5713c212c27799da" dependencies = [ "proc-macro2", "quote", ] [[package]] -name = "proc-macro-error2" -version = "2.0.1" +name = "proc-macro-error3" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +checksum = "8f0d4471b3436c22106b21913b1dda531558918ae9b7ec55d58aa84b43552233" dependencies = [ - "proc-macro-error-attr2", + "proc-macro-error-attr3", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -5558,7 +5577,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", "version_check", "yansi", ] @@ -5569,7 +5588,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "procfs-core", "rustix 1.1.4", ] @@ -5580,7 +5599,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "hex", ] @@ -5600,7 +5619,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -5650,18 +5669,18 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.39.4" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.46" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -5680,9 +5699,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -5691,9 +5710,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -5745,9 +5764,9 @@ checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08" [[package]] name = "rangemap" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" +checksum = "a611d15b50743feb4c76b7d03edcb0e64f399c26961e4efe6975bc398be6aa3d" [[package]] name = "rav1e" @@ -5776,10 +5795,10 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand 0.9.4", + "rand 0.9.5", "rand_chacha 0.9.0", "simd_helpers", - "thiserror 2.0.18", + "thiserror 2.0.20", "v_frame", "wasm-bindgen", ] @@ -5805,7 +5824,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", ] [[package]] @@ -5842,17 +5861,18 @@ checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5" dependencies = [ "bytemuck", "core_maths", - "font-types", + "font-types 0.11.3", ] [[package]] name = "read-fonts" -version = "0.39.2" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ed38b89c2c77ff968c524145ad65fb010f38af5c7a224b53b81d47ac2daa81" +checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" dependencies = [ "bytemuck", - "font-types", + "font-types 0.12.5", + "once_cell", ] [[package]] @@ -5867,7 +5887,7 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5018d583d6d2f5499352aea8d177e9067d1eb03ab17c78169d5ba7a30001b15" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "libredox", ] @@ -5877,16 +5897,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", ] [[package]] name = "redox_syscall" -version = "0.9.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" +checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", ] [[package]] @@ -5897,34 +5917,34 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "regex" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0e75113e14dc5acb068cd0786884f214f1312650a3d36d269f5c4f3cdee8a2" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -5934,9 +5954,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.15" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f388202e4b80542a0921078cc23b6333bcf1409c1e3f86404cae4766a6131db" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -5967,7 +5987,7 @@ dependencies = [ "pico-args", "rgb", "svgtypes", - "tiny-skia", + "tiny-skia 0.11.4", "usvg", "zune-jpeg 0.4.21", ] @@ -6011,8 +6031,8 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ - "base64", - "bitflags 2.13.0", + "base64 0.22.1", + "bitflags 2.13.2", "serde", "serde_derive", "unicode-ident", @@ -6024,7 +6044,7 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81116b9531d61eabc41aeb228e4b6b2435bcca3233b98cf3b3077d4e6e9debb3" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "once_cell", "serde", "serde_derive", @@ -6071,7 +6091,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.118", + "syn 2.0.119", "walkdir", ] @@ -6118,7 +6138,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6131,7 +6151,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.12.1", @@ -6150,7 +6170,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "core_maths", "log", @@ -6185,9 +6205,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" dependencies = [ "dyn-clone", "ref-cast", @@ -6209,22 +6229,22 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd3accc0f3f4bbaf2c9e1957a030dc582028130c67660d44c0a0345a22ca69b" +checksum = "ea2a4360b9abcdcee43809e6fc11d6d61ca5d25734026a8fc46c2883eea3f13f" dependencies = [ "ab_glyph", "log", "memmap2 0.9.11", "smithay-client-toolkit", - "tiny-skia", + "tiny-skia 0.12.0", ] [[package]] name = "self_cell" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" +checksum = "2ab42ca02749e120097e328d91d415325bdf43b1c72c4c8badf37375fe40a813" [[package]] name = "semver" @@ -6234,9 +6254,9 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -6256,31 +6276,31 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "serde_json" -version = "1.0.150" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.2", "itoa", "memchr", "serde", @@ -6290,13 +6310,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -6310,18 +6330,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" dependencies = [ - "base64", + "base64 0.23.1", "bs58", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.14.0", + "indexmap 2.14.2", + "jiff", "schemars 0.9.0", - "schemars 1.2.1", + "schemars 1.2.2", "serde_core", "serde_json", "serde_with_macros", @@ -6330,14 +6351,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -6384,15 +6405,15 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" [[package]] name = "simd_cesu8" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" dependencies = [ "rustc_version", "simdutf8", @@ -6440,12 +6461,12 @@ dependencies = [ [[package]] name = "skrifa" -version = "0.42.1" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c34617370ae968efb7161bb2beb517d9084659aae19e24b89e3db25b46e4564" +checksum = "819ab7d62b1d3e72d9d9dea5650bac30424f9111364bb94928dbf5ecad1baa68" dependencies = [ "bytemuck", - "read-fonts 0.39.2", + "read-fonts 0.41.0", ] [[package]] @@ -6465,9 +6486,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.2" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" [[package]] name = "smithay-client-toolkit" @@ -6475,7 +6496,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "calloop", "calloop-wayland-source", @@ -6485,7 +6506,7 @@ dependencies = [ "memmap2 0.9.11", "pkg-config", "rustix 1.1.4", - "thiserror 2.0.18", + "thiserror 2.0.20", "wayland-backend", "wayland-client", "wayland-csd-frame", @@ -6522,9 +6543,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys 0.61.2", @@ -6566,7 +6587,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.13.0", + "bitflags 2.13.2", ] [[package]] @@ -6614,11 +6635,11 @@ dependencies = [ [[package]] name = "swash" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0811b01ca2c4e8718760713911feaf4675c24f94e50530a015ec646cfb622f7c" +checksum = "6c2499c2d826531388872b2268718aed907a39bd785ab0dcfe57fab26283f92e" dependencies = [ - "skrifa 0.42.1", + "skrifa 0.44.0", "yazi", "zeno", ] @@ -6636,9 +6657,20 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.118" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -6647,13 +6679,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] @@ -6674,7 +6706,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 1.1.3+spec-1.1.0", + "toml 1.1.6+spec-1.1.0", "version-compare", ] @@ -6735,11 +6767,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.20", ] [[package]] @@ -6750,34 +6782,34 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] [[package]] name = "time" -version = "0.3.53" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", "libc", @@ -6797,9 +6829,9 @@ checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", @@ -6825,7 +6857,21 @@ dependencies = [ "cfg-if", "log", "png 0.17.16", - "tiny-skia-path", + "tiny-skia-path 0.11.4", +] + +[[package]] +name = "tiny-skia" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ffee5eaaf5527f630fb0e356b90ebdec84d5d18d937c5e440350f88c5a91ea" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path 0.12.0", ] [[package]] @@ -6839,6 +6885,17 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tiny-skia-path" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca365c3faccca67d06593c5980fa6c57687de727a03131735bb85f01fdeeb9" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + [[package]] name = "tiny-xlib" version = "0.2.5" @@ -6854,9 +6911,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "serde_core", @@ -6865,24 +6922,15 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.11.0" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" -version = "1.52.3" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "bytes", "libc", @@ -6898,20 +6946,20 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] name = "tokio-stream" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b" dependencies = [ "futures-core", "pin-project-lite", @@ -6929,17 +6977,17 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.3+spec-1.1.0" +version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.2", "serde_core", "serde_spanned", "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.3", + "winnow 1.0.4", ] [[package]] @@ -6953,23 +7001,23 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.12+spec-1.1.0" +version = "0.25.15+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.2", "toml_datetime", "toml_parser", - "winnow 1.0.3", + "winnow 1.0.4", ] [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ - "winnow 1.0.3", + "winnow 1.0.4", ] [[package]] @@ -6998,7 +7046,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -7208,6 +7256,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "upower_dbus" version = "0.3.2" @@ -7243,7 +7297,7 @@ version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80be9b06fbae3b8b303400ab20778c80bbaf338f563afe567cf3c9eea17b47ef" dependencies = [ - "base64", + "base64 0.22.1", "data-url", "flate2", "fontdb", @@ -7257,7 +7311,7 @@ dependencies = [ "siphasher", "strict-num", "svgtypes", - "tiny-skia-path", + "tiny-skia-path 0.11.4", "unicode-bidi", "unicode-script", "unicode-vo", @@ -7278,9 +7332,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.23.4" +version = "1.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" dependencies = [ "js-sys", "serde_core", @@ -7355,9 +7409,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -7368,9 +7422,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.76" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -7378,9 +7432,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7388,22 +7442,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] @@ -7424,9 +7478,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" +checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", "downcast-rs", @@ -7438,11 +7492,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.14" +version = "0.31.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" +checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -7454,7 +7508,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cursor-icon", "wayland-backend", ] @@ -7476,7 +7530,7 @@ version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7489,7 +7543,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7502,7 +7556,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7515,7 +7569,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7528,7 +7582,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7538,9 +7592,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" +checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" dependencies = [ "proc-macro2", "quick-xml", @@ -7549,11 +7603,11 @@ dependencies = [ [[package]] name = "wayland-server" -version = "0.31.13" +version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0" +checksum = "0dde9c29be0f723a573977de51ee455bf3dfa03652730a74f9dd3b337e374d75" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -7574,9 +7628,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.103" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -7605,7 +7659,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" dependencies = [ "arrayvec", - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "cfg-if", "cfg_aliases", @@ -7637,12 +7691,12 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "cfg_aliases", "document-features", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap 2.14.2", "log", "naga", "once_cell", @@ -7652,7 +7706,7 @@ dependencies = [ "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.20", "wgpu-core-deps-apple", "wgpu-core-deps-emscripten", "wgpu-core-deps-windows-linux-android", @@ -7697,7 +7751,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.13.0", + "bitflags 2.13.2", "block", "bytemuck", "cfg-if", @@ -7727,7 +7781,7 @@ dependencies = [ "raw-window-handle", "renderdoc-sys", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.20", "wasm-bindgen", "web-sys", "wgpu-types", @@ -7741,7 +7795,7 @@ version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "js-sys", "log", @@ -7899,7 +7953,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -7910,7 +7964,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -8235,7 +8289,7 @@ name = "winit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cfg_aliases", "cursor-icon", "dpi", @@ -8262,7 +8316,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", - "bitflags 2.13.0", + "bitflags 2.13.2", "dpi", "ndk", "raw-window-handle", @@ -8276,7 +8330,7 @@ name = "winit-appkit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "dpi", @@ -8313,7 +8367,7 @@ name = "winit-core" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cursor-icon", "dpi", "keyboard-types", @@ -8327,7 +8381,7 @@ name = "winit-orbital" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "dpi", "libredox", "orbclient", @@ -8343,7 +8397,7 @@ name = "winit-uikit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "dpi", @@ -8364,7 +8418,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", - "bitflags 2.13.0", + "bitflags 2.13.2", "calloop", "cursor-icon", "dpi", @@ -8390,7 +8444,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", - "bitflags 2.13.0", + "bitflags 2.13.2", "concurrent-queue", "cursor-icon", "dpi", @@ -8411,7 +8465,7 @@ name = "winit-win32" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "cursor-icon", "dpi", "raw-window-handle", @@ -8427,7 +8481,7 @@ name = "winit-x11" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "bytemuck", "calloop", "cursor-icon", @@ -8456,9 +8510,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] @@ -8477,9 +8531,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" dependencies = [ "either", ] @@ -8519,9 +8573,9 @@ checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" [[package]] name = "xcursor" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" +checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" [[package]] name = "xdg" @@ -8578,7 +8632,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.13.0", + "bitflags 2.13.2", "dlib", "log", "once_cell", @@ -8596,9 +8650,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.28" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xmlwriter" @@ -8637,21 +8691,21 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", "synstructure", ] [[package]] name = "zbus" -version = "5.17.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b97f866896a4be7aefd2b5a8e01bb6773d19a775d54ab28b4d094b9a4480e" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" dependencies = [ "async-broadcast", "async-executor", @@ -8677,7 +8731,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 1.0.3", + "winnow 1.0.4", "zbus_macros", "zbus_names", "zvariant", @@ -8701,7 +8755,7 @@ checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", "zbus-lockstep", "zbus_xml", "zvariant", @@ -8709,14 +8763,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.17.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e05ad887425eecf5e8384dc2406a4a9313eb73468712fc1cdea362eb4fe0469" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", "zbus_names", "zvariant", "zvariant_utils", @@ -8724,27 +8778,36 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.3" +version = "4.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039ca249fee9559680f3a9f05b55e0761fee51af4f6c1e7d8c1f31e549721d2" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" dependencies = [ "serde", - "winnow 1.0.3", + "winnow 1.0.4", "zvariant", ] [[package]] name = "zbus_xml" -version = "5.2.0" +version = "5.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ab0513c0a66a60a8718d5ad712a5094845a20d95b5c1c81e2bd8e904a52b4f" +checksum = "d1586c021a01ca0a9216dcd874e546382e156a5cbab5fab6cb5f10087e22682a" dependencies = [ "serde", - "winnow 1.0.3", + "winnow 1.0.4", "zbus_names", "zvariant", ] +[[package]] +name = "zcheapstr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + [[package]] name = "zeno" version = "0.3.3" @@ -8753,22 +8816,22 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.54" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.54" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.119", ] [[package]] @@ -8782,21 +8845,21 @@ dependencies = [ [[package]] name = "zerofrom-derive" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", "synstructure", ] [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -8806,9 +8869,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "serde", "yoke", @@ -8818,20 +8881,26 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", ] [[package]] -name = "zmij" -version = "1.0.21" +name = "zlib-rs" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zune-core" @@ -8841,9 +8910,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-core" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" +checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b" [[package]] name = "zune-inflate" @@ -8869,46 +8938,47 @@ version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ - "zune-core 0.5.1", + "zune-core 0.5.3", ] [[package]] name = "zvariant" -version = "5.13.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cf057bb00bf5c9ad77abb6147b0ca4818236a1858416e9d988e40d6322fefa7" +checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 1.0.3", + "winnow 1.0.4", + "zcheapstr", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.13.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8118ca6bda77bfc0ab51d660db0c955f2505eef854c9a449435bccb616933b31" +checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.118", + "syn 3.0.5", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.5.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90cb9383f9b45290407a1258b202d3f8f01db719eb60b4e4055c6375af4fc7c7" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.118", - "winnow 1.0.3", + "syn 3.0.5", + "winnow 1.0.4", ] diff --git a/Cargo.toml b/Cargo.toml index 5ce50bf..3f172ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -160,8 +160,8 @@ default-features = false features = ["advanced-shaping"] [patch."https://github.com/pop-os/cosmic-protocols"] -cctk = { git = "https://github.com/pop-os/cosmic-protocols//", package = "cosmic-client-toolkit", rev = "32283d7" } -cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "32283d7" } +cctk = { git = "https://github.com/pop-os/cosmic-protocols//", package = "cosmic-client-toolkit", rev = "c0cff4d" } +cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "c0cff4d" } # [patch."https://github.com/pop-os/libcosmic"] # iced_core = { git = "https://github.com/pop-os/libcosmic//", branch = "theme-v2" } diff --git a/src/greeter.rs b/src/greeter.rs index 710213b..dc2e871 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -18,7 +18,7 @@ use cosmic::iced::platform_specific::runtime::wayland::layer_surface::{ IcedMargin, IcedOutput, SctkLayerSurfaceSettings, }; use cosmic::iced::platform_specific::shell::wayland::commands::layer_surface::{ - Anchor, KeyboardInteractivity, Layer, destroy_layer_surface, get_layer_surface, + Anchor, KeyboardInteractivity, Layer, destroy_layer_surface, }; use cosmic::iced::platform_specific::shell::wayland::commands::subsurface::reposition_subsurface; use cosmic::iced::runtime::core::window::Id as SurfaceId; @@ -26,6 +26,7 @@ use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfac use cosmic::iced::{ self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, window, }; +use cosmic::surface::action::{LiveSettings, app_layer_shell}; use cosmic::widget::{id_container, text}; use cosmic::{Element, executor, surface, theme, widget}; use cosmic_greeter_config::Config as CosmicGreeterConfig; @@ -1291,24 +1292,40 @@ impl cosmic::Application for App { ); return Task::batch([ self.update_user_data(), - get_layer_surface(SctkLayerSurfaceSettings { - id: surface_id, - layer: Layer::Overlay, - keyboard_interactivity: KeyboardInteractivity::Exclusive, - input_zone: None, - anchor: Anchor::TOP | Anchor::LEFT | Anchor::BOTTOM | Anchor::RIGHT, - output: IcedOutput::Output(output), - namespace: "cosmic-locker".into(), - size: Some((None, None)), - margin: IcedMargin { - top: 0, - bottom: 0, - left: 0, - right: 0, + cosmic::surface::surface_task(app_layer_shell( + |_: &App| LiveSettings { + padding: None, + corners: None, + blur: Some(false), }, - exclusive_zone: -1, - size_limits: iced::Limits::NONE.min_width(1.0).min_height(1.0), - }), + move |_: &mut App| { + let output = output.clone(); + SctkLayerSurfaceSettings { + id: surface_id, + layer: Layer::Overlay, + keyboard_interactivity: KeyboardInteractivity::Exclusive, + input_zone: None, + anchor: Anchor::TOP + | Anchor::LEFT + | Anchor::BOTTOM + | Anchor::RIGHT, + output: IcedOutput::Output(output), + namespace: "cosmic-locker".into(), + size: Some((None, None)), + margin: IcedMargin { + top: 0, + bottom: 0, + left: 0, + right: 0, + }, + exclusive_zone: -1, + size_limits: iced::Limits::NONE + .min_width(1.0) + .min_height(1.0), + } + }, + None, + )), cosmic::task::message(cosmic::Action::Surface(msg)), ]); } diff --git a/src/locker.rs b/src/locker.rs index 2920531..e358f0c 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -7,13 +7,14 @@ use cosmic::cctk::wayland_protocols::xdg::shell::client::xdg_positioner::Gravity use cosmic::iced::event::wayland::{OutputEvent, SessionLockEvent}; use cosmic::iced::futures::{self, SinkExt}; use cosmic::iced::platform_specific::shell::wayland::commands::session_lock::{ - destroy_lock_surface, get_lock_surface, lock, unlock, + destroy_lock_surface, lock, unlock, }; use cosmic::iced::runtime::core::window::Id as SurfaceId; use cosmic::iced::runtime::platform_specific::wayland::subsurface::SctkSubsurfaceSettings; use cosmic::iced::{ self, Alignment, Background, Border, Length, Point, Rectangle, Size, Subscription, }; +use cosmic::surface::action::LiveSettings; use cosmic::{Element, executor, surface, theme, widget}; use cosmic_config::CosmicConfigEntry; use cosmic_greeter_daemon::{TimeAppletConfig, UserData}; @@ -663,7 +664,7 @@ impl cosmic::Application for App { /// Creates the application, and optionally emits command on initialize. fn init(mut core: Core, flags: Self::Flags) -> (Self, Task) { core.set_app_type(cosmic::core::AppType::System); - core.set_auto_blur(enumflags2::BitFlags::empty()); + let (mut common, common_task) = Common::init(core); common.on_output_event = Some(Box::new(|output_event, output| { Message::OutputEvent(output_event, output) @@ -820,9 +821,19 @@ impl cosmic::Application for App { ); if matches!(self.state, State::Locked { .. }) { - return get_lock_surface(surface_id, output).chain({ - cosmic::task::message(cosmic::Action::Surface(msg)) - }); + return cosmic::task::message(cosmic::Action::Surface( + cosmic::surface::action::lock( + || LiveSettings { + padding: None, + corners: None, + blur: Some(false), + }, + surface_id, + output, + None:: cosmic::Element<'static, cosmic::Action>>, + ), + )) + .chain(cosmic::task::message(cosmic::Action::Surface(msg))); } } OutputEvent::Removed => { @@ -962,7 +973,18 @@ impl cosmic::Application for App { // Create lock surfaces for (output, surface_id) in self.common.surface_ids.iter() { - commands.push(get_lock_surface(*surface_id, output.clone())); + commands.push(cosmic::task::message(cosmic::Action::Surface( + cosmic::surface::action::lock( + || LiveSettings { + padding: None, + corners: None, + blur: Some(false), + }, + *surface_id, + output.clone(), + None:: cosmic::Element<'static, cosmic::Action>>, + ), + ))); if let Some((rect, name)) = self .common From 63c28129590930f5a73017b23890e4551cbd9c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nara=20D=C3=ADaz=20Vi=C3=B1olas?= Date: Fri, 15 May 2026 19:52:03 +0200 Subject: [PATCH 25/35] fix: add systemd-homed reported uids to user filter --- Cargo.lock | 11 +++++++++++ daemon/Cargo.toml | 1 + daemon/src/lib.rs | 35 +++++++++++++++++++++++------------ daemon/src/main.rs | 4 ++-- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc2e1c6..616744f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1406,6 +1406,7 @@ dependencies = [ "whitespace-conf", "xdg", "zbus", + "zbus_systemd", ] [[package]] @@ -8787,6 +8788,16 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zbus_systemd" +version = "0.26000.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c8310483ff4a77492d04a90bef30f40938059b4a4b4f7e456dda335d816cb6" +dependencies = [ + "serde", + "zbus", +] + [[package]] name = "zbus_xml" version = "5.2.1" diff --git a/daemon/Cargo.toml b/daemon/Cargo.toml index a229b05..44daa5f 100644 --- a/daemon/Cargo.toml +++ b/daemon/Cargo.toml @@ -28,6 +28,7 @@ whitespace-conf = "1" #TODO: reduce features tokio = { workspace = true, features = ["full"] } xdg = "3.0" +zbus_systemd = { version = "0.26000.0", features = ["home1"] } [features] default = ["systemd"] diff --git a/daemon/src/lib.rs b/daemon/src/lib.rs index 842aebe..45f184c 100644 --- a/daemon/src/lib.rs +++ b/daemon/src/lib.rs @@ -1,11 +1,13 @@ use cosmic_comp_config::output::randr; use cosmic_config::CosmicConfigEntry; use kdl::KdlDocument; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, BTreeSet}; use std::fs; use std::io::Read; use std::os::unix::fs::OpenOptionsExt; use std::path::{Path, PathBuf}; +use zbus::Connection; +use zbus_systemd::home1::ManagerProxy; pub use cosmic_applets_config::time::TimeAppletConfig; pub use cosmic_bg_config::state::State as BgState; @@ -16,13 +18,25 @@ pub use cosmic_theme::{Theme, ThemeBuilder}; pub struct UserFilter { uid_min: u32, uid_max: u32, + homed_uids: BTreeSet, } -impl Default for UserFilter { - fn default() -> Self { +impl UserFilter { + pub async fn new() -> Result { let login_defs_data = fs::read_to_string("/etc/login.defs").unwrap_or_default(); let login_defs = whitespace_conf::parse(&login_defs_data); - Self { + + let connection = Connection::system().await?; + let homed = ManagerProxy::new(&connection).await?; + + let homed_uids = homed + .list_homes() + .await? + .iter() + .map(|(_, uid, ..)| *uid) + .collect(); + + Ok(Self { uid_min: login_defs .get("UID_MIN") .and_then(|x| x.parse::().ok()) @@ -31,17 +45,14 @@ impl Default for UserFilter { .get("UID_MAX") .and_then(|x| x.parse::().ok()) .unwrap_or(65000), - } - } -} - -impl UserFilter { - pub fn new() -> Self { - Self::default() + homed_uids, + }) } pub fn filter(&self, user: &pwd::Passwd) -> bool { - if user.uid < self.uid_min || user.uid > self.uid_max { + if (user.uid < self.uid_min || user.uid > self.uid_max) + && !self.homed_uids.contains(&user.uid) + { // Skip system accounts return false; } diff --git a/daemon/src/main.rs b/daemon/src/main.rs index 427070a..a9d35b9 100644 --- a/daemon/src/main.rs +++ b/daemon/src/main.rs @@ -70,8 +70,8 @@ struct GreeterProxy; #[zbus::interface(name = "com.system76.CosmicGreeter")] impl GreeterProxy { - fn get_user_data(&mut self) -> Result { - let user_filter = UserFilter::new(); + async fn get_user_data(&mut self) -> Result { + let user_filter = UserFilter::new().await?; // The pwd::Passwd method is unsafe (but not labelled as such) due to using global state (libc pwent functions). // To prevent issues, this should only be called once in the entire process space at a time From 8ff96e94f788caf3a1fe4e0e437d43116956cf15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nara=20D=C3=ADaz=20Vi=C3=B1olas?= Date: Sun, 10 May 2026 12:23:13 +0200 Subject: [PATCH 26/35] feat: load user icon and background from systemd-homed paths as a fallback --- daemon/src/lib.rs | 80 +++++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 27 deletions(-) diff --git a/daemon/src/lib.rs b/daemon/src/lib.rs index 45f184c..23e36e5 100644 --- a/daemon/src/lib.rs +++ b/daemon/src/lib.rs @@ -112,6 +112,48 @@ impl UserData { } } + fn load_icon_as_user(&mut self) { + //TODO: use accountsservice? + let icon_paths = [ + //IMPORTANT: This file is owned by root and safe to read (it won't be a link to /etc/shadow for example) + // It may not exist if the user uses one of the system icons. In that case, we should read the + // information in /var/lib/AccountsService/users, and then read the icon path as the user + Path::new("/var/lib/AccountsService/icons").join(&self.name), + // systemd-homed cache + Path::new("/var/cache/systemd/home") + .join(&self.name) + .join("avatar"), + ]; + + for icon_path in icon_paths { + match fs::OpenOptions::new() + .read(true) + // Do not follow symlinks + .custom_flags(libc::O_NOFOLLOW) + .open(&icon_path) + { + Ok(mut icon_file) => { + let mut icon_data = Vec::new(); + match icon_file.read_to_end(&mut icon_data) { + Ok(count) => { + icon_data.truncate(count); + self.icon_opt = Some(icon_data); + return; + } + Err(err) => { + tracing::error!("failed to read icon data {:?}: {:?}", icon_path, err); + } + } + } + Err(err) => { + tracing::warn!("failed to open icon {:?}: {:?}", icon_path, err); + } + } + } + + tracing::error!("failed to load icon for user {:?}", self.name) + } + pub fn load_config_as_user(&mut self) { self.icon_opt = None; self.theme_opt = None; @@ -120,33 +162,7 @@ impl UserData { self.xkb_config_opt = None; self.time_applet_config = Default::default(); - //TODO: use accountsservice? - //IMPORTANT: This file is owned by root and safe to read (it won't be a link to /etc/shadow for example) - // It may not exist if the user uses one of the system icons. In that case, we should read the - // information in /var/lib/AccountsService/users, and then read the icon path as the user - let icon_path = Path::new("/var/lib/AccountsService/icons").join(&self.name); - match fs::OpenOptions::new() - .read(true) - // Do not follow symlinks - .custom_flags(libc::O_NOFOLLOW) - .open(&icon_path) - { - Ok(mut icon_file) => { - let mut icon_data = Vec::new(); - match icon_file.read_to_end(&mut icon_data) { - Ok(count) => { - icon_data.truncate(count); - self.icon_opt = Some(icon_data); - } - Err(err) => { - tracing::error!("failed to read icon data {:?}: {:?}", icon_path, err); - } - } - } - Err(err) => { - tracing::error!("failed to open icon {:?}: {:?}", icon_path, err); - } - } + self.load_icon_as_user(); let mut is_dark = true; match cosmic_theme::ThemeMode::config() { @@ -220,6 +236,16 @@ impl UserData { tracing::error!("failed to create cosmic-bg state helper: {:?}", err); } } + if self.bg_state.wallpapers.is_empty() { + self.bg_state.wallpapers.push(( + String::new(), + BgSource::Path( + Path::new("/var/cache/systemd/home") + .join(&self.name) + .join("login-background"), + ), + )); + } self.load_wallpapers_as_user(); match cosmic_config::Config::new("com.system76.CosmicComp", CosmicCompConfig::VERSION) { From b9587deadb088db5c9afb84003af364268b41da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nara=20D=C3=ADaz=20Vi=C3=B1olas?= Date: Fri, 22 May 2026 10:11:44 +0200 Subject: [PATCH 27/35] chore: put systemd-homed extra support behind 'systemd' feature --- daemon/Cargo.toml | 4 ++-- daemon/src/lib.rs | 30 +++++++++++++++++++++++------- daemon/src/main.rs | 2 +- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/daemon/Cargo.toml b/daemon/Cargo.toml index 44daa5f..000ad41 100644 --- a/daemon/Cargo.toml +++ b/daemon/Cargo.toml @@ -28,8 +28,8 @@ whitespace-conf = "1" #TODO: reduce features tokio = { workspace = true, features = ["full"] } xdg = "3.0" -zbus_systemd = { version = "0.26000.0", features = ["home1"] } +zbus_systemd = { version = "0.26000.0", features = ["home1"], optional = true } [features] default = ["systemd"] -systemd = ["tracing-journald"] +systemd = ["tracing-journald", "zbus_systemd"] diff --git a/daemon/src/lib.rs b/daemon/src/lib.rs index 23e36e5..c414474 100644 --- a/daemon/src/lib.rs +++ b/daemon/src/lib.rs @@ -7,7 +7,6 @@ use std::io::Read; use std::os::unix::fs::OpenOptionsExt; use std::path::{Path, PathBuf}; use zbus::Connection; -use zbus_systemd::home1::ManagerProxy; pub use cosmic_applets_config::time::TimeAppletConfig; pub use cosmic_bg_config::state::State as BgState; @@ -22,12 +21,12 @@ pub struct UserFilter { } impl UserFilter { - pub async fn new() -> Result { - let login_defs_data = fs::read_to_string("/etc/login.defs").unwrap_or_default(); - let login_defs = whitespace_conf::parse(&login_defs_data); + #[cfg(feature = "systemd")] + async fn get_homed_uids() -> Result, zbus::Error> { + use zbus_systemd::home1; let connection = Connection::system().await?; - let homed = ManagerProxy::new(&connection).await?; + let homed = home1::ManagerProxy::new(&connection).await?; let homed_uids = homed .list_homes() @@ -36,7 +35,24 @@ impl UserFilter { .map(|(_, uid, ..)| *uid) .collect(); - Ok(Self { + Ok(homed_uids) + } + + pub async fn new() -> Self { + let login_defs_data = fs::read_to_string("/etc/login.defs").unwrap_or_default(); + let login_defs = whitespace_conf::parse(&login_defs_data); + + #[cfg(feature = "systemd")] + let homed_uids = Self::get_homed_uids() + .await + .inspect_err(|e| { + tracing::warn!("failed to list dynamic UIDs from systemd-homed: {e:?}") + }) + .unwrap_or_default(); + #[cfg(not(feature = "systemd"))] + let homed_uids = BTreeSet::new(); + + Self { uid_min: login_defs .get("UID_MIN") .and_then(|x| x.parse::().ok()) @@ -46,7 +62,7 @@ impl UserFilter { .and_then(|x| x.parse::().ok()) .unwrap_or(65000), homed_uids, - }) + } } pub fn filter(&self, user: &pwd::Passwd) -> bool { diff --git a/daemon/src/main.rs b/daemon/src/main.rs index a9d35b9..419a20d 100644 --- a/daemon/src/main.rs +++ b/daemon/src/main.rs @@ -71,7 +71,7 @@ struct GreeterProxy; #[zbus::interface(name = "com.system76.CosmicGreeter")] impl GreeterProxy { async fn get_user_data(&mut self) -> Result { - let user_filter = UserFilter::new().await?; + let user_filter = UserFilter::new().await; // The pwd::Passwd method is unsafe (but not labelled as such) due to using global state (libc pwent functions). // To prevent issues, this should only be called once in the entire process space at a time From bbf553e2849de6d3a350185ac81ba0fb2a900896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nara=20D=C3=ADaz=20Vi=C3=B1olas?= Date: Sat, 23 May 2026 19:23:13 +0200 Subject: [PATCH 28/35] fix: compilation error on greeter bin --- src/greeter.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index dc2e871..bb1b78e 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -77,8 +77,8 @@ async fn user_data_dbus() -> Result, Box> { Ok(user_datas) } -fn user_data_fallback() -> Vec { - let user_filter = UserFilter::new(); +async fn user_data_fallback() -> Vec { + let user_filter = UserFilter::new().await; // The pwd::Passwd method is unsafe (but not labelled as such) due to using global state (libc pwent functions). /* unsafe */ @@ -130,7 +130,7 @@ pub fn main() -> Result<(), Box> { Ok(ok) => ok, Err(err) => { tracing::error!("failed to load user data from daemon: {}", err); - user_data_fallback() + runtime.block_on(user_data_fallback()) } }; From db39ee661d388d62fa850edea0b96f9f1265a3ee Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 16 Sep 2026 10:45:05 -0600 Subject: [PATCH 29/35] Remove zed settings and use stable rustfmt --- .zed/settings.json | 15 --------------- rustfmt.toml | 1 - 2 files changed, 16 deletions(-) delete mode 100644 .zed/settings.json delete mode 100644 rustfmt.toml diff --git a/.zed/settings.json b/.zed/settings.json deleted file mode 100644 index 2cc7b98..0000000 --- a/.zed/settings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "format_on_save": "on", - "lsp": { - "rust-analyzer": { - "initialization_options": { - "check": { - "command": "clippy", - }, - "rustfmt": { - "extraArgs": ["+nightly"], - }, - }, - }, - }, -} diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index c1578aa..0000000 --- a/rustfmt.toml +++ /dev/null @@ -1 +0,0 @@ -imports_granularity = "Module" From ce726d8470b2e22a38903d6c64f7822f893176b1 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 16 Sep 2026 10:46:57 -0600 Subject: [PATCH 30/35] OSK integration --- Cargo.lock | 24 ++++++++++++------ Cargo.toml | 1 + i18n/en/cosmic_greeter.ftl | 1 + src/common.rs | 35 ++++++++++++++++++++++++++ src/greeter.rs | 51 +++++++++++++++++++++++++++++--------- src/locker.rs | 36 ++++++++++++++++++++------- 6 files changed, 120 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 616744f..1dc0fb6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1336,6 +1336,7 @@ dependencies = [ "cosmic-dbus-networkmanager", "cosmic-greeter-config", "cosmic-greeter-daemon", + "cosmic-osk-config", "cosmic-protocols", "cosmic-randr-shell", "cosmic-settings-a11y-manager-subscription", @@ -1409,6 +1410,15 @@ dependencies = [ "zbus_systemd", ] +[[package]] +name = "cosmic-osk-config" +version = "0.1.0" +source = "git+https://github.com/pop-os/cosmic-osk#d7b66a24890d03e38dd8962d956bc802d4a41067" +dependencies = [ + "cosmic-config", + "serde", +] + [[package]] name = "cosmic-protocols" version = "0.2.0" @@ -1891,7 +1901,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2086,7 +2096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4166,7 +4176,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a1886916523694cd6ea3d175f03a1e5010699a2a4cc13696d83d7bea1d80638" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4807,7 +4817,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -6156,7 +6166,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -6745,7 +6755,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix 1.1.4", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -7831,7 +7841,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3f172ea..83bf4d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ cosmic-comp-config.workspace = true cosmic-config = { workspace = true, features = ["calloop", "macro"] } cosmic-greeter-config.workspace = true cosmic-greeter-daemon = { path = "daemon" } +cosmic-osk-config = { git = "https://github.com/pop-os/cosmic-osk" } dirs = "6" libcosmic = { workspace = true, features = [ "autosize", diff --git a/i18n/en/cosmic_greeter.ftl b/i18n/en/cosmic_greeter.ftl index 2625d59..fa77b09 100644 --- a/i18n/en/cosmic_greeter.ftl +++ b/i18n/en/cosmic_greeter.ftl @@ -9,6 +9,7 @@ caps-lock = Caps Lock is active. enter-user = Enter name manually... type-username = Username: keyboard-layout = Keyboard layout +on-screen-keyboard = On-screen keyboard restart = Restart restart-now = Restart now? restart-timeout = The system will restart automatically diff --git a/src/common.rs b/src/common.rs index 51db69b..442a5a1 100644 --- a/src/common.rs +++ b/src/common.rs @@ -10,6 +10,7 @@ use cosmic::iced::{self, Rectangle, Size, Subscription}; use cosmic::surface::corner_radius::rounded_rect_strips; use cosmic::widget::rectangle_tracker::{RectangleUpdate, rectangle_tracker_subscription}; use cosmic::widget::{self, RectangleTracker}; +use cosmic_config::CosmicConfigEntry; use cosmic_greeter_daemon::{BgSource, UserData}; use cosmic_protocols::keyboard_layout::v1::client::zcosmic_keyboard_layout_v1::ZcosmicKeyboardLayoutV1; use std::collections::{HashMap, HashSet}; @@ -19,6 +20,7 @@ use wayland_client::{Connection, Proxy}; use crate::keyboard_layout_wayland; +pub const MAX_WIDTH: f32 = 866.; pub const DEFAULT_MENU_ITEM_HEIGHT: f32 = 36.; #[derive(Debug, Clone, Eq, PartialEq)] @@ -28,6 +30,18 @@ pub struct ActiveLayout { pub variant: String, } +impl ActiveLayout { + pub fn name(&self) -> String { + let mut name = self.layout.clone(); + if !self.variant.is_empty() { + name.push_str(" ("); + name.push_str(&self.variant); + name.push_str(")"); + } + name + } +} + pub struct Common { pub wayland_connection: Option, pub keyboard_layout: Option, @@ -67,6 +81,7 @@ pub enum Message { Focus(SurfaceId), Key(Modifiers, Key, Option), NetworkIcon(Option<&'static str>), + OnScreenKeyboard, SubsurfaceOpened(SurfaceId), OutputEvent(OutputEvent, WlOutput), PowerInfo(Option<(f64, bool, bool)>), @@ -276,6 +291,26 @@ impl + Send + 'static> Common { self.network_icon_opt = network_icon_opt.map(|name| widget::icon::from_name(name).into()); } + Message::OnScreenKeyboard => { + use cosmic_osk_config::Config; + match Config::handler() { + Ok(handler) => { + let mut config = match Config::get_entry(&handler) { + Ok(config) => config, + Err((errs, config)) => { + tracing::warn!("failed to parse OSK config: {:?}", errs); + config + } + }; + if let Err(err) = config.set_always_shown(&handler, !config.always_shown) { + tracing::error!("failed to set OSK always_shown config: {}", err); + } + } + Err(err) => { + tracing::error!("failed to create OSK config handler: {}", err); + } + } + } Message::OutputEvent(output_event, output) => { if self.wayland_connection.is_none() { if let Some(backend) = output.backend().upgrade() { diff --git a/src/greeter.rs b/src/greeter.rs index bb1b78e..16986b4 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -11,6 +11,7 @@ use cosmic::cctk::wayland_protocols::xdg::shell::client::xdg_positioner::Gravity use cosmic::cosmic_config::{self, ConfigSet}; use cosmic::cosmic_theme::{self, CosmicPalette}; use cosmic::desktop::fde::{DesktopEntry, get_languages_from_env}; +use cosmic::iced::core::text::{Ellipsize, EllipsizeHeightLimit}; use cosmic::iced::event::listen_with; use cosmic::iced::event::wayland::OutputEvent; use cosmic::iced::futures::SinkExt; @@ -41,7 +42,7 @@ use std::num::NonZeroU32; use std::process::Stdio; use std::sync::{Arc, LazyLock}; use std::time::{Duration, Instant}; -use std::{fs, io, process}; +use std::{fs, io, process, thread}; use tokio::process::Child; use tokio::time; use tracing::metadata::LevelFilter; @@ -52,7 +53,7 @@ use wayland_client::Proxy; use wayland_client::protocol::wl_output::WlOutput; use zbus::{Connection, proxy}; -use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}; +use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT, MAX_WIDTH}; use crate::fl; static USERNAME_ID: LazyLock = LazyLock::new(|| iced::id::Id::new("username-id")); @@ -280,6 +281,15 @@ pub fn main() -> Result<(), Box> { sessions }; + match process::Command::new("cosmic-osk").spawn() { + Ok(mut child) => { + thread::spawn(move || child.wait().unwrap()); + } + Err(err) => { + tracing::warn!("failed to spawn cosmic-osk: {}", err); + } + } + let flags = Flags { user_icons: user_datas .iter_mut() @@ -482,9 +492,9 @@ impl App { .window_size .get(&id) .map(|s| s.width) - .unwrap_or(800.); - let menu_width = if window_width > 800. { - 800. + .unwrap_or(MAX_WIDTH); + let menu_width = if window_width > MAX_WIDTH { + MAX_WIDTH } else { window_width }; @@ -584,9 +594,19 @@ impl App { }; let mut input_button = widget::popover( - widget::button::custom(widget::icon::from_name("input-keyboard-symbolic")) + widget::container( + widget::button::custom( + widget::text( + self.common.active_layouts[self.common.current_keyboard_layout].name(), + ) + .ellipsize(Ellipsize::End(EllipsizeHeightLimit::Lines(1))) + .height(16) + .center(), + ) .padding(12.0) .on_press(Message::DropdownToggle(Dropdown::Keyboard)), + ) + .max_width(92), ) .position(widget::popover::Position::Bottom); if matches!(self.dropdown_opt, Some(Dropdown::Keyboard)) { @@ -702,6 +722,13 @@ impl App { text(fl!("accessibility")), widget::tooltip::Position::Top ), + widget::tooltip( + widget::button::custom(widget::icon::from_name("input-keyboard-symbolic")) + .padding(12.0) + .on_press(Message::Common(common::Message::OnScreenKeyboard)), + text(fl!("on-screen-keyboard")), + widget::tooltip::Position::Top, + ), widget::tooltip( input_button, text(fl!("keyboard-layout")), @@ -965,7 +992,7 @@ impl App { appearance }, ))) - .width(Length::Fixed(800.0)); + .width(Length::Fixed(MAX_WIDTH)); let menu = if let Some(t) = self.common.rectangle_tracker.as_ref() { Element::from(t.container((id, false), menu)) } else { @@ -1253,10 +1280,10 @@ impl cosmic::Application for App { let unwrapped_size = size .map(|s| (s.0.unwrap_or(1920), s.1.unwrap_or(1080))) .unwrap_or((1920, 1080)); - let (loc, sub_size) = if unwrapped_size.0 > 800 { + let (loc, sub_size) = if unwrapped_size.0 as f32 > MAX_WIDTH { ( - Point::new(unwrapped_size.0 as f32 / 2. - 400., 32.), - Size::new(800., unwrapped_size.1 as f32 - 32.), + Point::new((unwrapped_size.0 as f32 - MAX_WIDTH) / 2., 32.), + Size::new(MAX_WIDTH, unwrapped_size.1 as f32 - 32.), ) } else { ( @@ -1872,8 +1899,8 @@ impl cosmic::Application for App { tracing::error!("Failed to find subsurface menu id"); return Task::none(); }; - let loc = if size.width > 800. { - Point::new(size.width / 2. - 400., 32.) + let loc = if size.width > MAX_WIDTH { + Point::new((size.width - MAX_WIDTH) / 2., 32.) } else { Point::new(0., 32.) }; diff --git a/src/locker.rs b/src/locker.rs index e358f0c..af2f357 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -4,6 +4,7 @@ use color_eyre::eyre::WrapErr; use cosmic::app::{Core, Settings, Task}; use cosmic::cctk::wayland_protocols::xdg::shell::client::xdg_positioner::Gravity; +use cosmic::iced::core::text::{Ellipsize, EllipsizeHeightLimit}; use cosmic::iced::event::wayland::{OutputEvent, SessionLockEvent}; use cosmic::iced::futures::{self, SinkExt}; use cosmic::iced::platform_specific::shell::wayland::commands::session_lock::{ @@ -34,7 +35,7 @@ use tracing_subscriber::{EnvFilter, fmt}; use wayland_client::Proxy; use wayland_client::protocol::wl_output::WlOutput; -use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}; +use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT, MAX_WIDTH}; use crate::fl; fn lockfile_opt() -> Option { @@ -326,9 +327,9 @@ impl App { .window_size .get(&surface_id) .map(|s| s.width) - .unwrap_or(800.); - let menu_width = if window_width > 800. { - 800. + .unwrap_or(MAX_WIDTH); + let menu_width = if window_width > MAX_WIDTH { + MAX_WIDTH } else { window_width }; @@ -417,9 +418,19 @@ impl App { }; let mut input_button = widget::popover( - widget::button::custom(widget::icon::from_name("input-keyboard-symbolic")) + widget::container( + widget::button::custom( + widget::text( + self.common.active_layouts[self.common.current_keyboard_layout].name(), + ) + .ellipsize(Ellipsize::End(EllipsizeHeightLimit::Lines(1))) + .height(16) + .center(), + ) .padding(12.0) .on_press(Message::DropdownToggle(Dropdown::Keyboard)), + ) + .max_width(92), ) .position(widget::popover::Position::Bottom); if matches!(self.dropdown_opt, Some(Dropdown::Keyboard)) { @@ -443,6 +454,13 @@ impl App { .padding(12.0) .on_press(Message::None), */ + widget::tooltip( + widget::button::custom(widget::icon::from_name("input-keyboard-symbolic")) + .padding(12.0) + .on_press(Message::Common(common::Message::OnScreenKeyboard)), + widget::text(fl!("on-screen-keyboard")), + widget::tooltip::Position::Top, + ), widget::tooltip( input_button, widget::text(fl!("keyboard-layout")), @@ -783,10 +801,10 @@ impl cosmic::Application for App { let unwrapped_size = size .map(|s| (s.0.unwrap_or(1920), s.1.unwrap_or(1080))) .unwrap_or((1920, 1080)); - let (loc, sub_size) = if unwrapped_size.0 > 800 { + let (loc, sub_size) = if unwrapped_size.0 as f32 > MAX_WIDTH { ( Point::new(unwrapped_size.0 as f32 / 2. - 400., 32.), - Size::new(800., unwrapped_size.1 as f32 - 32.), + Size::new(MAX_WIDTH, unwrapped_size.1 as f32 - 32.), ) } else { ( @@ -864,10 +882,10 @@ impl cosmic::Application for App { let unwrapped_size = size .map(|s| (s.0.unwrap_or(1920), s.1.unwrap_or(1080))) .unwrap_or((1920, 1080)); - let (loc, sub_size) = if unwrapped_size.0 > 800 { + let (loc, sub_size) = if unwrapped_size.0 as f32 > MAX_WIDTH { ( Point::new(unwrapped_size.0 as f32 / 2. - 400., 32.), - Size::new(800., unwrapped_size.1 as f32 - 32.), + Size::new(MAX_WIDTH, unwrapped_size.1 as f32 - 32.), ) } else { (Point::ORIGIN, Size::new(1920., 1080.)) From 04d61e30c59851cdc6cf8a4675d9f765805e52fd Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 17 Sep 2026 14:03:44 -0600 Subject: [PATCH 31/35] Move greeter surface to bottom to allow OSK to show on top --- src/greeter.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index 16986b4..e780f99 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -281,12 +281,18 @@ pub fn main() -> Result<(), Box> { sessions }; - match process::Command::new("cosmic-osk").spawn() { + match process::Command::new("cosmic-osk") + .env("RUST_LOG", "cosmic_osk=info") + .spawn() + { Ok(mut child) => { - thread::spawn(move || child.wait().unwrap()); + thread::spawn(move || match child.wait() { + Ok(status) => tracing::warn!("cosmic-osk exited: {}", status), + Err(err) => tracing::error!("failed to wait on cosmic-osk: {}", err), + }); } Err(err) => { - tracing::warn!("failed to spawn cosmic-osk: {}", err); + tracing::error!("failed to spawn cosmic-osk: {}", err); } } @@ -1329,7 +1335,7 @@ impl cosmic::Application for App { let output = output.clone(); SctkLayerSurfaceSettings { id: surface_id, - layer: Layer::Overlay, + layer: Layer::Bottom, keyboard_interactivity: KeyboardInteractivity::Exclusive, input_zone: None, anchor: Anchor::TOP @@ -1337,7 +1343,7 @@ impl cosmic::Application for App { | Anchor::BOTTOM | Anchor::RIGHT, output: IcedOutput::Output(output), - namespace: "cosmic-locker".into(), + namespace: "cosmic-greeter".into(), size: Some((None, None)), margin: IcedMargin { top: 0, From 4c1e532b690d9e7c7aac2428eded35d55a7642c4 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 17 Sep 2026 14:08:36 -0600 Subject: [PATCH 32/35] Reduce keyboard layout max width --- src/greeter.rs | 2 +- src/locker.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index e780f99..1017c40 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -612,7 +612,7 @@ impl App { .padding(12.0) .on_press(Message::DropdownToggle(Dropdown::Keyboard)), ) - .max_width(92), + .max_width(80), ) .position(widget::popover::Position::Bottom); if matches!(self.dropdown_opt, Some(Dropdown::Keyboard)) { diff --git a/src/locker.rs b/src/locker.rs index af2f357..6d913fd 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -430,7 +430,7 @@ impl App { .padding(12.0) .on_press(Message::DropdownToggle(Dropdown::Keyboard)), ) - .max_width(92), + .max_width(80), ) .position(widget::popover::Position::Bottom); if matches!(self.dropdown_opt, Some(Dropdown::Keyboard)) { From b87331f4eb17baf964f2a5b087f66f97f857fae6 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Tue, 22 Sep 2026 17:39:26 -0400 Subject: [PATCH 33/35] fix: for exclusive keyboard interactivity layer must be >= Top moves osk to overlay --- src/greeter.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/greeter.rs b/src/greeter.rs index 1017c40..59771a2 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -282,6 +282,7 @@ pub fn main() -> Result<(), Box> { }; match process::Command::new("cosmic-osk") + .arg("overlay") .env("RUST_LOG", "cosmic_osk=info") .spawn() { @@ -1335,7 +1336,7 @@ impl cosmic::Application for App { let output = output.clone(); SctkLayerSurfaceSettings { id: surface_id, - layer: Layer::Bottom, + layer: Layer::Top, keyboard_interactivity: KeyboardInteractivity::Exclusive, input_zone: None, anchor: Anchor::TOP From 7ac6ece2bad864b6f846de3f4b5796f7a9d30ff4 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 24 Sep 2026 21:03:54 +0200 Subject: [PATCH 34/35] fix: cosmic-osk-config depuis le checkout local ../cosmic-osk Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 0e26c11..b6fdaa4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -189,3 +189,7 @@ dnd = { path = "../window_clipboard/dnd" } mime = { path = "../window_clipboard/mime" } clipboard_wayland = { path = "../window_clipboard/wayland" } clipboard_macos = { path = "../window_clipboard/macos" } + +# Yoda: cosmic-osk-config depuis le checkout local (meme source que le paquet cosmic-osk). +[patch."https://github.com/pop-os/cosmic-osk"] +cosmic-osk-config = { path = "../cosmic-osk/config" } From 57bc2dc3dcf345374319f5553e6fa3dec3a93ac0 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 24 Sep 2026 21:03:54 +0200 Subject: [PATCH 35/35] chore: fige Cargo.lock (epoch-1.9.0, [patch] locaux) Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.lock | 252 ++++------------------------------------------------- 1 file changed, 19 insertions(+), 233 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1dc0fb6..759b54d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,7 +21,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "accesskit" version = "0.22.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "uuid", ] @@ -29,7 +29,7 @@ dependencies = [ [[package]] name = "accesskit_atspi_common" version = "0.15.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -41,7 +41,7 @@ dependencies = [ [[package]] name = "accesskit_consumer" version = "0.32.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "hashbrown 0.16.1", @@ -50,7 +50,7 @@ dependencies = [ [[package]] name = "accesskit_macos" version = "0.23.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "accesskit_unix" version = "0.18.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_atspi_common", @@ -78,7 +78,7 @@ dependencies = [ [[package]] name = "accesskit_windows" version = "0.30.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -91,7 +91,7 @@ dependencies = [ [[package]] name = "accesskit_winit" version = "0.30.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_macos", @@ -282,12 +282,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "as-slice" version = "0.2.1" @@ -821,7 +815,6 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "cfg_aliases", ] @@ -1006,7 +999,6 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1016,22 +1008,12 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", "smithay-clipboard", ] -[[package]] -name = "clipboard_x11" -version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" -dependencies = [ - "thiserror 1.0.69", - "x11rb", -] - [[package]] name = "cocoa" version = "0.25.0" @@ -1209,8 +1191,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" -version = "1.0.15" -source = "git+https://github.com/pop-os/cosmic-applets#0bfc3da2cb838b702bc75809bf9d9288d77e366f" +version = "1.9.0" dependencies = [ "cosmic-config", "serde", @@ -1219,7 +1200,6 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" -source = "git+https://github.com/pop-os/cosmic-bg#9d82a34dab4e73d90ba66c9f72d18d0f9b8be208" dependencies = [ "cosmic-config", "derive_setters", @@ -1231,7 +1211,6 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ "bitflags 2.13.2", "cosmic-protocols", @@ -1244,7 +1223,6 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" -source = "git+https://github.com/pop-os/cosmic-comp#a7349b72e39fd91d7ed25eddb2fa24b900a615d5" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1257,7 +1235,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "atomicwrites", "calloop", @@ -1279,7 +1256,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "quote", "syn 2.0.119", @@ -1296,7 +1272,6 @@ dependencies = [ [[package]] name = "cosmic-dbus-networkmanager" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "bitflags 2.13.2", "derive_builder", @@ -1309,7 +1284,6 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", @@ -1354,7 +1328,7 @@ dependencies = [ "jiff-icu", "jxl-oxide", "kdl", - "libcosmic", + "libcosmic-yoda", "logind-zbus", "pam-client", "pwd", @@ -1413,7 +1387,6 @@ dependencies = [ [[package]] name = "cosmic-osk-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-osk#d7b66a24890d03e38dd8962d956bc802d4a41067" dependencies = [ "cosmic-config", "serde", @@ -1422,7 +1395,6 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols//?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ "bitflags 2.13.2", "wayland-backend", @@ -1435,8 +1407,7 @@ dependencies = [ [[package]] name = "cosmic-randr-shell" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-randr#6e8e795970fa06d434af22775e415b517f7552d3" +version = "1.3.0" dependencies = [ "kdl", "slotmap", @@ -1446,7 +1417,6 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" version = "1.9.0" -source = "git+https://github.com/pop-os/cosmic-settings#e6e2acc18878d224ba5027da44ee228384385c65" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1460,7 +1430,6 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" version = "1.9.0" -source = "git+https://github.com/pop-os/cosmic-settings#e6e2acc18878d224ba5027da44ee228384385c65" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1473,7 +1442,6 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "1.9.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1485,8 +1453,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" +version = "0.1.1-yoda.1" dependencies = [ "zbus", ] @@ -1494,7 +1461,6 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" version = "1.9.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1504,8 +1470,6 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ "bitflags 2.13.2", "fontdb", @@ -1523,12 +1487,12 @@ dependencies = [ "unicode-linebreak", "unicode-script", "unicode-segmentation", + "unicode-width 0.2.2", ] [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "almost", "configparser", @@ -1595,7 +1559,6 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", @@ -1631,15 +1594,6 @@ dependencies = [ "uncased", ] -[[package]] -name = "ctor" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" -dependencies = [ - "dtor", -] - [[package]] name = "cursor-icon" version = "1.2.0" @@ -1939,7 +1893,6 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "bitflags 2.13.2", "mime 0.1.0", @@ -1966,52 +1919,6 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" - -[[package]] -name = "drm" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" -dependencies = [ - "drm-sys", - "rustix 0.38.44", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" -dependencies = [ - "libc", - "linux-raw-sys 0.6.5", -] - -[[package]] -name = "dtor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "dyn-clone" @@ -2519,16 +2426,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -2922,7 +2819,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "dnd", @@ -2944,7 +2840,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "accesskit", "accesskit_winit", @@ -2953,7 +2848,6 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "bitflags 2.13.2", "build_helpers", @@ -2979,7 +2873,6 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_core", "iced_futures", @@ -2989,7 +2882,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "futures", "iced_core", @@ -3003,7 +2895,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "bitflags 2.13.2", "bytemuck", @@ -3024,7 +2915,6 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_graphics", "iced_runtime", @@ -3033,7 +2923,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3045,7 +2934,6 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "bytes", @@ -3061,7 +2949,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "bytemuck", "cosmic-text", @@ -3078,9 +2965,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ - "as-raw-xcb-connection", "bitflags 2.13.2", "build_helpers", "bytemuck", @@ -3098,19 +2983,16 @@ dependencies = [ "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.20", - "tiny-xlib", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-sys", "wgpu", - "x11rb", ] [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3129,7 +3011,6 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -4245,9 +4126,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] -name = "libcosmic" -version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#87ab8179e1bd9880239c340855ae8862034bd0e8" +name = "libcosmic-yoda" +version = "0.1.0-yoda.2" dependencies = [ "apply", "ashpd 0.12.3", @@ -4369,12 +4249,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4587,7 +4461,6 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -6534,7 +6407,6 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", @@ -6565,31 +6437,26 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ - "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", - "drm", "fastrand", "foreign-types", "js-sys", + "libredox", "log", "memmap2 0.9.11", "objc", "raw-window-handle", - "redox_syscall 0.5.18", "rustix 0.38.44", - "tiny-xlib", "wasm-bindgen", "wayland-backend", "wayland-client", "wayland-sys", "web-sys", "windows-sys 0.52.0", - "x11rb", ] [[package]] @@ -6851,7 +6718,6 @@ dependencies = [ [[package]] name = "timedate-zbus" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -6907,19 +6773,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-xlib" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" -dependencies = [ - "as-raw-xcb-connection", - "ctor", - "libloading", - "pkg-config", - "tracing", -] - [[package]] name = "tinystr" version = "0.8.4" @@ -7276,7 +7129,6 @@ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "upower_dbus" version = "0.3.2" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "serde", "serde_repr", @@ -7853,12 +7705,10 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", - "clipboard_x11", "dnd", "mime 0.1.0", "raw-window-handle", @@ -8298,7 +8148,6 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "cfg_aliases", @@ -8318,13 +8167,11 @@ dependencies = [ "winit-wayland", "winit-web", "winit-win32", - "winit-x11", ] [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", "bitflags 2.13.2", @@ -8339,7 +8186,6 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8361,7 +8207,6 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8369,14 +8214,12 @@ dependencies = [ "smol_str", "tracing", "winit-core", - "x11-dl", "xkbcommon-dl", ] [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8390,7 +8233,6 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "dpi", @@ -8406,7 +8248,6 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8426,7 +8267,6 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", "bitflags 2.13.2", @@ -8452,7 +8292,6 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", "bitflags 2.13.2", @@ -8474,7 +8313,6 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8487,29 +8325,6 @@ dependencies = [ "winit-core", ] -[[package]] -name = "winit-x11" -version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "calloop", - "cursor-icon", - "dpi", - "libc", - "percent-encoding", - "raw-window-handle", - "rustix 1.1.4", - "smol_str", - "tracing", - "winit-common", - "winit-core", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - [[package]] name = "winnow" version = "0.6.24" @@ -8549,39 +8364,6 @@ dependencies = [ "either", ] -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc", - "libloading", - "once_cell", - "rustix 1.1.4", - "x11rb-protocol", - "xcursor", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - [[package]] name = "xcursor" version = "0.3.11" @@ -9003,3 +8785,7 @@ dependencies = [ "syn 3.0.5", "winnow 1.0.4", ] + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2"