auto-detect which terminal emulator we're talking to
Termdetect is a script that auto-detects which terminal you're using (eg. Putty, Xterm, Konsole). It does its job solely by communicating with the terminal via escape codes, so it's much more reliable than $TERM. It works no matter how many SSH hops you've made.
There are various ways to use it, but one way to use it is to automatically set your $TERM:
export TERM=$(termdetect -t)
Terminals currently detected — aterm, dtterm, iterm2.app, konsole, linux (console), mosh, mrxvt, putty, rxvt, screen, securecrt, teraterm, terminal.app, tmux, VTE (Gnome Terminal, XFCE4 Terminal, Roxterm, etc), and xterm.
Terdetect figures out a "fingerprint" of the current terminal by sending various ANSI escape codes to the terminal and seeing how the terminal responds. It looks up the fingerprint in a database of known terminal fingerprints, and reports which terminal matches the fingerprint.
curl -L http://is.gd/termdetect -o termdetect; chmod +x termdetect # or wget http://is.gd/termdetect; chmod +x termdetect
Works on any Un*x or OS/X. Self-sufficient, nothing else is required.
" ~/.vimrc syntax on if &t_Co >= 256 || has('gui_running') " your prefered colorscheme when the terminal supports 256 colors let g:solarized_termcolors=&t_Co colorscheme solarized else " your prefered colorscheme when the terminal supports 16 colors colorscheme pablo endif
Most people have learned to mistrust $TERM and terminfo, and so hard-code everything. Once you're able to trust them again, your configuration can be much more flexible and adaptive.