deps: Switch from edid-rs to libdisplay-info
This commit is contained in:
parent
546966bf15
commit
adcb81bbe0
4 changed files with 153 additions and 166 deletions
179
Cargo.lock
generated
179
Cargo.lock
generated
|
|
@ -1,6 +1,6 @@
|
||||||
# This file is automatically @generated by Cargo.
|
# This file is automatically @generated by Cargo.
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 4
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ab_glyph"
|
name = "ab_glyph"
|
||||||
|
|
@ -91,7 +91,7 @@ dependencies = [
|
||||||
"ndk-context",
|
"ndk-context",
|
||||||
"ndk-sys 0.6.0+11769913",
|
"ndk-sys 0.6.0+11769913",
|
||||||
"num_enum",
|
"num_enum",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -508,7 +508,7 @@ dependencies = [
|
||||||
"polling",
|
"polling",
|
||||||
"rustix",
|
"rustix",
|
||||||
"slab",
|
"slab",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -553,6 +553,16 @@ version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-expr"
|
||||||
|
version = "0.17.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789"
|
||||||
|
dependencies = [
|
||||||
|
"smallvec",
|
||||||
|
"target-lexicon",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
|
|
@ -630,7 +640,7 @@ name = "clipboard_x11"
|
||||||
version = "0.4.2"
|
version = "0.4.2"
|
||||||
source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265"
|
source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"x11rb",
|
"x11rb",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -803,7 +813,6 @@ dependencies = [
|
||||||
"cosmic-protocols",
|
"cosmic-protocols",
|
||||||
"cosmic-settings-config",
|
"cosmic-settings-config",
|
||||||
"drm-ffi 0.8.0",
|
"drm-ffi 0.8.0",
|
||||||
"edid-rs",
|
|
||||||
"egui",
|
"egui",
|
||||||
"egui_plot",
|
"egui_plot",
|
||||||
"glow 0.12.3",
|
"glow 0.12.3",
|
||||||
|
|
@ -816,6 +825,7 @@ dependencies = [
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libc",
|
"libc",
|
||||||
"libcosmic",
|
"libcosmic",
|
||||||
|
"libdisplay-info",
|
||||||
"libsystemd",
|
"libsystemd",
|
||||||
"log-panics",
|
"log-panics",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
|
@ -835,7 +845,7 @@ dependencies = [
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"smithay",
|
"smithay",
|
||||||
"smithay-egui",
|
"smithay-egui",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"time",
|
"time",
|
||||||
"tiny-skia",
|
"tiny-skia",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
|
@ -908,7 +918,7 @@ dependencies = [
|
||||||
"cosmic-config",
|
"cosmic-config",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_with",
|
"serde_with",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"tracing",
|
"tracing",
|
||||||
"xkbcommon 0.7.0",
|
"xkbcommon 0.7.0",
|
||||||
]
|
]
|
||||||
|
|
@ -950,7 +960,7 @@ dependencies = [
|
||||||
"ron",
|
"ron",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1338,12 +1348,6 @@ dependencies = [
|
||||||
"emath",
|
"emath",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "edid-rs"
|
|
||||||
version = "0.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2ab5fa33485cd85ac354df485819a63360fefa312fe04cffe65e6f175be1522c"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "egui"
|
name = "egui"
|
||||||
version = "0.29.0"
|
version = "0.29.0"
|
||||||
|
|
@ -1674,7 +1678,7 @@ version = "0.11.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d"
|
checksum = "2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1783,7 +1787,7 @@ dependencies = [
|
||||||
"dirs",
|
"dirs",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rust-ini",
|
"rust-ini",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"xdg",
|
"xdg",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -2070,7 +2074,7 @@ checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"presser",
|
"presser",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"winapi",
|
"winapi",
|
||||||
"windows 0.52.0",
|
"windows 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
@ -2147,7 +2151,7 @@ dependencies = [
|
||||||
"com",
|
"com",
|
||||||
"libc",
|
"libc",
|
||||||
"libloading",
|
"libloading",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"widestring",
|
"widestring",
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
@ -2158,6 +2162,12 @@ version = "0.4.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heck"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hermit-abi"
|
name = "hermit-abi"
|
||||||
version = "0.3.9"
|
version = "0.3.9"
|
||||||
|
|
@ -2209,7 +2219,7 @@ dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"toml 0.8.19",
|
"toml 0.8.19",
|
||||||
"unic-langid",
|
"unic-langid",
|
||||||
]
|
]
|
||||||
|
|
@ -2231,7 +2241,7 @@ dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"parking_lot 0.12.3",
|
"parking_lot 0.12.3",
|
||||||
"rust-embed",
|
"rust-embed",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"unic-langid",
|
"unic-langid",
|
||||||
"walkdir",
|
"walkdir",
|
||||||
]
|
]
|
||||||
|
|
@ -2305,7 +2315,7 @@ dependencies = [
|
||||||
"iced_widget",
|
"iced_widget",
|
||||||
"image",
|
"image",
|
||||||
"mime 0.1.0",
|
"mime 0.1.0",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"window_clipboard",
|
"window_clipboard",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -2327,7 +2337,7 @@ dependencies = [
|
||||||
"rustc-hash 2.0.0",
|
"rustc-hash 2.0.0",
|
||||||
"serde",
|
"serde",
|
||||||
"smol_str",
|
"smol_str",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"web-time",
|
"web-time",
|
||||||
"window_clipboard",
|
"window_clipboard",
|
||||||
]
|
]
|
||||||
|
|
@ -2375,7 +2385,7 @@ dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"raw-window-handle",
|
"raw-window-handle",
|
||||||
"rustc-hash 2.0.0",
|
"rustc-hash 2.0.0",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -2388,7 +2398,7 @@ dependencies = [
|
||||||
"iced_tiny_skia",
|
"iced_tiny_skia",
|
||||||
"iced_wgpu",
|
"iced_wgpu",
|
||||||
"log",
|
"log",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2401,7 +2411,7 @@ dependencies = [
|
||||||
"iced_core",
|
"iced_core",
|
||||||
"iced_futures",
|
"iced_futures",
|
||||||
"raw-window-handle",
|
"raw-window-handle",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"window_clipboard",
|
"window_clipboard",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -2442,7 +2452,7 @@ dependencies = [
|
||||||
"rustc-hash 2.0.0",
|
"rustc-hash 2.0.0",
|
||||||
"rustix",
|
"rustix",
|
||||||
"smithay-client-toolkit",
|
"smithay-client-toolkit",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"tiny-xlib",
|
"tiny-xlib",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
"wayland-client",
|
"wayland-client",
|
||||||
|
|
@ -2464,7 +2474,7 @@ dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"ouroboros",
|
"ouroboros",
|
||||||
"rustc-hash 2.0.0",
|
"rustc-hash 2.0.0",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
"window_clipboard",
|
"window_clipboard",
|
||||||
]
|
]
|
||||||
|
|
@ -2472,7 +2482,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "id_tree"
|
name = "id_tree"
|
||||||
version = "1.8.0"
|
version = "1.8.0"
|
||||||
source = "git+https://github.com/Drakulix/id-tree.git?branch=feature/copy_clone#632a57d6d49160e18d7300fa7edae52281ec5482"
|
source = "git+https://github.com/Drakulix/id-tree.git?branch=feature%2Fcopy_clone#632a57d6d49160e18d7300fa7edae52281ec5482"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"snowflake",
|
"snowflake",
|
||||||
]
|
]
|
||||||
|
|
@ -2649,7 +2659,7 @@ dependencies = [
|
||||||
"combine",
|
"combine",
|
||||||
"jni-sys",
|
"jni-sys",
|
||||||
"log",
|
"log",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"walkdir",
|
"walkdir",
|
||||||
"windows-sys 0.45.0",
|
"windows-sys 0.45.0",
|
||||||
]
|
]
|
||||||
|
|
@ -2823,13 +2833,47 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"slotmap",
|
"slotmap",
|
||||||
"taffy",
|
"taffy",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"tracing",
|
"tracing",
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
"url",
|
"url",
|
||||||
"ustr",
|
"ustr",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libdisplay-info"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6935962382041461121f7989421174ad72f157aca74706d46bd302563246f5cf"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.6.0",
|
||||||
|
"libc",
|
||||||
|
"libdisplay-info-derive",
|
||||||
|
"libdisplay-info-sys",
|
||||||
|
"thiserror 2.0.9",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libdisplay-info-derive"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ea1cd31036b732a546d845f9485c56b1b606b5e476b0821c680dd66c8cd6fcee"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.90",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libdisplay-info-sys"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8b86dd88c4008cfe67bafd1e65827a380df933a00e50bc497cf2474ca723863d"
|
||||||
|
dependencies = [
|
||||||
|
"semver",
|
||||||
|
"system-deps",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libloading"
|
name = "libloading"
|
||||||
version = "0.8.5"
|
version = "0.8.5"
|
||||||
|
|
@ -2901,7 +2945,7 @@ dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"serde",
|
"serde",
|
||||||
"sha2",
|
"sha2",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"uuid",
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -3190,7 +3234,7 @@ dependencies = [
|
||||||
"rustc-hash 1.1.0",
|
"rustc-hash 1.1.0",
|
||||||
"spirv",
|
"spirv",
|
||||||
"termcolor",
|
"termcolor",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -3206,7 +3250,7 @@ dependencies = [
|
||||||
"ndk-sys 0.6.0+11769913",
|
"ndk-sys 0.6.0+11769913",
|
||||||
"num_enum",
|
"num_enum",
|
||||||
"raw-window-handle",
|
"raw-window-handle",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -3667,7 +3711,7 @@ version = "0.18.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd"
|
checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck 0.4.1",
|
||||||
"itertools",
|
"itertools",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"proc-macro2-diagnostics",
|
"proc-macro2-diagnostics",
|
||||||
|
|
@ -3881,7 +3925,7 @@ dependencies = [
|
||||||
"drm-fourcc",
|
"drm-fourcc",
|
||||||
"paste",
|
"paste",
|
||||||
"pixman-sys",
|
"pixman-sys",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -4166,7 +4210,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
"libredox 0.1.3",
|
"libredox 0.1.3",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -4442,6 +4486,12 @@ version = "1.0.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a"
|
checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "semver"
|
||||||
|
version = "1.0.24"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sendfd"
|
name = "sendfd"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
|
|
@ -4670,7 +4720,7 @@ dependencies = [
|
||||||
"scopeguard",
|
"scopeguard",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"tracing",
|
"tracing",
|
||||||
"udev",
|
"udev",
|
||||||
"wayland-client",
|
"wayland-client",
|
||||||
|
|
@ -4701,7 +4751,7 @@ dependencies = [
|
||||||
"memmap2 0.9.4",
|
"memmap2 0.9.4",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"rustix",
|
"rustix",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
"wayland-client",
|
"wayland-client",
|
||||||
"wayland-csd-frame",
|
"wayland-csd-frame",
|
||||||
|
|
@ -4904,6 +4954,19 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "system-deps"
|
||||||
|
version = "7.0.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-expr",
|
||||||
|
"heck 0.5.0",
|
||||||
|
"pkg-config",
|
||||||
|
"toml 0.8.19",
|
||||||
|
"version-compare",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "taffy"
|
name = "taffy"
|
||||||
version = "0.3.11"
|
version = "0.3.11"
|
||||||
|
|
@ -4915,6 +4978,12 @@ dependencies = [
|
||||||
"slotmap",
|
"slotmap",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "target-lexicon"
|
||||||
|
version = "0.12.16"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tempfile"
|
name = "tempfile"
|
||||||
version = "3.10.1"
|
version = "3.10.1"
|
||||||
|
|
@ -4942,7 +5011,16 @@ version = "1.0.69"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror-impl",
|
"thiserror-impl 1.0.69",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thiserror"
|
||||||
|
version = "2.0.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc"
|
||||||
|
dependencies = [
|
||||||
|
"thiserror-impl 2.0.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -4956,6 +5034,17 @@ dependencies = [
|
||||||
"syn 2.0.90",
|
"syn 2.0.90",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thiserror-impl"
|
||||||
|
version = "2.0.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.90",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thread_local"
|
name = "thread_local"
|
||||||
version = "1.1.8"
|
version = "1.1.8"
|
||||||
|
|
@ -5498,6 +5587,12 @@ version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version-compare"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version_check"
|
name = "version_check"
|
||||||
version = "0.9.5"
|
version = "0.9.5"
|
||||||
|
|
@ -5821,7 +5916,7 @@ dependencies = [
|
||||||
"raw-window-handle",
|
"raw-window-handle",
|
||||||
"rustc-hash 1.1.0",
|
"rustc-hash 1.1.0",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"wgpu-hal",
|
"wgpu-hal",
|
||||||
"wgpu-types",
|
"wgpu-types",
|
||||||
]
|
]
|
||||||
|
|
@ -5864,7 +5959,7 @@ dependencies = [
|
||||||
"renderdoc-sys",
|
"renderdoc-sys",
|
||||||
"rustc-hash 1.1.0",
|
"rustc-hash 1.1.0",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"web-sys",
|
"web-sys",
|
||||||
"wgpu-types",
|
"wgpu-types",
|
||||||
|
|
@ -5931,7 +6026,7 @@ dependencies = [
|
||||||
"dnd",
|
"dnd",
|
||||||
"mime 0.1.0",
|
"mime 0.1.0",
|
||||||
"raw-window-handle",
|
"raw-window-handle",
|
||||||
"thiserror",
|
"thiserror 1.0.69",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ cosmic-comp-config = {path = "cosmic-comp-config"}
|
||||||
cosmic-config = {git = "https://github.com/pop-os/libcosmic/", features = ["calloop", "macro"]}
|
cosmic-config = {git = "https://github.com/pop-os/libcosmic/", features = ["calloop", "macro"]}
|
||||||
cosmic-protocols = {git = "https://github.com/pop-os/cosmic-protocols", branch = "main", default-features = false, features = ["server"]}
|
cosmic-protocols = {git = "https://github.com/pop-os/cosmic-protocols", branch = "main", default-features = false, features = ["server"]}
|
||||||
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon" }
|
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon" }
|
||||||
edid-rs = {version = "0.1"}
|
libdisplay-info = "0.2.0"
|
||||||
egui = {version = "0.29.0", optional = true}
|
egui = {version = "0.29.0", optional = true}
|
||||||
egui_plot = {version = "0.29.0", optional = true}
|
egui_plot = {version = "0.29.0", optional = true}
|
||||||
glow = "0.12.0"
|
glow = "0.12.0"
|
||||||
|
|
|
||||||
|
|
@ -677,7 +677,9 @@ fn create_output_for_conn(drm: &mut DrmDevice, conn: connector::Handle) -> Resul
|
||||||
.get_connector(conn, false)
|
.get_connector(conn, false)
|
||||||
.with_context(|| "Failed to query connector info")?;
|
.with_context(|| "Failed to query connector info")?;
|
||||||
let interface = drm_helpers::interface_name(drm, conn)?;
|
let interface = drm_helpers::interface_name(drm, conn)?;
|
||||||
let edid_info = drm_helpers::edid_info(drm, conn);
|
let edid_info = drm_helpers::edid_info(drm, conn)
|
||||||
|
.inspect_err(|err| warn!(?err, "failed to get EDID for {}", interface))
|
||||||
|
.ok();
|
||||||
let (phys_w, phys_h) = conn_info.size().unwrap_or((0, 0));
|
let (phys_w, phys_h) = conn_info.size().unwrap_or((0, 0));
|
||||||
|
|
||||||
Ok(Output::new(
|
Ok(Output::new(
|
||||||
|
|
@ -694,12 +696,12 @@ fn create_output_for_conn(drm: &mut DrmDevice, conn: connector::Handle) -> Resul
|
||||||
},
|
},
|
||||||
make: edid_info
|
make: edid_info
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|info| info.manufacturer.clone())
|
.and_then(|info| info.make())
|
||||||
.unwrap_or_else(|_| String::from("Unknown")),
|
.unwrap_or_else(|| String::from("Unknown")),
|
||||||
model: edid_info
|
model: edid_info
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|info| info.model.clone())
|
.and_then(|info| info.model())
|
||||||
.unwrap_or_else(|_| String::from("Unknown")),
|
.unwrap_or_else(|| String::from("Unknown")),
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
|
use libdisplay_info::{edid::DisplayDescriptorTag, info::Info};
|
||||||
use smithay::{
|
use smithay::{
|
||||||
reexports::drm::control::{
|
reexports::drm::control::{
|
||||||
atomic::AtomicModeReq,
|
atomic::AtomicModeReq,
|
||||||
|
|
@ -12,11 +13,7 @@ use smithay::{
|
||||||
},
|
},
|
||||||
utils::Transform,
|
utils::Transform,
|
||||||
};
|
};
|
||||||
use std::{
|
use std::{collections::HashMap, ops::Range};
|
||||||
collections::HashMap,
|
|
||||||
ops::Range,
|
|
||||||
panic::{catch_unwind, AssertUnwindSafe},
|
|
||||||
};
|
|
||||||
|
|
||||||
pub fn display_configuration(
|
pub fn display_configuration(
|
||||||
device: &mut impl ControlDevice,
|
device: &mut impl ControlDevice,
|
||||||
|
|
@ -169,59 +166,24 @@ pub fn interface_name(device: &impl ControlDevice, connector: connector::Handle)
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct EdidInfo {
|
pub fn edid_info(device: &impl ControlDevice, connector: connector::Handle) -> Result<Info> {
|
||||||
pub model: String,
|
|
||||||
pub manufacturer: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn edid_info(device: &impl ControlDevice, connector: connector::Handle) -> Result<EdidInfo> {
|
|
||||||
use edid_rs::{parse as edid_parse, MonitorDescriptor};
|
|
||||||
|
|
||||||
let edid_prop = get_prop(device, connector, "EDID")?;
|
let edid_prop = get_prop(device, connector, "EDID")?;
|
||||||
let edid_info = device.get_property(edid_prop)?;
|
let edid_info = device.get_property(edid_prop)?;
|
||||||
let mut manufacturer = "Unknown".into();
|
|
||||||
let mut model = "Unknown".into();
|
let mut edid = None;
|
||||||
let props = device.get_properties(connector)?;
|
let props = device.get_properties(connector)?;
|
||||||
let (ids, vals) = props.as_props_and_values();
|
let (ids, vals) = props.as_props_and_values();
|
||||||
for (&id, &val) in ids.iter().zip(vals.iter()) {
|
for (&id, &val) in ids.iter().zip(vals.iter()) {
|
||||||
if id == edid_prop {
|
if id == edid_prop {
|
||||||
if let property::Value::Blob(edid_blob) = edid_info.value_type().convert_value(val) {
|
if let property::Value::Blob(edid_blob) = edid_info.value_type().convert_value(val) {
|
||||||
let blob = device.get_property_blob(edid_blob)?;
|
let blob = device.get_property_blob(edid_blob)?;
|
||||||
let mut reader = std::io::Cursor::new(blob);
|
edid = Some(Info::parse_edid(&blob).context("Unable to parse edid")?);
|
||||||
if let Some(edid) =
|
|
||||||
catch_unwind(AssertUnwindSafe(move || edid_parse(&mut reader).ok()))
|
|
||||||
.ok()
|
|
||||||
.flatten()
|
|
||||||
{
|
|
||||||
manufacturer = {
|
|
||||||
let id = edid.product.manufacturer_id;
|
|
||||||
let code = [id.0, id.1, id.2];
|
|
||||||
get_manufacturer(&code).into()
|
|
||||||
};
|
|
||||||
model = if let Some(MonitorDescriptor::MonitorName(name)) = edid
|
|
||||||
.descriptors
|
|
||||||
.0
|
|
||||||
.iter()
|
|
||||||
.find(|x| matches!(x, MonitorDescriptor::MonitorName(_)))
|
|
||||||
{
|
|
||||||
let mut name = name.clone();
|
|
||||||
if let Some(idx) = name.find('\0') {
|
|
||||||
name.truncate(idx);
|
|
||||||
}
|
|
||||||
name
|
|
||||||
} else {
|
|
||||||
format!("{}", edid.product.product_code)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(EdidInfo {
|
edid.ok_or(anyhow!("No EDID found"))
|
||||||
model,
|
|
||||||
manufacturer,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_prop(
|
pub fn get_prop(
|
||||||
|
|
@ -257,78 +219,6 @@ pub fn get_property_val(
|
||||||
anyhow::bail!("No prop found for {}", name)
|
anyhow::bail!("No prop found for {}", name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_manufacturer(vendor: &[char; 3]) -> &'static str {
|
|
||||||
match vendor {
|
|
||||||
['A', 'A', 'A'] => "Avolites Ltd",
|
|
||||||
['A', 'C', 'I'] => "Ancor Communications Inc",
|
|
||||||
['A', 'C', 'R'] => "Acer Technologies",
|
|
||||||
['A', 'D', 'A'] => "Addi-Data GmbH",
|
|
||||||
['A', 'P', 'P'] => "Apple Computer Inc",
|
|
||||||
['A', 'S', 'K'] => "Ask A/S",
|
|
||||||
['A', 'V', 'T'] => "Avtek (Electronics) Pty Ltd",
|
|
||||||
['B', 'N', 'O'] => "Bang & Olufsen",
|
|
||||||
['B', 'N', 'Q'] => "BenQ Corporation",
|
|
||||||
['C', 'M', 'N'] => "Chimei Innolux Corporation",
|
|
||||||
['C', 'M', 'O'] => "Chi Mei Optoelectronics corp.",
|
|
||||||
['C', 'R', 'O'] => "Extraordinary Technologies PTY Limited",
|
|
||||||
['D', 'E', 'L'] => "Dell Inc.",
|
|
||||||
['D', 'G', 'C'] => "Data General Corporation",
|
|
||||||
['D', 'O', 'N'] => "DENON, Ltd.",
|
|
||||||
['E', 'N', 'C'] => "Eizo Nanao Corporation",
|
|
||||||
['E', 'P', 'H'] => "Epiphan Systems Inc.",
|
|
||||||
['E', 'X', 'P'] => "Data Export Corporation",
|
|
||||||
['F', 'N', 'I'] => "Funai Electric Co., Ltd.",
|
|
||||||
['F', 'U', 'S'] => "Fujitsu Siemens Computers GmbH",
|
|
||||||
['G', 'S', 'M'] => "Goldstar Company Ltd",
|
|
||||||
['H', 'I', 'Q'] => "Kaohsiung Opto Electronics Americas, Inc.",
|
|
||||||
['H', 'S', 'D'] => "HannStar Display Corp",
|
|
||||||
['H', 'T', 'C'] => "Hitachi Ltd",
|
|
||||||
['H', 'W', 'P'] => "Hewlett Packard",
|
|
||||||
['I', 'N', 'T'] => "Interphase Corporation",
|
|
||||||
['I', 'N', 'X'] => "Communications Supply Corporation (A division of WESCO)",
|
|
||||||
['I', 'T', 'E'] => "Integrated Tech Express Inc",
|
|
||||||
['I', 'V', 'M'] => "Iiyama North America",
|
|
||||||
['L', 'E', 'N'] => "Lenovo Group Limited",
|
|
||||||
['M', 'A', 'X'] => "Rogen Tech Distribution Inc",
|
|
||||||
['M', 'E', 'G'] => "Abeam Tech Ltd",
|
|
||||||
['M', 'E', 'I'] => "Panasonic Industry Company",
|
|
||||||
['M', 'T', 'C'] => "Mars-Tech Corporation",
|
|
||||||
['M', 'T', 'X'] => "Matrox",
|
|
||||||
['N', 'E', 'C'] => "NEC Corporation",
|
|
||||||
['N', 'E', 'X'] => "Nexgen Mediatech Inc.",
|
|
||||||
['O', 'N', 'K'] => "ONKYO Corporation",
|
|
||||||
['O', 'R', 'N'] => "ORION ELECTRIC CO., LTD.",
|
|
||||||
['O', 'T', 'M'] => "Optoma Corporation",
|
|
||||||
['O', 'V', 'R'] => "Oculus VR, Inc.",
|
|
||||||
['P', 'H', 'L'] => "Philips Consumer Electronics Company",
|
|
||||||
['P', 'I', 'O'] => "Pioneer Electronic Corporation",
|
|
||||||
['P', 'N', 'R'] => "Planar Systems, Inc.",
|
|
||||||
['Q', 'D', 'S'] => "Quanta Display Inc.",
|
|
||||||
['R', 'A', 'T'] => "Rent-A-Tech",
|
|
||||||
['R', 'E', 'N'] => "Renesas Technology Corp.",
|
|
||||||
['S', 'A', 'M'] => "Samsung Electric Company",
|
|
||||||
['S', 'A', 'N'] => "Sanyo Electric Co., Ltd.",
|
|
||||||
['S', 'E', 'C'] => "Seiko Epson Corporation",
|
|
||||||
['S', 'H', 'P'] => "Sharp Corporation",
|
|
||||||
['S', 'I', 'I'] => "Silicon Image, Inc.",
|
|
||||||
['S', 'N', 'Y'] => "Sony",
|
|
||||||
['S', 'T', 'D'] => "STD Computer Inc",
|
|
||||||
['S', 'V', 'S'] => "SVSI",
|
|
||||||
['S', 'Y', 'N'] => "Synaptics Inc",
|
|
||||||
['T', 'C', 'L'] => "Technical Concepts Ltd",
|
|
||||||
['T', 'O', 'P'] => "Orion Communications Co., Ltd.",
|
|
||||||
['T', 'S', 'B'] => "Toshiba America Info Systems Inc",
|
|
||||||
['T', 'S', 'T'] => "Transtream Inc",
|
|
||||||
['U', 'N', 'K'] => "Unknown",
|
|
||||||
['V', 'E', 'S'] => "Vestel Elektronik Sanayi ve Ticaret A. S.",
|
|
||||||
['V', 'I', 'T'] => "Visitech AS",
|
|
||||||
['V', 'I', 'Z'] => "VIZIO, Inc",
|
|
||||||
['V', 'S', 'C'] => "ViewSonic Corporation",
|
|
||||||
['Y', 'M', 'H'] => "Yamaha Corporation",
|
|
||||||
_ => "Unknown",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns refresh rate in milliherz
|
// Returns refresh rate in milliherz
|
||||||
pub fn calculate_refresh_rate(mode: Mode) -> u32 {
|
pub fn calculate_refresh_rate(mode: Mode) -> u32 {
|
||||||
let htotal = mode.hsync().2 as u32;
|
let htotal = mode.hsync().2 as u32;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue