From cbcbfe47603ab1dded7a1bcd9d725d3edf1b4d45 Mon Sep 17 00:00:00 2001 From: Demmie <2e3s19@gmail.com> Date: Sun, 4 Jun 2023 13:16:34 -0400 Subject: [PATCH] Add a custom tray icon --- .gitignore | 1 + Cargo.lock | 313 +++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 3 + build.rs | 22 ++++ src/bundle/logo.png | Bin 0 -> 5103 bytes src/bundle/menu.rs | 11 +- 6 files changed, 345 insertions(+), 5 deletions(-) create mode 100644 build.rs create mode 100644 src/bundle/logo.png diff --git a/.gitignore b/.gitignore index ea8c4bf..cac4db0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +src/bundle/logo.argb32 diff --git a/Cargo.lock b/Cargo.lock index 7cfee98..aa44b6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -457,6 +457,7 @@ dependencies = [ "chrono", "clap 4.2.1", "fern", + "image", "ksni", "log", "rust-embed", @@ -477,7 +478,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.6.2", "object", "rustc-demangle", ] @@ -524,6 +525,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + [[package]] name = "bitflags" version = "1.3.2" @@ -575,6 +582,12 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + [[package]] name = "byteorder" version = "1.4.3" @@ -695,6 +708,12 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "colored" version = "1.9.3" @@ -776,6 +795,15 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "crossbeam-channel" version = "0.4.4" @@ -786,6 +814,40 @@ dependencies = [ "maybe-uninit", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.15", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils 0.8.15", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.15", + "memoffset 0.8.0", + "scopeguard", +] + [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -806,6 +868,12 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -1114,6 +1182,22 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "exr" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide 0.7.1", + "rayon-core", + "smallvec", + "zune-inflate", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -1145,6 +1229,15 @@ dependencies = [ "instant", ] +[[package]] +name = "fdeflate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", +] + [[package]] name = "fern" version = "0.6.2" @@ -1169,6 +1262,29 @@ dependencies = [ "version_check", ] +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +dependencies = [ + "crc32fast", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "flume" +version = "0.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1329,8 +1445,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if 1.0.0", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", ] [[package]] @@ -1364,6 +1492,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1529,6 +1666,25 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "image" +version = "0.24.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational", + "num-traits", + "png", + "qoi", + "tiff", +] + [[package]] name = "indexmap" version = "1.9.2" @@ -1645,6 +1801,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + [[package]] name = "js-sys" version = "0.3.61" @@ -1678,6 +1843,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + [[package]] name = "libc" version = "0.2.139" @@ -1821,6 +1992,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" @@ -1846,6 +2026,16 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + [[package]] name = "mio" version = "0.8.6" @@ -1864,7 +2054,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d778b8a8b7b31d8d23c8bbde4e571b483f3962dc9f14f447c14188e8a7fe85c" dependencies = [ - "crossbeam-channel", + "crossbeam-channel 0.4.4", ] [[package]] @@ -1905,6 +2095,15 @@ dependencies = [ "twoway", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -1976,6 +2175,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -2158,6 +2368,26 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +[[package]] +name = "pin-project" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +dependencies = [ + "proc-macro2 1.0.54", + "quote 1.0.26", + "syn 2.0.12", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -2189,6 +2419,19 @@ dependencies = [ "syn 0.15.44", ] +[[package]] +name = "png" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.7.1", +] + [[package]] name = "polling" version = "2.6.0" @@ -2252,6 +2495,15 @@ dependencies = [ "yansi", ] +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -2321,6 +2573,28 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel 0.5.8", + "crossbeam-deque", + "crossbeam-utils 0.8.15", + "num_cpus", +] + [[package]] name = "redfa" version = "0.0.2" @@ -2876,6 +3150,12 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" + [[package]] name = "slab" version = "0.4.8" @@ -2923,6 +3203,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "stable-pattern" @@ -3054,6 +3337,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tiff" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "time" version = "0.1.45" @@ -3649,6 +3943,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + [[package]] name = "winapi" version = "0.2.8" @@ -4054,6 +4354,15 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + [[package]] name = "zvariant" version = "3.12.0" diff --git a/Cargo.toml b/Cargo.toml index 6136d7a..b18c5e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,9 @@ repository = "https://github.com/2e3s/awatcher" name = "awatcher" path = "src/main.rs" +[build-dependencies] +image = { version = "0.24.6" } + [workspace] members = ["watchers"] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..acee9a5 --- /dev/null +++ b/build.rs @@ -0,0 +1,22 @@ +use image::Rgba; +use std::{env, error::Error, fs::File, io::BufReader}; + +fn main() -> Result<(), Box> { + if env::var_os("CARGO_FEATURE_BUNDLE").is_some() { + let argb32 = convert("src/bundle/logo.png")?; + std::fs::write("src/bundle/logo.argb32", argb32)?; + } + + Ok(()) +} + +fn convert(filename: &str) -> Result, Box> { + let buf = BufReader::new(File::open(filename)?); + let img = image::load(buf, image::ImageFormat::Png)?; + let mut img = img.to_rgba8(); + for Rgba(pixel) in img.pixels_mut() { + *pixel = u32::from_be_bytes(*pixel).rotate_right(8).to_be_bytes(); + } + + Ok(img.into_raw()) +} diff --git a/src/bundle/logo.png b/src/bundle/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0aed444f2d4e9e2e0191c7c4b4143810eaa88cd2 GIT binary patch literal 5103 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 R)|3DM002ovPDHLkV1j27unGVG literal 0 HcmV?d00001 diff --git a/src/bundle/menu.rs b/src/bundle/menu.rs index 89c1c00..6126767 100644 --- a/src/bundle/menu.rs +++ b/src/bundle/menu.rs @@ -5,10 +5,14 @@ pub struct Tray { } impl ksni::Tray for Tray { - fn icon_name(&self) -> String { - // Taken from https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html - "appointment-new".into() + fn icon_pixmap(&self) -> Vec { + vec![ksni::Icon { + width: 100, + height: 100, + data: include_bytes!("./logo.argb32").to_vec(), + }] } + fn title(&self) -> String { "Awatcher".into() } @@ -16,6 +20,7 @@ impl ksni::Tray for Tray { vec![ ksni::menu::StandardItem { label: "Open".into(), + // https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html icon_name: "document-properties".into(), activate: { let url = format!("http://{}:{}", self.server_host, self.server_port);