kupfer, smart, quick launcher. `master' is kupfer's release branch and tracks the main repository at http://git.gnome.org/browse/kupfer/ — All topic branches are Works in Progress and might be rebased. Kupfer Technical Documentation: http://kaizer.se/wiki/kupfer/Manual.html [[Send email, not pull requests. Email <kupfer-list - gnome.org> (or me)]]
Latest commit 04bbd63 Jan 22, 2013 @engla Merge Karol's patch queue on master
* karol/master:
  firefox: check is bookmarks file exists before loading it
  preferences: catch exceptions when loading .Desktop files
  preferences: prevent Kupfer crashing on broken .desktop files
  plugin top: fix for locales not using dot as decimal point.
  rhythmbox: use dbus to control rhythmbox and load library
  gui/preferences: update plugin info on activate/deactivate plugin by keyb.
  session_gnome: support Gnome3 for logoff/shutdown actions
  Added check for no alternatives when getting settings.
  websearch: find all search plugin from firefox/iceweasel
  trash +EmptyTrash action
  plugin_support: fix problems with save passwords in keyring lp1056686
  gtg: workaround for broken GetTasks method in GTG DBUS API
  calculator: change localized decimal point symbol to dot
  calculator: separate action for expression with and w/o =
  calculator: add missing operators (&|~); update description and manual
  calculator: Calculate action now valid for other mathematical operators
  dbus: fix problem with crashing kupfer
Failed to load latest commit information.
bin bin: Don't hardcode python2.6 in bin/kupfer.in Feb 13, 2012
contrib tracker: Move tracker 0.6 plugin to contrib/ Jul 4, 2012
po Updated Brazilian Portuguese translation reviewed by Enrico Nicoletto… Jan 15, 2013
.gitignore Add a .gitignore file May 21, 2010
COPYING Fix License: License is GPLv3 or any later version Feb 28, 2009
Waf.ChangeLog Add waf-light and waflib from waf-1.6.11 Feb 26, 2012
kupfer.py Update copyright years Apr 6, 2010


kupfer is a simple, flexible, launcher for Gnome

Credits:Copyright 2007–2011 Ulrik Sverdrup <ulrik.sverdrup@gmail.com>
Licence:GNU General Public License v3 (or any later version)

Kupfer is an interface for quick and convenient access to applications and their documents.

The most typical use is to find a specific application and launch it. We have tried to make Kupfer easy to extend with plugins so that this quick-access paradigm can be extended to many more objects than just applications.


This project is configured for the Waf build system; Installation follows the steps:

./waf configure


./waf install


sudo ./waf install

You can use --prefix=$PREFIX when configuring to assign an installation spot. By default, Kupfer is installed for all users. Installing only for your user, the prefix ~/.local is often used; you just have to make sure that ~/.local/bin is in your $PATH.

About Waf

Waf is included in both the distributable tarball and the repository (so that full source code is incuded. See the file waf for author and licensing information).

Waf was acquired through http://waf.googlecode.com/files/waf-1.6.11.tar.bz2 on Saturday, 25 February 2012. The following files extracted:

./waf-light -> ./waf
./waflib    -> ./waflib
./ChangeLog -> ./Waf.ChangeLog

./waflib/Tools/*  some files excluded
./waflib/extras/* some files excluded

No file contents touched.

Build Requirements

  • Python 2.6 or Python 3
  • intltool
  • optionally: rst2man (python-docutils) to install the manpage
  • optionally: xml2po (gnome-doc-utils) to install mallard help pages

Runtime Requirements

Kupfer requires Python 2.6 or later, and the following important libraries:

  • gtk python bindings, GTK+ version 2.20 [1]
  • glib python bindings (pygobject) 2.18
  • dbus python bindings
  • python-xdg
[1]GTK+ 2.20 required for using full support. Kupfer is known to run with version 2.18 as well.

Optional, but very recommended runtime dependencies:

  • python-keybinder (see below)
  • wnck python bindings
  • gvfs
  • keyring python module

Opportunistic dependencies

  • The deprecated 'gnome' module is used for session connection as fallback
  • If available, 'setproctitle' is used to set the process name
  • python-appindicator for ubuntu-style notification icon
  • nautilus-python for nautilus selected file
  • python-gdata for Google plugins

Some plugins will require additional python modules!


The program is installed as kupfer into $PREFIX/bin. Only one instance can be active for one user at a given time. Normal use of kupfer requires an active dbus session bus.

Keybinder Module

Keybinder is a module for global keyboard shortcuts that originates from tomboy.

You can use kupfer without the keybinder module, for example by assigning a global keybinding to the kupfer binary, but it not the recommended way.


Please read Documentation/ and Documentation/Manpage.rst for technical documentation. User documentation is installed as GNOME (Mallard) help pages, available under the "Kupfer Help" object in the program itself.