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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
<html><head><title>renpy/doc/reference/Keymap - Ren'Py</title><link href="../shared.css" rel="stylesheet"><link href="../monobook.css" rel="stylesheet"><link href="../common.css" rel="stylesheet"><link href="../monobook2.css" rel="stylesheet"><link href="../docs.css" rel="stylesheet" /></link></link></link></link></head><body><div id="bodyContent">
<p class="docnav"><a href="../index.html">documentation index</a> ◦ <a href="Reference_Manual.html">reference manual</a> ◦ <a href="Function_Index.html">function index</a></p><p><a id="Customizing_the_Keymap" name="Customizing_the_Keymap"></a></p>
<h2><span class="mw-headline">Customizing the Keymap</span></h2>
<p>The variable <a href="../reference/Configuration_Variables#config.keymap" title="renpy/doc/reference/Configuration Variables">config.keymap</a> contains a map from functions that can be performed by the various user-interface elements of Ren'Py to a list of keysyms (a keysym is a <b>key</b> <b>sym</b>bol) that actually perform those functions. Modifying the contents of the keymap can change the keys and mouse buttons that cause things to happen.</p>
<p>While this functionality has been added to Ren'Py at a user's request (and because it simplifies the Ren'Py code), it's not altogether clear that it should be used. Having a common set of keybindings makes games easier to play by reducing the learning curve of users. It's probably better to build consensus around a change in keybindings, rather than unilaterally making one game different from every other game.</p>
<p>Anyway, in Ren'Py keysyms are strings. The first kind of keysym is of the form 'mouseup_#' or 'mousedown_#', for a number between 1 and 5. These keysyms are generated by mouse button presses, releases, or turns of the mouse wheel. For example, "mousedown_1" is generally a press of the left mouse button, "mouseup_1" is a release of that button, and "mousedown_4" is a turn of the the mouse wheel to the top.</p>
<p>A second kind of keysym is a joystick keysym. These begin with joy_. They are defined in <a href="../reference/Configuration_Variables#config.joystick_keys" title="renpy/doc/reference/Configuration Variables">config.joystick_keys</a>, and mapped to actual joystick events by the user.</p>
<p>A third kind of keysym is a string containing a character that is generated when a key is pressed. This is useful for binding alphabetic keys and numbers. Examples of these keysyms include "a", "A", and "7".</p>
<p>The final kind of keysym is the symbolic name for the key. This can be any of the K_ constants taken from pygame.constants This type of keysym looks like "K_BACKSPACE", "K_RETURN", and "K_TAB".</p>
<p>To change a binding, update the appropriate list in <a href="../reference/Configuration_Variables#config.keymap" title="renpy/doc/reference/Configuration Variables">config.keymap</a>. The following code adds the 't' key to the list of keys that dismiss a say statement, and removes the space key from that list.</p>
<pre>
<span class="kwa">init</span><span class="sym">:</span>
$ config<span class="sym">.</span>keymap<span class="sym">[</span><span class="str">'dismiss'</span><span class="sym">].</span><span class="kwd">append</span><span class="sym">(</span><span class="str">'t'</span><span class="sym">)</span>
$ config<span class="sym">.</span>keymap<span class="sym">[</span><span class="str">'dismiss'</span><span class="sym">].</span><span class="kwd">remove</span><span class="sym">(</span><span class="str">'K_SPACE'</span><span class="sym">)</span>
</pre>
<p>The default keymap is contained inside the python code implementing Ren'Py, and as of version 5.6.4 is as follows:</p>
<pre>
config<span class="sym">.</span>keymap <span class="sym">=</span> <span class="kwb">dict</span><span class="sym">(</span>
<span class="slc"># Bindings present almost everywhere, unless explicitly</span>
<span class="slc"># disabled.</span>
rollback <span class="sym">= [</span> <span class="str">'K_PAGEUP'</span><span class="sym">,</span> <span class="str">'mousedown_4'</span><span class="sym">,</span> <span class="str">'joy_rollback'</span> <span class="sym">],</span>
screenshot <span class="sym">= [</span> <span class="str">'s'</span> <span class="sym">],</span>
toggle_fullscreen <span class="sym">= [</span> <span class="str">'f'</span> <span class="sym">],</span>
toggle_music <span class="sym">= [</span> <span class="str">'m'</span> <span class="sym">],</span>
game_menu <span class="sym">= [</span> <span class="str">'K_ESCAPE'</span><span class="sym">,</span> <span class="str">'mouseup_3'</span><span class="sym">,</span> <span class="str">'joy_menu'</span> <span class="sym">],</span>
hide_windows <span class="sym">= [</span> <span class="str">'mouseup_2'</span><span class="sym">,</span> <span class="str">'h'</span> <span class="sym">],</span>
launch_editor <span class="sym">= [</span> <span class="str">'E'</span> <span class="sym">],</span>
dump_styles <span class="sym">= [</span> <span class="str">'Y'</span> <span class="sym">],</span>
debugger <span class="sym">= [</span> <span class="str">'D'</span> <span class="sym">],</span>
<span class="slc"># Say.</span>
rollforward <span class="sym">= [</span> <span class="str">'mousedown_5'</span><span class="sym">,</span> <span class="str">'K_PAGEDOWN'</span> <span class="sym">],</span>
dismiss <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_SPACE'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
<span class="slc"># Focus.</span>
focus_left <span class="sym">= [</span> <span class="str">'K_LEFT'</span><span class="sym">,</span> <span class="str">'joy_left'</span> <span class="sym">],</span>
focus_right <span class="sym">= [</span> <span class="str">'K_RIGHT'</span><span class="sym">,</span> <span class="str">'joy_right'</span> <span class="sym">],</span>
focus_up <span class="sym">= [</span> <span class="str">'K_UP'</span><span class="sym">,</span> <span class="str">'joy_up'</span> <span class="sym">],</span>
focus_down <span class="sym">= [</span> <span class="str">'K_DOWN'</span><span class="sym">,</span> <span class="str">'joy_down'</span> <span class="sym">],</span>
<span class="slc"># Button.</span>
button_select <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
<span class="slc"># Input.</span>
input_backspace <span class="sym">= [</span> <span class="str">'K_BACKSPACE'</span> <span class="sym">],</span>
input_enter <span class="sym">= [</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span> <span class="sym">],</span>
<span class="slc"># Viewport.</span>
viewport_up <span class="sym">= [</span> <span class="str">'mousedown_4'</span> <span class="sym">],</span>
viewport_down <span class="sym">= [</span> <span class="str">'mousedown_5'</span> <span class="sym">],</span>
viewport_drag_start <span class="sym">= [</span> <span class="str">'mousedown_1'</span> <span class="sym">],</span>
viewport_drag_end <span class="sym">= [</span> <span class="str">'mouseup_1'</span> <span class="sym">],</span>
<span class="slc"># These keys control skipping.</span>
skip <span class="sym">= [</span> <span class="str">'K_LCTRL'</span><span class="sym">,</span> <span class="str">'K_RCTRL'</span> <span class="sym">],</span>
toggle_skip <span class="sym">= [</span> <span class="str">'K_TAB'</span><span class="sym">,</span> <span class="str">'joy_skip'</span> <span class="sym">],</span>
fast_skip <span class="sym">= [</span> <span class="str">'>'</span> <span class="sym">],</span>
<span class="slc"># These control the bar.</span>
bar_activate <span class="sym">= [</span> <span class="str">'mousedown_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
bar_deactivate <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
bar_decrease <span class="sym">= [</span> <span class="str">'K_LEFT'</span><span class="sym">,</span> <span class="str">'joy_left'</span> <span class="sym">],</span>
bar_increase <span class="sym">= [</span> <span class="str">'K_RIGHT'</span><span class="sym">,</span> <span class="str">'joy_right'</span> <span class="sym">],</span>
<span class="sym">)</span>
</pre>
<div class="visualClear" />
<hr /><p class="docnav"><a href="../index.html">documentation index</a> ◦ <a href="Reference_Manual.html">reference manual</a> ◦ <a href="Function_Index.html">function index</a></p></div>
</body></html>
|