Guake is one of my favorite software running on Linux. It’s a simple, but perfect multi terminal application for GNOME Desktop. When SSHing to servers I often use screen or tmux, but on my host OS I prefer to use Guake.
I will share how I use Guake and some keyboard shortcuts configuration that fits well with my workflow. How you find this information useful.
Note: At the moment the last official version for Guake available via package manager is 0.4.4. I’ve compiled and installed version 0.5.0 which brings few improvements to make this tool perfect. I had an issue with keyboard shortcuts not working on Ubuntu 12.04 and 12.10, but I can confirm that everything is working well on Ubuntu 14.04.
You can install latest Guake by following the official instructions:
sudo apt-get build-dep guake sudo apt-get install build-essential python autoconf sudo apt-get install gnome-common gtk-doc-tools libglib2.0-dev libgtk2.0-dev libgconf2-dev sudo apt-get install python-gtk2 python-gtk2-dev python-vte glade python-glade2 python-appindicator sudo apt-get install python-vte # uncomment for Python 3 # sudo apt-get install python3-dev # uncomment for glade Gtk-2 editor # sudo apt-get install glade-gtk2 git clone https://github.com/Guake/guake.git cd guake ./autogen.sh && ./configure && make sudo make install
Then add the binary to your startup applications, so that it starts when OS starts.
Special visibility toggle shortcut
The first thing that I like about Guake is the general keyboard shortcut for toggling its visibility. It’s easy to open/close Guake from anywhere… in browser, Thunderbird, different workspace, anywhere. I’ve configured
Alt+D and it will make Guake pop at the top of the screen. Compare this to searching for an app via Alt+Tab loop… keyboard shortcuts save lots of time.
Alt+D is my preconfigured keyboard shortcut for toggling Guake. I have all keyboard shortcuts prefixed with
Alt, I always keep my left thumb on the left
Alt key and that makes triggering all these shortcuts easy. To configure Guake keyboard shortcuts yourself, you’ll need to go to
Preferences > Keyboard shortcuts.
I rarely use full screen option with Guake, but I have that mapped to
Alt+Tfor new table.
Alt+Wfor closing a tab.
Alt+Rfor renaming a tab.
All of these are easy to remember.
I use vim text editor and that’s influencing my mappings for:
- go to previous tab:
- go to next tab:
I also have mapped keys from
Alt+0 for switching between first and up to the tenth tab.
Alt+Cfor copying text to clipboard
Alt+Vfor pasting text from clipboard
There are few other key mappings to configure but I don’t find them very important.
Other important configurations are:
Scrolling tab, I have set Scrollback lines to 10000 with Show scrollbar and scroll On Key Stroke.
Appearance I’ve set Transparency to 0, Text color white, Background color to black.
General tab few settings are important to be checked:
- Open new tab in current directory
- Show tray icon
- Hide on lose focus
My Guake window size is maxed between top and bottom panel. I use Ubuntu classic Desktop.
New features in version 0.5.0
Version 0.5.0 brings some improvements that I was missing in the previous versions:
- Move tab position with mouse; Usually I have multiple tabs open and it’s important for me to know the tabs order in my fingers and mindset. So, when I close a tab by mistake (typing
exit), I can easily open a new one and move it to the correct position without messing with my flow.
- Display placement; This was a problem when having multiple displays (usually laptop + second screen for a projector when doing presentations), but now that’s been fixed. Hurray!
- Many more configuration shortcuts.
Guake team has done a great job here.
Another great thing about Guake is that it is scriptable. I work on projects where I need 10 or more tabs to start everything up. That is just a click / command away with a simple Guake script. Here’s an example that I’m using for a project:
#!/bin/sh # open project notes guake -e "cd ~/Dropbox/projects/project1" -r notes; guake -e "vim" # start project 1 (rails app, sidekiq, deferrer, vim, rails console) guake -n ~/projects/project1 -r "project1" -e "foreman start"; guake -n ~/projects/project1 -r "vim" -e "vim"; guake -n ~/projects/project1 -r "terminal"; # start project 2 (client library) guake -n ~/projects/project2 -r "client" -e "vim"; guake -n ~/projects/project2 -r "terminal"; # start project 3 (API testing tool) guake -n ~/projects/project3 -r "api" -e "vim"; guake -n ~/projects/project3 -r "terminal"; # start project 4 (billing app) guake -n ~/projects/project4 -r "billing" -e "passenger start -p 8080"; # start project 5 (main web app, resque, vim, rails console) guake -n ~/projects/project5 -r "resque" -e "bundle exec rake resque:work QUEUE='*'"; guake -n ~/projects/project5 "main" -e "passenger start -p 3000"; guake -n ~/projects/project5 -r "vim" -e "vim"; guake -n ~/projects/project5 -r "terminal"; # start mailcatcher and open few pages in browser guake -n ~/projects/project5 -r "terminal" guake -e "mailcatcher" guake -e "/usr/bin/google-chrome http://127.0.0.1:1080 http://localhost:3005/sidekiq http://localhost:3005 http://localhost:3000 &" guake -e "exit"
Hope you like this post. Let me know what is your favourite terminal application and what features you like the most?