diff --git a/Cargo.lock b/Cargo.lock index 44333fc..20b0f5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,10 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "aho-corasick" -version = "0.7.15" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] @@ -17,20 +19,63 @@ checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" [[package]] name = "ashpd" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05092d6c609057712953f07e974752926ec8fcf5feed2782e9ed70a2ea0a2304" +version = "0.2.0-alpha-3" +source = "git+https://github.com/bilelmoussaoui/ashpd#d2e6253e4d3f1c295dbbf19ee12547d7cb4bb2b8" dependencies = [ "enumflags2", + "futures", + "gdk4-wayland", + "gdk4-x11", + "gtk4", + "rand", "serde", "serde_repr", - "strum 0.19.5", - "strum_macros 0.19.4", - "zbus", + "strum 0.21.0", + "strum_macros 0.21.1", + "tracing", + "zbus 2.0.0-beta.6", + "zbus_macros 2.0.0-beta.6", + "zbus_names", "zvariant", "zvariant_derive", ] +[[package]] +name = "async-broadcast" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186fa9af996163d0d446775d084df32f2f5b195bcfebb0d49d0bf18e2eec528c" +dependencies = [ + "easy-parallel", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + [[package]] name = "async-io" version = "1.3.1" @@ -51,6 +96,32 @@ dependencies = [ "winapi", ] +[[package]] +name = "async-lock" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-task" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" + [[package]] name = "atty" version = "0.2.14" @@ -74,6 +145,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + [[package]] name = "byteorder" version = "1.4.2" @@ -148,6 +225,27 @@ dependencies = [ "syn", ] +[[package]] +name = "dlib" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "easy-parallel" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd4afd79212583ff429b913ad6605242ed7eec277e950b1438f300748f948f4" + [[package]] name = "either" version = "1.6.1" @@ -188,6 +286,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "event-listener" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" + [[package]] name = "fastrand" version = "1.4.0" @@ -234,9 +338,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.13" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" +checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99" [[package]] name = "futures-executor" @@ -284,9 +388,9 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.13" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" +checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53" [[package]] name = "futures-task" @@ -341,9 +445,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03132f21de5fe15ded4f950328fb44e007037aea7c6bbbc3f082493d5d3c164" +checksum = "8ce41092cc569129a0afa34926e6dd1cf8411e25652d87febdea36859f7ff7ba" dependencies = [ "bitflags", "cairo-rs", @@ -357,9 +461,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3453f8dc11a6167a7269355fcfbd6b96d10625395e87f77199e7dbba9077b58c" +checksum = "ce39c71861b5bcde319fd4711a74e1bd6f4f474911170d51096597fef0b56011" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -373,10 +477,73 @@ dependencies = [ ] [[package]] -name = "gettext-rs" -version = "0.4.4" +name = "gdk4-wayland" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df454a42d8a718280c78666efe0707c120873736961ae91ead898f17ac66ce7c" +checksum = "d0a3204d0099e82e08d295169ed988a7c9fd82f9ecae9859b810735d44fd2e58" +dependencies = [ + "gdk4", + "gdk4-wayland-sys", + "gio", + "glib", + "libc", + "wayland-client", +] + +[[package]] +name = "gdk4-wayland-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65df7b53c3b8b88770d33bb29615fab2190d3a72e02e1431102567bf9e7c1a73" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4-x11" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa1a05310ef35c8af297b2aa5993590e7d3318da514f6eda6400ed55d9b90fa" +dependencies = [ + "gdk4", + "gdk4-x11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdk4-x11-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86138f1689dd5d0b0b279dbfb006e5794cf794e86ab9efb17a88d76a9ce8c3f1" +dependencies = [ + "gdk4-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi", +] + +[[package]] +name = "gettext-rs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364" dependencies = [ "gettext-sys", "locale_config", @@ -384,11 +551,12 @@ dependencies = [ [[package]] name = "gettext-sys" -version = "0.19.9" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e034c4ba5bb796730a6cc5eb0d654c16885006a7c3d6c6603581ed809434f153" +checksum = "afa9e06ab9e7514cc9ae668ea3b71ea1536259d767dff0289ac23ad134f99929" dependencies = [ "cc", + "temp-dir", ] [[package]] @@ -483,7 +651,7 @@ dependencies = [ "log", "once_cell", "pretty_env_logger", - "zbus", + "zbus 1.8.0", "zvariant", ] @@ -523,9 +691,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2699e9ff7ba3ca3582043bfd45ea3af3c45fa461fea75a369bcc6ab77eacde2" +checksum = "64932b730eaad3340378a03d633616eeed6d6705b59b81c9f579c88be8932475" dependencies = [ "bitflags", "cairo-rs", @@ -539,9 +707,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cf692f33ec2f438a89cb57018f57260b73193929da9d37b873e47a7662a7e0" +checksum = "685ffc776bedd91d68f47b41239525778b669432889721d7050d045270549b9a" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -561,9 +729,9 @@ checksum = "1874c48e670519ce192093ac906c08a6dde7cb2d18b28722ef237726a39c3a63" [[package]] name = "gtk4" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8801459abe49508a914c591d0cf355a6aea9762058334ba6efe63bdf40e479" +checksum = "c49e0311dac847a8ebc05e31f5c44c596314ee3b16c5f638ccfe24086d24bf1b" dependencies = [ "bitflags", "cairo-rs", @@ -584,9 +752,9 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca4260cbbdad77f91c57b4836ff63c6c51dc79b2feadc83c0869e4d379dcbee5" +checksum = "bbe4b77996bcf1ef20208c00043edda854ca2091b4be5e6a7c367f0f3846fa67" dependencies = [ "anyhow", "heck", @@ -600,9 +768,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580a7215a4d681e068cb1ea93e7293ca0d84b738d9b0c82b630199f21d3c82ef" +checksum = "3737e91619cf4257d8a07834f7a2c035d4daeaf9ad8e3958e56b2c411dbdca18" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -635,6 +803,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "humantime" version = "1.3.0" @@ -670,9 +844,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libadwaita" -version = "0.1.0-alpha" +version = "0.1.0-alpha-3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d8221b476b16ee55b18bf4209e0fb5457c66375b9af8f8cef91ff930e82da6" +checksum = "e3a733578e8ea3c8f986e4ce02aa276f512fb3e2c4e578bfcf39ada16d54a4ec" dependencies = [ "gdk-pixbuf", "gdk4", @@ -686,9 +860,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.1.0-alpha" +version = "0.1.0-alpha-3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80594e5894e4145639c75164ee33cf607f42c667318475cb1d5db8132b77eab4" +checksum = "f7b334a6aa0667ec8ec4d66f3ad04bae19bdc9e837ad312b13005fd6c4f52603" dependencies = [ "gdk-pixbuf-sys", "gdk4-sys", @@ -703,17 +877,29 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265d751d31d6780a3f956bb5b8022feba2d94eeee5a84ba64f4212eedca42213" +checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" + +[[package]] +name = "libloading" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" +dependencies = [ + "cfg-if 1.0.0", + "winapi", +] [[package]] name = "locale_config" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c" +checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" dependencies = [ "lazy_static", + "objc", + "objc-foundation", "regex", "winapi", ] @@ -728,16 +914,25 @@ dependencies = [ ] [[package]] -name = "memchr" -version = "2.3.4" +name = "malloc_buf" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memoffset" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" dependencies = [ "autocfg", ] @@ -765,6 +960,61 @@ dependencies = [ "void", ] +[[package]] +name = "nix" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8e5e343312e7fbeb2a52139114e9e702991ef9c2aea6817ff2440b35647d56" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27ff0416812c5dec77c5047d26f34ff0fda13ec8d8e87110056c22a213a3de7" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + [[package]] name = "once_cell" version = "1.7.2" @@ -842,6 +1092,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "ppv-lite86" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + [[package]] name = "pretty_env_logger" version = "0.4.0" @@ -932,22 +1188,61 @@ dependencies = [ ] [[package]] -name = "regex" -version = "1.4.3" +name = "rand" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core", +] + +[[package]] +name = "regex" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "rustc_version" @@ -1013,12 +1308,27 @@ dependencies = [ "syn", ] +[[package]] +name = "sha1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" + [[package]] name = "slab" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +[[package]] +name = "slotmap" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a952280edbecfb1d4bd3cf2dbc309dc6ab523e53487c438ae21a6df09fe84bc4" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "1.6.1" @@ -1037,10 +1347,10 @@ dependencies = [ ] [[package]] -name = "strum" -version = "0.19.5" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89a286a7e3b5720b9a477b23253bc50debac207c8d21505f8e70b36792f11b5" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strum" @@ -1049,10 +1359,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" [[package]] -name = "strum_macros" -version = "0.19.4" +name = "strum" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e61bb0be289045cb80bfce000512e32d09f8337e54c186725da381377ad1f8d5" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" + +[[package]] +name = "strum_macros" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" dependencies = [ "heck", "proc-macro2", @@ -1062,9 +1378,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ "heck", "proc-macro2", @@ -1100,6 +1416,12 @@ dependencies = [ "version-compare", ] +[[package]] +name = "temp-dir" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" + [[package]] name = "termcolor" version = "1.1.2" @@ -1129,15 +1451,6 @@ dependencies = [ "syn", ] -[[package]] -name = "thread_local" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" -dependencies = [ - "once_cell", -] - [[package]] name = "toml" version = "0.5.8" @@ -1147,6 +1460,38 @@ dependencies = [ "serde", ] +[[package]] +name = "tracing" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" +dependencies = [ + "cfg-if 1.0.0", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" +dependencies = [ + "lazy_static", +] + [[package]] name = "ucd-trie" version = "0.1.3" @@ -1195,6 +1540,61 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wayland-client" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355" +dependencies = [ + "bitflags", + "downcast-rs", + "libc", + "nix 0.20.1", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys", +] + +[[package]] +name = "wayland-commons" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda" +dependencies = [ + "nix 0.20.1", + "once_cell", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-scanner" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8" +dependencies = [ + "dlib", + "pkg-config", +] + [[package]] name = "wepoll-sys" version = "3.0.1" @@ -1235,6 +1635,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "x11" +version = "2.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ecd092546cb16f25783a5451538e73afc8d32e242648d54f4ae5459ba1e773" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + [[package]] name = "zbus" version = "1.8.0" @@ -1248,13 +1664,47 @@ dependencies = [ "fastrand", "futures", "nb-connect", - "nix", + "nix 0.17.0", "once_cell", "polling", "scoped-tls", "serde", "serde_repr", - "zbus_macros", + "zbus_macros 1.8.0", + "zvariant", +] + +[[package]] +name = "zbus" +version = "2.0.0-beta.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a83ae2a824814235320b6539f12b7678e15d347d66235e1230338d11c1fb07e" +dependencies = [ + "async-broadcast", + "async-channel", + "async-executor", + "async-io", + "async-lock", + "async-recursion", + "async-task", + "byteorder", + "derivative", + "enumflags2", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.21.1", + "once_cell", + "rand", + "scoped-tls", + "serde", + "serde_repr", + "sha1", + "slotmap", + "static_assertions", + "zbus_macros 2.0.0-beta.6", + "zbus_names", "zvariant", ] @@ -1271,24 +1721,49 @@ dependencies = [ ] [[package]] -name = "zvariant" -version = "2.5.0" +name = "zbus_macros" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc67d552ac18ccd9e440f062f5b32c46776f96073122a8da2fe0c533833a213" +checksum = "2518b2ea6ac01672b131ce4d1fe45f840732d6266660277499b9e81a153bd723" +dependencies = [ + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "regex", + "syn", +] + +[[package]] +name = "zbus_names" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4882f6e16e1a55ab9ee5c2031692fc8708d03f46000383a11a5f1c8cb69e7c8b" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zvariant" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4b785b8b32b0f8433b4474e6bb4ea77b37c1960e84d7598e01dd199b2b23ef" dependencies = [ "byteorder", "enumflags2", "serde", + "static_assertions", "zvariant_derive", ] [[package]] name = "zvariant_derive" -version = "2.5.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaee686340b5bff077d52423d8cc4f0f7cb323fe3f31ef676b8a3a2810bc53c5" +checksum = "b42af4ee88fb928781391216c34be77ec7cdb3546042b2947ce38d86aa5f37dd" dependencies = [ - "proc-macro-crate 0.1.5", + "proc-macro-crate 1.0.0", "proc-macro2", "quote", "syn", diff --git a/Cargo.toml b/Cargo.toml index d3fa470..a53a8e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,17 +15,20 @@ gdk-pixbuf = "0.14.0" gio = "0.14.0" glib = "0.14.0" cairo-rs = "0.14.0" -ashpd = "0.1.0" -libadwaita = "0.1.0-alpha" +libadwaita = "0.1.0-alpha-3" + +[dependencies.ashpd] +git = "https://github.com/bilelmoussaoui/ashpd" +features = ["feature_gtk4"] [dependencies.gtk] package = "gtk4" -version = "0.1.0" +version = "0.2.0" [dependencies.gdk] package = "gdk4" -version = "0.1.0" +version = "0.2.0" [dependencies.gettext-rs] -version = "0.4.4" +version = "0.7.0" features = ["gettext-system"] diff --git a/src/main.rs b/src/main.rs index ff5cf41..6212f51 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,8 +34,8 @@ fn main() { pretty_env_logger::init(); setlocale(LocaleCategory::LcAll, ""); - bindtextdomain("gnome-image-viewer", config::LOCALEDIR); - textdomain("gnome-image-viewer"); + bindtextdomain("gnome-image-viewer", config::LOCALEDIR).unwrap(); + textdomain("gnome-image-viewer").unwrap(); let res = gio::Resource::load(config::PKGDATADIR.to_owned() + "/gnome-image-viewer.gresource") .expect("Could not load resources"); diff --git a/src/widgets/image_view.rs b/src/widgets/image_view.rs index 792c357..19c099a 100644 --- a/src/widgets/image_view.rs +++ b/src/widgets/image_view.rs @@ -27,8 +27,8 @@ use gtk::CompositeTemplate; use libadwaita::subclass::prelude::*; use anyhow::Context; -use ashpd::desktop::wallpaper::{SetOn, WallpaperOptions, WallpaperProxy}; -use ashpd::{BasicResponse as Basic, RequestProxy, Response, WindowIdentifier}; +use ashpd::desktop::wallpaper; +use ashpd::WindowIdentifier; use once_cell::sync::Lazy; use std::cell::{Cell, RefCell}; @@ -232,21 +232,11 @@ impl IvImageView { } pub fn set_wallpaper(&self) -> anyhow::Result<()> { - let imp = imp::IvImageView::from_instance(&self); - let wallpaper = self.uri().context("No URI for current file")?; - let wallpaper_proxy = WallpaperProxy::new(&imp.connection)?; - - let request_handle = wallpaper_proxy.set_wallpaper_uri( - WindowIdentifier::default(), - &wallpaper, - WallpaperOptions::default().set_on(SetOn::Background), - )?; - - let request = RequestProxy::new(&imp.connection, &request_handle)?; - request.on_response(|response: Response| { - log::debug!("Wallpaper set: {}", response.is_ok()); - })?; + let ctx = glib::MainContext::default(); + ctx.spawn_local(async move { + set_wallpaper(wallpaper).await; + }); Ok(()) } @@ -323,3 +313,20 @@ impl IvImageView { .unwrap() } } + +async fn set_wallpaper(uri: String) { + match wallpaper::set_from_uri( + &WindowIdentifier::default(), + &uri, + false, + wallpaper::SetOn::Background, + ) + .await + { + Err(e) => log::error!( + "Failed to set the wallpaper using the freedesktop portal: {}", + e + ), + Ok(_) => (), + } +}