Make Cosmic Files show .exe icons (#2070)

* [Feature Request] Make Cosmic Files show .exe icons like Dolphin

* Sped Up Icon Extraction

* Compacted Code

* Replace wrestool with pelite crate for .exe icon extraction

* Run PE icon extraction as external thumbnailer

* Use dedicated external EXE thumbnailer

* Remove embedded EXE thumbnailer

* Move cosmic-files-thumbnailer to new crate

---------

Co-authored-by: ZlordHUN <137647604+ZlordHUN@users.noreply.github.com>
This commit is contained in:
Jeremy Soller 2026-09-21 13:25:53 -06:00 • committed by GitHub
parent c0b8a8c60a
commit b326e48cf6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 356 additions and 9 deletions

48
Cargo.lock generated
View file

@ -1470,6 +1470,14 @@ dependencies = [
"zbus 4.4.0",
]
[[package]]
name = "cosmic-files-thumbnailer"
version = "1.9.0"
dependencies = [
"image",
"pelite",
]
[[package]]
name = "cosmic-freedesktop-icons"
version = "0.4.0"
@ -1793,6 +1801,15 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376"
[[package]]
name = "dataview"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daba87f72c730b508641c9fb6411fc9bba73939eed2cab611c399500511880d0"
dependencies = [
"derive_pod",
]
[[package]]
name = "deflate64"
version = "0.1.12"
@ -1839,6 +1856,12 @@ dependencies = [
"serde_core",
]
[[package]]
name = "derive_pod"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ea6706d74fca54e15f1d40b5cf7fe7f764aaec61352a9fcec58fe27e042fc8"
[[package]]
name = "derive_setters"
version = "0.1.9"
@ -4980,6 +5003,12 @@ dependencies = [
"memoffset",
]
[[package]]
name = "no-std-compat"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
[[package]]
name = "no_std_io2"
version = "0.9.4"
@ -5578,6 +5607,25 @@ dependencies = [
"hmac",
]
[[package]]
name = "pelite"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88dccf4bd32294364aeb7bd55d749604450e9db54605887551f21baea7617685"
dependencies = [
"dataview",
"libc",
"no-std-compat",
"pelite-macros",
"winapi",
]
[[package]]
name = "pelite-macros"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a7cf3f8ecebb0f4895f4892a8be0a0dc81b498f9d56735cb769dc31bf00815b"
[[package]]
name = "percent-encoding"
version = "2.3.2"