Tell me more ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm frequently logging into different servers from my os x terminal window.

I'd like to assign a color scheme for different hosts so that my terminal windows are easier to tell apart. Can this be done automatically?

share|improve this question

3 Answers

Here's a complete solution. Keep a list of your servers ip addresses and/or domains and the colors you want for them in in ~/.server_colors:

192.168.122.102,Red Sands
192.168.122.103,Ocean
www.foo.com,Grass
foo.com,Grass

Then add this line to ~/.profile to hijack the ssh command:

alias ssh="~/bin/safe_ssh $1"

Then compare whatever's after the @ in your ssh target to your list. If there's a match, run an AppleScript to change the screen to the corresponding color. Here's ~/bin/safe_ssh:

#!/bin/bash
ip=`echo $1 | cut -d"@" -f2`
match=`cat ~/.server_colors | grep $ip | wc -l`
if [ $match -gt 0 ]
then
    color=`cat ~/.server_colors | grep $ip | cut -f2 -d","`
    osascript ~/bin/change_terminal_color.scpt "$color" 2>/dev/null
fi
/usr/bin/ssh $1

And last, here's ~/bin/change_terminal_color.scpt

on run argv
    tell application "Terminal" to set current settings of selected tab of window 1 to (first settings set whose name is (item 1 of argv))
end run

I took most of this code from this blog post.

share|improve this answer

Yes.

Either you use e.g. "screen" and customize it: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html

Or you manage to do it on your SSH Client, if possible.

You could also try this: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

share|improve this answer

I was just looking for the same thing and found this article:

http://akrabat.com/php/osx-terminal-colours/

It uses a php script to change the terminal colors by applescript. You can set up mappings of different colors for each server. Works great for me, though feel the urge to rewrite the php stuff into ruby :)

fk

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.