~kamstrup/gtkhotkey/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
GtkHotkey Library - Cross Platform Library For Using Desktop Wide Hotkeys
--------------------------------------------------------------------------------

GtkHotkey is copyright Mikkel Kamstrup Erlandsen, March, 2008

The GtkHotkey library is licensed under the GNU LGPL version 3 which can be
found in the COPYING file of this distribution. Make sure you read and
understand the license before employing libgtkhotkey. For references
to GPL version 3 (without the 'L' in front) see doc/gpl-3.0.txt.

The source code for GtkHotkey can be downloaded from the following url:

  http://launchpad.net/gtkhotkey

Idea and Future
-----------------------
I wrote GtkHotkey because I needed a platform independent way to manage and
bind desktop hotkeys. Gnome applications can register hotkeys via GConf and
Metacity, but I wanted desktop neutrality and more flexibility.

I would like to see the functionality end up in Gtk+ some day, but there
are obstacles, and I needed a solution fast. Should it turn out that such
functionality is not feasible in Gtk+ itself, this library is still simple and
has a narrow well defined goal, which should make it maintainable in the future.

To ease maintainability unit tests has been implemented using the gtest
framework found in glib versions >= 2.15.

It is the goal to also include a set of Gtk+ widgets for managing hotkeys as
well as a global configuration dialog for editing all registered hotkeys.

Design
------
The idea of the library is to keep it as simple as possible, while sticking
to an object oriented design, without falling back to C-isms (read: '#ifdefs')
where it would otherwise be tempting.

It can be argued that the code base is too small to be put in a separate library.
However the functionality is very well defined and would probably appear
oddly placed in some bigger helper library for GTk+ apps, where it would likely
live in a hodge podge of unrelated functionality.

API Guarantees
--------------
0.MINOR.MICRO: API stability between versions with same minor version

1.MINOR.MICRO: (not reached yet) All 1.*.* will be API and ABI compatible

Credits
-------
Currently src/x11 contains some code scrubbed from the Tomboy project. The
stolen code is released under LGPL 2 or later, and I included in GtkHotkey
as a LGPL 3 dependency.