pub struct SystemInfo {Show 61 fields
pub os: String,
pub kernel: Option<String>,
pub hostname: Option<String>,
pub arch: String,
pub cpu: String,
pub cpu_cores: usize,
pub cpu_core_info: String,
pub memory: String,
pub swap: String,
pub uptime: String,
pub processes: usize,
pub load_avg: Option<String>,
pub disks: Vec<String>,
pub temps: Vec<String>,
pub networks: Vec<String>,
pub boot_time: String,
pub battery: Option<String>,
pub shell: Option<String>,
pub terminal: Option<String>,
pub desktop: Option<String>,
pub cpu_freq: Option<String>,
pub users: usize,
pub gpu: Vec<String>,
pub packages: Option<usize>,
pub current_user: Option<String>,
pub local_ip: Option<String>,
pub public_ip: Option<String>,
pub active_interface: Option<String>,
pub motherboard: Option<String>,
pub bios: Option<String>,
pub displays: Vec<String>,
pub audio: Option<String>,
pub wifi: Option<String>,
pub bluetooth: Option<String>,
pub ui_theme: Option<String>,
pub icons: Option<String>,
pub cursor: Option<String>,
pub font: Option<String>,
pub terminal_font: Option<String>,
pub camera: Vec<String>,
pub gamepad: Vec<String>,
pub cpu_cache: Option<String>,
pub cpu_usage: Option<String>,
pub physical_disks: Vec<String>,
pub physical_memory: Option<String>,
pub init_system: Option<String>,
pub chassis: Option<String>,
pub locale: Option<String>,
pub bootmgr: Option<String>,
pub editor: Option<String>,
pub weather: Option<String>,
pub wm: Option<String>,
pub dns: Vec<String>,
pub domain: Option<String>,
pub domain_search: Vec<String>,
pub terminal_size: Option<String>,
pub btrfs: Vec<String>,
pub zpool: Vec<String>,
pub login_manager: Option<String>,
pub brightness: Option<String>,
pub power_adapter: Option<String>,
}Expand description
Comprehensive system information data structure.
This struct holds all the metrics collected from the system, ranging from OS details to hardware specs and network status.
Fields§
§os: StringOperating system name and version.
kernel: Option<String>Kernel version.
hostname: Option<String>System hostname.
arch: StringCPU architecture (e.g., x86_64).
cpu: StringCPU model brand string.
cpu_cores: usizeTotal number of logical CPU cores.
cpu_core_info: StringFormatted core topology string (e.g. “8C / 16T” or “6P + 4E / 16T”).
memory: StringFormatted memory usage (Used / Total).
swap: StringFormatted swap usage (Used / Total).
uptime: StringSystem uptime formatted as a duration.
processes: usizeNumber of currently running processes.
load_avg: Option<String>Load average (1, 5, 15 minutes).
disks: Vec<String>List of mounted disks with usage information.
temps: Vec<String>Hardware component temperatures.
networks: Vec<String>Network interface statistics and status.
boot_time: StringSystem boot time in ISO 8601 format.
battery: Option<String>Battery status (currently placeholder for future feature).
shell: Option<String>Path to the current user’s shell.
terminal: Option<String>Name of the terminal emulator in use.
desktop: Option<String>Detected desktop environment or window manager.
cpu_freq: Option<String>Current CPU frequency (formatted).
users: usizeNumber of interactive users (UID >= 1000).
gpu: Vec<String>List of detected GPUs with model names.
packages: Option<usize>Total count of installed packages across supported managers.
current_user: Option<String>Name of the user running the process.
local_ip: Option<String>Primary local IP address.
public_ip: Option<String>Public IP address (best effort).
active_interface: Option<String>Name of the active/default network interface.
motherboard: Option<String>Detected motherboard name and manufacturer.
bios: Option<String>Detected BIOS details.
displays: Vec<String>List of connected display resolutions and refresh rates.
audio: Option<String>Detected active audio driver/server and devices.
wifi: Option<String>Connected Wi-Fi SSID and speed.
bluetooth: Option<String>Bluetooth power status.
ui_theme: Option<String>UI Theme (GTK, Qt, macOS, Windows).
icons: Option<String>Icon theme (GTK/Qt).
cursor: Option<String>Cursor theme (GTK/Qt).
font: Option<String>System Font.
terminal_font: Option<String>Terminal Font (configured in terminal emulator).
camera: Vec<String>Connected camera/webcam names.
gamepad: Vec<String>Connected gamepad/controller names.
cpu_cache: Option<String>CPU cache sizes (L1d, L1i, L2, L3).
cpu_usage: Option<String>Current CPU utilization as a percentage.
physical_disks: Vec<String>Physical disk models, sizes, and types.
physical_memory: Option<String>Physical memory (RAM) slot summary — type, speed, capacity.
init_system: Option<String>PID 1 / init system (systemd, runit, OpenRC, launchd, etc.).
chassis: Option<String>Chassis type (Desktop, Laptop, Server, etc.).
locale: Option<String>System locale (from $LANG / $LC_ALL).
bootmgr: Option<String>Second-stage bootloader (GRUB, systemd-boot, etc.).
editor: Option<String>Default editor ($VISUAL / $EDITOR).
weather: Option<String>Current weather from Open-Meteo.
wm: Option<String>Active window manager name.
dns: Vec<String>Configured DNS nameservers.
domain: Option<String>Configured DNS domain name (from domain or first search entry in resolv.conf).
domain_search: Vec<String>Per-interface DNS search domain lists (from resolvectl or resolv.conf search).
terminal_size: Option<String>Terminal dimensions as “COLSxROWS”.
btrfs: Vec<String>Mounted btrfs filesystems with label and space allocation.
zpool: Vec<String>Imported ZFS pools with allocation and health status.
login_manager: Option<String>Active display/login manager (GDM, SDDM, LightDM, …). Linux only.
brightness: Option<String>Current backlight brightness as a percentage. Linux only.
power_adapter: Option<String>AC power adapter name and connection state. Linux only.
Implementations§
Source§impl SystemInfo
impl SystemInfo
Sourcepub fn collect(opts: CollectOptions) -> Result<Self>
pub fn collect(opts: CollectOptions) -> Result<Self>
Collects system information using sysinfo and environment probes.
This method aggregates data from the operating system, hardware,
and current user environment into a SystemInfo struct.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SystemInfo
impl RefUnwindSafe for SystemInfo
impl Send for SystemInfo
impl Sync for SystemInfo
impl Unpin for SystemInfo
impl UnsafeUnpin for SystemInfo
impl UnwindSafe for SystemInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more