Files
neo64fetch/src/helpers/terminal.rs

39 lines
1.1 KiB
Rust
Raw Normal View History

2026-01-05 20:42:12 -05:00
use std::env;
use sysinfo::System;
pub fn get_terminal_info() -> String {
let term_env = env::var("TERM_PROGRAM")
.or_else(|_| env::var("TERM"))
.unwrap_or_default();
let term_ver = env::var("TERM_PROGRAM_VERSION").unwrap_or_default();
if !term_env.is_empty() && term_env != "xterm-256color" && term_env != "xterm" {
let clean_name = term_env
.replace("com.apple.", "") // Apple Terminal
.replace("com.mitchellh.", "") // Ghostty
.replace(".app", "");
return if term_ver.is_empty() {
clean_name
} else {
format!("{} {}", clean_name, term_ver)
};
}
let mut sys = System::new();
sys.refresh_processes(sysinfo::ProcessesToUpdate::All, true);
let my_pid = sysinfo::get_current_pid().unwrap_or(sysinfo::Pid::from(0));
if let Some(process) = sys.process(my_pid) {
if let Some(parent_pid) = process.parent() {
if let Some(parent_proc) = sys.process(parent_pid) {
return parent_proc.name().to_string_lossy().replace(".app", "");
}
}
}
"unknown".to_string()
}