From 41e90bde337d03b269ab67142382d24faeb96255 Mon Sep 17 00:00:00 2001 From: Ashley Wulber <48420062+wash2@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:33:21 -0500 Subject: [PATCH] fix(panel): update defaults with shrinkable applets appearance fixes --- Cargo.lock | 267 ++++++++---------- .../src/pages/desktop/appearance/mod.rs | 55 ++-- cosmic-settings/src/pages/desktop/dock/mod.rs | 6 + .../src/pages/desktop/panel/inner.rs | 110 +++++++- .../src/pages/desktop/panel/mod.rs | 6 + 5 files changed, 265 insertions(+), 179 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04da7a8..abe6ad0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,7 +327,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -568,7 +568,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -603,7 +603,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -679,7 +679,7 @@ dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -759,7 +759,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -913,7 +913,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -1005,7 +1005,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -1089,9 +1089,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.44" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ "find-msvc-tools", "jobserver", @@ -1218,7 +1218,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -1515,7 +1515,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-comp#6e4164643ea81d3a2c3b40ffc441950722a61bfb" +source = "git+https://github.com/pop-os/cosmic-comp#25763439dbb0463e134ba1463121da49f7f9bbba" dependencies = [ "cosmic-config", "input", @@ -1527,12 +1527,12 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "atomicwrites", "cosmic-config-derive", "cosmic-settings-daemon", - "dirs 6.0.0", + "dirs", "futures-util", "iced_futures", "known-folders", @@ -1541,17 +1541,17 @@ dependencies = [ "serde", "tokio", "tracing", - "xdg 3.0.0", + "xdg", "zbus 5.12.0", ] [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -1577,15 +1577,15 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" -version = "0.3.0" -source = "git+https://github.com/pop-os/freedesktop-icons#8a05c322c482ff3c69cf34bacfee98907ac45307" +version = "0.4.0" +source = "git+https://github.com/pop-os/freedesktop-icons#689c60d428f46dc59316eafa22297e196afa4b15" dependencies = [ - "dirs 5.0.1", + "dirs", "ini_core", "memmap2 0.9.9", "thiserror 2.0.17", "tracing", - "xdg 2.5.2", + "xdg", ] [[package]] @@ -1600,18 +1600,18 @@ dependencies = [ [[package]] name = "cosmic-mime-apps" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-mime-apps#24ee9e9a743c570437875b9d2066bda0ef7dba98" +source = "git+https://github.com/pop-os/cosmic-mime-apps#1ccb8f635ce1ead1f40564c2a158e1d6c06d25fb" dependencies = [ "freedesktop-desktop-entry", "mime 0.3.17", - "quick-xml", - "xdg 2.5.2", + "quick-xml 0.38.3", + "xdg", ] [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#491e231f4c28158176a0dd0f8c48083ad9c42d8a" +source = "git+https://github.com/pop-os/cosmic-panel#231180bff8491f3628d4dd3e249173bd17c21d19" dependencies = [ "anyhow", "cosmic-config", @@ -1698,7 +1698,7 @@ dependencies = [ "cosmic-settings-upower-subscription", "cosmic-settings-wallpaper", "derive_setters", - "dirs 6.0.0", + "dirs", "eyre", "fontdb 0.23.0", "freedesktop-desktop-entry", @@ -1910,7 +1910,7 @@ version = "0.1.0" dependencies = [ "cosmic-bg-config", "cosmic-randr-shell", - "dirs 6.0.0", + "dirs", "eyre", "fast_image_resize", "futures-lite 2.6.1", @@ -1926,7 +1926,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.15.0" -source = "git+https://github.com/pop-os/cosmic-text.git#8a7bc790e5283f9aa569c29f8142a7a1b14e2b80" +source = "git+https://github.com/pop-os/cosmic-text.git#9339446cfa9b7f0110094a97764dccc09cfa98a2" dependencies = [ "bitflags 2.10.0", "fontdb 0.23.0", @@ -1949,12 +1949,12 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "almost", "cosmic-config", "csscolorparser", - "dirs 6.0.0", + "dirs", "palette", "ron", "serde", @@ -2110,7 +2110,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2124,7 +2124,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2135,7 +2135,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2146,7 +2146,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2194,7 +2194,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2204,7 +2204,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2216,7 +2216,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2227,7 +2227,7 @@ checksum = "ccfae181bab5ab6c5478b2ccb69e4c68a02f8c3ec72f6616bfec9dbc599d2ee0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2259,34 +2259,13 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", -] - [[package]] name = "dirs" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.4.6", - "windows-sys 0.48.0", + "dirs-sys", ] [[package]] @@ -2297,7 +2276,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.2", + "redox_users", "windows-sys 0.61.2", ] @@ -2327,7 +2306,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2452,7 +2431,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2472,7 +2451,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2556,9 +2535,9 @@ dependencies = [ [[package]] name = "exr" -version = "1.73.0" +version = "1.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" +checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" dependencies = [ "bit_field", "half", @@ -2630,7 +2609,7 @@ checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2761,9 +2740,9 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "font-types" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511e2c18a516c666d27867d2f9821f76e7d591f762e9fc41dd6cc5c90fe54b0b" +checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5" dependencies = [ "bytemuck", ] @@ -2823,7 +2802,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -2853,7 +2832,7 @@ dependencies = [ "memchr", "thiserror 2.0.17", "unicase", - "xdg 3.0.0", + "xdg", ] [[package]] @@ -2966,7 +2945,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -3376,7 +3355,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.108", + "syn 2.0.110", "unic-langid", ] @@ -3390,7 +3369,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -3420,7 +3399,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "dnd", "iced_accessibility", @@ -3438,7 +3417,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "accesskit", "accesskit_winit", @@ -3447,7 +3426,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "bitflags 2.10.0", "bytes", @@ -3472,7 +3451,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "futures", "iced_core", @@ -3498,7 +3477,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "bitflags 2.10.0", "bytemuck", @@ -3520,7 +3499,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3532,7 +3511,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -3548,7 +3527,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "bytemuck", "cosmic-text", @@ -3564,7 +3543,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "as-raw-xcb-connection", "bitflags 2.10.0", @@ -3595,7 +3574,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -3616,7 +3595,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -4234,7 +4213,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -4645,7 +4624,7 @@ checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#d2f7fdea6d24e70b54e017e89973b8a5a44b4e54" +source = "git+https://github.com/pop-os/libcosmic#2c93a4094fe331726ad0f7b80ae00a28f856543b" dependencies = [ "apply", "ashpd 0.12.0", @@ -5370,7 +5349,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -5443,7 +5422,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -5766,9 +5745,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orbclient" -version = "0.3.48" +version = "0.3.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +checksum = "247ad146e19b9437f8604c21f8652423595cf710ad108af40e77d3ae6e96b827" dependencies = [ "libredox", ] @@ -5804,7 +5783,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -5844,7 +5823,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -5943,7 +5922,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -5978,7 +5957,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6170,7 +6149,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6190,7 +6169,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "version_check", "yansi", ] @@ -6232,7 +6211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6310,10 +6289,19 @@ dependencies = [ ] [[package]] -name = "quote" -version = "1.0.41" +name = "quick-xml" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -6506,17 +6494,6 @@ dependencies = [ "bitflags 2.10.0", ] -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", -] - [[package]] name = "redox_users" version = "0.5.2" @@ -6545,7 +6522,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6709,7 +6686,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.108", + "syn 2.0.110", "walkdir", ] @@ -6848,9 +6825,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1317c3bf3e7df961da95b0a56a172a02abead31276215a0497241a7624b487ce" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" dependencies = [ "dyn-clone", "ref-cast", @@ -6944,7 +6921,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6969,7 +6946,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -6993,7 +6970,7 @@ dependencies = [ "indexmap 1.9.3", "indexmap 2.12.0", "schemars 0.9.0", - "schemars 1.0.5", + "schemars 1.1.0", "serde_core", "serde_json", "serde_with_macros", @@ -7009,7 +6986,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -7395,9 +7372,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -7412,7 +7389,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -7542,7 +7519,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -7553,7 +7530,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -7708,7 +7685,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -7826,7 +7803,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -8217,7 +8194,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "wasm-bindgen-shared", ] @@ -8366,7 +8343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" dependencies = [ "proc-macro2", - "quick-xml", + "quick-xml 0.37.5", "quote", ] @@ -8417,9 +8394,9 @@ dependencies = [ [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "009936b22a61d342859b5f0ea64681cbb35a358ab548e2a44a8cf0dac2d980b8" [[package]] name = "wgpu" @@ -8696,7 +8673,7 @@ checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -8707,7 +8684,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -8718,7 +8695,7 @@ checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -8729,7 +8706,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -9252,12 +9229,6 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" -[[package]] -name = "xdg" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" - [[package]] name = "xdg" version = "3.0.0" @@ -9277,7 +9248,7 @@ dependencies = [ [[package]] name = "xdg-shell-wrapper-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#491e231f4c28158176a0dd0f8c48083ad9c42d8a" +source = "git+https://github.com/pop-os/cosmic-panel#231180bff8491f3628d4dd3e249173bd17c21d19" dependencies = [ "serde", "wayland-protocols-wlr", @@ -9400,7 +9371,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "synstructure", ] @@ -9498,7 +9469,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "zbus_names 4.2.0", "zvariant 5.8.0", "zvariant_utils 3.2.1", @@ -9563,7 +9534,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -9583,7 +9554,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "synstructure", ] @@ -9624,7 +9595,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", ] [[package]] @@ -9702,7 +9673,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.110", "zvariant_utils 3.2.1", ] @@ -9726,6 +9697,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.108", + "syn 2.0.110", "winnow 0.7.13", ] diff --git a/cosmic-settings/src/pages/desktop/appearance/mod.rs b/cosmic-settings/src/pages/desktop/appearance/mod.rs index da9fa11..364aa28 100644 --- a/cosmic-settings/src/pages/desktop/appearance/mod.rs +++ b/cosmic-settings/src/pages/desktop/appearance/mod.rs @@ -278,6 +278,7 @@ impl Page { #[cfg(feature = "wayland")] tokio::task::spawn(async move { Self::update_panel_radii(r); + Self::update_dock_padding(r); }); } @@ -538,7 +539,7 @@ impl Page { // TODO: cache panel and dock configs so that they needn't be re-read #[cfg(feature = "wayland")] - fn update_panel_radii(roundness: Roundness) { + pub fn update_panel_radii(roundness: Roundness) { let panel_config_helper = CosmicPanelConfig::cosmic_config("Panel").ok(); let dock_config_helper = CosmicPanelConfig::cosmic_config("Dock").ok(); @@ -555,9 +556,11 @@ impl Page { if let Some(panel_config_helper) = panel_config_helper.as_ref() && let Some(panel_config) = panel_config.as_mut() { - let radii = if panel_config.anchor_gap || !panel_config.expand_to_edges { + let radii = if panel_config.anchor_gap { let cornder_radii: CornerRadii = roundness.into(); cornder_radii.radius_xl[0] as u32 + } else if matches!(roundness, Roundness::Round) && !panel_config.expand_to_edges { + 12 } else { 0 }; @@ -565,14 +568,16 @@ impl Page { if let Err(why) = panel_config.set_border_radius(panel_config_helper, radii) { tracing::error!(?why, "Error updating panel corner radii"); } - }; + } if let Some(dock_config_helper) = dock_config_helper.as_ref() && let Some(dock_config) = dock_config.as_mut() { - let radii = if dock_config.anchor_gap || !dock_config.expand_to_edges { + let radii = if dock_config.anchor_gap { let cornder_radii: CornerRadii = roundness.into(); cornder_radii.radius_xl[0] as u32 + } else if matches!(roundness, Roundness::Round) && !dock_config.expand_to_edges { + 12 } else { 0 }; @@ -580,11 +585,37 @@ impl Page { if let Err(why) = dock_config.set_border_radius(dock_config_helper, radii) { tracing::error!(?why, "Error updating dock corner radii"); } - }; + } } + pub fn update_dock_padding(roundness: Roundness) { + let dock_config_helper = CosmicPanelConfig::cosmic_config("Dock").ok(); + + let mut dock_config = dock_config_helper.as_ref().and_then(|config_helper| { + let panel_config = CosmicPanelConfig::get_entry(config_helper).ok()?; + (panel_config.name == "Dock").then_some(panel_config) + }); + + if let Some(dock_config_helper) = dock_config_helper.as_ref() { + if let Some(dock_config) = dock_config.as_mut() { + let padding = match roundness { + Roundness::Round => 4, + Roundness::SlightlyRound => 4, + Roundness::Square => 0, + }; + + if let Err(why) = dock_config.set_padding(dock_config_helper, padding) { + tracing::error!(?why, "Error updating dock padding"); + } + } + } + } + + // TODO: cache panel and dock configs so that they needn't be re-read #[cfg(feature = "wayland")] - fn update_panel_spacing(density: Density) { + pub fn update_panel_spacing(density: Density) { + let spacing: cosmic::cosmic_theme::Spacing = density.into(); + let space_none = spacing.space_none; let panel_config_helper = CosmicPanelConfig::cosmic_config("Panel").ok(); let dock_config_helper = CosmicPanelConfig::cosmic_config("Dock").ok(); let mut panel_config = panel_config_helper.as_ref().and_then(|config_helper| { @@ -599,11 +630,7 @@ impl Page { if let Some(panel_config_helper) = panel_config_helper.as_ref() && let Some(panel_config) = panel_config.as_mut() { - let spacing = match density { - Density::Compact => 0, - _ => 4, - }; - let update = panel_config.set_spacing(panel_config_helper, spacing); + let update = panel_config.set_spacing(panel_config_helper, space_none as u32); if let Err(err) = update { tracing::error!(?err, "Error updating panel spacing"); } @@ -612,11 +639,7 @@ impl Page { if let Some(dock_config_helper) = dock_config_helper.as_ref() && let Some(dock_config) = dock_config.as_mut() { - let spacing = match density { - Density::Compact => 0, - _ => 4, - }; - let update = dock_config.set_spacing(dock_config_helper, spacing); + let update = dock_config.set_spacing(dock_config_helper, space_none as u32); if let Err(err) = update { tracing::error!(?err, "Error updating dock spacing"); } diff --git a/cosmic-settings/src/pages/desktop/dock/mod.rs b/cosmic-settings/src/pages/desktop/dock/mod.rs index da86e1e..4df45dd 100644 --- a/cosmic-settings/src/pages/desktop/dock/mod.rs +++ b/cosmic-settings/src/pages/desktop/dock/mod.rs @@ -218,4 +218,10 @@ impl page::Page for Page { .title(fl!("dock")) .description(fl!("dock", "desc")) } + + fn on_enter(&mut self) -> Task { + self.inner.update_defaults(); + + Task::none() + } } diff --git a/cosmic-settings/src/pages/desktop/panel/inner.rs b/cosmic-settings/src/pages/desktop/panel/inner.rs index 6e5c346..10ac9fb 100644 --- a/cosmic-settings/src/pages/desktop/panel/inner.rs +++ b/cosmic-settings/src/pages/desktop/panel/inner.rs @@ -2,6 +2,7 @@ use cosmic::{ Element, Task, cctk::sctk::reexports::client::{Proxy, backend::ObjectId, protocol::wl_output::WlOutput}, cosmic_config::{self, CosmicConfigEntry}, + cosmic_theme::Density, iced::{Alignment, Length}, surface, theme, widget::{ @@ -19,6 +20,8 @@ use cosmic_settings_page::{self as page, Section}; use slab::Slab; use std::{collections::HashMap, time::Duration}; +use crate::pages::desktop::appearance::Roundness; + pub struct PageInner { pub(crate) config_helper: Option, pub(crate) panel_config: Option, @@ -437,6 +440,43 @@ pub enum Message { } impl PageInner { + pub(crate) fn update_defaults(&mut self) { + let theme = cosmic::theme::system_preference(); + let theme = theme.cosmic(); + + let Some(default) = self.system_default.as_mut() else { + return; + }; + + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + + if default.anchor_gap { + let radii = theme.corner_radii.radius_xl[0] as u32; + default.border_radius = radii; + } else if matches!(roundness, Roundness::Round) && !default.expand_to_edges { + default.border_radius = 12; + } else { + default.border_radius = 0; + } + + let spacing = theme.spacing; + let density = Density::from(spacing); + default.spacing = match density { + Density::Compact => 0, + Density::Standard => 0, + Density::Spacious => 4, + }; + + if self.panel_config.as_ref().is_some_and(|c| c.name == "Dock") { + default.padding = match roundness { + Roundness::Round => 4, + Roundness::SlightlyRound => 4, + Roundness::Square => 0, + }; + } + } + #[allow(clippy::too_many_lines)] pub fn update(&mut self, message: Message) -> Task { let Some(helper) = self.config_helper.as_ref() else { @@ -450,18 +490,24 @@ impl PageInner { .as_mut() .zip(self.config_helper.as_ref()) { - if default.anchor_gap || !default.expand_to_edges { - let radii = cosmic::theme::system_preference() - .cosmic() - .corner_radii - .radius_xl[0] as u32; + let theme = cosmic::theme::system_preference(); + let theme = theme.cosmic(); + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + + if default.anchor_gap { + let radii = theme.corner_radii.radius_xl[0] as u32; default.border_radius = radii; + } else if matches!(roundness, Roundness::Round) && !default.expand_to_edges { + default.border_radius = 12; } else { default.border_radius = 0; } + if let Err(err) = default.write_entry(config) { tracing::error!(?err, "Error resetting panel config."); } + self.system_default = Some(default.clone()); self.panel_config.clone_from(&self.system_default); } else { tracing::error!("Panel config default is missing."); @@ -473,6 +519,21 @@ impl PageInner { { tracing::error!(?err, "Error fully resetting the panel config."); } + // update the padding and spacing based on appearance + let theme = cosmic::theme::system_preference(); + let theme = theme.cosmic(); + + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + crate::pages::desktop::appearance::Page::update_panel_radii(roundness); + + let spacing = theme.spacing; + let density = Density::from(spacing); + crate::pages::desktop::appearance::Page::update_panel_spacing(density); + + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + crate::pages::desktop::appearance::Page::update_dock_padding(roundness); } _ => {} }; @@ -528,6 +589,20 @@ impl PageInner { } else { _ = panel_config.set_margin(helper, 0); } + let theme = cosmic::theme::system_preference(); + let theme = theme.cosmic(); + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + let new_radius; + if enabled { + let radii = theme.corner_radii.radius_xl[0] as u32; + new_radius = radii; + } else if matches!(roundness, Roundness::Round) && !panel_config.expand_to_edges { + new_radius = 12; + } else { + new_radius = 0; + } + _ = panel_config.set_border_radius(helper, new_radius).unwrap(); } Message::PanelSize(size) => { _ = panel_config.set_size(helper, size); @@ -545,6 +620,21 @@ impl PageInner { } Message::ExtendToEdge(enabled) => { _ = panel_config.set_expand_to_edges(helper, enabled); + + let theme = cosmic::theme::system_preference(); + let theme = theme.cosmic(); + let radius = theme.corner_radii; + let roundness: Roundness = radius.into(); + let new_radius; + if panel_config.anchor_gap { + let radii = theme.corner_radii.radius_xl[0] as u32; + new_radius = radii; + } else if matches!(roundness, Roundness::Round) && !enabled { + new_radius = 12; + } else { + new_radius = 0; + } + _ = panel_config.set_border_radius(helper, new_radius).unwrap(); } Message::OpacityRequest(opacity) => { panel_config.opacity = opacity; @@ -587,16 +677,6 @@ impl PageInner { } } - if panel_config.anchor_gap || !panel_config.expand_to_edges { - let radii = cosmic::theme::system_preference() - .cosmic() - .corner_radii - .radius_xl[0] as u32; - _ = panel_config.set_border_radius(helper, radii); - } else { - _ = panel_config.set_border_radius(helper, 0); - } - Task::none() } } diff --git a/cosmic-settings/src/pages/desktop/panel/mod.rs b/cosmic-settings/src/pages/desktop/panel/mod.rs index 63a95cf..ad5c087 100644 --- a/cosmic-settings/src/pages/desktop/panel/mod.rs +++ b/cosmic-settings/src/pages/desktop/panel/mod.rs @@ -139,4 +139,10 @@ impl page::Page for Page { .title(fl!("panel")) .description(fl!("panel", "desc")) } + + fn on_enter(&mut self) -> Task { + self.inner.update_defaults(); + + Task::none() + } }