diff --git a/Cargo.lock b/Cargo.lock index 5f412d5..5e9e52f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -169,9 +169,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" [[package]] name = "apply" @@ -208,7 +208,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -293,17 +293,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 5.2.0", - "event-listener-strategy 0.5.0", + "event-listener 5.3.0", + "event-listener-strategy 0.5.1", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "5f98c37cf288e302c16ef6c8472aad1e034c6c84ce5ea7b8101c98eb4a802fee" dependencies = [ "async-lock 3.3.0", "async-task", @@ -409,7 +409,7 @@ checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -444,7 +444,7 @@ checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -678,21 +678,21 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "syn_derive", ] [[package]] name = "built" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53" +checksum = "41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16" [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-unit" @@ -744,7 +744,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -820,10 +820,22 @@ dependencies = [ ] [[package]] -name = "cc" -version = "1.0.90" +name = "calloop-wayland-source" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop 0.13.0", + "rustix 0.38.32", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cc" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" dependencies = [ "jobserver", "libc", @@ -842,9 +854,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", "target-lexicon", @@ -901,7 +913,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] @@ -913,7 +925,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -934,7 +946,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" dependencies = [ "objc", "objc-foundation", @@ -944,8 +956,9 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" dependencies = [ + "dnd", "mime", "smithay-clipboard", ] @@ -953,7 +966,7 @@ dependencies = [ [[package]] name = "clipboard_x11" version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" dependencies = [ "thiserror", "x11rb", @@ -1151,9 +1164,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -1199,18 +1212,18 @@ dependencies = [ [[package]] name = "cosmic-client-toolkit" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=1cc4a13#1cc4a1393d0f8be4d444666e260fdb811b400f49" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=e4e6f8c#e4e6f8ca4d7c239c02a8cdfd48a74cb0969425eb" dependencies = [ "cosmic-protocols", "libc", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "wayland-client", ] [[package]] name = "cosmic-comp-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-comp#cf75bc1952db0fa3edf0235df73a5a6b768b9baf" +source = "git+https://github.com/pop-os/cosmic-comp#de544e1d3159492a798aa1f8d95d65d731ac5bc6" dependencies = [ "cosmic-config", "input", @@ -1220,7 +1233,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "atomicwrites", "calloop 0.13.0", @@ -1241,7 +1254,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "quote", "syn 1.0.109", @@ -1250,13 +1263,13 @@ dependencies = [ [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#02f19e38d78c6727921387563883f68d0a9c1584" +source = "git+https://github.com/pop-os/cosmic-panel#75e74bd1a621fde742fdb56a00cdeec0895c2336" dependencies = [ "anyhow", "cosmic-config", "ron", "serde", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=2e9bf9f)", "tracing", "wayland-protocols-wlr", "xdg-shell-wrapper-config", @@ -1265,7 +1278,7 @@ dependencies = [ [[package]] name = "cosmic-protocols" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=1cc4a13#1cc4a1393d0f8be4d444666e260fdb811b400f49" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=e4e6f8c#e4e6f8ca4d7c239c02a8cdfd48a74cb0969425eb" dependencies = [ "bitflags 2.5.0", "wayland-backend", @@ -1311,9 +1324,11 @@ dependencies = [ "freedesktop-desktop-entry", "futures-lite 2.3.0", "generator", + "hostname-validator", + "hostname1-zbus", "i18n-embed", "i18n-embed-fl", - "image 0.25.0", + "image 0.25.1", "itertools", "itoa", "libcosmic", @@ -1332,6 +1347,7 @@ dependencies = [ "udev", "url", "xkb-data", + "zbus", ] [[package]] @@ -1389,7 +1405,7 @@ dependencies = [ "freedesktop-icons", "futures-lite 2.3.0", "futures-util", - "image 0.25.0", + "image 0.25.1", "infer", "tokio", "tracing", @@ -1420,7 +1436,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "almost", "cosmic-config", @@ -1524,7 +1540,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c" dependencies = [ "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1564,7 +1580,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1575,7 +1591,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1617,7 +1633,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1685,7 +1701,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1706,11 +1722,23 @@ dependencies = [ "const-random", ] +[[package]] +name = "dnd" +version = "0.1.0" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" +dependencies = [ + "bitflags 2.5.0", + "mime", + "raw-window-handle 0.6.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", + "smithay-clipboard", +] + [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "drm" @@ -1786,7 +1814,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1860,9 +1888,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" dependencies = [ "concurrent-queue", "parking", @@ -1881,11 +1909,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" dependencies = [ - "event-listener 5.2.0", + "event-listener 5.3.0", "pin-project-lite", ] @@ -2052,9 +2080,12 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "font-types" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7f6040d337bd44434ab21fc6509154edf2cece88b23758d9d64654c4e7730b" +checksum = "bd6784a76a9c2b136ea3b8462391e9328252e938eb706eb44d752723b4c3a533" +dependencies = [ + "bytemuck", +] [[package]] name = "fontconfig-parser" @@ -2097,7 +2128,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2127,9 +2158,9 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287f89b1a3d88dd04d2b65dfec39f3c381efbcded7b736456039c4ee49d54b17" +checksum = "c201444ddafb5506fe85265b48421664ff4617e3b7090ef99e42a0070c1aead0" dependencies = [ "dirs 3.0.2", "gettext-rs", @@ -2251,7 +2282,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2349,9 +2380,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -2575,9 +2606,9 @@ dependencies = [ [[package]] name = "half" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if", "crunchy", @@ -2647,6 +2678,21 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "hostname-validator" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" + +[[package]] +name = "hostname1-zbus" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea79a9ecaed28c5d4f2f8480753e73b8272d4ee23e7242543272e31945260f54" +dependencies = [ + "zbus", +] + [[package]] name = "i18n-config" version = "0.4.6" @@ -2700,7 +2746,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.55", + "syn 2.0.58", "unic-langid", ] @@ -2714,7 +2760,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2743,8 +2789,9 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ + "dnd", "iced_accessibility", "iced_core", "iced_futures", @@ -2752,6 +2799,7 @@ dependencies = [ "iced_sctk", "iced_widget", "image 0.24.9", + "mime", "thiserror", "window_clipboard", ] @@ -2759,7 +2807,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "accesskit", "accesskit_unix", @@ -2768,16 +2816,18 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "bitflags 1.3.2", + "dnd", "iced_accessibility", "log", + "mime", "num-traits", "palette", "raw-window-handle 0.6.0", "serde", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "smol_str", "thiserror", "web-time", @@ -2788,7 +2838,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "futures", "iced_core", @@ -2801,7 +2851,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2825,7 +2875,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2837,12 +2887,13 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ + "dnd", "iced_accessibility", "iced_core", "iced_futures", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "thiserror", "window_clipboard", ] @@ -2850,7 +2901,7 @@ dependencies = [ [[package]] name = "iced_sctk" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "enum-repr", "float-cmp", @@ -2862,7 +2913,7 @@ dependencies = [ "itertools", "lazy_static", "raw-window-handle 0.6.0", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "thiserror", "tracing", "wayland-backend", @@ -2876,7 +2927,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "iced_core", "once_cell", @@ -2886,7 +2937,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "bytemuck", "cosmic-text", @@ -2903,7 +2954,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2922,16 +2973,18 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ + "dnd", "iced_renderer", "iced_runtime", "iced_style", "num-traits", "ouroboros", - "smithay-client-toolkit 0.18.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "thiserror", "unicode-segmentation", + "window_clipboard", ] [[package]] @@ -3015,7 +3068,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3076,9 +3129,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b4f005360d32e9325029b38ba47ebd7a56f3316df09249368939562d518645" +checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" dependencies = [ "bytemuck", "byteorder", @@ -3201,7 +3254,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3378,7 +3431,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cc439b2ceaf41226ab86416ae0ad3651c9a6e10a" +source = "git+https://github.com/pop-os/libcosmic#dd952bbfdba85cbb865f61928e67a4c5ba43db95" dependencies = [ "apply", "ashpd 0.7.0", @@ -3455,13 +3508,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.5.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -3618,9 +3670,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" @@ -3693,13 +3745,13 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" dependencies = [ "smithay-clipboard", ] @@ -3872,7 +3924,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3989,9 +4041,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-multimap" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" dependencies = [ "dlv-list", "hashbrown 0.14.3", @@ -4028,7 +4080,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4064,7 +4116,7 @@ checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4175,7 +4227,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4195,9 +4247,9 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -4346,7 +4398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4395,9 +4447,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -4540,10 +4592,11 @@ checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" [[package]] name = "read-fonts" -version = "0.16.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81c524658d3b77930a391f559756d91dbe829ab6cf4687083f615d395df99722" +checksum = "ea75b5ec052843434d263ef7a4c31cf86db5908c729694afb1ad3c884252a1b6" dependencies = [ + "bytemuck", "font-types", ] @@ -4567,9 +4620,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -4737,7 +4790,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.55", + "syn 2.0.58", "walkdir", ] @@ -4763,9 +4816,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.34.3" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df" +checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" dependencies = [ "arrayvec", "borsh", @@ -4818,9 +4871,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "rustybuzz" @@ -4916,7 +4969,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4932,13 +4985,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -5058,7 +5111,7 @@ dependencies = [ "bitflags 2.5.0", "bytemuck", "calloop 0.12.4", - "calloop-wayland-source", + "calloop-wayland-source 0.2.0", "cursor-icon", "libc", "log", @@ -5079,17 +5132,18 @@ dependencies = [ [[package]] name = "smithay-client-toolkit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" +version = "0.18.0" +source = "git+https://github.com/smithay/client-toolkit?rev=3bed072#3bed072b966022f5f929d12f3aff089b1ace980b" dependencies = [ "bitflags 2.5.0", - "calloop 0.12.4", - "calloop-wayland-source", + "bytemuck", + "calloop 0.13.0", + "calloop-wayland-source 0.3.0", "cursor-icon", "libc", "log", "memmap2 0.9.4", + "pkg-config", "rustix 0.38.32", "thiserror", "wayland-backend", @@ -5099,16 +5153,18 @@ dependencies = [ "wayland-protocols", "wayland-protocols-wlr", "wayland-scanner", + "xkbcommon", "xkeysym", ] [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-mime-types#cc0101c1f9ccc937a413bd3af3c0f6217f27e935" +source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-3#2f2430bec35f0adb9cb93e85e648ff8449d44dad" dependencies = [ "libc", - "smithay-client-toolkit 0.18.1", + "raw-window-handle 0.6.0", + "smithay-client-toolkit 0.18.0 (git+https://github.com/smithay/client-toolkit?rev=3bed072)", "wayland-backend", ] @@ -5246,9 +5302,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "sunrise" @@ -5277,9 +5333,9 @@ dependencies = [ [[package]] name = "swash" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af636fb90d39858650cae1088a37e2862dab4e874a0bb49d6dfb5b2dacf0e24" +checksum = "06ec889a8e0a6fcb91041996c8f1f6be0fe1a09e94478785e07c32ce2bca2d2b" dependencies = [ "read-fonts", "yazi", @@ -5299,9 +5355,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.55" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -5317,7 +5373,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -5328,7 +5384,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -5342,9 +5398,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.7" +version = "0.30.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18" +checksum = "26d7c217777061d5a2d652aea771fb9ba98b6dade657204b08c4b9604d11555b" dependencies = [ "cfg-if", "core-foundation-sys", @@ -5435,7 +5491,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -5542,9 +5598,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -5567,7 +5623,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -5654,7 +5710,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -6003,7 +6059,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "wasm-bindgen-shared", ] @@ -6037,7 +6093,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6305,9 +6361,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -6343,12 +6399,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-3#e717bd58a0ccc7ef8bedda234f9159b5938e1894" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", "clipboard_x11", + "dnd", "mime", "raw-window-handle 0.6.0", "thiserror", @@ -6644,9 +6701,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "xmlwriter" @@ -6686,7 +6743,7 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "synstructure", ] @@ -6780,7 +6837,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -6800,7 +6857,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "synstructure", ] @@ -6834,7 +6891,7 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] diff --git a/cosmic-settings/Cargo.toml b/cosmic-settings/Cargo.toml index 8e1893d..5efcc41 100644 --- a/cosmic-settings/Cargo.toml +++ b/cosmic-settings/Cargo.toml @@ -48,6 +48,9 @@ itoa = "1.0.10" futures = { package = "futures-lite", version = "2.2.0" } xkb-data = "0.1.0" udev = "0.8.0" +hostname-validator = "1.1.1" +hostname1-zbus = "0.1.0" +zbus = { version = "3.15.2", features = ["tokio"] } [dependencies.i18n-embed] version = "0.14.1" diff --git a/cosmic-settings/src/pages/system/about.rs b/cosmic-settings/src/pages/system/about.rs index 8e33035..64b3a01 100644 --- a/cosmic-settings/src/pages/system/about.rs +++ b/cosmic-settings/src/pages/system/about.rs @@ -1,22 +1,26 @@ // Copyright 2023 System76 // SPDX-License-Identifier: GPL-3.0-only +use cosmic::iced::Length; use cosmic_settings_page::{self as page, section, Section}; -use cosmic::widget::{list_column, settings, text}; -use cosmic::{command, Command}; +use cosmic::widget::{self, editable_input, list_column, settings, text}; +use cosmic::{command, Apply, Command}; use cosmic_settings_system::about::Info; use slotmap::SlotMap; #[derive(Clone, Debug)] pub enum Message { + HostnameEdit(bool), + HostnameInput(String), + HostnameSubmit, Info(Box), } #[derive(Clone, Debug, Default)] pub struct Page { + editing_device_name: bool, info: Info, - // support_page: page::Entity, } impl page::AutoBind for Page {} @@ -50,6 +54,48 @@ impl page::Page for Page { impl Page { pub fn update(&mut self, message: Message) { match message { + Message::HostnameEdit(editing) => { + self.editing_device_name = editing; + } + + Message::HostnameInput(hostname) => { + self.info.device_name = hostname; + } + + Message::HostnameSubmit => { + let hostname = &self.info.device_name; + if hostname_validator::is_valid(hostname) { + // TODO: display errors + self.editing_device_name = false; + let hostname = hostname.clone(); + tokio::task::spawn(async move { + let connection = match zbus::Connection::system().await { + Ok(conn) => conn, + Err(why) => { + tracing::error!(?why, "failed to establish connection to dbus"); + return; + } + }; + + let hostname1 = match hostname1_zbus::Hostname1Proxy::new(&connection).await + { + Ok(proxy) => proxy, + Err(why) => { + tracing::error!( + ?why, + "failed to connect to org.freedesktop.hostname1" + ); + return; + } + }; + + if let Err(why) = hostname1.set_static_hostname(&hostname, false).await { + tracing::error!(?why, "failed to set static hostname"); + } + }); + } + } + Message::Info(info) => self.info = *info, } } @@ -63,11 +109,28 @@ fn device() -> Section { ]) .view::(|_binder, page, section| { let desc = §ion.descriptions; + + let hostname_input = editable_input( + "", + &page.info.device_name, + page.editing_device_name, + Message::HostnameEdit, + ) + .on_input(Message::HostnameInput) + .on_submit(Message::HostnameSubmit); + + let hostname_row = widget::row::with_capacity(2) + .push(widget::horizontal_space(Length::Fill)) + .push(hostname_input); + let device_name = settings::item::builder(&*desc[0]) .description(&*desc[1]) - .control(text(&page.info.device_name)); + .control(hostname_row); - list_column().add(device_name).into() + list_column() + .add(device_name) + .apply(cosmic::Element::from) + .map(crate::pages::Message::About) }) } diff --git a/debian/install b/debian/install index 8e05518..e1749ca 100644 --- a/debian/install +++ b/debian/install @@ -16,6 +16,7 @@ /usr/share/applications/com.system76.CosmicSettings.Wallpaper.desktop /usr/share/applications/com.system76.CosmicSettings.Workspaces.desktop /usr/share/metainfo/com.system76.CosmicSettings.metainfo.xml +/usr/share/polkit-1/rules.d/cosmic-settings.rules /usr/share/cosmic/com.system76.CosmicTheme.Dark /usr/share/cosmic/com.system76.CosmicTheme.Dark.Builder /usr/share/cosmic/com.system76.CosmicTheme.Light diff --git a/justfile b/justfile index 647a381..44cb86d 100644 --- a/justfile +++ b/justfile @@ -20,6 +20,9 @@ metainfo := appid + '.metainfo.xml' metainfo-src := 'resources' / metainfo metainfo-dst := clean(rootdir / prefix) / 'share' / 'metainfo' / metainfo +polkit-rules-src := 'resources' / 'polkit-1' / 'rules.d' / 'cosmic-settings.rules' +polkit-rules-dst := clean(rootdir / prefix) / 'share' / 'polkit-1' / 'rules.d' / 'cosmic-settings.rules' + # Desktop entries entry-settings := appid + '.desktop' entry-about := appid + '.About.desktop' @@ -62,7 +65,7 @@ install-desktop-entries: install -Dm0644 'resources/{{entry-workspaces}}' '{{appdir}}/{{entry-workspaces}}' # Install everything -install: install-desktop-entries (install-bin bin-src bin-dest) (install-file metainfo-src metainfo-dst) +install: install-desktop-entries (install-bin bin-src bin-dest) (install-file metainfo-src metainfo-dst) (install-file polkit-rules-src polkit-rules-dst) find 'resources'/'default_schema' -type f -exec echo {} \; | rev | cut -d'/' -f-3 | rev | xargs -d '\n' -I {} install -Dm0644 'resources'/'default_schema'/{} {{default-schema-target}}/{} find 'resources'/'icons' -type f -exec echo {} \; | rev | cut -d'/' -f-3 | rev | xargs -d '\n' -I {} install -Dm0644 'resources'/'icons'/{} {{iconsdir}}/{} diff --git a/resources/polkit-1/rules.d/cosmic-settings.rules b/resources/polkit-1/rules.d/cosmic-settings.rules new file mode 100644 index 0000000..54a1eb0 --- /dev/null +++ b/resources/polkit-1/rules.d/cosmic-settings.rules @@ -0,0 +1,12 @@ +polkit.addRule(function(action, subject) { + if ((action.id == "org.freedesktop.locale1.set-locale" || + action.id == "org.freedesktop.locale1.set-keyboard" || + action.id == "org.freedesktop.ModemManager1.Device.Control" || + action.id == "org.freedesktop.hostname1.set-static-hostname" || + action.id == "org.freedesktop.hostname1.set-hostname") && + subject.local && + subject.active && + subject.isInGroup ("sudo")) { + return polkit.Result.YES; + } +}); \ No newline at end of file