#screen #info #object #x11 #display

display-info

Cross-platform get display info

30 releases

0.5.4 Feb 2, 2025
0.5.2 Nov 10, 2024
0.5.1 Apr 27, 2024
0.5.0 Mar 5, 2024
0.3.2 Jul 31, 2022

#95 in GUI

Download history 1554/week @ 2024-12-14 984/week @ 2024-12-21 1070/week @ 2024-12-28 1289/week @ 2025-01-04 1580/week @ 2025-01-11 1759/week @ 2025-01-18 1328/week @ 2025-01-25 1837/week @ 2025-02-01 1609/week @ 2025-02-08 1434/week @ 2025-02-15 2763/week @ 2025-02-22 2140/week @ 2025-03-01 1934/week @ 2025-03-08 1909/week @ 2025-03-15 1333/week @ 2025-03-22 1067/week @ 2025-03-29

6,471 downloads per month
Used in 17 crates (6 directly)

Custom license

38KB
815 lines

display-info

Cross-platform get display info for MacOS、Windows、Linux. Like electron Display Object

Example

use display_info::DisplayInfo;
use std::time::Instant;

fn main() {
  let start = Instant::now();

  let display_infos = DisplayInfo::all().unwrap();
  for display_info in display_infos {
    println!("display_info {display_info:?}");
  }
  let display_info = DisplayInfo::from_point(100, 100).unwrap();
  println!("display_info {display_info:?}");
  println!("运行耗时: {:?}", start.elapsed());
}

DisplayInfo struct

  • id u32 - Unique identifier associated with the display.
  • name String - The name of the display
  • friendly_name String - The display friendly name,
  • raw_handle CGDisplay/HMONITOR/Output - Native display raw handle
  • x i32 - The display x coordinate.
  • y i32 - The display y coordinate.
  • width u32 - The display pixel width.
  • height u32 - The display pixel height.
  • width_mm i32 - The width of a display in millimeters. This value may be 0.
  • height_mm i32 - The height of a display in millimeters. This value may be 0.
  • rotation f32 - Can be 0, 90, 180, 270, represents screen rotation in clock-wise degrees.
  • scale_factor f32 - Output device's pixel scale factor.
  • frequency f32 - The display refresh rate.
  • is_primary bool - Whether the screen is the main screen

Linux requirements

On Linux, you need to install libxcblibxrandr

Debian/Ubuntu:

apt-get install libxcb1 libxrandr2

Alpine:

apk add libxcb libxrandr

ArchLinux:

pacman -S libxcb libxrandr

Dependencies

~0.3–46MB
~634K SLoC