From e87d101217fb9124e5f419b53ddd8f6d30e13446 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 27 Jul 2022 00:37:00 -0400 Subject: [PATCH] feat: config changes --- Cargo.lock | 166 +++++++----------- .../cosmic-app-list/src/apps_container/mod.rs | 16 +- applets/cosmic-app-list/src/dock_list/mod.rs | 16 +- .../cosmic-app-list/src/dock_popover/mod.rs | 3 +- applets/cosmic-app-list/src/main.rs | 2 +- applets/cosmic-app-list/src/wayland.rs | 12 +- .../cosmic-applet-workspaces/src/wayland.rs | 20 +-- .../src/window/mod.rs | 3 +- .../src/workspace_list/imp.rs | 1 - .../src/workspace_list/mod.rs | 12 +- .../src/apps_window/mod.rs | 13 +- libcosmic-applet/src/button.rs | 24 ++- 12 files changed, 129 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a76e53e0..69a7bb40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,14 +19,13 @@ checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "async-broadcast" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bbd92a9bd0e9c1298118ecf8a2f825e86b12c3ec9e411573e34aaf3a0c03cdd" +checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" dependencies = [ - "easy-parallel", "event-listener", "futures-core", - "parking_lot 0.11.2", + "parking_lot", ] [[package]] @@ -190,7 +189,7 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "cairo-rs" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "bitflags", "cairo-sys-rs", @@ -203,7 +202,7 @@ dependencies = [ [[package]] name = "cairo-sys-rs" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib-sys 0.16.0", "libc", @@ -265,9 +264,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.2" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" dependencies = [ "cache-padded", ] @@ -483,10 +482,11 @@ dependencies = [ [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#f600645ab1d3ca052898ea3c89caf097c32dba4c" +source = "git+https://github.com/pop-os/cosmic-panel#f3947a6a3bb014782e888b5aeaebd93ee746fdcd" dependencies = [ "anyhow", "gtk4", + "regex", "ron", "serde", "slog", @@ -560,7 +560,7 @@ dependencies = [ "cfg-if", "hashbrown", "lock_api", - "parking_lot_core 0.9.3", + "parking_lot_core", ] [[package]] @@ -658,12 +658,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" -[[package]] -name = "easy-parallel" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946" - [[package]] name = "either" version = "1.7.0" @@ -706,15 +700,15 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -930,7 +924,7 @@ dependencies = [ [[package]] name = "gdk-pixbuf" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "bitflags", "gdk-pixbuf-sys", @@ -942,7 +936,7 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "gio-sys 0.16.0", "glib-sys 0.16.0", @@ -954,7 +948,7 @@ dependencies = [ [[package]] name = "gdk4" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "bitflags", "cairo-rs", @@ -969,7 +963,7 @@ dependencies = [ [[package]] name = "gdk4-sys" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -985,7 +979,7 @@ dependencies = [ [[package]] name = "gdk4-x11" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "gdk4", "gdk4-x11-sys", @@ -998,7 +992,7 @@ dependencies = [ [[package]] name = "gdk4-x11-sys" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "gdk4-sys", "glib-sys 0.16.0", @@ -1069,7 +1063,7 @@ dependencies = [ [[package]] name = "gio" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "bitflags", "futures-channel", @@ -1099,7 +1093,7 @@ dependencies = [ [[package]] name = "gio-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib-sys 0.16.0", "gobject-sys 0.16.0", @@ -1131,7 +1125,7 @@ dependencies = [ [[package]] name = "glib" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "bitflags", "futures-channel", @@ -1151,7 +1145,7 @@ dependencies = [ [[package]] name = "glib-build-tools" version = "0.1.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" [[package]] name = "glib-macros" @@ -1171,7 +1165,7 @@ dependencies = [ [[package]] name = "glib-macros" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "anyhow", "heck", @@ -1195,7 +1189,7 @@ dependencies = [ [[package]] name = "glib-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "libc", "system-deps", @@ -1215,7 +1209,7 @@ dependencies = [ [[package]] name = "gobject-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib-sys 0.16.0", "libc", @@ -1225,7 +1219,7 @@ dependencies = [ [[package]] name = "graphene-rs" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib 0.16.0", "graphene-sys", @@ -1235,7 +1229,7 @@ dependencies = [ [[package]] name = "graphene-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib-sys 0.16.0", "libc", @@ -1246,7 +1240,7 @@ dependencies = [ [[package]] name = "gsk4" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "bitflags", "cairo-rs", @@ -1261,7 +1255,7 @@ dependencies = [ [[package]] name = "gsk4-sys" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -1276,7 +1270,7 @@ dependencies = [ [[package]] name = "gtk4" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "bitflags", "cairo-rs", @@ -1298,7 +1292,7 @@ dependencies = [ [[package]] name = "gtk4-macros" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "anyhow", "proc-macro-crate", @@ -1312,7 +1306,7 @@ dependencies = [ [[package]] name = "gtk4-sys" version = "0.5.0" -source = "git+https://github.com/gtk-rs/gtk4-rs#f6058edebb9a4ea47750096d3da07d04092ff89a" +source = "git+https://github.com/gtk-rs/gtk4-rs#4e8b6ca611e9a2d23e096eb8f7048fd9afc8c777" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1391,7 +1385,7 @@ dependencies = [ "lazy_static", "locale_config", "log", - "parking_lot 0.12.1", + "parking_lot", "rust-embed", "thiserror", "unic-langid", @@ -1484,9 +1478,9 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -1840,9 +1834,10 @@ dependencies = [ [[package]] name = "pango" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "bitflags", + "gio 0.16.0", "glib 0.16.0", "libc", "once_cell", @@ -1852,7 +1847,7 @@ dependencies = [ [[package]] name = "pango-sys" version = "0.16.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#60d6604e1268c41586a8c1d8b25f28df29894118" +source = "git+https://github.com/gtk-rs/gtk-rs-core#238cb8450b1d3a9a18d64ffd6d13d5eea35c2b2d" dependencies = [ "glib-sys 0.16.0", "gobject-sys 0.16.0", @@ -1866,17 +1861,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.5", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -1884,21 +1868,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.3", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -2026,9 +1996,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" dependencies = [ "unicode-ident", ] @@ -2102,9 +2072,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -2140,7 +2110,7 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "relm4" version = "0.5.0-beta.1" -source = "git+https://github.com/relm4/relm4?branch=next#4da75941636af096d4c8a945c1e8ac8164bddb5a" +source = "git+https://github.com/relm4/relm4?branch=next#a7d2432997f68ac4682e0c9f2ed58ab2c2b8cd1a" dependencies = [ "async-broadcast", "async-oneshot", @@ -2157,7 +2127,7 @@ dependencies = [ [[package]] name = "relm4-macros" version = "0.5.0-beta.1" -source = "git+https://github.com/relm4/relm4?branch=next#4da75941636af096d4c8a945c1e8ac8164bddb5a" +source = "git+https://github.com/relm4/relm4?branch=next#a7d2432997f68ac4682e0c9f2ed58ab2c2b8cd1a" dependencies = [ "proc-macro2", "quote", @@ -2526,9 +2496,9 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "tokio" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e" +checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" dependencies = [ "autocfg", "bytes", @@ -2537,7 +2507,7 @@ dependencies = [ "mio", "num_cpus", "once_cell", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -2723,9 +2693,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2733,13 +2703,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -2748,9 +2718,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2758,9 +2728,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -2771,9 +2741,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "wayland-backend" @@ -3003,7 +2973,7 @@ dependencies = [ [[package]] name = "xdg-shell-wrapper-config" version = "0.1.0" -source = "git+https://github.com/pop-os/xdg-shell-wrapper#4ccbb93d4711d4bcbd8d2dd2173e8f60fcb83246" +source = "git+https://github.com/pop-os/xdg-shell-wrapper#17681887315f260e25f699d5ed538aa4e564d935" dependencies = [ "serde", "wayland-protocols 0.29.4", @@ -3070,9 +3040,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45dfcdcf87b71dad505d30cc27b1b7b88a64b6d1c435648f48f9dbc1fdc4b7e1" +checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" dependencies = [ "serde", "static_assertions", @@ -3081,9 +3051,9 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.4.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2c71467724d4a77f0a1f0339dab10ca5d63f6a82411289cdcdfbfd47d2e407" +checksum = "1bd68e4e6432ef19df47d7e90e2e72b5e7e3d778e0ae3baddf12b951265cc758" dependencies = [ "byteorder", "enumflags2", @@ -3095,9 +3065,9 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "3.4.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c47f3630ce926a03abf21f5a8db90c60c81ed71599b5c86ad1a54fd3c7564c5" +checksum = "08e977eaa3af652f63d479ce50d924254ad76722a6289ec1a1eac3231ca30430" dependencies = [ "proc-macro-crate", "proc-macro2", diff --git a/applets/cosmic-app-list/src/apps_container/mod.rs b/applets/cosmic-app-list/src/apps_container/mod.rs index 64625077..3b39f76c 100644 --- a/applets/cosmic-app-list/src/apps_container/mod.rs +++ b/applets/cosmic-app-list/src/apps_container/mod.rs @@ -29,9 +29,7 @@ impl AppsContainer { // ..add_css_class("dock_container"); }; - let config = CosmicPanelConfig::load_from_env().unwrap_or_default(); - - let saved_app_list_view = DockList::new(DockListType::Saved, config.clone()); + let saved_app_list_view = DockList::new(DockListType::Saved); self_.append(&saved_app_list_view); let separator_container = cascade! { @@ -49,21 +47,15 @@ impl AppsContainer { ..add_css_class("dock_separator"); }; separator_container.append(&separator); - let active_app_list_view = DockList::new(DockListType::Active, config.clone()); + let active_app_list_view = DockList::new(DockListType::Active); self_.append(&active_app_list_view); - // self_.connect_orientation_notify(glib::clone!(@weak separator => move |c| { - // dbg!(c.orientation()); - // separator.set_orientation(match c.orientation() { - // Orientation::Horizontal => Orientation::Vertical, - // _ => Orientation::Horizontal, - // }); - // })); imp.saved_list.set(saved_app_list_view).unwrap(); imp.active_list.set(active_app_list_view).unwrap(); // Setup self_.setup_callbacks(); - self_.set_position(config.anchor); + let anchor = std::env::var("COSMIC_PANEL_ANCHOR").ok().and_then(|anchor| anchor.parse::().ok()).unwrap_or_default(); + self_.set_position(anchor); Self::setup_callbacks(&self_); diff --git a/applets/cosmic-app-list/src/dock_list/mod.rs b/applets/cosmic-app-list/src/dock_list/mod.rs index b17213b9..e2ec233d 100644 --- a/applets/cosmic-app-list/src/dock_list/mod.rs +++ b/applets/cosmic-app-list/src/dock_list/mod.rs @@ -8,7 +8,7 @@ use crate::{ {TX, WAYLAND_TX}, }; use cascade::cascade; -use cosmic_panel_config::{CosmicPanelConfig, PanelAnchor}; +use cosmic_panel_config::{CosmicPanelConfig, PanelAnchor, PanelSize}; use gio::traits::AppLaunchContextExt; use gtk4::{ @@ -44,11 +44,10 @@ impl Default for DockListType { } impl DockList { - pub fn new(type_: DockListType, config: CosmicPanelConfig) -> Self { + pub fn new(type_: DockListType) -> Self { let self_: DockList = glib::Object::new(&[]).expect("Failed to create DockList"); let imp = imp::DockList::from_instance(&self_); imp.type_.set(type_).unwrap(); - imp.config.set(config).unwrap(); self_.layout(); //dnd behavior is different for each type, as well as the data in the model self_.setup_model(); @@ -500,7 +499,16 @@ impl DockList { let popover_menu_index = &imp.popover_menu_index; let factory = SignalListItemFactory::new(); let model = imp.model.get().expect("Failed to get saved app model."); - let icon_size = imp.config.get().unwrap().get_applet_icon_size(); + + let icon_size = std::env::var("COSMIC_PANEL_SIZE").ok().and_then(|size| match size.parse::() { + Ok(PanelSize::XL) => Some(64), + Ok(PanelSize::L) => Some(48), + Ok(PanelSize::M) => Some(36), + Ok(PanelSize::S) => Some(24), + Ok(PanelSize::XS) => Some(18), + Err(_) => Some(36), + }).unwrap_or(36); + factory.connect_setup( glib::clone!(@weak popover_menu_index, @weak model => move |_, list_item| { let dock_item = DockItem::new(icon_size); diff --git a/applets/cosmic-app-list/src/dock_popover/mod.rs b/applets/cosmic-app-list/src/dock_popover/mod.rs index 8f0b73be..33944847 100644 --- a/applets/cosmic-app-list/src/dock_popover/mod.rs +++ b/applets/cosmic-app-list/src/dock_popover/mod.rs @@ -6,7 +6,7 @@ use gtk4::gdk::pango::EllipsizeMode; use gtk4::subclass::prelude::*; use gtk4::{gdk, gio, glib}; use gtk4::{prelude::*, Label}; -use gtk4::{Box, Button, Image, ListBox, Orientation}; +use gtk4::{Box, Button, ListBox, Orientation}; use crate::dock_object::DockObject; use crate::utils::AppListEvent; @@ -25,7 +25,6 @@ glib::wrapper! { impl DockPopover { pub fn new() -> Self { let self_: DockPopover = glib::Object::new(&[]).expect("Failed to create DockList"); - let imp = imp::DockPopover::from_instance(&self_); self_.layout(); //dnd behavior is different for each type, as well as the data in the model self_ diff --git a/applets/cosmic-app-list/src/main.rs b/applets/cosmic-app-list/src/main.rs index 6d23d389..ca4e7bff 100644 --- a/applets/cosmic-app-list/src/main.rs +++ b/applets/cosmic-app-list/src/main.rs @@ -9,7 +9,7 @@ use gtk4::gdk::Display; use gtk4::{glib, prelude::*, CssProvider, StyleContext}; use once_cell::sync::OnceCell; use std::collections::BTreeMap; -use utils::{block_on, AppListEvent, BoxedWindowList, DEST, PATH}; +use utils::{AppListEvent, BoxedWindowList}; use wayland::{Toplevel, ToplevelEvent}; mod apps_container; diff --git a/applets/cosmic-app-list/src/wayland.rs b/applets/cosmic-app-list/src/wayland.rs index 235d44af..ecb22baf 100644 --- a/applets/cosmic-app-list/src/wayland.rs +++ b/applets/cosmic-app-list/src/wayland.rs @@ -1,7 +1,7 @@ use crate::config::AppListConfig; use crate::{config::TopLevelFilter, utils::AppListEvent, wayland_source::WaylandSource, TX}; use calloop::channel::*; -use cosmic_panel_config::CosmicPanelConfig; +use cosmic_panel_config::{CosmicPanelOuput}; use cosmic_protocols::{ toplevel_info::v1::client::{ zcosmic_toplevel_handle_v1::{self, ZcosmicToplevelHandleV1}, @@ -52,12 +52,12 @@ pub fn spawn_toplevels() -> SyncSender { .and_then(|s| s.map(|s| Connection::from_socket(s).map_err(anyhow::Error::msg))) { std::thread::spawn(move || { - let output = match config.filter_top_levels { - Some(TopLevelFilter::ConfiguredOutput) => { - CosmicPanelConfig::load_from_env().ok().map(|c| c.output) - } + let output = std::env::var("COSMIC_PANEL_OUTPUT").ok().and_then(|size| match size.parse::() { + Ok(CosmicPanelOuput::Name(n)) => Some(n), + // TODO handle Active & panic if the space is still configured for All instead of being assigned a named output _ => None, - }; + }); + let mut event_loop = calloop::EventLoop::::try_new().unwrap(); let loop_handle = event_loop.handle(); let event_queue = conn.new_event_queue::(); diff --git a/applets/cosmic-applet-workspaces/src/wayland.rs b/applets/cosmic-applet-workspaces/src/wayland.rs index 3d696ac0..b211d8b0 100644 --- a/applets/cosmic-applet-workspaces/src/wayland.rs +++ b/applets/cosmic-applet-workspaces/src/wayland.rs @@ -1,9 +1,9 @@ use crate::{ - utils::{Activate, WorkspaceEvent}, + utils::WorkspaceEvent, wayland_source::WaylandSource, }; use calloop::channel::*; -use cosmic_panel_config::CosmicPanelConfig; +use cosmic_panel_config::CosmicPanelOuput; use cosmic_protocols::workspace::v1::client::{ zcosmic_workspace_group_handle_v1::{self, ZcosmicWorkspaceGroupHandleV1}, zcosmic_workspace_handle_v1::{self, ZcosmicWorkspaceHandleV1}, @@ -11,18 +11,15 @@ use cosmic_protocols::workspace::v1::client::{ }; use gtk4::glib; use std::{ - collections::HashMap, env, hash::Hash, mem, os::unix::net::UnixStream, path::PathBuf, - sync::Arc, time::Duration, + env, os::unix::net::UnixStream, path::PathBuf, time::Duration, }; -use tokio::sync::mpsc; -use wayland_backend::client::ObjectData; use wayland_client::{ event_created_child, protocol::{ wl_output::{self, WlOutput}, wl_registry, }, - ConnectError, Proxy, + ConnectError, }; use wayland_client::{Connection, Dispatch, QueueHandle}; @@ -42,9 +39,12 @@ pub fn spawn_workspaces(tx: glib::Sender) -> SyncSender { .and_then(|s| s.map(|s| Connection::from_socket(s).map_err(anyhow::Error::msg))) { std::thread::spawn(move || { - let output = CosmicPanelConfig::load_from_env() - .unwrap_or_default() - .output; + let output = std::env::var("COSMIC_PANEL_OUTPUT").ok().and_then(|size| match size.parse::() { + Ok(CosmicPanelOuput::Name(n)) => Some(n), + // TODO handle Active & panic if the space is still configured for All instead of being assigned a named output + _ => Some("".to_string()), + }).unwrap_or_default(); + let mut event_loop = calloop::EventLoop::::try_new().unwrap(); let loop_handle = event_loop.handle(); let event_queue = conn.new_event_queue::(); diff --git a/applets/cosmic-applet-workspaces/src/window/mod.rs b/applets/cosmic-applet-workspaces/src/window/mod.rs index 3062be27..7e5e08b8 100644 --- a/applets/cosmic-applet-workspaces/src/window/mod.rs +++ b/applets/cosmic-applet-workspaces/src/window/mod.rs @@ -34,9 +34,8 @@ impl CosmicWorkspacesWindow { ..set_title(Some(&fl!("cosmic-applet-workspaces"))); ..add_css_class("transparent"); }; - let config = CosmicPanelConfig::load_from_env().unwrap_or_default(); - let app_list = WorkspaceList::new(config); + let app_list = WorkspaceList::new(); self_.set_child(Some(&app_list)); imp.inner.set(app_list).unwrap(); diff --git a/applets/cosmic-applet-workspaces/src/workspace_list/imp.rs b/applets/cosmic-applet-workspaces/src/workspace_list/imp.rs index ab0a8d94..0fc9bb21 100644 --- a/applets/cosmic-applet-workspaces/src/workspace_list/imp.rs +++ b/applets/cosmic-applet-workspaces/src/workspace_list/imp.rs @@ -13,7 +13,6 @@ use crate::utils::Activate; pub struct WorkspaceList { pub list_view: OnceCell, pub model: OnceCell, - pub config: OnceCell, } #[glib::object_subclass] diff --git a/applets/cosmic-applet-workspaces/src/workspace_list/mod.rs b/applets/cosmic-applet-workspaces/src/workspace_list/mod.rs index 24ab6462..7b834a99 100644 --- a/applets/cosmic-applet-workspaces/src/workspace_list/mod.rs +++ b/applets/cosmic-applet-workspaces/src/workspace_list/mod.rs @@ -7,15 +7,14 @@ use crate::workspace_button::WorkspaceButton; use crate::workspace_object::WorkspaceObject; use crate::TX; use cascade::cascade; -use cosmic_panel_config::CosmicPanelConfig; +use cosmic_panel_config::PanelAnchor; +use cosmic_panel_config::PanelSize; use gtk4::builders::EventControllerScrollBuilder; use gtk4::EventControllerScrollFlags; use gtk4::Inhibit; use gtk4::ListView; -use gtk4::Orientation; use gtk4::SignalListItemFactory; use gtk4::{gio, glib, prelude::*, subclass::prelude::*}; -use tokio::sync::mpsc::Sender; mod imp; @@ -26,10 +25,9 @@ glib::wrapper! { } impl WorkspaceList { - pub fn new(config: CosmicPanelConfig) -> Self { + pub fn new() -> Self { let self_: WorkspaceList = glib::Object::new(&[]).expect("Failed to create WorkspaceList"); let imp = imp::WorkspaceList::from_instance(&self_); - imp.config.set(config).unwrap(); self_.layout(); //dnd behavior is different for each type, as well as the data in the model self_.setup_model(); @@ -45,7 +43,7 @@ impl WorkspaceList { fn layout(&self) { let imp = imp::WorkspaceList::from_instance(self); - let anchor = imp.config.get().unwrap().anchor; + let anchor = std::env::var("COSMIC_PANEL_ANCHOR").ok().and_then(|anchor| anchor.parse::().ok()).unwrap_or_default(); let list_view = cascade! { ListView::default(); @@ -105,7 +103,7 @@ impl WorkspaceList { let imp = imp::WorkspaceList::from_instance(self); let factory = SignalListItemFactory::new(); let model = imp.model.get().expect("Failed to get saved app model."); - let icon_size = imp.config.get().unwrap().get_applet_icon_size(); + factory.connect_setup(glib::clone!(@weak model => move |_, list_item| { let workspace_button = WorkspaceButton::new(); list_item.set_child(Some(&workspace_button)); diff --git a/applets/cosmic-panel-button/src/apps_window/mod.rs b/applets/cosmic-panel-button/src/apps_window/mod.rs index e1a33a34..264da380 100644 --- a/applets/cosmic-panel-button/src/apps_window/mod.rs +++ b/applets/cosmic-panel-button/src/apps_window/mod.rs @@ -2,7 +2,7 @@ use crate::fl; use cascade::cascade; -use cosmic_panel_config::CosmicPanelConfig; +use cosmic_panel_config::{CosmicPanelConfig, PanelSize}; use gtk4::{ gio::{self, DesktopAppInfo, Icon}, glib::{self, Object}, @@ -41,7 +41,14 @@ impl CosmicPanelAppButtonWindow { Button::new(); ..add_css_class("apps"); }; - let config = CosmicPanelConfig::load_from_env().unwrap_or_default(); + let pixels = std::env::var("COSMIC_PANEL_SIZE").ok().and_then(|size| match size.parse::() { + Ok(PanelSize::XL) => Some(64), + Ok(PanelSize::L) => Some(48), + Ok(PanelSize::M) => Some(36), + Ok(PanelSize::S) => Some(24), + Ok(PanelSize::XS) => Some(18), + Err(_) => Some(36), + }).unwrap_or(36); let icon = apps_desktop_info.icon().unwrap_or_else(|| { Icon::for_string("image-missing").expect("Failed to set default icon") }); @@ -50,7 +57,7 @@ impl CosmicPanelAppButtonWindow { gtk4::Image::from_gicon(&icon); ..set_hexpand(true); ..set_halign(Align::Center); - ..set_pixel_size(config.get_applet_icon_size().try_into().unwrap()); + ..set_pixel_size(pixels); ..set_tooltip_text(Some(&apps_desktop_info.name())); }; container.append(&image); diff --git a/libcosmic-applet/src/button.rs b/libcosmic-applet/src/button.rs index 6c1c997c..12a1aeb3 100644 --- a/libcosmic-applet/src/button.rs +++ b/libcosmic-applet/src/button.rs @@ -1,4 +1,4 @@ -use cosmic_panel_config::CosmicPanelConfig; +use cosmic_panel_config::{CosmicPanelConfig, PanelSize}; use gtk4::{glib, prelude::*, subclass::prelude::*}; use relm4_macros::view; @@ -52,8 +52,6 @@ impl ObjectImpl for AppletButtonInner { self.menu_button.set(menu_button); self.popover.set(popover); - self.panel_config - .set(CosmicPanelConfig::load_from_env().unwrap_or_default()); } fn dispose(&self, _obj: &AppletButton) { @@ -96,23 +94,23 @@ impl AppletButton { AppletButtonInner::from_instance(self) } - // TODO: avoid multiple instances? - pub fn panel_config(&self) -> &CosmicPanelConfig { - &*self.inner().panel_config - } - pub fn set_button_child(&self, child: Option<&impl IsA>) { self.inner().menu_button.set_child(child); } pub fn set_button_icon_name(&self, name: &str) { let image = gtk4::Image::from_icon_name(name); + let pixels = std::env::var("COSMIC_PANEL_SIZE").ok().and_then(|size| match size.parse::() { + Ok(PanelSize::XL) => Some(64), + Ok(PanelSize::L) => Some(48), + Ok(PanelSize::M) => Some(36), + Ok(PanelSize::S) => Some(24), + Ok(PanelSize::XS) => Some(18), + Err(_) => Some(36), + }).unwrap_or(36); image.set_pixel_size( - self.panel_config() - .get_applet_icon_size() - .try_into() - .unwrap(), - ); // XXX unwrap + pixels + ); self.set_button_child(Some(&image)); }