I managed to trash my work VM (Arch Linux) and was forced to rebuild a new one. In the process I decided to look at other options for SSH connection management (long time PACManager fan here). My needs are primarily SSH’ing to remote systems and the ability to save connections (profiles or sessions). Being able to directly install via the package manager would be a definite bonus. After looking around, I was a bit disappointed with the options out there. I tried Terminator but could not get profiles working, or to be frank, the way I would expect profiles to work. The focus seemed more on layout management and I probably was not patient enough to explore further.

Enter Guake. If you’re wondering about the name as I was, it seems to be a take on the hugely popular computer game ‘Quake’ and is inspired by the terminal used in the game. Urban Dictionary has a more fun definition though ;). Some points from my initial experience with Guake:

  • Install was as easy as ‘pacman -S guake‘. There are packages for Fedora, Debian and Ubuntu too. This might seem trivial but it’s a relief to be able to install and more importantly, upgrade via the official repo instead of jumping through hoops for custom builds.
  • Preferences can be accessed via the guake-prefs program (or right-click and select ‘Preferences’ in a Guake terminal) and it comes with a lot of the usual bells and whistles such as multi-tab support, transparency etc.
  • Guake is drop-down in that it appears/disappears on hitting a configurable hotkey. The default is F12 but I changed it to Ctrl-G on my Mac. Bear in mind this drop-down approach can take a bit getting used to especially if you are used to Alt-tab switching between windows.
  • You can have Guake autostart in your Linux desktop environment:
    cp /usr/share/applications/guake.desktop /etc/xdg/autostart/
  • I also use GNU Screen so I have Guake kickoff a screen session with a few screen terminals running. So on startup Guake starts with my screen session running these multiple screen terminals. To achieve this I modified /etc/xdg/autostart/guake.desktop and changed:
    Exec=guake to
    Exec=guake -e “screen -S foo -c ~/.fooscreenrc”
  • I run Xfce as my desktop environment. Now Guake does not have the excellent connection management features that PACManager does. However, with a little imagination you can get some of the same function. For e.g. I used the ‘Launcher’ app in Xfce to create a drop-down list of connection profiles. Each profile is essentially a command, so for e.g. to connect to a remote AWS instance I use:
    guake -n~ -e "guake -r 'My AWS Instance'; ssh -i ~/.ssh/id_rsa ubuntu@53.xx.yy.zzz"

    This opens a new tab in Guake, sets it’s title and will SSH in to the specified instance.

I’ve been a PACManager fan for several years now. If you use Arch Linux as I do there are currently two packages available in the AUR. There are also debian and rpm packages available on the sourceforge site. Install is not exactly straightforward as it requires building and installing quite a few dependencies (mostly Perl modules) that were only available in the AUR. However, if you are looking for a full featured connection manager I strongly recommend giving it a try. The only disadvantages I faced were the cumbersome install process and having to rebuild/reinstall some of the dependencies every now and then when I upgrade Arch.