User Tools

Site Tools


client:keys

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
client:keys [2018/04/01 07:56]
karl Add more correct code hints
client:keys [2018/04/01 10:14]
karl older clients and newer ones differ slightly
Line 5: Line 5:
 This page is about the **keys** file inside the user's HOME directory **.**[[crossfire]] . This page is about the **keys** file inside the user's HOME directory **.**[[crossfire]] .
  
 +
 +===== Creation of the Keys file ==
 When the [[:client]] starts the first time, then there will be no "​keys"​ file, \\ When the [[:client]] starts the first time, then there will be no "​keys"​ file, \\
 and **if** the user never would use the bind and [[:​player_commands#​unbind]] commands, \\ and **if** the user never would use the bind and [[:​player_commands#​unbind]] commands, \\
Line 30: Line 32:
 never tried to set this '​0'​ manually to something else - \\  never tried to set this '​0'​ manually to something else - \\ 
 and the **FLAGS** are and the **FLAGS** are
-|#define KEYF_NORMAL ​    ​|0x01|// ​'​N' ​Used in normal mode //| +== Older == 
-|#define KEYF_FIRE ​      ​|0x02|// ​'​F' ​Used in fire mode //| +|#define KEYF_NORMAL |0x01^N|// Used in normal mode //| 
-|#define KEYF_RUN ​       |0x04|// ​'​R' ​Used in run mode //| +|#define KEYF_FIRE ​  ​|0x02^F|// Used in fire mode //| 
-|#​define ​KEYF_EDIT ​      |0x08|// '​E'​ Line editor ​//| +|#define KEYF_RUN ​   |0x04^R|// Used in run mode //| 
-|#​define ​KEYF_STANDARD ​  |0x10|// '​S'​ For standard/​built-in keybinds ​//| +|#​define ​KEYF_MODIFIERS  ​|0x07((includes 01,​02,​04))^A|// Mask for actual keyboard modifiers, not action modifiers ​//| 
-|#​define ​KEYF_ALT ​       ​|0x20|// '​L' ​For ALT key modifier //| +|#​define ​KEYF_EDIT ​  |0x08^E|// Line editor ​//| 
-|#define KEYF_META ​      ​|0x40|//​ '​M'​ For Meta key modifier //| +|#​define ​KEYF_STANDARD ​  |0x10^S|// For standard ​(built inkey definitions ​//|
-|#define KEYF_MODIFIERS ​ |0x67((includes 01,​02,​04,​20,​40))|// '​A'​ Mask for actual keyboard modifiers, not action modifiers ​//|+
  
 +== Newer ==
 +|#define KEYF_NORMAL ​    ​|0x01^N|//​Used in normal mode //|
 +|#define KEYF_FIRE ​      ​|0x02^F|//​Used in fire mode //|
 +|#define KEYF_RUN ​       |0x04^R|//​Used in run mode //|
 +|#define KEYF_EDIT ​      ​|0x08^E|//​Line editor //|
 +|#define KEYF_STANDARD ​  ​|0x10^S|//​For standard/​built-in keybinds //|
 +|#define KEYF_ALT ​       |0x20^L|//​For ALT key modifier //|
 +|#define KEYF_META ​      ​|0x40^M|//​For Meta key modifier //|
 +|#define KEYF_MODIFIERS ​ |0x67((includes 01,​02,​04,​20,​40))^A|//​ '​A'​ Mask for actual keyboard modifiers, not action modifiers //|
 +
 +----
 +
 +==== Special Keybinding Line ==
 +Special key bound lines start with an exclamation mark <​hi>​**!**</​hi>​ as very first char of the line. \\
 +The special commands are :
 +  * altkey0 ( newer clients )
 +  * altkey1 ( newer clients )
 +  * commandkey - default bound to Quote **'**
 +  * completekey - :?: what does it do :?:
 +  * firekey0
 +  * firekey1
 +  * metakey0 ( newer clients )
 +  * metakey1 ( newer clients )
 +  * nextkey
 +  * prevkey
 +  * runkey0
 +  * runkey1
 +<WRAP lo>( [While [[#parsing of the keys file]]((keys.c:​parse_keybind_line() )) , lines beginning with a number sign '#'​ and starting with a new-line are ignored )</​WRAP>​
 +
 +----
 +
 +==== Example Keys File == 
 In this example using a GTK-1 client v1.11.0 , \\ In this example using a GTK-1 client v1.11.0 , \\
 the small letter [[#​w]]((which is not member of the default keys)) is bound to \\ the small letter [[#​w]]((which is not member of the default keys)) is bound to \\
Line 129: Line 162:
 </​code>​ </​code>​
  
 +----
 +
 +===== Parsing of the Keys file ==
 +
 +When the  client starts, it checks for environmental variables \\
 +CFCLIENT_LIBDIR and CF_DATADIR . \\
 +:!: These variabes are not named "​understandable"​ \\
 +like CF_CLIENT_LIBDIR and CF_CLIENT_DATADIR :!:
 +
 +While the CF_DATADIR is used for theme and glade files, \\
 +the **CFCLIENT_LIBDIR** is only used to look for a file named **def-keys** , \\
 +which is included in the source code, but probably not in pre-packaged \\
 +binary archives of OS distributions;​ since make install in the source code \\
 +does not automatically install some {prefix}/​lib/​crossfire-client/​def-keys file. \\
 +:!: When [[client_compiling|compiling the client]] , a #define CLIENT_LIBDIR may be available to set a default //​client_libdir//​ .
  
 +While parsing((keys.c:​parse_keybind_line() )) the keys file, lines beginning with the number sign **#** and starting with a **new-line** are ignored.
client/keys.txt · Last modified: 2018/04/01 10:14 by karl