8 releases

0.1.7 Aug 11, 2023
0.1.6 Aug 6, 2023
0.1.1 Jul 28, 2023

#10 in #detector

MIT/Apache

19KB
425 lines

term-detect

Terminal emulator detector

Implementation details

It works using 3 methods.

  1. TERMINAL environment variable
    The terminal is detected by reading the TERMINAL environment variable.
  2. DE (desktop environment) specific checks
    The terminal is detected by checking DE-specific config files.
  3. $PATH search
    The terminal from a list is picked if it's found in $PATH.

Examples

Run fish in private mode in a terminal window. Don't close the window when the command ends.

use std::process::Command;
use term_detect::{DetectionError, InTerminalAuto};

fn main() -> Result<(), DetectionError> {
    let child = Command::new("fish")
        .arg("--private")
        // Konsole-specific flag
        .in_terminal_args(["--noclose"])?
        .spawn()?
        .wait()?;
    Ok(())
}

Dependencies

~0.3–0.8MB
~18K SLoC