osx - muda a cor do terminal com base no usuário

0

o que eu quero alcançar:

toda vez que eu faço logon em uma máquina via ssh com um usuário específico - > "perigo"    como ssh danger@somehost

Eu quero que o terminal mude seu fundo para vermelho, então eu tenho um feedback visual que estou em uma festa com um usuário específico e não terminal em minha própria máquina.

Eu só posso definir as opções manualmente e eu não tenho uma pista, deve haver algo que eu posso escrever no bashprofile?!

para qualquer dica, obrigado antecipadamente!

    
por john Smith 03.02.2014 / 00:44

1 resposta

1

Eu fiz isso usando iTerm2 e alguns AppleScript. Aqui está a função para shells (bash ou zsh) que muda a cor de fundo:

function iterm_bg_color() {
  local tty=$(tty)
  osascript -e "
    tell application \"iTerm\"
      repeat with theTerminal in terminals
        tell theTerminal
          try
            tell session id \"$tty\"
              set background color to {(($1 * 257)), (($2 * 257)), (($3 * 257))} as RGB color
            end tell
          on error errmesg number errn
          end try
        end tell
      end repeat
    end tell"
}

Use-o assim para tornar o fundo vermelho:

$ iterm_bg_color 255 0 0

Eu também fiz alguns aliases para o atalho que iniciava o ssh como algum usuário, assim:

alias ssd="iterm_bg_color 30 0 0; ssh danger@somehost; iterm_bg_color 0 0 0"

Ou você poderia escrever um wrapper que colorisse o ssh inteiramente com base em um usuário. Algo parecido, por bash :

function ssh() {
    if [[ $1 == danger@* ]]; then
        iterm_bg_color 50 0 0
        /usr/bin/ssh "$@"
        iterm_bg_color 0 0 0
    else
        /usr/bin/ssh "$@"
    fi
}

ou para zsh :

function ssh() {
    if [[ "$1" =~ "danger@.*" ]]; then
        iterm_bg_color 50 0 0
        /usr/bin/ssh $*
        iterm_bg_color 0 0 0
    else
        /usr/bin/ssh $*
    fi
}

Basta colocar o iterm_bg_color na configuração do shell ( ~/.bash_profile ou ~/.zshrc respectivamente) e adicionar a função ssh() (ou alias) para torná-lo colorido automaticamente quando você se conectar.

    
por 03.02.2014 / 08:34