Skip to content

wrapper script around ssh for tmux for setting window names in tmux to hostnames

Notifications You must be signed in to change notification settings

uwerler/tmux_ssh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

--- MOVED TO MY OWN SERVER https://gitea.werler.is/Public/tmux_ssh ---

ssh.sh is a small wrapper script around ssh to open a ssh connection in tmux.

The main purpose of this script is to configure the tmux windows titles with the hostnames provided by the ssh command line itself. I have often to connect to cloud hosts with crude hostnames I can't remember and therefore I prefer to use cnames or hostnames set via .ssh/config - and exactly these names should be used for window names in tmux and not set via escape sequences (pane titles) from within the target hosts to their crude names.

Additionally a map file can be configured which stores styles for tmux panes matched by patterns - like in ssh_config the first count matches. This makes it easier to see which pane has a ssh connection to which host when e.g. the hostnames are the same but from different subdomains.

Simply place ssh.sh, ssh.conf and ssh.map into the same directory. It should not interfere with existing configs because it starts an own server at an own socket with an own session. For testing simply run "sh ssh.sh -c targethost". Without arguments it starts a session without ssh and attaches a xterm to it.

It can be configured via a shell alias like this:

   alias ssh="sh ~/.tmux/ssh.sh -c"

I wrote and tested this with OpenBSD's ksh. I guess bash should work too but not tested yet.

As a lucky OpenBSD user I also use cwm as my preferred window manager. This script can also be used with cwm's wonderful "ssh to" dialog by placing the following into your .cwmrc:

   command term 'sh -c ". ~/.tmux/ssh.sh -c $1"'
   bind CM-Return xterm
   
   # ...to launch the server only with one window with default shell
   bind CM-s 'sh -c ". ~/.tmux/ssh.sh -c"'
   
   # ...and if autogroup is preferred
   autogroup 1 "SSH,XTerm"

   # ...or if you want prefer to use rofi place this into the config
   ssh-command: "sh ~/.tmux/ssh.sh -c {host}";

If you have xdotool installed it also focusses the xterm which is attached to the session or spawns a new term and reattaches to an existing session.

Special thanks go to the OpenBSD developers for providing such a high quality and stable operating system and to Nicholas Marriot for tmux - a tool I can't work without it and his patience to answer my questions.

Enjoy.

With my sample config it looks then like this:

Screenshot

About

wrapper script around ssh for tmux for setting window names in tmux to hostnames

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages