|
1 | 1 | #!/usr/bin/env raku
|
2 | 2 | use Terminal::Capabilities::Autodetect;
|
3 | 3 |
|
4 |
| -my ($caps, $terminal, $version) = terminal-env-detect; |
5 |
| -put "Terminal: {$terminal // 'unknown'}"; |
6 |
| -put "Version: {$version // 'unknown'}"; |
7 |
| -put 'Caps:'; |
8 |
| - |
9 |
| -for < symbol-set vt100-boxes bold italic inverse underline |
10 |
| - color3bit colorbright color8bit color24bit |
11 |
| - emoji-text emoji-color emoji-skin |
12 |
| - emoji-iso emoji-reg emoji-zwj > { |
13 |
| - printf " %-11s %s\n", $_, $caps."$_"(); |
| 4 | +constant BOLD_YELLOW = "\e[1;33m"; |
| 5 | +constant RESET = "\e[0m"; |
| 6 | + |
| 7 | +# Display a section of detected environment variables |
| 8 | +sub section($section, @vars) { |
| 9 | + put BOLD_YELLOW ~ $section ~ RESET; |
| 10 | + printf("%-22s %s\n", $_, %*ENV{$_} // '') for @vars; |
| 11 | + put ''; |
| 12 | +} |
| 13 | + |
| 14 | + |
| 15 | +# Show current values of all known terminal-related environment variables |
| 16 | +sub show-env() { |
| 17 | + section('General', < LANG TERM COLORTERM COLORFGBG >); |
| 18 | + section('Alacritty', < ALACRITTY_WINDOW_ID ALACRITTY_LOG ALACRITTY_SOCKET >); |
| 19 | + section('CRT', < COLORSCHEMES_DIR KB_LAYOUT_DIR >); |
| 20 | + section('kitty', < KITTY_WINDOW_ID KITTY_PID KITTY_PUBLIC_KEY KITTY_INSTALLATION_DIR >); |
| 21 | + section('Konsole', < KONSOLE_DBUS_SERVICE KONSOLE_DBUS_SESSION KONSOLE_DBUS_WINDOW >); |
| 22 | + section('Misc', < TERM_PROGRAM TERM_PROGRAM_VERSION >); |
| 23 | + section('MLTerm', [ 'MLTERM', ]); |
| 24 | + section('Qt', < D_DISABLE_RT_SCREEN_SCALE QT_SCALE_FACTOR_ROUNDING_POLICY >); |
| 25 | + section('Terminator', < TERMINATOR_DBUS_NAME TERMINATOR_DBUS_PATH TERMINATOR_UUID >); |
| 26 | + section('Terminology', < TERMINOLOGY XTERM_256_COLORS >); |
| 27 | + section('Zutty', [ 'ZUTTY_VERSION', ]); |
| 28 | + section('VTE', < VTE_VERSION TILIX_ID GNOME_TERMINAL_SERVICE GNOME_TERMINAL_SCREEN >); |
| 29 | + section('Xterm', < XTERM_VERSION XTERM_SHELL XTERM_LOCALE >); |
| 30 | +} |
| 31 | + |
| 32 | + |
| 33 | +#| Show autodetected terminal capabilities |
| 34 | +sub MAIN(Bool :$show-env, #= Show known terminal-related environment values also |
| 35 | + ) { |
| 36 | + if $show-env { |
| 37 | + show-env; |
| 38 | + put BOLD_YELLOW ~ 'Detected' ~ RESET; |
| 39 | + } |
| 40 | + |
| 41 | + my ($caps, $terminal, $version) = terminal-env-detect; |
| 42 | + put "Terminal: {$terminal // 'unknown'}"; |
| 43 | + put "Version: {$version // 'unknown'}"; |
| 44 | + put 'Caps:'; |
| 45 | + |
| 46 | + for < symbol-set vt100-boxes bold italic inverse underline |
| 47 | + color3bit colorbright color8bit color24bit |
| 48 | + emoji-text emoji-color emoji-skin |
| 49 | + emoji-iso emoji-reg emoji-zwj > { |
| 50 | + printf " %-11s %s\n", $_, $caps."$_"(); |
| 51 | + } |
14 | 52 | }
|
0 commit comments