diff --git a/Cargo.lock b/Cargo.lock index ee9818e..f1c4750 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,6 +177,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + [[package]] name = "blocking" version = "1.0.2" @@ -407,11 +413,12 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f080fe945e4219b8b1c8449ee126485f68be5e1235e131c83e7240fa4630af5d" +checksum = "61ecb2f63bfff12ca1a6e98c2ed7bac47169abe4d3cdbaeeb8e3852afdcc8ace" dependencies = [ "dirs", + "gettext-rs", "memchr", "thiserror", ] @@ -566,6 +573,26 @@ dependencies = [ "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", +] + +[[package]] +name = "gettext-sys" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa9e06ab9e7514cc9ae668ea3b71ea1536259d767dff0289ac23ad134f99929" +dependencies = [ + "cc", + "temp-dir", +] + [[package]] name = "hermit-abi" version = "0.1.19" @@ -620,6 +647,19 @@ version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" +[[package]] +name = "locale_config" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" +dependencies = [ + "lazy_static", + "objc", + "objc-foundation", + "regex", + "winapi", +] + [[package]] name = "log" version = "0.4.14" @@ -629,6 +669,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + [[package]] name = "matchers" version = "0.0.1" @@ -712,6 +761,35 @@ dependencies = [ "libc", ] +[[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.8.0" @@ -1158,6 +1236,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "temp-dir" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" + [[package]] name = "thiserror" version = "1.0.26" diff --git a/plugins/Cargo.toml b/plugins/Cargo.toml index 45b0282..10506d2 100644 --- a/plugins/Cargo.toml +++ b/plugins/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] fork = "0.1" -freedesktop-desktop-entry = "0.3" +freedesktop-desktop-entry = "0.4" futures_codec = "0.4" futures-lite = "1" new_mime_guess = "3" diff --git a/plugins/src/desktop_entries/mod.rs b/plugins/src/desktop_entries/mod.rs index 1d1aeb0..efc7ccb 100644 --- a/plugins/src/desktop_entries/mod.rs +++ b/plugins/src/desktop_entries/mod.rs @@ -124,8 +124,12 @@ impl App { if let Some(exec) = exec.split_ascii_whitespace().next() { let item = Item { appid: entry.appid.to_owned(), - name: name.to_owned(), - description: entry.comment(locale).unwrap_or("").to_owned(), + name: name.to_string(), + description: entry + .comment(locale) + .as_deref() + .unwrap_or("") + .to_owned(), keywords: entry.keywords().map(|keywords| { keywords.split(';').map(String::from).collect() }),