On Fri, 22 Jan 2016 00:09:23 -0500
Steve Litt <[email protected]> wrote:

> different color terminals for
> ssh sessions

I had played a bit with the tiling and highly (GUI) configurable
"Terminator" but was bounced back to xterm very quickly due to its
footprint and wrote the following secremote.sh script. It has not been
tested with more than the few defined colors but I am not aware of any
limitations other than that of the X11 palette. As it is released to
the public now: feel free to use it as you like.

------------------
#!/bin/bash

# this script takes "user@host" or a hostname/IP as argument to 
# establish a ssh connection in an individually background-colored 
# xterm window as defined below

# connection definitions: multiple connections per color separated by 
# colons, sequential numbering is required

CONNS0=gate.lan:[email protected]
[email protected]:userx@ip
CONNS2=server2:sdfsdf.sdf
CONNS3=dljfghldkjf:[email protected]
CONNS4=

# color definitions: numbering according to connection definitions

COLOR0=lightcyan
COLOR1=bisque
COLOR2=lightgrey
COLOR3=palegreen
COLOR4=
COLORELSE=honeydew

# shuffling variables

CONNALL=`set | grep CONNS`

CONNEXP=`echo "$CONNALL" | \
        sed     -e 's/\./\\\./g' \
                -e 's/CONNS[0-9]*\=//' \
                -e s/\'//g \
                -e 's/\:/\|/'`

CONNARR=($CONNEXP)

CONNLIN=`echo "${CONNARR[@]}" | \
        sed -e 's/\ /\|/g'`

COUNT=0

# assigning color to connection

if  [[ "$@" =~ ^($CONNLIN)$ ]] ; then
        while (( "$COUNT" < ${#CONNARR[@]} )) ; do
                if [[ "$@" =~ ^(${CONNARR[$COUNT]})$ ]] ; then
                        break
                else
                        COUNT=$(($COUNT+1))
                fi
        done
elif  [[ "$@" =~ \@($CONNLIN)$ ]] ; then
        while (( "$COUNT" < ${#CONNARR[@]} )) ; do
                if [[ "$@" =~ ^(${CONNARR[$COUNT]})$ ]] ; then
                        break
                elif [[ "$@" =~ .*(${CONNARR[$COUNT]})$ ]] ; then
                        break
                else
                        COUNT=$(($COUNT+1))
                fi
        done
else
        COUNT=ELSE
fi

# colors, not numbers

COLOR=COLOR"$COUNT"
COLOR="${!COLOR}"

# start xterm and connect to server

xterm -bg "$COLOR" -T "${@/*@/}" -e ssh "$@" &

exit 0

------------------

Now I have a bunch of one-liners like the following in $PATH. This
might be less elegant but (form follows function) saves me even more
typing:

------------------
#!/bin/bash
xterm -bg bisque -T hostname -e ssh user@host &
exit 0
------------------

And of course some defaults in Xresources:

------------------
xterm*Background:       beige
xterm*Foreground:       black
xterm*faceName:         Inconsolata:size=11
------------------

_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to