This README is a bit outdated. ------------------ KHotKeys README Please read this file carefully. WARNING ! This is an unstable version , and as such it's buggy, poorly documented and there are still features that are not implemented yet. It's aimed mainly at users who used to use the KDE1.x versions of KHotKeys ( or are smart enough to learn something complicated without having good docs for it :) ). Calling it KHotKeys-2.0.0pre2 is a rather cruel joke. You've been warned. The 2.x version of KHotKeys is a complete rewrite from scratch, and the name KHotKeys is actually rather misleading by now ( and it has never been really correct if I understand what the difference between a hotkey and a keyboard shortcut is ... well, never mind ... ). KHotKeys2.x should be capable of doing everything the 1.x versions could do, and much more, of course. In short, KHotKeys is a utility that allows you to bind actions to triggers and conditions. The most common case is where action means launching some command/application/URL, the trigger is some key combination pressed and condition is some window being ( not ) active/existing. There are ( or will be ) more types of actions, triggers and conditions. INSTALLATION : The recommended KDE version is KDE3.1 ( unreleased yet at this time :-> ), at least snapshot 20020108. I haven't tested it with any older versions, so I don't know if it will work with them or not. During installation, the files will replace the ones that are part of the simple version in tdebase. Shortcuts assigned using KMenuEdit should still work, and the config file will be converted to the new format. However, you should backup all files before removing them ( including the config file ), so you will be able to go back in case there will be a serious problem with this version. The files you should remove and backup before installing the new version are : - $KDEDIR/bin/khotkeys - $KDEDIR/lib/libkcm_khotkeys.la - $KDEDIR/lib/libkcm_khotkeys.so - $KDEDIR/lib/trinity/libkcm_khotkeys.la - $KDEDIR/lib/trinity/libkcm_khotkeys.so - $KDEDIR/lib/khotkeys.la - $KDEDIR/lib/khotkeys.so - $KDEDIR/lib/libkhotkeys.la - $KDEDIR/lib/libkhotkeys.so - $KDEDIR/share/autostart/khotkeys.desktop - $KDEHOME/share/config/khotkeysrc Not all these files exist, depending on your KDE and OS version. It's simply all files having 'khotkeys' in their name. Ok, now the standard install ( ./configure && make && make install ), and now you can start you KDE. CONFIGURATION : The configuration module is started using K-Menu/Settings/System/KHotKeys . If you have used the 1.x version ( you have, haven't you ? ), it will look familiar. On the left, there's a list of all actions, they may be put in groups. On the right, there are several tabs with details for currently selected action, or an info tab when no action is selected ( no, don't bother, the 'Global settings...' button doesn't do anything useful yet, besides going down and up ). The first tab ( 'General' ) lets you to select the type of the action. You can either select 'Generic' type, allowing you to create any kind of action, or some simple predefined actions, like launching an application on keyboard shortcut press. The second tab is the 'Triggers' tab for the 'Generic' type action, or a tab specifying only the trigger for a specialized action (e.g. a keyboard shortcut). Here you can specify trigger(s) that will start this action, if conditions for it will be met. The types available now are : - Shortcut trigger - a keyboard combination is pressed - Gesture trigger - press middle mouse button and start drawing ... - Window trigger - a window appears, becomes active, ... The next tab is settings for the action. ( Just in case you haven't noticed yet, I'm apparently not very good at inventing good fitting names. 'Action' in KHotKeys means either a whole action, e.g. 'run a new Konsole when Ctrl+Alt+T is pressed and the active window is not a Konsole', or it can mean just the resulting action, i.e. only 'run a new Konsole'. Live with it or suggest better names ). - Command/URL tab settings - enter the command or URL to execute ( no, the 'Browse' doesn't do anything useful yet ). - K-Menu entry tab settings - just like the Command/URL tab, only enter a .desktop file from the K-Menu to execute (e.g. 'System/konsole.desktop') - DCOP call tab settings - enter the application, object, DCOP method and arguments (e.g. 'kdesktop', 'KBackgroundIface', 'setWallpaper(QString,int)' and '"/some/pic.jpg" 1') - Keyboard input tab settings - enter the keyboard input you want to be simulated ( no, sorry, the 'Edit' button doesn't really work yet ). The "keypresses" are separated by a colon ( ':' ) and are written in the form the are seen e.g. in the keybindings dialog ( e.g. to enter a colon, you have to type 'Shift+;' ). The 'send to specific window' checkbox and the window definition allow you to specify that the input shouldn't be sent to the currently active window but to a window that matches the definition. Note that certain things, like triggering Ctrl+F1 for going to the first desktop, don't work yet. The last tab is 'Conditions'. If there are any conditions specified, the action will be active only if the at least one of the conditions is true. If the action is in a group which also has conditions, at least one of the conditions in the group must be true too. Conditions are mainly specified using window definitions, the only type now available is a simple window definition. You can specify a window title, class, command and type ( again, the 'Autodetect...' button doesn't work yet ). Title is easy, to get the window class and command, run 'xprop' in Konsole and click on a window; then search for WM_CLASS and WM_COMMAND. EXAMPLES : Ok, as I guess the things written above aren't that good explanation, I've included a sample configuration file. Put it in $KDEHOME/share/config/khotkeysrc. Every action is explained in its comment field. Note that all the actions are disabled, so you'll have to enable them in order to use them. KHotKeys Copyright 1999-2002 Lubos Lunak Distributed under the terms of the GNU General Public License version 2.