renpy/doc/keymap.html

480 lines
49 KiB
HTML
Raw Normal View History

2023-01-18 22:13:55 +00:00
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Customizing the Keymap &#8212; Ren&#39;Py Documentation</title>
<link rel="stylesheet" href="_static/renpydoc.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-3.3.6/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-3.3.6/css/bootstrap-theme.min.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/js/jquery-fix.js"></script>
<script type="text/javascript" src="_static/bootstrap-3.3.6/js/bootstrap.min.js"></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Achievements" href="achievement.html" />
<link rel="prev" title="Sprites" href="sprites.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
</head><body>
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">
Ren&#39;Py Documentation</a>
<span class="navbar-text navbar-version pull-left"><b>7.5.3</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li><a href="https://www.renpy.org">Home Page</a></li>
<li><a href="https://www.renpy.org/doc/html/">Online Documentation</a></li>
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="index.html">Site <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="gui.html">GUI Customization Guide</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="language_basics.html">Language Basics</a></li>
<li class="toctree-l1"><a class="reference internal" href="label.html">Labels &amp; Control Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="dialogue.html">Dialogue and Narration</a></li>
<li class="toctree-l1"><a class="reference internal" href="displaying_images.html">Displaying Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="menus.html">In-Game Menus</a></li>
<li class="toctree-l1"><a class="reference internal" href="python.html">Python Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="conditional.html">Conditional Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="audio.html">Audio</a></li>
<li class="toctree-l1"><a class="reference internal" href="movie.html">Movie</a></li>
<li class="toctree-l1"><a class="reference internal" href="voice.html">Voice</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="text.html">Text</a></li>
<li class="toctree-l1"><a class="reference internal" href="translation.html">Translation</a></li>
<li class="toctree-l1"><a class="reference internal" href="displayables.html">Displayables</a></li>
<li class="toctree-l1"><a class="reference internal" href="transforms.html">Transforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="transitions.html">Transitions</a></li>
<li class="toctree-l1"><a class="reference internal" href="atl.html">Animation and Transformation Language</a></li>
<li class="toctree-l1"><a class="reference internal" href="matrixcolor.html">Matrixcolor</a></li>
<li class="toctree-l1"><a class="reference internal" href="layeredimage.html">Layered Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="3dstage.html">3D Stage</a></li>
<li class="toctree-l1"><a class="reference internal" href="live2d.html">Live2D Cubism</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="style.html">Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="style_properties.html">Style Properties</a></li>
<li class="toctree-l1"><a class="reference internal" href="screens.html">Screens and Screen Language</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_actions.html">Screen Actions, Values, and Functions</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_special.html">Special Screen Names</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_optimization.html">Screen Language Optimization</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="preferences.html">Preference Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="store_variables.html">Store Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="mouse.html">Custom Mouse Cursors</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="launcher.html">Launcher</a></li>
<li class="toctree-l1"><a class="reference internal" href="developer_tools.html">Developer Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="director.html">Interactive Director</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="nvl_mode.html">NVL-Mode Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="input.html">Text Input</a></li>
<li class="toctree-l1"><a class="reference internal" href="side_image.html">Side Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="rooms.html">Image Gallery, Music Room, and Replay Actions</a></li>
<li class="toctree-l1"><a class="reference internal" href="drag_drop.html">Drag and Drop</a></li>
<li class="toctree-l1"><a class="reference internal" href="sprites.html">Sprites</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Customizing the Keymap</a></li>
<li class="toctree-l1"><a class="reference internal" href="achievement.html">Achievements</a></li>
<li class="toctree-l1"><a class="reference internal" href="history.html">Dialogue History</a></li>
<li class="toctree-l1"><a class="reference internal" href="multiple.html">Multiple Character Dialogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="splashscreen_presplash.html">Splashscreen and Presplash</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="statement_equivalents.html">Statement Equivalents</a></li>
<li class="toctree-l1"><a class="reference internal" href="save_load_rollback.html">Saving, Loading, and Rollback</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistent.html">Persistent Data</a></li>
<li class="toctree-l1"><a class="reference internal" href="trans_trans_python.html">Transforms and Transitions in Python</a></li>
<li class="toctree-l1"><a class="reference internal" href="gui_advanced.html">Advanced GUI</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_python.html">Screens and Python</a></li>
<li class="toctree-l1"><a class="reference internal" href="modes.html">Modes</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdd.html">Creator-Defined Displayables</a></li>
<li class="toctree-l1"><a class="reference internal" href="cds.html">Creator-Defined Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="custom_text_tags.html">Custom Text Tags</a></li>
<li class="toctree-l1"><a class="reference internal" href="character_callbacks.html">Character Callbacks</a></li>
<li class="toctree-l1"><a class="reference internal" href="file_python.html">File Access</a></li>
<li class="toctree-l1"><a class="reference internal" href="color_class.html">Color Class</a></li>
<li class="toctree-l1"><a class="reference internal" href="matrix.html">Matrix</a></li>
<li class="toctree-l1"><a class="reference internal" href="model.html">Model-Based Rendering</a></li>
<li class="toctree-l1"><a class="reference internal" href="other.html">Other Functions and Variables</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="build.html">Building Distributions</a></li>
<li class="toctree-l1"><a class="reference internal" href="updater.html">Web Updater</a></li>
<li class="toctree-l1"><a class="reference internal" href="android.html">Android</a></li>
<li class="toctree-l1"><a class="reference internal" href="chromeos.html">Chrome OS/Chromebook</a></li>
<li class="toctree-l1"><a class="reference internal" href="ios.html">iOS</a></li>
<li class="toctree-l1"><a class="reference internal" href="iap.html">In-App Purchasing</a></li>
<li class="toctree-l1"><a class="reference internal" href="gesture.html">Gestures</a></li>
<li class="toctree-l1"><a class="reference internal" href="raspi.html">Raspberry Pi</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="problems.html">Dealing with Problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="environment_variables.html">Environment Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="self_voicing.html">Self-Voicing</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="editor.html">Text Editor Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="skins.html">Skins</a></li>
<li class="toctree-l1"><a class="reference internal" href="translating_renpy.html">Translating Ren'Py</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Ren'Py 7.x-)</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog6.html">Changelog (Ren'Py 6.11 - 6.99)</a></li>
<li class="toctree-l1"><a class="reference internal" href="incompatible.html">Incompatible Changes</a></li>
<li class="toctree-l1"><a class="reference internal" href="distributor.html">Distributor Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
<li class="toctree-l1"><a class="reference internal" href="sponsors.html">Ren'Py Development Sponsors</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="thequestion.html">Script of The Question</a></li>
<li class="toctree-l1"><a class="reference internal" href="thequestion_nvl.html">NVL-mode script for The Question</a></li>
</ul>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="sidebar" class="bs-sidenav" role="complementary"><ul>
<li><a class="reference internal" href="#">Customizing the Keymap</a></li>
</ul>
</div>
</div>
<div class="col-md-9 content">
<div class="section" id="customizing-the-keymap">
<span id="keymap"></span><h1>Customizing the Keymap<a class="headerlink" href="#customizing-the-keymap" title="Permalink to this headline"> link</a></h1>
<p>The variable <a class="reference internal" href="config.html#var-config.keymap"><code class="xref std std-var docutils literal notranslate"><span class="pre">config.keymap</span></code></a> contains a map from event names to lists
of keysyms that cause those events to occur.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Many players have learned the default set of Ren'Py keybindings, and
expect them to be the same from game to game.</p>
</div>
<p>In Ren'Py keysyms are strings representing mouse buttons, joystick buttons,
or keyboard keys.</p>
<p>Mouse buttons use keysyms of the form 'mouseup_#' or 'mousedown_#',
where # is a button number. Ren'Py assumes a five button mouse,
where buttons 1, 2, and 3 are the left, middle, and right buttons, while
buttons 4 and 5 are generated by scrolling the wheel up and down.
For example, &quot;mousedown_1&quot; is generally a press of the left mouse button,
&quot;mouseup_1&quot; is a release of that button, and &quot;mousedown_4&quot; is a turn of the
scroll wheel to the top.</p>
<p>There are two kinds of keyboard keysyms. The first 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 &quot;a&quot;, &quot;A&quot;, and &quot;7&quot;.
Note that these are case sensitive, &quot;a&quot; does not match &quot;A&quot;. This kind of keysym
is only useful when an event generates text - for example, the a key being
released will not match <code class="docutils literal notranslate"><span class="pre">keyup_a</span></code>, as no text is generated.</p>
<p>Keyboard keysyms can also be the symbolic name for the key. This can be any of
the K_ constants taken from pygame.constants. This type of keysym looks like
&quot;K_BACKSPACE&quot;, &quot;K_RETURN&quot;, and &quot;K_TAB&quot;; a full list of this kind of keysyms may
be found <a class="reference external" href="http://www.pygame.org/docs/ref/key.html">here</a>.</p>
<p>Keyboard keysyms may be preceded by the following prefixes, separated by
underscores:</p>
<dl class="docutils">
<dt>alt</dt>
<dd>Matches if the Alt key is pressed. Keysyms without this prefix match
when the Alt key is not pressed.</dd>
<dt>meta</dt>
<dd>Matches if the meta, Command, or Windows key is pressed. Keysyms without
this prefix match when the meta key is not pressed.</dd>
<dt>ctrl</dt>
<dd>Matches if the Ctrl key is pressed. Keysyms without this prefix match
when the Ctrl key is not pressed. (Ctrl is not very useful, as it
usually triggers skipping.)</dd>
<dt>osctrl</dt>
<dd>This is alt on the Macintosh, and ctrl elsewhere.</dd>
<dt>shift</dt>
<dd>Matches when the Shift key is pressed.</dd>
<dt>noshift</dt>
<dd>Matches when the Shift key is not pressed.</dd>
<dt>repeat</dt>
<dd>Matches when the key is a repeat due to the key being held down. Keysyms
without this prefix do not match repeats.</dd>
<dt>keydown</dt>
<dd>Matches when the key is being pressed down (the default).</dd>
<dt>keyup</dt>
<dd>Matches when the key is being released.</dd>
</dl>
<p>For example, the keysym &quot;shift_alt_K_F5&quot; will match the F5 key being pressed
while Shift and Alt are held down.</p>
<p>To change a binding, update the appropriate list in <a class="reference internal" href="config.html#var-config.keymap"><code class="xref std std-var docutils literal notranslate"><span class="pre">config.keymap</span></code></a>. The
following adds the 't' key to the list of keys that dismiss a say
statement, and removes the space key from that list.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">init</span><span class="p">:</span>
<span class="k">$</span> <span class="n">config</span><span class="o">.</span><span class="n">keymap</span><span class="p">[</span><span class="s1">&#39;dismiss&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">)</span>
<span class="k">$</span> <span class="n">config</span><span class="o">.</span><span class="n">keymap</span><span class="p">[</span><span class="s1">&#39;dismiss&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s1">&#39;K_SPACE&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>The default keymap is contained inside renpy/common/00keymap.rpy, and
as of version 8.0.2 is as follows:</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="n">config</span><span class="o">.</span><span class="n">keymap</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
<span class="c1"># Bindings present almost everywhere, unless explicitly</span>
<span class="c1"># disabled.</span>
<span class="n">rollback</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_PAGEUP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_PAGEUP&#39;</span><span class="p">,</span> <span class="s1">&#39;K_AC_BACK&#39;</span><span class="p">,</span> <span class="s1">&#39;mousedown_4&#39;</span> <span class="p">],</span>
<span class="n">screenshot</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;s&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_K_s&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_s&#39;</span><span class="p">,</span> <span class="s1">&#39;noshift_K_s&#39;</span> <span class="p">],</span>
<span class="n">toggle_afm</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="n">toggle_fullscreen</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_K_KP_ENTER&#39;</span><span class="p">,</span> <span class="s1">&#39;K_F11&#39;</span><span class="p">,</span> <span class="s1">&#39;noshift_K_f&#39;</span> <span class="p">],</span>
<span class="n">game_menu</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_ESCAPE&#39;</span><span class="p">,</span> <span class="s1">&#39;K_MENU&#39;</span><span class="p">,</span> <span class="s1">&#39;K_PAUSE&#39;</span><span class="p">,</span> <span class="s1">&#39;mouseup_3&#39;</span> <span class="p">],</span>
<span class="n">hide_windows</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_2&#39;</span><span class="p">,</span> <span class="s1">&#39;h&#39;</span><span class="p">,</span> <span class="s1">&#39;noshift_K_h&#39;</span> <span class="p">],</span>
<span class="n">launch_editor</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;E&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_e&#39;</span> <span class="p">],</span>
<span class="n">dump_styles</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="n">reload_game</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;R&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_r&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_r&#39;</span> <span class="p">],</span>
<span class="n">inspector</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;I&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_i&#39;</span> <span class="p">],</span>
<span class="n">full_inspector</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;alt_shift_K_i&#39;</span> <span class="p">],</span>
<span class="n">developer</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;shift_K_d&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_d&#39;</span> <span class="p">],</span>
<span class="n">quit</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="n">iconify</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="n">help</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_F1&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_shift_/&#39;</span> <span class="p">],</span>
<span class="n">choose_renderer</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;G&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_g&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_g&#39;</span> <span class="p">],</span>
<span class="n">progress_screen</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;alt_shift_K_p&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_shift_K_p&#39;</span><span class="p">,</span> <span class="s1">&#39;K_F2&#39;</span> <span class="p">],</span>
<span class="n">accessibility</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;K_a&quot;</span> <span class="p">],</span>
<span class="c1"># Accessibility.</span>
<span class="n">self_voicing</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;v&#39;</span><span class="p">,</span> <span class="s1">&#39;V&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_K_v&#39;</span><span class="p">,</span> <span class="s1">&#39;K_v&#39;</span> <span class="p">],</span>
<span class="n">clipboard_voicing</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;C&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_c&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_c&#39;</span> <span class="p">],</span>
<span class="n">debug_voicing</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;alt_shift_K_v&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_shift_K_v&#39;</span> <span class="p">],</span>
<span class="c1"># Say.</span>
<span class="n">rollforward</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_5&#39;</span><span class="p">,</span> <span class="s1">&#39;K_PAGEDOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_PAGEDOWN&#39;</span> <span class="p">],</span>
<span class="k">dismiss</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_1&#39;</span><span class="p">,</span> <span class="s1">&#39;K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;K_SPACE&#39;</span><span class="p">,</span> <span class="s1">&#39;K_KP_ENTER&#39;</span><span class="p">,</span> <span class="s1">&#39;K_SELECT&#39;</span> <span class="p">],</span>
<span class="n">dismiss_unfocused</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="c1"># Pause.</span>
<span class="n">dismiss_hard_pause</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="c1"># Focus.</span>
<span class="n">focus_left</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_LEFT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">focus_right</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_RIGHT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">focus_up</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_UP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_UP&#39;</span> <span class="p">],</span>
<span class="n">focus_down</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DOWN&#39;</span> <span class="p">],</span>
<span class="c1"># Button.</span>
<span class="n">button_ignore</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_1&#39;</span> <span class="p">],</span>
<span class="n">button_select</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_1&#39;</span><span class="p">,</span> <span class="s1">&#39;K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;K_KP_ENTER&#39;</span><span class="p">,</span> <span class="s1">&#39;K_SELECT&#39;</span> <span class="p">],</span>
<span class="n">button_alternate</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_3&#39;</span> <span class="p">],</span>
<span class="n">button_alternate_ignore</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_3&#39;</span> <span class="p">],</span>
<span class="c1"># Input.</span>
<span class="n">input_backspace</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_BACKSPACE&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_BACKSPACE&#39;</span> <span class="p">],</span>
<span class="n">input_enter</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;K_KP_ENTER&#39;</span> <span class="p">],</span>
<span class="n">input_left</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_LEFT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">input_right</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_RIGHT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">input_up</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_UP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_UP&#39;</span> <span class="p">],</span>
<span class="n">input_down</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DOWN&#39;</span> <span class="p">],</span>
<span class="n">input_delete</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DELETE&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DELETE&#39;</span> <span class="p">],</span>
<span class="n">input_home</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_HOME&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">input_end</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_END&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">input_copy</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;ctrl_noshift_K_INSERT&#39;</span><span class="p">,</span> <span class="s1">&#39;ctrl_noshift_K_c&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_noshift_K_c&#39;</span> <span class="p">],</span>
<span class="n">input_paste</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;shift_K_INSERT&#39;</span><span class="p">,</span> <span class="s1">&#39;ctrl_noshift_K_v&#39;</span><span class="p">,</span> <span class="s1">&#39;meta_noshift_K_v&#39;</span> <span class="p">],</span>
<span class="n">input_jump_word_left</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;osctrl_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">input_jump_word_right</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;osctrl_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">input_delete_word</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;osctrl_K_BACKSPACE&#39;</span> <span class="p">],</span>
<span class="n">input_delete_full</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;meta_K_BACKSPACE&#39;</span> <span class="p">],</span>
<span class="c1"># Viewport.</span>
<span class="n">viewport_leftarrow</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_LEFT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">viewport_rightarrow</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_RIGHT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">viewport_uparrow</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_UP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_UP&#39;</span> <span class="p">],</span>
<span class="n">viewport_downarrow</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DOWN&#39;</span> <span class="p">],</span>
<span class="n">viewport_wheelup</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_4&#39;</span> <span class="p">],</span>
<span class="n">viewport_wheeldown</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_5&#39;</span> <span class="p">],</span>
<span class="n">viewport_drag_start</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_1&#39;</span> <span class="p">],</span>
<span class="n">viewport_drag_end</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_1&#39;</span> <span class="p">],</span>
<span class="n">viewport_pageup</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_PAGEUP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_PAGEUP&#39;</span> <span class="p">],</span>
<span class="n">viewport_pagedown</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_PAGEDOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_PAGEDOWN&#39;</span> <span class="p">],</span>
<span class="c1"># These keys control skipping.</span>
<span class="n">skip</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_LCTRL&#39;</span><span class="p">,</span> <span class="s1">&#39;K_RCTRL&#39;</span> <span class="p">],</span>
<span class="n">stop_skipping</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span>
<span class="n">toggle_skip</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_TAB&#39;</span> <span class="p">],</span>
<span class="n">fast_skip</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;shift_K_PERIOD&#39;</span> <span class="p">],</span>
<span class="c1"># Bar.</span>
<span class="n">bar_activate</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_1&#39;</span><span class="p">,</span> <span class="s1">&#39;K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;K_KP_ENTER&#39;</span><span class="p">,</span> <span class="s1">&#39;K_SELECT&#39;</span> <span class="p">],</span>
<span class="n">bar_deactivate</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_1&#39;</span><span class="p">,</span> <span class="s1">&#39;K_RETURN&#39;</span><span class="p">,</span> <span class="s1">&#39;K_KP_ENTER&#39;</span><span class="p">,</span> <span class="s1">&#39;K_SELECT&#39;</span> <span class="p">],</span>
<span class="n">bar_left</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_LEFT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_LEFT&#39;</span> <span class="p">],</span>
<span class="n">bar_right</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_RIGHT&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_RIGHT&#39;</span> <span class="p">],</span>
<span class="n">bar_up</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_UP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_UP&#39;</span> <span class="p">],</span>
<span class="n">bar_down</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DOWN&#39;</span> <span class="p">],</span>
<span class="c1"># Delete a save.</span>
<span class="n">save_delete</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DELETE&#39;</span> <span class="p">],</span>
<span class="c1"># Draggable.</span>
<span class="n">drag_activate</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_1&#39;</span> <span class="p">],</span>
<span class="n">drag_deactivate</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mouseup_1&#39;</span> <span class="p">],</span>
<span class="c1"># Debug console.</span>
<span class="n">console</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;shift_K_o&#39;</span><span class="p">,</span> <span class="s1">&#39;alt_shift_K_o&#39;</span> <span class="p">],</span>
<span class="n">console_older</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_UP&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_UP&#39;</span> <span class="p">],</span>
<span class="n">console_newer</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_DOWN&#39;</span><span class="p">,</span> <span class="s1">&#39;repeat_K_DOWN&#39;</span><span class="p">],</span>
<span class="c1"># Director</span>
<span class="n">director</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;noshift_K_d&#39;</span> <span class="p">],</span>
<span class="c1"># Ignored (kept for backwards compatibility).</span>
<span class="n">toggle_music</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;m&#39;</span> <span class="p">],</span>
<span class="n">viewport_up</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_4&#39;</span> <span class="p">],</span>
<span class="n">viewport_down</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;mousedown_5&#39;</span> <span class="p">],</span>
<span class="c1"># Profile commands.</span>
<span class="n">performance</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_F3&#39;</span> <span class="p">],</span>
<span class="n">image_load_log</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_F4&#39;</span> <span class="p">],</span>
<span class="n">profile_once</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_F8&#39;</span> <span class="p">],</span>
<span class="n">memory_profile</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;K_F7&#39;</span> <span class="p">],</span>
<span class="p">)</span>
</pre></div>
</div>
<p>Gamepad bindings work a little differently. Gamepad bindings work by mapping
a gamepad event to one or more Ren'Py event names. The default set of
gamepad bindings is given below:</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="n">config</span><span class="o">.</span><span class="n">pad_bindings</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;pad_leftshoulder_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_lefttrigger_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_back_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_leftshoulder_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_lefttrigger_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_back_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollback&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_guide_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;game_menu&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_start_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;game_menu&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_y_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;hide_windows&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_rightshoulder_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollforward&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_rightshoulder_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;rollforward&quot;</span><span class="p">,</span> <span class="p">],</span>
<span class="s2">&quot;pad_righttrigger_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;dismiss&quot;</span><span class="p">,</span> <span class="s2">&quot;button_select&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_activate&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_deactivate&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_a_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;dismiss&quot;</span><span class="p">,</span> <span class="s2">&quot;button_select&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_activate&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_deactivate&quot;</span><span class="p">],</span>
<span class="s2">&quot;pad_b_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;button_alternate&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_dpleft_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_leftx_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_rightx_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_dpright_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_leftx_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_rightx_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_dpup_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_lefty_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_righty_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_dpdown_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_lefty_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;pad_righty_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_dpleft_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_leftx_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_rightx_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_left&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_left&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_leftarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_dpright_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_leftx_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_rightx_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_right&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_right&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_rightarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_dpup_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_lefty_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_righty_neg&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_up&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_up&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_uparrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_dpdown_press&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_lefty_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="s2">&quot;repeat_pad_righty_pos&quot;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;focus_down&quot;</span><span class="p">,</span> <span class="s2">&quot;bar_down&quot;</span><span class="p">,</span> <span class="s2">&quot;viewport_downarrow&quot;</span> <span class="p">],</span>
<span class="p">}</span>
</pre></div>
</div>
<p>Gamepad buttons have an event name of the form &quot;pad_*button*_press&quot; or
&quot;pad_*button*_release&quot;. Analog axis events have the form &quot;pad_*axis*_pos&quot;,
&quot;pad_*axis*_neg&quot;, or &quot;pad_*axis*_zero&quot;. If held down, a second gamepad binding
is generated, with the the &quot;repeat_&quot; prefix.</p>
<p>Gamepads that do not work without special initialization are disabled by
default. This includes the Nintendo Switch Pro Controller, which requires
special initialization to work on a PC. This blocklisting is controlled by
<a class="reference internal" href="config.html#var-config.controller_blocklist"><code class="xref std std-var docutils literal notranslate"><span class="pre">config.controller_blocklist</span></code></a>.</p>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
</p>
<p>
&copy; Copyright 2012-2022, Tom Rothamel.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.6.<br/>
</p>
</div>
</footer>
</body>
</html>