Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using Ubuntu 10.10 and I always have opened windows:

Browser, console, vim and Skype. I want to set specific shortcut-keys for those windows. Is there a way to use for example:

Win-C = Google Chrome
Win-T = terminal
Win-S = Skype

I want use hotkeys to switch between these windows.

share|improve this question
not that in unity you will not be able to use most Win+[anything] combinations as it steals several of those (e.g. Win+t, opens trash) and there's no way to override or change that. reported on this bug that has no love – gcb Feb 25 '13 at 21:26
up vote 7 down vote accepted

It is possible to achieve this with a python script. The script requires python-wnck and python-gtk to be installed in order to work, although I think these are installed by default anyway.

Copy and paste this into a text editor and save in a sensible place (eg. in your home folder):

#!/usr/bin/env python2
import wnck
import gtk
import sys
import time

screen = wnck.screen_get_default()

while gtk.events_pending():

windows = screen.get_windows()

for w in windows:
    if len(sys.argv) > 1:
        if w.get_application().get_name() == sys.argv[1]:
        print("Application name of window with title " + repr(w.get_name()) + " is " + repr(w.get_application().get_name()))

You can then set up the keyboard shortcut by opening Keyboard Shortcuts (System->Preferences->Keyboard Shortcuts).

Click add to create a new shortcut.

enter image description here

Use the command bash -c 'python ~/ Terminal' (this is assuming you saved it as in your home folder). Replace 'Terminal' with the application name of the window you want to switch to. To find out the application names of the currently opened windows, run python ~/ in a terminal.

enter image description here

You can then assign your preferred keyboard combination to this action.

share|improve this answer
how can i determine a window name for GVIM ? i setted up shortcuts with your script for my chrome and terminal, but i cant setup it for GVIM. – RusAlex Jun 20 '11 at 14:26
I get it as 'Vim'. (Running python ~/ should give you a list including something like Application name of window with title '[No Name] - GVIM' is 'Vim') – dv3500ea Jun 20 '11 at 14:32
doesn't work for me. maybe do you have a script to determine a window names ? =) – RusAlex Jun 20 '11 at 14:34
If you run python ~/ with no arguments it will list all of the windows and tell you the title and application name. – dv3500ea Jun 20 '11 at 14:40
wow, thats good. but it seems script just show a window, and didn't focus it. maybe some script changes can help ? – RusAlex Jun 20 '11 at 14:44

This is possible in Kubuntu (kwin)... click on the titlebar of an application choose "advanced->Window Shortcut". I know that doesn't exactly answer your question - I am curious to know if Gnome/Unity can do this as well.

share|improve this answer
yes, it seems like it's just in kde – RusAlex Jun 20 '11 at 14:28

If you prefer an existing package there is wmctrl which supports many different window managers:

The tool provides command line access to almost all the features defined in the EWMH specification. It can be used, for example, to get information about the window manager, to get a detailed list of desktops and managed windows, to switch and resize desktops, to make windows full-screen, always-above or sticky, and to activate, close, move, resize, maximize and minimize them.

Install it:

sudo apt-get install wmctrl

List existing windows:

wmctrl -l

And map:

wmctrl -a <WIN>

to a keyboard shortcut.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.