detectTerminal function
Detect the current terminal emulator from environment variables.
Implementation
String? detectTerminal() {
final env = Platform.environment;
// Check TERM_PROGRAM first (most reliable).
final termProgram = env['TERM_PROGRAM'];
if (termProgram != null) {
if (termProgram == 'Apple_Terminal') return 'Apple_Terminal';
if (termProgram == 'vscode') return 'vscode';
if (termProgram.contains('cursor')) return 'cursor';
if (termProgram.contains('windsurf')) return 'windsurf';
if (termProgram.contains('Alacritty')) return 'alacritty';
if (termProgram.contains('iTerm')) return 'iTerm.app';
if (termProgram.contains('WezTerm')) return 'WezTerm';
if (termProgram.contains('WarpTerminal')) return 'WarpTerminal';
if (termProgram.contains('ghostty')) return 'ghostty';
if (termProgram.contains('kitty')) return 'kitty';
}
// Check for Zed.
if (env['ZED_TERM'] != null) return 'zed';
// Check for VSCode via environment variables.
if (env['VSCODE_GIT_ASKPASS_MAIN'] != null) return 'vscode';
return termProgram;
}