24

Is there a way to automatically apply a terminal profile when connected to a remote machine via SSH?

I'd like more obvious visual cues that I'm connected to a remote machine than the user/host displayed on each terminal line. I spend most of my day connected to multiple machines and it can get confusing.

1
  • What I do now is have separate gnome-terminal launchers for each machine I connect to. Each launcher opens with a different profile and window size. If this could be somehow be made to automagically change when I connect to a server from any terminal it would be awesome. Hope you find a solution.
    – Ramón
    Nov 18, 2010 at 6:09

3 Answers 3

11

Srigelsford from the Ubuntu forums recommends this:

I created several profiles in gnome-terminal with the settings I wanted, then created aliases like the below example to ssh to ares. The Ares profile has a red background.

alias -p ares='gnome-terminal --window-with-profile=Ares -x bash -c "ssh ares"; exit'

The pitfall of this is that it cannot be done in your existing terminal window, it launches another. My alias closes the existing one after launching the new one, but you can stop that by removing the ; exit from the end.

Just create as many profiles as you like, and associate each server to a profile in an alias. To launch just type the name of the alias $ares

1
  • +1 and I might add your Screen Name groovehunter will meet it's objective (after a decade or 9 years and 9 months) with the arrival of Ubuntu 20.10 aka "Groovy Gorilla". Jun 14, 2020 at 17:31
2

The following works for gnome3 terminals. It uses xdotool to automate interaction with the gnome terminal menu, since the available keyboard shortcuts are currently limited.

I have created two profiles. The top one in the Terminal->Profiles menu is my default, and indicates a local machine. The second one is my color scheme for a remote connection to machine66.

I then defined the following aliases in my bashrc:

alias first_profile="xdotool key F10 Right Right Right Right Down Right Return"
alias second_profile="xdotool key F10 Right Right Right Right Down Right Down Return"
alias go66="second_profile; ssh remotemachine66; first_profile"

The first_profile and second_profile just use xdotools to click f10 (open the menu), and then traverse right to terminal, down 1 to profiles selection, and then select the first or second profile.

go66 first calls second_profile to set the colors, ssh's into the remote machine. On exiting ssh first_profile is called, returning the profile to the local profile.

It's clunky, but it works. I'm happy to hear refinement suggestions.

0

i had that on my todolist for quite some time and just tried and searched againg

this is also a reminder to myself: Have to try with screen / byobu

For now i use gnome-terminal profiles . The config files are xml in HOME/.gconf/apps ... and so i might create / copy them via script lateron for some 20 to 50 hosts, with automatically created colors etc. As i write i see and have to admit it is not very sophisticated idea though.

For now i need a easier to type short cut then ALT+D R 0 to open new tab with profile #0 (german shortcut)

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .