8 releases

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

#341 in Command-line interface

Download history 5/week @ 2024-02-23 3/week @ 2024-03-01 14/week @ 2024-03-08 7/week @ 2024-03-15 4/week @ 2024-03-29 107/week @ 2024-04-05 4/week @ 2024-04-12

115 downloads per month

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.4–0.9MB
~20K SLoC