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/Cargo.lock b/Cargo.lock index d509984..3c25f5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,7 +175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.1", + "bitflags 2.11.0", "cc", "jni", "libc", @@ -261,6 +261,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[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" @@ -288,7 +294,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.4", + "rand 0.9.2", "raw-window-handle", "serde", "serde_repr", @@ -306,7 +312,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.4", + "rand 0.9.2", "serde", "serde_repr", "tokio", @@ -566,9 +572,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38" +checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" dependencies = [ "arrayvec", ] @@ -609,7 +615,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -652,20 +658,20 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" dependencies = [ "serde_core", ] [[package]] name = "bitstream-io" -version = "4.10.0" +version = "4.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eff00be299a18769011411c9def0d827e8f2d7bf0c3dbf53633147a8867fd1f" +checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" dependencies = [ - "no_std_io2", + "core2", ] [[package]] @@ -810,7 +816,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "polling", "rustix 1.1.4", "slab", @@ -831,9 +837,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.61" +version = "1.2.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" +checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283" dependencies = [ "find-msvc-tools", "jobserver", @@ -869,11 +875,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", + "js-sys", "num-traits", + "pure-rust-locales", "serde", + "wasm-bindgen", "windows-link 0.2.1", ] +[[package]] +name = "chrono-tz" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" +dependencies = [ + "chrono", + "phf 0.12.1", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -886,9 +905,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.1.0" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "clipboard-win" @@ -902,6 +921,7 @@ 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", @@ -911,12 +931,22 @@ 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" @@ -1072,11 +1102,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "core-foundation 0.10.1", "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "core_maths" version = "0.1.1" @@ -1089,6 +1128,7 @@ dependencies = [ [[package]] name = "cosmic-applets-config" version = "1.0.2" +source = "git+https://github.com/pop-os/cosmic-applets#f140e80bf94fc633fbcd6b3162171c8f131c3b28" dependencies = [ "cosmic-config", "serde", @@ -1097,6 +1137,7 @@ dependencies = [ [[package]] name = "cosmic-bg-config" version = "1.0.3" +source = "git+https://github.com/pop-os/cosmic-bg#644993abd84bf04d7b3f2211e3656002c2a6f00b" dependencies = [ "cosmic-config", "derive_setters", @@ -1108,8 +1149,9 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols//#160b086abe03cd34a8a375d7fbe47b24308d1f38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cosmic-protocols", "libc", "smithay-client-toolkit", @@ -1120,6 +1162,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "1.0.0" +source = "git+https://github.com/pop-os/cosmic-comp#3e84968dacb6a50a82ef5e35c0ac373c38172681" dependencies = [ "cosmic-config", "cosmic-randr-shell", @@ -1132,6 +1175,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "atomicwrites", "calloop", @@ -1153,6 +1197,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "quote", "syn 2.0.117", @@ -1171,7 +1216,7 @@ name = "cosmic-dbus-networkmanager" version = "0.1.0" source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "derive_builder", "jiff", "procfs", @@ -1182,7 +1227,7 @@ 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#7a61a704f6d1ec41f71cbe766e3cc484858523fa" dependencies = [ "bstr", "btoi", @@ -1199,6 +1244,8 @@ version = "0.1.0" dependencies = [ "anyhow", "async-fn-stream", + "chrono", + "chrono-tz", "clap_lex", "color-eyre", "cosmic-applets-config", @@ -1221,14 +1268,13 @@ dependencies = [ "i18n-embed-fl", "icu", "image", - "jiff", - "jiff-icu", "kdl", - "libcosmic-yoda", + "libcosmic", "logind-zbus", + "nix", "pam-client", "pwd", - "ron 0.12.1", + "ron 0.11.0", "rust-embed", "shlex", "timedate-zbus", @@ -1268,7 +1314,7 @@ dependencies = [ "libc", "nix", "pwd", - "ron 0.12.1", + "ron 0.11.0", "serde", "tokio", "tracing", @@ -1282,8 +1328,9 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols//#160b086abe03cd34a8a375d7fbe47b24308d1f38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1295,6 +1342,7 @@ dependencies = [ [[package]] name = "cosmic-randr-shell" version = "0.1.0" +source = "git+https://github.com/pop-os/cosmic-randr#6e8e795970fa06d434af22775e415b517f7552d3" dependencies = [ "kdl", "slotmap", @@ -1304,6 +1352,7 @@ dependencies = [ [[package]] name = "cosmic-settings-a11y-manager-subscription" version = "1.0.7" +source = "git+https://github.com/pop-os/cosmic-settings#04da80bb904f500ea07ec6ee4ea45d3b50adb9bb" dependencies = [ "cosmic-protocols", "iced_futures", @@ -1317,6 +1366,7 @@ dependencies = [ [[package]] name = "cosmic-settings-accessibility-subscription" version = "1.0.7" +source = "git+https://github.com/pop-os/cosmic-settings#04da80bb904f500ea07ec6ee4ea45d3b50adb9bb" dependencies = [ "cosmic-dbus-a11y", "futures", @@ -1329,6 +1379,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#716da6d6af0b252e2f78aba2ad72ee19ae0241e0" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1349,6 +1400,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon-config" version = "0.1.0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#716da6d6af0b252e2f78aba2ad72ee19ae0241e0" dependencies = [ "cosmic-config", "cosmic-theme", @@ -1357,10 +1409,10 @@ dependencies = [ [[package]] name = "cosmic-text" -version = "0.19.0" -source = "git+https://github.com/pop-os/cosmic-text.git#c24886c2471e5606587c46090cd25dbbf209186b" +version = "0.18.2" +source = "git+https://github.com/pop-os/cosmic-text.git#9a2ab09f06905e91f41d64ac6eee887726e7fd76" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "fontdb", "harfrust", "linebender_resource_handle", @@ -1381,6 +1433,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "almost", "configparser", @@ -1483,6 +1536,12 @@ dependencies = [ "uncased", ] +[[package]] +name = "ctor-lite" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e162d0c2e2068eb736b71e5597eff0b9944e6b973cd9f37b6a288ab9bf20e300" + [[package]] name = "cursor-icon" version = "1.2.0" @@ -1700,7 +1759,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -1729,8 +1788,9 @@ 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.11.1", + "bitflags 2.11.0", "mime 0.1.0", "raw-window-handle", "smithay-client-toolkit", @@ -1755,7 +1815,46 @@ 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#a610ac9c7a72b39ff102ed4d946291618dc725b6" + +[[package]] +name = "drm" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" +dependencies = [ + "bitflags 2.11.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 = "dyn-clone" @@ -2057,9 +2156,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "font-types" -version = "0.11.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7" +checksum = "2d9237c6d82152100c691fb77ea18037b402bcc7257d2c876a4ffac81bc22a1c" dependencies = [ "bytemuck", ] @@ -2258,6 +2357,16 @@ dependencies = [ "version_check", ] +[[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" @@ -2380,7 +2489,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "gpu-alloc-types", ] @@ -2390,7 +2499,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", ] [[package]] @@ -2411,7 +2520,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2422,7 +2531,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", ] [[package]] @@ -2440,9 +2549,9 @@ dependencies = [ [[package]] name = "grid" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40ca9252762c466af32d0b1002e91e4e1bc5398f77455e55474deb466355ff5" +checksum = "f9e2d4c0a8296178d8802098410ca05d86b17a10bb5ab559b3fb404c1f948220" [[package]] name = "guillotiere" @@ -2472,7 +2581,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "core_maths", "read-fonts", @@ -2503,12 +2612,6 @@ dependencies = [ "foldhash 0.2.0", ] -[[package]] -name = "hashbrown" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" - [[package]] name = "heck" version = "0.4.1" @@ -2639,6 +2742,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "dnd", "iced_accessibility", @@ -2659,6 +2763,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "accesskit", "accesskit_winit", @@ -2667,8 +2772,9 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytes", "cosmic-client-toolkit", "dnd", @@ -2690,6 +2796,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "iced_core", "iced_futures", @@ -2699,6 +2806,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "futures", "iced_core", @@ -2712,8 +2820,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "cosmic-text", "half", @@ -2732,6 +2841,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "iced_graphics", "iced_runtime", @@ -2740,6 +2850,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2751,6 +2862,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -2765,6 +2877,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "bytemuck", "cosmic-text", @@ -2781,8 +2894,10 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ - "bitflags 2.11.1", + "as-raw-xcb-connection", + "bitflags 2.11.0", "bytemuck", "cosmic-client-toolkit", "cryoglyph", @@ -2798,16 +2913,19 @@ dependencies = [ "rustc-hash 2.1.2", "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#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -2825,6 +2943,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "cosmic-client-toolkit", "cursor-icon", @@ -3277,9 +3396,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -3304,15 +3423,6 @@ dependencies = [ "zune-jpeg 0.5.15", ] -[[package]] -name = "image-extras" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d02eb2c9ccbbab470538fce34c7bc3be7b4e59268e65a3171367b296cdb842" -dependencies = [ - "image", -] - [[package]] name = "image-webp" version = "0.2.4" @@ -3331,9 +3441,9 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" -version = "1.12.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40fac9d56ed6437b198fddba683305e8e2d651aa42647f00f5ae542e7f5c94a2" +checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" [[package]] name = "indenter" @@ -3354,12 +3464,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" dependencies = [ "equivalent", - "hashbrown 0.17.0", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -3370,7 +3480,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "inotify-sys", "libc", ] @@ -3386,11 +3496,11 @@ dependencies = [ [[package]] name = "input" -version = "0.10.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9793345a65d71317763a33066b5d8351f8760dde8d4930fe9e39b5f14a7959d" +checksum = "fbdc09524a91f9cacd26f16734ff63d7dc650daffadd2b6f84d17a285bd875a9" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "input-sys", "libc", "log", @@ -3476,9 +3586,9 @@ checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" [[package]] name = "jiff" -version = "0.2.24" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -3489,22 +3599,11 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "jiff-icu" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" -dependencies = [ - "icu_calendar", - "icu_time", - "jiff", -] - [[package]] name = "jiff-static" -version = "0.2.24" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", @@ -3596,9 +3695,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ "cfg-if", "futures-util", @@ -3632,7 +3731,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "serde", ] @@ -3674,11 +3773,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.1.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b65860415f949f23fa882e669f2dbd4a0f0eeb1acdd56790b30494afd7da2f" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ - "bitflags 2.11.1", + "bitflags 1.3.2", "libc", ] @@ -3729,13 +3828,14 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.186" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] -name = "libcosmic-yoda" -version = "0.1.0-yoda.2" +name = "libcosmic" +version = "1.0.0" +source = "git+https://github.com/pop-os/libcosmic#a44cff8011d81209e18de86f24da248c88b5a28d" dependencies = [ "apply", "ashpd 0.12.3", @@ -3763,7 +3863,6 @@ dependencies = [ "iced_widget", "iced_winit", "image", - "image-extras", "jiff", "libc", "log", @@ -3813,14 +3912,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "libc", "plain", - "redox_syscall 0.7.5", + "redox_syscall 0.7.3", ] [[package]] @@ -3854,6 +3953,12 @@ 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" @@ -3921,9 +4026,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.4" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" [[package]] name = "lyon" @@ -3937,9 +4042,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.20" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8575c0d003ae459399623c4def180c63b77f343b1a7fee64f249b349e7699a31" +checksum = "9815fac08e6fd96733a11dce4f9d15a3f338e96a2e2311ee21e1b738efc2bc0f" dependencies = [ "lyon_path", "num-traits", @@ -4044,7 +4149,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4066,6 +4171,7 @@ 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", ] @@ -4128,14 +4234,14 @@ checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.1", + "bitflags 2.11.0", "cfg-if", "cfg_aliases", "codespan-reporting", "half", "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.14.0", + "indexmap 2.13.1", "libm", "log", "num-traits", @@ -4152,7 +4258,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "jni-sys 0.3.1", "log", "ndk-sys", @@ -4184,25 +4290,16 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.31.2" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cfg-if", "cfg_aliases", "libc", ] -[[package]] -name = "no_std_io2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" -dependencies = [ - "memchr", -] - [[package]] name = "nom" version = "7.1.3" @@ -4234,7 +4331,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "fsevent-sys", "inotify", "kqueue", @@ -4252,7 +4349,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", ] [[package]] @@ -4437,7 +4534,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4453,7 +4550,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -4466,7 +4563,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4478,7 +4575,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "dispatch2", "objc2 0.6.4", @@ -4490,7 +4587,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "libc", "objc2-core-foundation", ] @@ -4513,7 +4610,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "objc2-core-foundation", "objc2-core-graphics", ] @@ -4530,7 +4627,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -4542,7 +4639,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -4554,7 +4651,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4566,7 +4663,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -4579,7 +4676,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -4617,9 +4714,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orbclient" -version = "0.3.54" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" +checksum = "59aed3b33578edcfa1bc96a321d590d31832b6ad55a26f0313362ce687e9abd6" dependencies = [ "libc", "libredox", @@ -4789,6 +4886,15 @@ dependencies = [ "phf_shared 0.11.3", ] +[[package]] +name = "phf" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" +dependencies = [ + "phf_shared 0.12.1", +] + [[package]] name = "phf" version = "0.13.1" @@ -4807,7 +4913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.6", + "rand 0.8.5", ] [[package]] @@ -4856,6 +4962,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" +dependencies = [ + "siphasher", +] + [[package]] name = "phf_shared" version = "0.13.1" @@ -4874,18 +4989,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.12" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.12" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -4917,9 +5032,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plain" @@ -4946,7 +5061,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "crc32fast", "fdeflate", "flate2", @@ -4981,9 +5096,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" dependencies = [ "portable-atomic", ] @@ -5089,7 +5204,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "procfs-core", "rustix 1.1.4", ] @@ -5100,29 +5215,35 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "hex", ] [[package]] name = "profiling" -version = "1.0.18" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.18" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", "syn 2.0.117", ] +[[package]] +name = "pure-rust-locales" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "869675ad2d7541aea90c6d88c81f46a7f4ea9af8cd0395d38f11a95126998a0d" + [[package]] name = "pwd" version = "1.4.0" @@ -5135,9 +5256,9 @@ dependencies = [ [[package]] name = "pxfm" -version = "0.1.29" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" +checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" [[package]] name = "quick-error" @@ -5147,14 +5268,23 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.39.3" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721da970c312655cde9b4ffe0547f20a8494866a4af5ff51f18b7c633d0c870b" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" dependencies = [ "memchr", "serde", ] +[[package]] +name = "quick-xml" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.45" @@ -5178,18 +5308,18 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "rand_core 0.6.4", ] [[package]] name = "rand" -version = "0.9.4" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha", "rand_core 0.9.5", @@ -5259,7 +5389,7 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand 0.9.4", + "rand 0.9.2", "rand_chacha", "simd_helpers", "thiserror 2.0.18", @@ -5290,9 +5420,9 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "rayon" -version = "1.12.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -5325,16 +5455,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", ] [[package]] name = "redox_syscall" -version = "0.7.5" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", ] [[package]] @@ -5460,7 +5590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ "base64", - "bitflags 2.11.1", + "bitflags 2.11.0", "serde", "serde_derive", "unicode-ident", @@ -5472,7 +5602,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "once_cell", "serde", "serde_derive", @@ -5565,7 +5695,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -5578,7 +5708,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys 0.12.1", @@ -5597,7 +5727,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "core_maths", "log", @@ -5727,7 +5857,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.13.1", "itoa", "memchr", "serde", @@ -5748,15 +5878,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.19.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05839ce67618e14a09b286535c0d9c94e85ef25469b0e13cb4f844e5593eb19" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.14.0", + "indexmap 2.13.1", "schemars 0.9.0", "schemars 1.2.1", "serde_core", @@ -5767,9 +5897,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.19.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2ebbe86054f9b45bc3881e865683ccfaccce97b9b4cb53f3039d67f355a334" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -5855,9 +5985,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "skrifa" @@ -5896,7 +6026,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "calloop", "calloop-wayland-source", @@ -5954,12 +6084,14 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" +source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#a3f77e251e7422803f693df6e3fc313c010c4dcb" dependencies = [ + "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", + "drm", "fastrand", "foreign-types", "js-sys", @@ -5969,12 +6101,14 @@ dependencies = [ "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]] @@ -5983,7 +6117,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.11.0", ] [[package]] @@ -6238,6 +6372,19 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tiny-xlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0324504befd01cab6e0c994f34b2ffa257849ee019d3fb3b64fb2c858887d89e" +dependencies = [ + "as-raw-xcb-connection", + "ctor-lite", + "libloading", + "pkg-config", + "tracing", +] + [[package]] name = "tinystr" version = "0.8.3" @@ -6266,9 +6413,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.2" +version = "1.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "110a78583f19d5cdb2c5ccf321d1290344e71313c6c37d43520d386027d18386" +checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" dependencies = [ "bytes", "libc", @@ -6328,10 +6475,10 @@ version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.13.1", "toml_datetime", "toml_parser", - "winnow 1.0.2", + "winnow 1.0.1", ] [[package]] @@ -6340,7 +6487,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.1", ] [[package]] @@ -6452,9 +6599,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.20.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "udev" @@ -6655,9 +6802,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.23.1" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" dependencies = [ "js-sys", "serde_core", @@ -6717,11 +6864,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wit-bindgen 0.57.1", + "wit-bindgen", ] [[package]] @@ -6730,14 +6877,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if", "once_cell", @@ -6748,9 +6895,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" dependencies = [ "js-sys", "wasm-bindgen", @@ -6758,9 +6905,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6768,9 +6915,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", @@ -6781,9 +6928,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] @@ -6805,7 +6952,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.14.0", + "indexmap 2.13.1", "wasm-encoder", "wasmparser", ] @@ -6816,9 +6963,9 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "hashbrown 0.15.5", - "indexmap 2.14.0", + "indexmap 2.13.1", "semver", ] @@ -6856,7 +7003,7 @@ version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -6868,7 +7015,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cursor-icon", "wayland-backend", ] @@ -6890,7 +7037,7 @@ version = "0.32.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -6903,7 +7050,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6916,7 +7063,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6929,7 +7076,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6942,7 +7089,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6957,7 +7104,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" dependencies = [ "proc-macro2", - "quick-xml", + "quick-xml 0.39.2", "quote", ] @@ -6967,7 +7114,7 @@ version = "0.31.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -6988,9 +7135,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" dependencies = [ "js-sys", "wasm-bindgen", @@ -7019,7 +7166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", - "bitflags 2.11.1", + "bitflags 2.11.0", "cfg-if", "cfg_aliases", "document-features", @@ -7050,12 +7197,12 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "cfg_aliases", "document-features", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap 2.13.1", "log", "naga", "once_cell", @@ -7110,7 +7257,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.11.1", + "bitflags 2.11.0", "block", "bytemuck", "cfg-if", @@ -7155,7 +7302,7 @@ version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "bytemuck", "js-sys", "log", @@ -7203,10 +7350,12 @@ 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", @@ -7659,9 +7808,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cfg_aliases", "cursor-icon", "dpi", @@ -7679,15 +7828,16 @@ 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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ "android-activity", - "bitflags 2.11.1", + "bitflags 2.11.0", "dpi", "ndk", "raw-window-handle", @@ -7699,9 +7849,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "dispatch2", "dpi", @@ -7721,7 +7871,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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ "memmap2 0.9.10", "objc2 0.6.4", @@ -7729,15 +7879,16 @@ 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#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cursor-icon", "dpi", "keyboard-types", @@ -7749,14 +7900,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "dpi", "libredox", "orbclient", "raw-window-handle", - "redox_syscall 0.7.5", + "redox_syscall 0.7.3", "smol_str", "tracing", "winit-core", @@ -7765,9 +7916,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "block2 0.6.2", "dispatch2", "dpi", @@ -7785,10 +7936,10 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#261cda54017f98a12dc55569c864430fe6770366" +source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ "ahash", - "bitflags 2.11.1", + "bitflags 2.11.0", "calloop", "cursor-icon", "dpi", @@ -7811,10 +7962,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ "atomic-waker", - "bitflags 2.11.1", + "bitflags 2.11.0", "concurrent-queue", "cursor-icon", "dpi", @@ -7833,9 +7984,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#a610ac9c7a72b39ff102ed4d946291618dc725b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "cursor-icon", "dpi", "raw-window-handle", @@ -7846,6 +7997,29 @@ 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#a610ac9c7a72b39ff102ed4d946291618dc725b6" +dependencies = [ + "bitflags 2.11.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" @@ -7857,9 +8031,18 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.2" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] @@ -7873,12 +8056,6 @@ 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" @@ -7898,7 +8075,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.14.0", + "indexmap 2.13.1", "prettyplease", "syn 2.0.117", "wasm-metadata", @@ -7928,8 +8105,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.1", - "indexmap 2.14.0", + "bitflags 2.11.0", + "indexmap 2.13.1", "log", "serde", "serde_derive", @@ -7948,7 +8125,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.14.0", + "indexmap 2.13.1", "log", "semver", "serde", @@ -7973,6 +8150,39 @@ 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" @@ -8034,7 +8244,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.11.0", "dlib", "log", "once_cell", @@ -8105,9 +8315,9 @@ dependencies = [ [[package]] name = "zbus" -version = "5.15.0" +version = "5.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" +checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" dependencies = [ "async-broadcast", "async-executor", @@ -8133,7 +8343,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 1.0.2", + "winnow 0.7.15", "zbus_macros", "zbus_names", "zvariant", @@ -8165,9 +8375,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.15.0" +version = "5.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" +checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8180,22 +8390,22 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.2" +version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" +checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" dependencies = [ "serde", - "winnow 1.0.2", + "winnow 0.7.15", "zvariant", ] [[package]] name = "zbus_xml" -version = "5.1.1" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8067892e940ed1727dea64690378601603b31d62dfde019a5335fbb7c0e0ed9" +checksum = "441a0064125265655bccc3a6af6bef56814d9277ac83fce48b1cd7e160b80eac" dependencies = [ - "quick-xml", + "quick-xml 0.38.4", "serde", "zbus_names", "zvariant", @@ -8330,24 +8540,24 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.11.0" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1567a6ec68df868cbbfde844cfc6d81649fe5109a62b116b19fabd53e618ee" +checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" dependencies = [ "endi", "enumflags2", "serde", "url", - "winnow 1.0.2", + "winnow 0.7.15", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.11.0" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d5b780599bbde114e39d9a0799577fad1ced5105d38515745f7b3099d8ceda" +checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8358,13 +8568,13 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "3.3.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" +checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" dependencies = [ "proc-macro2", "quote", "serde", "syn 2.0.117", - "winnow 1.0.2", + "winnow 0.7.15", ] diff --git a/Cargo.toml b/Cargo.toml index ff577a1..49ba628 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,9 +9,9 @@ vergen = { version = "8", features = ["git", "gitcl"] } [dependencies] anyhow = "1" async-fn-stream = "0.3" -icu = { version = "2.2.0", features = ["compiled_data"] } -jiff = "0.2" -jiff-icu = "0.2" +icu = { version = "2.0.0", features = ["compiled_data"] } +chrono-tz = "0.10" +chrono = { version = "0.4", features = ["unstable-locales"] } cosmic-applets-config.workspace = true cosmic-bg-config.workspace = true cosmic-comp-config.workspace = true @@ -19,8 +19,7 @@ cosmic-config = { workspace = true, features = ["calloop", "macro"] } cosmic-greeter-config.workspace = true cosmic-greeter-daemon = { path = "daemon" } dirs = "6" -cosmic = { package = "libcosmic-yoda", path = "../libcosmic", default-features = false, features = [ - "advanced-shaping", +libcosmic = { workspace = true, features = [ "autosize", "winit", "multi-window", @@ -40,20 +39,23 @@ xkb-data = "0.2" xdg = "3.0" #TODO: reduce features tokio = { workspace = true, features = ["full"] } -wayland-client = "0.31.14" +wayland-client = "0.31.11" # cosmic-settings-subscriptions = { git = "https://github.com/pop-os/cosmic-settings-subscriptions", default-features = false, features = [ # "accessibility", # "cosmic_a11y_manager", # ] } -cosmic-settings-accessibility-subscription = { path = "../cosmic-settings/subscriptions/accessibility", default-features = false } -cosmic-settings-a11y-manager-subscription = { path = "../cosmic-settings/subscriptions/a11y-manager", default-features = false } -cosmic-settings-daemon-config = { path = "../cosmic-settings-daemon/cosmic-settings-daemon-config", default-features = false, features = [ +# cosmic-settings-daemon-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", default-features = false, features = [ +# "greeter", +# ] } +cosmic-settings-accessibility-subscription = { git = "https://github.com/pop-os/cosmic-settings", default-features = false } +cosmic-settings-a11y-manager-subscription = { git = "https://github.com/pop-os/cosmic-settings", default-features = false } +cosmic-settings-daemon-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", default-features = false, features = [ "greeter", ] } -cctk = { path = "../cosmic-protocols/client-toolkit", package = "cosmic-client-toolkit" } -cosmic-protocols = { path = "../cosmic-protocols", default-features = false, features = [ +cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit" } +cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", default-features = false, features = [ "client", ] } @@ -61,12 +63,14 @@ cosmic-protocols = { path = "../cosmic-protocols", default-features = false, fea cosmic-dbus-networkmanager = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true } # For logind integration using logind feature logind-zbus = { version = "5", optional = true } +# Fix zbus compilation by manually adding nix with user feature +nix = { workspace = true, optional = true } # For power status with upower feature upower_dbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true } # Required for some features zbus = { workspace = true } # CLI arguments -clap_lex = "1.1" +clap_lex = "0.7" # Internationalization i18n-embed = { version = "0.16", features = [ "fluent-system", @@ -74,7 +78,7 @@ i18n-embed = { version = "0.16", features = [ ] } i18n-embed-fl = "0.10" rust-embed = "8" -futures-util = "0.3.32" +futures-util = "0.3.31" timedate-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings" } cosmic-randr-shell = { workspace = true } kdl.workspace = true @@ -109,34 +113,37 @@ opt-level = 2 [workspace] members = ["cosmic-greeter-config", "daemon"] -resolver = "3" +resolver = "2" [workspace.package] -rust-version = "1.93" +rust-version = "1.85.0" [workspace.dependencies] tracing = "0.1" tracing-journald = { version = "0.3" } tracing-subscriber = { version = "0.3", features = ["env-filter"] } color-eyre = "0.6.5" + +# Fix zbus compilation by manually adding nix with user feature +nix = { version = "0.30", features = ["user"] } pwd = "1.4.0" -ron = "0.12" +ron = "0.11" serde = "1" -tokio = "1.52.1" +tokio = "1.47.1" zbus = "5" kdl = "6" -cosmic-randr-shell = { path = "../cosmic-randr/shell", default-features = false } +cosmic-randr-shell = { git = "https://github.com/pop-os/cosmic-randr", default-features = false } [workspace.dependencies.cosmic-applets-config] -path = "../cosmic-applets/cosmic-applets-config" +git = "https://github.com/pop-os/cosmic-applets" default-features = false [workspace.dependencies.cosmic-bg-config] -path = "../cosmic-bg/config" +git = "https://github.com/pop-os/cosmic-bg" default-features = false [workspace.dependencies.cosmic-comp-config] -path = "../cosmic-comp/cosmic-comp-config" +git = "https://github.com/pop-os/cosmic-comp" default-features = false features = ["output", "randr"] @@ -144,40 +151,28 @@ features = ["output", "randr"] path = "cosmic-greeter-config" [workspace.dependencies.cosmic-config] -path = "../libcosmic/cosmic-config" +git = "https://github.com/pop-os/libcosmic" default-features = false [workspace.dependencies.cosmic-theme] -path = "../libcosmic/cosmic-theme" +git = "https://github.com/pop-os/libcosmic" default-features = false -[patch."https://github.com/pop-os/libcosmic"] -cosmic-config = { path = "../libcosmic/cosmic-config" } -cosmic-config-derive = { path = "../libcosmic/cosmic-config-derive" } -cosmic-theme = { path = "../libcosmic/cosmic-theme" } -iced = { path = "../libcosmic/iced" } -iced_accessibility = { path = "../libcosmic/iced/accessibility" } -iced_core = { path = "../libcosmic/iced/core" } -iced_futures = { path = "../libcosmic/iced/futures" } -iced_graphics = { path = "../libcosmic/iced/graphics" } -iced_renderer = { path = "../libcosmic/iced/renderer" } -iced_runtime = { path = "../libcosmic/iced/runtime" } -iced_tiny_skia = { path = "../libcosmic/iced/tiny_skia" } -iced_wgpu = { path = "../libcosmic/iced/wgpu" } -iced_widget = { path = "../libcosmic/iced/widget" } -iced_winit = { path = "../libcosmic/iced/winit" } +[workspace.dependencies.libcosmic] +git = "https://github.com/pop-os/libcosmic" +default-features = false +features = ["advanced-shaping"] + +[patch."https://github.com/smithay/client-toolkit.git"] +sctk = { package = "smithay-client-toolkit", version = "0.20.0" } [patch."https://github.com/pop-os/cosmic-protocols"] -cosmic-protocols = { path = "../cosmic-protocols" } -cosmic-client-toolkit = { path = "../cosmic-protocols/client-toolkit" } +cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//" } +cctk = { git = "https://github.com/pop-os/cosmic-protocols//", package = "cosmic-client-toolkit" } -[patch."https://github.com/pop-os/cosmic-settings-daemon"] -cosmic-settings-config = { path = "../cosmic-settings-daemon/config" } -cosmic-settings-daemon-config = { path = "../cosmic-settings-daemon/cosmic-settings-daemon-config" } - -[patch."https://forge.aditua.com/leyoda/window_clipboard.git"] -window_clipboard = { path = "../window_clipboard" } -dnd = { path = "../window_clipboard/dnd" } -mime = { path = "../window_clipboard/mime" } -clipboard_wayland = { path = "../window_clipboard/wayland" } -clipboard_macos = { path = "../window_clipboard/macos" } +# [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//" } diff --git a/cosmic-greeter-config/src/lib.rs b/cosmic-greeter-config/src/lib.rs index 50fff98..96869c5 100644 --- a/cosmic-greeter-config/src/lib.rs +++ b/cosmic-greeter-config/src/lib.rs @@ -3,11 +3,9 @@ pub mod user; -use cosmic_config::CosmicConfigEntry; -use cosmic_config::cosmic_config_derive::CosmicConfigEntry; +use cosmic_config::{CosmicConfigEntry, cosmic_config_derive::CosmicConfigEntry}; use serde::{Deserialize, Serialize}; -use std::collections::HashMap; -use std::num::NonZeroU32; +use std::{collections::HashMap, num::NonZeroU32}; pub const APP_ID: &str = "com.system76.CosmicGreeter"; pub const CONFIG_VERSION: u64 = 1; diff --git a/daemon/Cargo.toml b/daemon/Cargo.toml index a229b05..4bf3fd5 100644 --- a/daemon/Cargo.toml +++ b/daemon/Cargo.toml @@ -8,7 +8,6 @@ edition = "2024" [dependencies] tracing-subscriber = { workspace = true, features = ["env-filter"] } libc = "0.2" -nix = { version = "0.31", features = ["user"] } cosmic-applets-config.workspace = true cosmic-bg-config.workspace = true cosmic-comp-config.workspace = true @@ -17,6 +16,7 @@ cosmic-theme.workspace = true tracing.workspace = true tracing-journald = { workspace = true, optional = true } color-eyre.workspace = true +nix.workspace = true pwd.workspace = true ron.workspace = true serde.workspace = true diff --git a/daemon/src/lib.rs b/daemon/src/lib.rs index 842aebe..71f5ee5 100644 --- a/daemon/src/lib.rs +++ b/daemon/src/lib.rs @@ -1,15 +1,16 @@ use cosmic_comp_config::output::randr; use cosmic_config::CosmicConfigEntry; use kdl::KdlDocument; -use std::collections::BTreeMap; -use std::fs; -use std::io::Read; -use std::os::unix::fs::OpenOptionsExt; -use std::path::{Path, PathBuf}; +use std::{ + collections::BTreeMap, + fs, + io::Read, + os::unix::fs::OpenOptionsExt, + path::{Path, PathBuf}, +}; pub use cosmic_applets_config::time::TimeAppletConfig; -pub use cosmic_bg_config::state::State as BgState; -pub use cosmic_bg_config::{Color, Source as BgSource}; +pub use cosmic_bg_config::{Color, Source as BgSource, state::State as BgState}; pub use cosmic_comp_config::{CosmicCompConfig, XkbConfig, ZoomConfig}; pub use cosmic_theme::{Theme, ThemeBuilder}; @@ -18,8 +19,8 @@ pub struct UserFilter { uid_max: u32, } -impl Default for UserFilter { - fn default() -> Self { +impl UserFilter { + pub 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); Self { @@ -33,12 +34,6 @@ impl Default for UserFilter { .unwrap_or(65000), } } -} - -impl UserFilter { - pub fn new() -> Self { - Self::default() - } pub fn filter(&self, user: &pwd::Passwd) -> bool { if user.uid < self.uid_min || user.uid > self.uid_max { @@ -85,18 +80,22 @@ impl UserData { }) }); for (_, source) in self.bg_state.wallpapers.iter() { - //TODO: do not reread duplicate paths, cache data by path? - if let BgSource::Path(path) = source - && !self.bg_path_data.contains_key(path) - { - match fs::read(path) { - Ok(bytes) => { - self.bg_path_data.insert(path.clone(), bytes); - } - Err(err) => { - tracing::error!("failed to read wallpaper {:?}: {:?}", path, err); + match source { + //TODO: do not reread duplicate paths, cache data by path? + BgSource::Path(path) => { + if !self.bg_path_data.contains_key(path) { + match fs::read(path) { + Ok(bytes) => { + self.bg_path_data.insert(path.clone(), bytes); + } + Err(err) => { + tracing::error!("failed to read wallpaper {:?}: {:?}", path, err); + } + } } } + // Other types not supported + _ => {} } } } diff --git a/daemon/src/main.rs b/daemon/src/main.rs index 427070a..41bd5ed 100644 --- a/daemon/src/main.rs +++ b/daemon/src/main.rs @@ -1,15 +1,10 @@ use color_eyre::eyre::Context; use cosmic_greeter_daemon::{UserData, UserFilter}; -use std::error::Error; -use std::ffi::CString; -use std::future::pending; -use std::{env, io}; +use std::{env, error::Error, ffi::CString, future::pending, io}; use tracing::metadata::LevelFilter; use tracing::warn; -use tracing_subscriber::prelude::*; -use tracing_subscriber::{EnvFilter, fmt}; -use zbus::DBusError; -use zbus::connection::Builder; +use tracing_subscriber::{EnvFilter, fmt, prelude::*}; +use zbus::{DBusError, connection::Builder}; //IMPORTANT: this function is critical to the security of this proxy. It must ensure that the // callback is executed with the permissions of the specified user id. A good test is to see if diff --git a/examples/server.rs b/examples/server.rs index c6f35f8..6fbfe5f 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -1,5 +1,4 @@ -use greetd_ipc::codec::TokioCodec; -use greetd_ipc::{AuthMessageType, ErrorType, Request, Response}; +use greetd_ipc::{AuthMessageType, ErrorType, Request, Response, codec::TokioCodec}; use std::{env, fs, io, thread}; use tokio::net::UnixListener; diff --git a/i18n/ca/cosmic_greeter.ftl b/i18n/ca/cosmic_greeter.ftl index 0648d8e..e69de29 100644 --- a/i18n/ca/cosmic_greeter.ftl +++ b/i18n/ca/cosmic_greeter.ftl @@ -1 +0,0 @@ -cancel = Cancel·lar diff --git a/i18n/el/cosmic_greeter.ftl b/i18n/el/cosmic_greeter.ftl index c03b4af..52bb907 100644 --- a/i18n/el/cosmic_greeter.ftl +++ b/i18n/el/cosmic_greeter.ftl @@ -1,37 +1,3 @@ cancel = Ακύρωση restart = Επανεκκίνηση suspend = Αναστολή -accessibility = Προσβασιμότητα - .screen-reader = Ανάγνωση οθόνης - .magnifier = Μεγεθυντικός φακός - .high-contrast = Υψηλή αντίθεση - .invert-colors = Αναστροφή χρωμάτων -shutdown-timeout = - Η λειτουργία του συστήματος θα τερματιστεί αυτόματα - { $seconds -> - [0] τώρα. - [1] σε 1 δευτερόλεπτο. - *[other] σε { $seconds } δευτερόλεπτα. - } -type-username = Όνομα χρήστη: -keyboard-layout = Διάταξη πληκτρολογίου -restart-now = Επανεκκίνηση τώρα; -session = Συνεδρία -shutdown = Τερματισμός -user = Χρήστης -caps-lock = Το Caps Lock είναι ενεργό. -shutdown-now = Τερματισμός τώρα; -auth-error-credentials = Μη έγκυρος κωδικός πρόσβασης. Ελέγξτε τη διάταξη πληκτρολογίου σας και δοκιμάστε ξανά. -auth-error-account = Ο λογαριασμός δεν είναι διαθέσιμος ή έχει απενεργοποιηθεί. -restart-timeout = - Το σύστημα θα επανεκκινηθεί αυτόματα - { $seconds -> - [0] τώρα. - [1] σε 1 δευτερόλεπτο. - *[other] σε { $seconds } δευτερόλεπτα. - } -enter-user = Εισαγάγετε το όνομα χειροκίνητα... -authenticating = Πιστοποίηση... -auth-error-default = Η πιστοποίηση απέτυχε. Δοκιμάστε ξανά. -auth-error-denied = Δεν επιτράπηκε η πρόσβαση. -auth-error-maxtries = Πάρα πολλές αποτυχημένες απόπειρες πιστοποίησης. diff --git a/i18n/lo/cosmic_greeter.ftl b/i18n/lo/cosmic_greeter.ftl deleted file mode 100644 index e69de29..0000000 diff --git a/i18n/sr/cosmic_greeter.ftl b/i18n/sr/cosmic_greeter.ftl index c0ab066..e69de29 100644 --- a/i18n/sr/cosmic_greeter.ftl +++ b/i18n/sr/cosmic_greeter.ftl @@ -1,37 +0,0 @@ -cancel = Откажи -suspend = Обустави -restart = Поново покрени -shutdown = Угаси -accessibility = Приступачност - .screen-reader = Читач екрана - .magnifier = Лупа - .high-contrast = Велики контраст - .invert-colors = Изврни боје -authenticating = Потврђујем… -caps-lock = Закључавање слова је покренуто. -enter-user = Ручно унесите име… -type-username = Корисничко име: -keyboard-layout = Распоред тастатуре -restart-now = Поново покренути сада? -restart-timeout = - Систем ће се самостално поново покренути - { $seconds -> - [0] сада. - [1] за 1 секунду. - *[other] за { $seconds } секунди. - } -session = Сесија -shutdown-now = Угасити сада? -shutdown-timeout = - Систем ће се самостално угасити - { $seconds -> - [0] сада. - [1] за 1 секунду. - *[other] за { $seconds } секунди. - } -user = Корисник -auth-error-default = Потврђивање идентитета није успело. Покушајте поново. -auth-error-credentials = Нетачна лозинка. Проверите распоред тастатуре и покушајте поново. -auth-error-denied = Приступ је забрањен. -auth-error-maxtries = Превише неуспешних покушаја потврђивања идентитета. -auth-error-account = Налог је недоступан или онемогућен. diff --git a/i18n/uk/cosmic_greeter.ftl b/i18n/uk/cosmic_greeter.ftl index 1d51b78..8b2cb78 100644 --- a/i18n/uk/cosmic_greeter.ftl +++ b/i18n/uk/cosmic_greeter.ftl @@ -35,5 +35,5 @@ auth-error-default = Автентифікація не вдалась. Спро auth-error-credentials = Неправильний пароль. Будь ласка, перевірте розкладку клавіатури та спробуйте ще раз. auth-error-denied = Доступ відхилено. auth-error-maxtries = Забагато невдалих спроб автентифікації. -auth-error-account = Обліковий запис недоступний або вимкнений. +auth-error-account = Обліковий запис недоступний або відключений. authenticating = Автентифікація... diff --git a/rust-toolchain.toml b/rust-toolchain.toml index bbfabdb..f35f369 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.93" +channel = "1.90.0" components = ["clippy", "rustfmt"] 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" diff --git a/src/common.rs b/src/common.rs index 6fdd371..da3d21a 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1,15 +1,20 @@ -use cosmic::app::{Core, Task}; -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::runtime::core::window::Id as SurfaceId; -use cosmic::iced::{self, Rectangle, Size, Subscription}; -use cosmic::widget; +use cosmic::{ + app::{Core, Task}, + iced::runtime::core::window::Id as SurfaceId, + iced::{ + self, Rectangle, Size, Subscription, + core::SmolStr, + event::{ + self, + wayland::{Event as WaylandEvent, OutputEvent, SessionLockEvent}, + }, + keyboard::{Event as KeyEvent, Key, Modifiers}, + }, + widget, +}; use cosmic_config::{ConfigSet, CosmicConfigEntry}; use cosmic_greeter_daemon::{BgSource, CosmicCompConfig, UserData}; -use std::collections::HashMap; -use std::sync::Arc; +use std::{collections::HashMap, sync::Arc}; use wayland_client::protocol::wl_output::WlOutput; pub const DEFAULT_MENU_ITEM_HEIGHT: f32 = 36.; @@ -59,7 +64,7 @@ pub enum Message { Prompt(String, bool, Option), SessionLockEvent(SessionLockEvent), Tick, - Tz(jiff::tz::TimeZone), + Tz(chrono_tz::Tz), } impl + Send + 'static> Common { @@ -199,48 +204,48 @@ impl + Send + 'static> Common { self.update_wallpapers(user_data); // From cosmic-applet-input-sources - if let Some(keyboard_layouts) = &self.layouts_opt - && let Some(xkb_config) = &user_data.xkb_config_opt - { - self.active_layouts.clear(); - let config_layouts = xkb_config.layout.split_terminator(','); - let config_variants = xkb_config - .variant - .split_terminator(',') - .chain(std::iter::repeat("")); - 'outer: for (config_layout, config_variant) in config_layouts.zip(config_variants) { - for xkb_layout in keyboard_layouts.layouts() { - if config_layout != xkb_layout.name() { - continue; - } - if config_variant.is_empty() { - let active_layout = ActiveLayout { - description: xkb_layout.description().to_owned(), - layout: config_layout.to_owned(), - variant: config_variant.to_owned(), - }; - self.active_layouts.push(active_layout); - continue 'outer; - } - - let Some(xkb_variants) = xkb_layout.variants() else { - continue; - }; - for xkb_variant in xkb_variants { - if config_variant != xkb_variant.name() { + if let Some(keyboard_layouts) = &self.layouts_opt { + if let Some(xkb_config) = &user_data.xkb_config_opt { + self.active_layouts.clear(); + let config_layouts = xkb_config.layout.split_terminator(','); + let config_variants = xkb_config + .variant + .split_terminator(',') + .chain(std::iter::repeat("")); + 'outer: for (config_layout, config_variant) in config_layouts.zip(config_variants) { + for xkb_layout in keyboard_layouts.layouts() { + if config_layout != xkb_layout.name() { continue; } - let active_layout = ActiveLayout { - description: xkb_variant.description().to_owned(), - layout: config_layout.to_owned(), - variant: config_variant.to_owned(), + if config_variant.is_empty() { + let active_layout = ActiveLayout { + description: xkb_layout.description().to_owned(), + layout: config_layout.to_owned(), + variant: config_variant.to_owned(), + }; + self.active_layouts.push(active_layout); + continue 'outer; + } + + let Some(xkb_variants) = xkb_layout.variants() else { + continue; }; - self.active_layouts.push(active_layout); - continue 'outer; + for xkb_variant in xkb_variants { + if config_variant != xkb_variant.name() { + continue; + } + let active_layout = ActiveLayout { + description: xkb_variant.description().to_owned(), + layout: config_layout.to_owned(), + variant: config_variant.to_owned(), + }; + self.active_layouts.push(active_layout); + continue 'outer; + } } } + tracing::info!("{:?}", self.active_layouts); } - tracing::info!("{:?}", self.active_layouts); } } @@ -266,19 +271,20 @@ impl + Send + 'static> Common { && !modifiers.alt() && matches!(key, Key::Character(_)) { - if let Some(text) = text - && let Some((_, _, Some(value))) = &mut self.prompt_opt - { - value.push_str(&text); + if let Some(text) = text { + if let Some((_, _, Some(value))) = &mut self.prompt_opt { + value.push_str(&text); + } } - if let Some(surface_id) = self.active_surface_id_opt - && let Some(text_input_id) = self + if let Some(surface_id) = self.active_surface_id_opt { + if let Some(text_input_id) = self .surface_names .get(&surface_id) .and_then(|id| self.text_input_ids.get(id)) - { - return widget::text_input::focus(text_input_id.clone()); + { + return widget::text_input::focus(text_input_id.clone()); + } } } } @@ -300,15 +306,17 @@ impl + Send + 'static> Common { Message::Prompt(prompt, secret, value_opt) => { let prompt_was_none = self.prompt_opt.is_none(); self.prompt_opt = Some((prompt, secret, value_opt)); - if prompt_was_none - && let Some(surface_id) = self.active_surface_id_opt - && let Some(text_input_id) = self - .surface_names - .get(&surface_id) - .and_then(|id| self.text_input_ids.get(id)) - { - tracing::info!("focus surface found id {:?}", text_input_id); - return widget::text_input::focus(text_input_id.clone()); + if prompt_was_none { + if let Some(surface_id) = self.active_surface_id_opt { + if let Some(text_input_id) = self + .surface_names + .get(&surface_id) + .and_then(|id| self.text_input_ids.get(id)) + { + tracing::info!("focus surface found id {:?}", text_input_id); + return widget::text_input::focus(text_input_id.clone()); + } + } } } Message::SessionLockEvent(lock_event) => { diff --git a/src/greeter.rs b/src/greeter.rs index 51fe4b2..616ef33 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -8,51 +8,63 @@ use cctk::sctk::reexports::calloop; use color_eyre::eyre::WrapErr; use cosmic::app::{Core, Settings, Task}; 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::event::listen_with; -use cosmic::iced::event::wayland::OutputEvent; -use cosmic::iced::futures::SinkExt; -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, -}; -use cosmic::iced::platform_specific::shell::wayland::commands::subsurface::reposition_subsurface; -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, -}; +use cosmic::iced::{Point, Size, window}; use cosmic::widget::{id_container, text}; -use cosmic::{Element, executor, surface, theme, widget}; +use cosmic::{ + Element, + cosmic_config::{self, ConfigSet}, + executor, + iced::runtime::core::window::Id as SurfaceId, + iced::{ + self, Alignment, Background, Border, Length, Subscription, + event::wayland::OutputEvent, + futures::SinkExt, + platform_specific::{ + runtime::wayland::layer_surface::{IcedMargin, IcedOutput, SctkLayerSurfaceSettings}, + shell::wayland::commands::layer_surface::{ + Anchor, KeyboardInteractivity, Layer, destroy_layer_surface, get_layer_surface, + }, + shell::wayland::commands::subsurface::reposition_subsurface, + }, + }, + theme, widget, +}; +use cosmic::{ + cosmic_theme::{self, CosmicPalette}, + desktop::fde::{DesktopEntry, get_languages_from_env}, + surface, +}; use cosmic_greeter_config::Config as CosmicGreeterConfig; use cosmic_greeter_daemon::{UserData, UserFilter}; use cosmic_randr_shell::{KdlParseWithError, List}; use cosmic_settings_a11y_manager_subscription::{AccessibilityEvent, AccessibilityRequest}; use greetd_ipc::Request; use kdl::KdlDocument; -use std::collections::{HashMap, hash_map}; -use std::error::Error; -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::sync::LazyLock; +use std::{ + collections::{HashMap, hash_map}, + error::Error, + fs, io, + num::NonZeroU32, + process, + sync::Arc, + time::{Duration, Instant}, +}; use tokio::process::Child; use tokio::time; use tracing::metadata::LevelFilter; use tracing::warn; -use tracing_subscriber::prelude::*; -use tracing_subscriber::{EnvFilter, fmt}; -use wayland_client::Proxy; -use wayland_client::protocol::wl_output::WlOutput; +use tracing_subscriber::{EnvFilter, fmt, prelude::*}; +use wayland_client::{Proxy, protocol::wl_output::WlOutput}; use zbus::{Connection, proxy}; -use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}; -use crate::fl; +use crate::{ + common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}, + fl, +}; static USERNAME_ID: LazyLock = LazyLock::new(|| iced::id::Id::new("username-id")); @@ -470,7 +482,7 @@ impl App { .discard() } - fn menu(&self, id: SurfaceId) -> Element<'_, Message> { + fn menu(&self, id: SurfaceId) -> Element { let window_width = self .common .window_size @@ -1872,12 +1884,12 @@ impl cosmic::Application for App { } // Not used for layer surface window - fn view(&self) -> Element<'_, Self::Message> { + fn view(&self) -> Element { unimplemented!() } /// Creates a view after each update. - fn view_window(&self, surface_id: SurfaceId) -> Element<'_, Self::Message> { + fn view_window(&self, surface_id: SurfaceId) -> Element { let img = self .common .surface_images diff --git a/src/localize.rs b/src/localize.rs index 8998576..30eedec 100644 --- a/src/localize.rs +++ b/src/localize.rs @@ -1,7 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-only -use i18n_embed::fluent::{FluentLanguageLoader, fluent_language_loader}; -use i18n_embed::{DefaultLocalizer, LanguageLoader, Localizer}; +use i18n_embed::{ + DefaultLocalizer, LanguageLoader, Localizer, + fluent::{FluentLanguageLoader, fluent_language_loader}, +}; use rust_embed::RustEmbed; use std::sync::OnceLock; diff --git a/src/locker.rs b/src/locker.rs index 9098b55..eed5f01 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -4,37 +4,45 @@ 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::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, -}; -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::iced::{Point, Rectangle, Size}; +use cosmic::surface; +use cosmic::{ + Element, executor, + iced::runtime::core::window::Id as SurfaceId, + iced::{ + self, Alignment, Background, Border, Length, Subscription, + event::wayland::{OutputEvent, SessionLockEvent}, + futures::{self, SinkExt}, + platform_specific::shell::wayland::commands::session_lock::{ + destroy_lock_surface, get_lock_surface, lock, unlock, + }, + }, + theme, widget, }; -use cosmic::{Element, executor, surface, theme, widget}; use cosmic_config::CosmicConfigEntry; use cosmic_greeter_daemon::{TimeAppletConfig, UserData}; -use std::any::TypeId; -use std::ffi::{CStr, CString}; -use std::os::fd::OwnedFd; -use std::path::PathBuf; -use std::sync::Arc; use std::time::Duration; -use std::{env, fs, process}; -use tokio::sync::mpsc; -use tokio::task; +use std::{ + any::TypeId, + env, + ffi::{CStr, CString}, + fs, + os::fd::OwnedFd, + path::PathBuf, + process, + sync::Arc, +}; +use tokio::{sync::mpsc, task}; use tracing::level_filters::LevelFilter; use tracing::warn; -use tracing_subscriber::prelude::*; -use tracing_subscriber::{EnvFilter, fmt}; -use wayland_client::Proxy; -use wayland_client::protocol::wl_output::WlOutput; +use tracing_subscriber::{EnvFilter, fmt, prelude::*}; +use wayland_client::{Proxy, protocol::wl_output::WlOutput}; -use crate::common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}; -use crate::fl; +use crate::{ + common::{self, Common, DEFAULT_MENU_ITEM_HEIGHT}, + fl, +}; fn lockfile_opt() -> Option { let runtime_dir = dirs::runtime_dir()?; @@ -317,7 +325,7 @@ pub struct App { } impl App { - fn menu(&self, surface_id: SurfaceId) -> Element<'_, Message> { + fn menu(&self, surface_id: SurfaceId) -> Element { let window_width = self .common .window_size @@ -1124,10 +1132,10 @@ impl cosmic::Application for App { } self.spinner_rotation = 0.0; // Try to create lockfile when locking - if let Some(ref lockfile) = self.flags.lockfile_opt - && let Err(err) = fs::File::create(lockfile) - { - tracing::warn!("failed to create lockfile {:?}: {}", lockfile, err); + if let Some(ref lockfile) = self.flags.lockfile_opt { + if let Err(err) = fs::File::create(lockfile) { + tracing::warn!("failed to create lockfile {:?}: {}", lockfile, err); + } } // Tell compositor to lock return lock(); @@ -1157,10 +1165,10 @@ impl cosmic::Application for App { } self.spinner_rotation = 0.0; // Try to delete lockfile when unlocking - if let Some(ref lockfile) = self.flags.lockfile_opt - && let Err(err) = fs::remove_file(lockfile) - { - tracing::warn!("failed to remove lockfile {:?}: {}", lockfile, err); + if let Some(ref lockfile) = self.flags.lockfile_opt { + if let Err(err) = fs::remove_file(lockfile) { + tracing::warn!("failed to remove lockfile {:?}: {}", lockfile, err); + } } // Destroy lock surfaces @@ -1196,12 +1204,12 @@ impl cosmic::Application for App { } // Not used for layer surface window - fn view(&self) -> Element<'_, Self::Message> { + fn view(&self) -> Element { unimplemented!() } /// Creates a view after each update. - fn view_window(&self, surface_id: SurfaceId) -> Element<'_, Self::Message> { + fn view_window(&self, surface_id: SurfaceId) -> Element { let img = self .common .surface_images diff --git a/src/logind.rs b/src/logind.rs index c5561f3..822140c 100644 --- a/src/logind.rs +++ b/src/logind.rs @@ -1,17 +1,15 @@ -use cosmic::iced::Subscription; -use cosmic::iced::futures::channel::mpsc; -use cosmic::iced::futures::{SinkExt, StreamExt}; -use logind_zbus::manager::{InhibitType, ManagerProxy}; -use logind_zbus::session::SessionProxy; -use std::any::TypeId; -use std::error::Error; -use std::os::fd::OwnedFd; -use std::sync::Arc; -use std::time::Duration; +use cosmic::iced::{ + Subscription, + futures::{SinkExt, StreamExt, channel::mpsc}, +}; +use logind_zbus::{ + manager::{InhibitType, ManagerProxy}, + session::SessionProxy, +}; +use std::{any::TypeId, error::Error, os::fd::OwnedFd, sync::Arc, time::Duration}; use zbus::Connection; -use crate::common; -use crate::locker::Message; +use crate::{common, locker::Message}; pub async fn power_off() -> zbus::Result<()> { let connection = Connection::system().await?; diff --git a/src/networkmanager.rs b/src/networkmanager.rs index 0f4ee9c..b8b04c0 100644 --- a/src/networkmanager.rs +++ b/src/networkmanager.rs @@ -1,11 +1,9 @@ -use cosmic::iced::Subscription; -use cosmic::iced::futures::channel::mpsc; -use cosmic::iced::futures::{SinkExt, StreamExt}; -use cosmic_dbus_networkmanager::device::SpecificDevice; -use cosmic_dbus_networkmanager::nm::NetworkManager; -use std::any::TypeId; -use std::cmp; -use std::time::Duration; +use cosmic::iced::{ + Subscription, + futures::{SinkExt, StreamExt, channel::mpsc}, +}; +use cosmic_dbus_networkmanager::{device::SpecificDevice, nm::NetworkManager}; +use std::{any::TypeId, cmp, time::Duration}; use zbus::{Connection, Result}; #[derive(Clone, Copy, Debug)] @@ -79,16 +77,16 @@ pub async fn handler(msg_tx: &mut mpsc::Sender>) -> Result< }; } Some(SpecificDevice::Wireless(wireless)) => { - if let Ok(ap) = wireless.active_access_point().await - && let Ok(strength) = ap.strength().await - { - // Wireless always overrides with the highest strength - icon = match icon { - NetworkIcon::Wireless(other_strength) => { - NetworkIcon::Wireless(cmp::max(strength, other_strength)) - } - _ => NetworkIcon::Wireless(strength), - }; + if let Ok(ap) = wireless.active_access_point().await { + if let Ok(strength) = ap.strength().await { + // Wireless always overrides with the highest strength + icon = match icon { + NetworkIcon::Wireless(other_strength) => { + NetworkIcon::Wireless(cmp::max(strength, other_strength)) + } + _ => NetworkIcon::Wireless(strength), + }; + } } } _ => {} diff --git a/src/time.rs b/src/time.rs index bc2c22d..b6c109d 100644 --- a/src/time.rs +++ b/src/time.rs @@ -1,15 +1,19 @@ use anyhow::bail; use async_fn_stream::StreamEmitter; -use cosmic::widget::{column, text}; -use cosmic::{Element, Task, style}; +use chrono::{Datelike, Timelike}; +use cosmic::{ + Element, Task, style, + widget::{column, text}, +}; use futures_util::StreamExt; -use icu::datetime::input::DateTime; -use icu::datetime::options::TimePrecision; -use icu::datetime::{DateTimeFormatter, DateTimeFormatterPreferences, fieldsets}; -use icu::locale::Locale; -use icu::locale::preferences::extensions::unicode::keywords::HourCycle; -use jiff::tz::TimeZone; -use jiff_icu::ConvertFrom; +use icu::{ + datetime::{ + DateTimeFormatter, DateTimeFormatterPreferences, fieldsets, + input::{Date, DateTime, Time as IcuTime}, + options::TimePrecision, + }, + locale::{Locale, preferences::extensions::unicode::keywords::HourCycle}, +}; use std::time::Duration; use timedate_zbus::TimeDateProxy; use tokio::time; @@ -17,8 +21,8 @@ use tokio::time; #[derive(Debug, Clone)] pub struct Time { locale: Locale, - timezone: Option, - now: jiff::Zoned, + timezone: Option, + now: chrono::DateTime, } impl Time { @@ -37,10 +41,10 @@ impl Time { } // Try language-only fallback (e.g., "en" from "en-US") - if let Some(lang) = cleaned_locale.split('-').next() - && let Ok(locale) = Locale::try_from_str(lang) - { - return locale; + if let Some(lang) = cleaned_locale.split('-').next() { + if let Ok(locale) = Locale::try_from_str(lang) { + return locale; + } } } } @@ -49,7 +53,7 @@ impl Time { } let locale = get_local(); - let now = jiff::Zoned::now(); + let now = chrono::Local::now().fixed_offset(); Self { locale, @@ -58,7 +62,7 @@ impl Time { } } - pub fn set_tz(&mut self, tz: TimeZone) { + pub fn set_tz(&mut self, tz: chrono_tz::Tz) { self.timezone = Some(tz); self.tick(); } @@ -66,19 +70,30 @@ impl Time { pub fn tick(&mut self) { self.now = self .timezone - .as_ref() - .map(|tz| jiff::Timestamp::now().to_zoned(tz.clone())) - .unwrap_or_else(jiff::Zoned::now); + .map(|tz| chrono::Local::now().with_timezone(&tz).fixed_offset()) + .unwrap_or_else(|| chrono::Local::now().into()); } - pub fn format_date(&self) -> String { + pub fn format_date(&self, date: &D) -> String { let prefs = DateTimeFormatterPreferences::from(&self.locale); let dtf = DateTimeFormatter::try_new(prefs, fieldsets::MDE::long()).unwrap(); - dtf.format(&DateTime::convert_from(self.now.datetime())) - .to_string() + + let datetime = DateTime { + date: Date::try_new_gregorian(date.year(), date.month() as u8, date.day() as u8) + .unwrap(), + time: IcuTime::try_new( + self.now.hour() as u8, + self.now.minute() as u8, + self.now.second() as u8, + 0, + ) + .unwrap(), + }; + + dtf.format(&datetime).to_string() } - pub fn format_time(&self, military_time: bool) -> String { + pub fn format_time(&self, date: &D, military_time: bool) -> String { let mut prefs = DateTimeFormatterPreferences::from(&self.locale); prefs.hour_cycle = Some(if military_time { HourCycle::H23 @@ -90,18 +105,30 @@ impl Time { fieldsets::T::medium().with_time_precision(TimePrecision::Minute), ) .unwrap(); - dtf.format(&DateTime::convert_from(self.now.datetime())) - .to_string() + + let datetime = DateTime { + date: Date::try_new_gregorian(date.year(), date.month() as u8, date.day() as u8) + .unwrap(), + time: IcuTime::try_new( + self.now.hour() as u8, + self.now.minute() as u8, + self.now.second() as u8, + 0, + ) + .unwrap(), + }; + + dtf.format(&datetime).to_string() } - pub fn date_time_widget<'a, M: 'a>(&self, military_time: bool) -> Element<'a, M> { + pub fn date_time_widget<'a, M: 'a>(&self, military_time: bool) -> cosmic::Element<'a, M> { Element::from( column::with_capacity(2) .padding(16.) .spacing(12.0) - .push(text::title2(self.format_date()).class(style::Text::Accent)) + .push(text::title2(self.format_date(&self.now)).class(style::Text::Accent)) .push( - text(self.format_time(military_time)) + text(self.format_time(&self.now, military_time)) .size(if military_time { 112. } else { 75. }) .class(style::Text::Accent), ), @@ -109,7 +136,7 @@ impl Time { } } -pub fn tz_updates() -> Task { +pub fn tz_updates() -> Task { Task::stream(async_fn_stream::fn_stream(|emitter| async move { loop { if let Err(err) = tz_stream(&emitter).await { @@ -132,7 +159,7 @@ pub fn tick() -> Task<()> { // Calculate a delta if we're ticking per minute to keep ticks stable // Based on i3status-rust - let current = jiff::Zoned::now().second() as u64 % 60; + let current = chrono::Local::now().second() as u64 % 60; if current != 0 { timer.reset_after(time::Duration::from_secs(60 - current)); } @@ -140,7 +167,7 @@ pub fn tick() -> Task<()> { })) } -pub async fn tz_stream(emitter: &StreamEmitter) -> anyhow::Result<()> { +pub async fn tz_stream(emitter: &StreamEmitter) -> anyhow::Result<()> { let Ok(conn) = zbus::Connection::system().await else { bail!("No zbus system connection."); }; @@ -157,7 +184,7 @@ pub async fn tz_stream(emitter: &StreamEmitter) -> anyhow::Result<()> let Ok(tz) = property.get().await else { bail!("Failed to get property"); }; - let Ok(tz) = TimeZone::get(&tz) else { + let Ok(tz) = tz.parse::() else { bail!("Failed to parse timezone."); }; emitter.emit(tz).await; diff --git a/src/upower.rs b/src/upower.rs index 77bb82f..fd950a0 100644 --- a/src/upower.rs +++ b/src/upower.rs @@ -1,9 +1,10 @@ -use cosmic::iced::futures::channel::mpsc; -use cosmic::iced::futures::{SinkExt, StreamExt}; -use cosmic::iced::{Subscription, stream}; +use cosmic::iced::{ + Subscription, + futures::{SinkExt, StreamExt, channel::mpsc}, + stream, +}; use futures_util::select; -use std::any::TypeId; -use std::time::Duration; +use std::{any::TypeId, time::Duration}; use upower_dbus::{BatteryState, BatteryType, UPowerProxy}; use zbus::{Connection, Result}; @@ -51,26 +52,26 @@ pub async fn handler(msg_tx: &mut mpsc::Sender>) -> Re loop { let mut info_opt = None; - if let Ok(mut percent) = dev.percentage().await - && let Ok(state) = dev.state().await - { - let threshold_enabled = dev.charge_threshold_enabled().await.unwrap_or_default(); - let mut capacity = dev.capacity().await.unwrap_or(100.); - if capacity <= 1. { - capacity = 100.; - } + if let Ok(mut percent) = dev.percentage().await { + if let Ok(state) = dev.state().await { + let threshold_enabled = dev.charge_threshold_enabled().await.unwrap_or_default(); + let mut capacity = dev.capacity().await.unwrap_or(100.); + if capacity <= 1. { + capacity = 100.; + } - // compensate for declining battery capacity - percent = percent * 100. / capacity; - if matches!(state, BatteryState::FullyCharged) || percent >= 100. { - percent = 100.; - } + // compensate for declining battery capacity + percent = percent * 100. / capacity; + if matches!(state, BatteryState::FullyCharged) || percent >= 100. { + percent = 100.; + } - info_opt = Some(( - percent, - state == BatteryState::Discharging, - threshold_enabled, - )); + info_opt = Some(( + percent, + state == BatteryState::Discharging, + threshold_enabled, + )); + } } msg_tx.send(info_opt).await.unwrap(); diff --git a/src/wayland/mod.rs b/src/wayland/mod.rs index cfb6e9a..20acaf3 100644 --- a/src/wayland/mod.rs +++ b/src/wayland/mod.rs @@ -2,8 +2,11 @@ // SPDX-License-Identifier: GPL-3.0-only use cctk::sctk::reexports::calloop; -use cosmic::iced::futures::{self, SinkExt}; -use cosmic::iced::{self, Subscription, stream}; +use cosmic::iced::{ + self, Subscription, + futures::{self, SinkExt}, + stream, +}; use cosmic_settings_a11y_manager_subscription::{ self as thread, AccessibilityEvent, AccessibilityRequest, };