diff --git a/Cargo.lock b/Cargo.lock
index 3ae89f0..90b7415 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -46,6 +46,7 @@ dependencies = [
"serde_json",
"ureq",
"windows",
+ "winres",
]
[[package]]
@@ -82,7 +83,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
- "windows-sys 0.61.2",
+ "windows-sys",
]
[[package]]
@@ -109,7 +110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
- "windows-sys 0.52.0",
+ "windows-sys",
]
[[package]]
@@ -520,7 +521,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
- "windows-sys 0.52.0",
+ "windows-sys",
]
[[package]]
@@ -529,7 +530,7 @@ version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
dependencies = [
- "windows-sys 0.61.2",
+ "windows-sys",
]
[[package]]
@@ -654,7 +655,7 @@ dependencies = [
"getrandom 0.4.1",
"once_cell",
"rustix",
- "windows-sys 0.52.0",
+ "windows-sys",
]
[[package]]
@@ -687,6 +688,15 @@ dependencies = [
"zerovec",
]
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "unicode-ident"
version = "1.0.24"
@@ -866,15 +876,6 @@ dependencies = [
"windows-targets",
]
-[[package]]
-name = "windows-sys"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-dependencies = [
- "windows-targets",
-]
-
[[package]]
name = "windows-sys"
version = "0.61.2"
@@ -948,6 +949,15 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+[[package]]
+name = "winres"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
+dependencies = [
+ "toml",
+]
+
[[package]]
name = "wit-bindgen"
version = "0.51.0"
diff --git a/Cargo.toml b/Cargo.toml
index 1b28e37..5530270 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -26,6 +26,9 @@ features = [
"Win32_UI_Input_KeyboardAndMouse",
]
+[build-dependencies]
+winres = "0.1"
+
[profile.release]
opt-level = "z"
lto = true
diff --git a/build.rs b/build.rs
index fb6a701..427e8f2 100644
--- a/build.rs
+++ b/build.rs
@@ -15,4 +15,9 @@ fn main() {
let version = version.trim().trim_start_matches('v');
println!("cargo:rustc-env=APP_VERSION={version}");
+
+ // Embed the application icon into the executable.
+ let mut res = winres::WindowsResource::new();
+ res.set_icon("src/icons/icon.ico");
+ res.compile().expect("Failed to compile Windows resources");
}
diff --git a/src/icons/16.svg b/src/icons/16.svg
new file mode 100644
index 0000000..7984182
--- /dev/null
+++ b/src/icons/16.svg
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/src/icons/16x16.png b/src/icons/16x16.png
new file mode 100644
index 0000000..bec1057
Binary files /dev/null and b/src/icons/16x16.png differ
diff --git a/src/icons/256.svg b/src/icons/256.svg
new file mode 100644
index 0000000..a38ceab
--- /dev/null
+++ b/src/icons/256.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/src/icons/256x256.png b/src/icons/256x256.png
new file mode 100644
index 0000000..5e25386
Binary files /dev/null and b/src/icons/256x256.png differ
diff --git a/src/icons/32.svg b/src/icons/32.svg
new file mode 100644
index 0000000..447cddf
--- /dev/null
+++ b/src/icons/32.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/src/icons/32x32.png b/src/icons/32x32.png
new file mode 100644
index 0000000..f4bcd5f
Binary files /dev/null and b/src/icons/32x32.png differ
diff --git a/src/icons/48.svg b/src/icons/48.svg
new file mode 100644
index 0000000..2f542ac
--- /dev/null
+++ b/src/icons/48.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/src/icons/48x48.png b/src/icons/48x48.png
new file mode 100644
index 0000000..9f5d19d
Binary files /dev/null and b/src/icons/48x48.png differ
diff --git a/src/icons/icon.ico b/src/icons/icon.ico
new file mode 100644
index 0000000..1c31bae
Binary files /dev/null and b/src/icons/icon.ico differ