Advertisement
Guest User

keyboard with categories

a guest
May 5th, 2013
1,447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 39.10 KB | None | 0 0
  1. <?xml version="1.0"?>
  2. <!--
  3. Key binding definitions.
  4.  
  5. Regular keycodes go up to 255; special keys start at 256, and can be
  6. calculated by adding 256 to the GLUT key value in glut.h.
  7.  
  8. All Nasal code in this file lives in a common Nasal namespace __kbd.
  9. All <nasal> blocks on the top level are executed in the order from
  10. top down before the key bindings are parsed.
  11. -->
  12.  
  13. <PropertyList>
  14.  <nasal>
  15.   <script>
  16.       # /devices/status/keyboard/event/modifier/ and /devices/status/keyboard/
  17.       # don't only have one BOOL child per modifier, but also contain the
  18.       # modifier bitmap themselves, using these bit values:
  19.       var mod = { shift: 1, ctrl: 2, alt: 4, meta: 8, super: 16, hyper: 32 };
  20.  
  21.       var modifiers = props.globals.getNode("/devices/status/keyboard");
  22.       var shift = props.globals.getNode("/devices/status/keyboard/shift");
  23.       var ctrl = props.globals.getNode("/devices/status/keyboard/ctrl");
  24.       var alt = props.globals.getNode("/devices/status/keyboard/alt");
  25.  
  26.       var space_release = func nil;
  27.       var space = func(state, mod) {
  28.           if (!state) {
  29.               space_release();
  30.               return space_release = func nil;
  31.           }
  32.           if (mod == 0 or mod == 1) {
  33.               controls.ptt(mod + 1);
  34.               space_release = func controls.ptt(0);
  35.           }
  36.       }
  37.  
  38.       ## uncomment this line to get keycode reports printed to the terminal window
  39.       #setlistener("devices/status/keyboard/event", func(n) debug.dump(n.getValues()));
  40.   </script>
  41.  </nasal>
  42.  
  43.  <key n="1">
  44.   <name>Ctrl-A</name>
  45.   <desc>Toggle autopilot altitude lock</desc>
  46.   <category>Autopilot and avionics</category>
  47.   <binding>
  48.    <command>nasal</command>
  49.    <script>
  50.      var node = props.globals.getNode("/autopilot/locks/altitude", 1);
  51.      if ( node.getValue() == "altitude-hold" ) {
  52.        node.setValue( "" );
  53.      } else {
  54.        node.setValue( "altitude-hold" );
  55.      }
  56.    </script>
  57.   </binding>
  58.  </key>
  59.  
  60.  <key n="2">
  61.   <name>Ctrl-B</name>
  62.   <desc>Toggle speedbrake</desc>
  63.   <category>Gears and doors</category>
  64.   <category>Flight control</category>
  65.   <binding>
  66.    <command>property-toggle</command>
  67.    <property>/controls/flight/speedbrake</property>
  68.   </binding>
  69.  </key>
  70.  
  71.  <key n="3">
  72.   <name>Ctrl-C</name>
  73.   <desc>Toggle clickable panel hotspots</desc>
  74.   <category>Simulation</category>
  75.   <binding>
  76.    <command>property-toggle</command>
  77.    <property>/sim/panel-hotspots</property>
  78.   </binding>
  79.  </key>
  80.  
  81.  <key n="7">
  82.   <name>Ctrl-G</name>
  83.   <desc>Toggle autopilot glide slope lock</desc>
  84.   <category>Autopilot and avionics</category>
  85.   <binding>
  86.    <command>nasal</command>
  87.    <script>
  88.      var node = props.globals.getNode("/autopilot/locks/altitude", 1);
  89.      if ( node.getValue() == "gs1-hold" ) {
  90.        node.setValue( "" );
  91.      } else {
  92.        node.setValue( "gs1-hold" );
  93.      }
  94.    </script>
  95.   </binding>
  96.  </key>
  97.  
  98.  <key n="8">
  99.   <name>Ctrl-H</name>
  100.   <desc>Toggle autopilot heading lock</desc>
  101.   <category>Autopilot and avionics</category>
  102.   <binding>
  103.    <command>nasal</command>
  104.    <script>
  105.      var node = props.globals.getNode("/autopilot/locks/heading", 1);
  106.      if ( node.getValue() == "dg-heading-hold" ) {
  107.        node.setValue( "" );
  108.      } else {
  109.        node.setValue( "dg-heading-hold" );
  110.      }
  111.    </script>
  112.   </binding>
  113.  </key>
  114.  
  115.  <!-- Tab key, also Ctrl-I, bit odd -->
  116.  <key n="9">
  117.     <name>Ctrl-I</name>
  118.     <desc>Cycle mouse mode</desc>
  119.     <category>Simulation</category>
  120.     <binding>
  121.    
  122.         <condition>
  123.             <not><property>/devices/status/keyboard/alt</property></not>
  124.             <not><property>/devices/status/keyboard/ctrl</property></not>
  125.         </condition>
  126.         <command>cycle-mouse-mode</command>
  127.         <reason>key-press</reason>
  128.     </binding>
  129.  </key>
  130.  
  131.  <key n="10"> <!-- OSG -->
  132.   <name>Enter</name>
  133.   <desc>Move rudder right</desc>
  134.   <category>Flight control</category>
  135.   <repeatable type="bool">true</repeatable>
  136.   <binding>
  137.    <command>property-adjust</command>
  138.    <property>/controls/flight/rudder</property>
  139.    <step type="double">0.05</step>
  140.   </binding>
  141.  </key>
  142.  
  143.  <key n="13"> <!-- PLIB -->
  144.   <name>Enter</name>
  145.   <desc>Move rudder right</desc>
  146.   <category>Flight control</category>
  147.   <repeatable type="bool">true</repeatable>
  148.   <binding>
  149.    <command>property-adjust</command>
  150.    <property>/controls/flight/rudder</property>
  151.    <step type="double">0.05</step>
  152.   </binding>
  153.  </key>
  154.  
  155.  <key n="14">
  156.   <name>Ctrl-N</name>
  157.   <desc>Toggle autopilot nav1 lock</desc>
  158.   <category>Autopilot and avionics</category>
  159.   <binding>
  160.    <command>nasal</command>
  161.    <script>
  162.      var node = props.globals.getNode("/autopilot/locks/heading", 1);
  163.      if ( node.getValue() == "nav1-hold" ) {
  164.        node.setValue( "" );
  165.      } else {
  166.        node.setValue( "nav1-hold" );
  167.      }
  168.    </script>
  169.   </binding>
  170.  </key>
  171.  
  172.  <key n="16">
  173.   <name>Ctrl-P</name>
  174.   <desc>Toggle pitch hold</desc>
  175.   <category>Autopilot and avionics</category>
  176.   <binding>
  177.    <command>nasal</command>
  178.    <script>
  179.      var node = props.globals.getNode("/autopilot/locks/altitude", 1);
  180.      if ( node.getValue() == "pitch-hold" ) {
  181.        node.setValue( "" );
  182.      } else {
  183.        node.setValue( "pitch-hold" );
  184.        var pitch = props.globals.getNode("/autopilot/settings/target-pitch-deg", 1);
  185.        pitch.setValue( getprop("/orientation/pitch-deg") );
  186.      }
  187.    </script>
  188.   </binding>
  189.  </key>
  190.  
  191.  <key n="18">
  192.   <name>Ctrl-R</name>
  193.   <desc>Activate the instant replay system</desc>
  194.   <category>Simulation</category>
  195.   <binding>
  196.    <command>replay</command>
  197.   </binding>
  198.   <binding>
  199.     <command>dialog-show</command>
  200.     <dialog-name>replay</dialog-name>
  201.   </binding>
  202.  </key>
  203.  
  204.  <key n="19">
  205.   <name>Ctrl-S</name>
  206.   <desc>Toggle auto-throttle lock</desc>
  207.   <category>Autopilot and avionics</category>
  208.   <binding>
  209.    <command>nasal</command>
  210.    <script>
  211.      var node = props.globals.getNode("/autopilot/locks/speed", 1);
  212.      if ( node.getValue() == "speed-with-throttle" ) {
  213.        node.setValue( "" );
  214.      } else {
  215.        node.setValue( "speed-with-throttle" );
  216.      }
  217.    </script>
  218.   </binding>
  219.  </key>
  220.  
  221.  <key n="20">
  222.   <name>Ctrl-T</name>
  223.   <desc>Toggle autopilot terrain lock</desc>
  224.   <category>Autopilot and avionics</category>
  225.   <binding>
  226.    <command>nasal</command>
  227.    <script>
  228.      var node = props.globals.getNode("/autopilot/locks/altitude", 1);
  229.      if ( node.getValue() == "agl-hold" ) {
  230.        node.setValue( "" );
  231.      } else {
  232.        node.setValue( "agl-hold" );
  233.        var agl = props.globals.getNode("/autopilot/settings/target-agl-ft", 1);
  234.        agl.setValue( getprop("/position/altitude-agl-ft") );
  235.      }
  236.    </script>
  237.   </binding>
  238.  </key>
  239.  
  240.  <key n="21">
  241.   <name>Ctrl-U</name>
  242.   <desc>[Cheat] Add 1000ft of emergency altitude</desc>
  243.   <category>Simulation</category>
  244.   <binding>
  245.    <command>property-adjust</command>
  246.    <property>/position/altitude-ft</property>
  247.    <step type="double">1000.0</step>
  248.   </binding>
  249.   <binding>
  250.    <command>property-assign</command>
  251.    <property>/sim/startup/onground</property>
  252.    <value type="bool">false</value>
  253.   </binding>
  254.  </key>
  255.  
  256.  <key n="22">
  257.   <name>Ctrl-V</name>
  258.   <desc>Select initial view (view 0)</desc>
  259.   <category>Views</category>
  260.   <binding>
  261.    <command>property-assign</command>
  262.    <property>/sim/current-view/view-number</property>
  263.    <value>0</value>
  264.   </binding>
  265.  </key>
  266.  
  267.  <key n="23">
  268.   <name>Ctrl-W</name>
  269.   <desc>Toggle autopilot wing leveler</desc>
  270.   <category>Autopilot and avionics</category>
  271.   <binding>
  272.    <command>nasal</command>
  273.    <script>
  274.      var node = props.globals.getNode("/autopilot/locks/heading", 1);
  275.      if ( node.getValue() == "wing-leveler" ) {
  276.        node.setValue( "" );
  277.      } else {
  278.        node.setValue( "wing-leveler" );
  279.      }
  280.    </script>
  281.   </binding>
  282.  </key>
  283.  
  284.  <key n="24">
  285.   <name>Ctrl-X</name>
  286.   <desc>Reset zoom to default</desc>
  287.   <category>Views</category>
  288.   <binding>
  289.    <command>property-assign</command>
  290.    <property>/sim/current-view/field-of-view</property>
  291.    <property>/sim/view/config/default-field-of-view-deg</property>
  292.   </binding>
  293.  </key>
  294.  
  295.   <key n="26">
  296.     <name>Ctrl-Z</name>
  297.     <desc>Reset visibility to default</desc>
  298.     <category>Views</category>
  299.     <binding>
  300.       <command>nasal</command>
  301.       <script>environment.resetVisibility()</script>
  302.     </binding>
  303.   </key>
  304.  
  305.   <key n="27">
  306.   <name>ESC</name>
  307.   <desc>Prompt and quit FlightGear</desc>
  308.   <category>Simulation</category>
  309.   <binding>
  310.     <condition>
  311.      <not>
  312.       <property>/sim/freeze/replay-state</property>
  313.      </not>
  314.     </condition>
  315.     <command>dialog-show</command>
  316.     <dialog-name>exit</dialog-name>
  317.   </binding>
  318.   <binding>
  319.     <condition>
  320.       <property>/sim/freeze/replay-state</property>
  321.     </condition>
  322.     <command>property-assign</command>
  323.     <property>/sim/replay/disable</property>
  324.     <value type="bool">true</value>
  325.   </binding>
  326.   <mod-shift>
  327.    <desc>Reset FlightGear</desc>
  328.    <category>Simulation</category>
  329.    <binding>
  330.     <command>reset</command>
  331.    </binding>
  332.   </mod-shift>
  333.  </key>
  334.  
  335.  <key n="32">
  336.   <name>SPACE</name>
  337.   <desc>PTT - Push To Talk (via FGCom)</desc>
  338.   <category>MP, ATC and AI</category>
  339.   <binding>
  340.    <command>nasal</command>
  341.    <script>space(1, modifiers.getValue())</script>
  342.   </binding>
  343.   <mod-up>
  344.    <binding>
  345.     <command>nasal</command>
  346.     <script>space(0, modifiers.getValue())</script>
  347.    </binding>
  348.   </mod-up>
  349.   <mod-shift>
  350.    <binding>
  351.     <command>nasal</command>
  352.     <script>space(1, modifiers.getValue())</script>
  353.    </binding>
  354.    <mod-up>
  355.     <binding>
  356.      <command>nasal</command>
  357.      <script>space(0, modifiers.getValue())</script>
  358.     </binding>
  359.    </mod-up>
  360.   </mod-shift>
  361.  </key>
  362.  
  363.  <key n="33">
  364.   <name>!</name>
  365.   <desc>Select first engine</desc>
  366.   <category>Propulsion</category>
  367.   <binding>
  368.    <command>nasal</command>
  369.    <script>controls.selectEngine(0)</script>
  370.   </binding>
  371.  </key>
  372.  
  373.  <key n="35">
  374.   <name>#</name>
  375.   <desc>Select third engine</desc>
  376.   <category>Propulsion</category>
  377.   <binding>
  378.    <command>nasal</command>
  379.    <script>controls.selectEngine(2)</script>
  380.   </binding>
  381.  </key>
  382.  
  383.  <key n="36">
  384.   <name>$</name>
  385.   <desc>Select fourth engine</desc>
  386.   <category>Propulsion</category>
  387.   <binding>
  388.    <command>nasal</command>
  389.    <script>controls.selectEngine(3)</script>
  390.   </binding>
  391.  </key>
  392.  
  393.  <key n="39">
  394.   <name>'</name>
  395.   <desc>Display a dialog relevant to the tuned in ATC service (if any)</desc>
  396.   <category>MP, ATC and AI</category>
  397.   <binding>
  398.     <!-- At the moment, we have no working interactive ATC, so this is
  399.         disabled for v2.2.0. -->
  400.     <command>ATC-dialog</command>
  401.   </binding>
  402.  </key>
  403.  
  404.  <key n="43">
  405.   <name>+</name>
  406.   <desc>Let ATC/instructor repeat last message</desc>
  407.   <category>MP, ATC and AI</category>
  408.   <binding>
  409.     <command>nasal</command>
  410.     <script>screen.msg_repeat()</script>
  411.   </binding>
  412.  </key>
  413.  
  414.  <key n="44">
  415.   <name>,</name>
  416.   <desc>Left brake</desc>
  417.   <category>Gears and doors</category>
  418.   <binding>
  419.    <command>nasal</command>
  420.    <script>controls.applyBrakes(1, -1)</script>
  421.   </binding>
  422.   <mod-up>
  423.    <binding>
  424.     <command>nasal</command>
  425.     <script>controls.applyBrakes(0, -1)</script>
  426.    </binding>
  427.   </mod-up>
  428.  </key>
  429.  
  430.  <key n="45">
  431.   <name>-</name>
  432.   <repeatable type="bool">false</repeatable>
  433.   <desc>Chat Menu</desc>
  434.   <category>MP, ATC and AI</category>
  435.   <binding>
  436.      <command>dialog-show</command>
  437.      <dialog-name>chat-menu</dialog-name>
  438.   </binding>
  439.  </key>
  440.  
  441.  <key n="46">
  442.   <name>.</name>
  443.   <desc>Right brake</desc>
  444.   <category>Gears and doors</category>
  445.   <binding>
  446.    <command>nasal</command>
  447.    <script>controls.applyBrakes(1, 1)</script>
  448.   </binding>
  449.   <mod-up>
  450.    <binding>
  451.     <command>nasal</command>
  452.     <script>controls.applyBrakes(0, 1)</script>
  453.    </binding>
  454.   </mod-up>
  455.  </key>
  456.  
  457.  <key n="47">
  458.   <name>/</name>
  459.   <desc>Open property browser</desc>
  460.   <category>Simulation</category>
  461.   <binding>
  462.    <condition>
  463.     <not>
  464.      <property>/sim/input/property-key-handler</property>
  465.     </not>
  466.    </condition>
  467.    <command>nasal</command>
  468.    <script>gui.property_browser()</script>
  469.   </binding>
  470.   <binding>
  471.    <condition>
  472.     <property>/sim/input/property-key-handler</property>
  473.    </condition>
  474.    <command>nasal</command>
  475.    <script>prop_key_handler.start()</script>
  476.   </binding>
  477.  </key>
  478.  
  479.  <key n="48">
  480.   <name>0</name>
  481.   <desc>Move rudder left</desc>
  482.   <category>Flight control</category>
  483.   <repeatable type="bool">true</repeatable>
  484.   <binding>
  485.    <command>property-adjust</command>
  486.    <property>/controls/flight/rudder</property>
  487.    <step type="double">-0.05</step>
  488.   </binding>
  489.  </key>
  490.  
  491.  <key n="49">
  492.   <name>1</name>
  493.   <desc>Decrease elevator trim</desc>
  494.   <category>Flight control</category>
  495.   <repeatable type="bool">true</repeatable>
  496.   <binding>
  497.    <command>property-adjust</command>
  498.    <property>/controls/flight/elevator-trim</property>
  499.    <step type="double">-0.001</step>
  500.   </binding>
  501.   <mod-shift>
  502.     <desc>Look back left</desc>
  503.     <category>Views</category>
  504.     <binding>
  505.      <command>property-assign</command>
  506.      <property>/sim/current-view/goal-heading-offset-deg</property>
  507.      <property>/sim/view/config/back-left-direction-deg</property>
  508.     </binding>
  509.   </mod-shift>
  510.  </key>
  511.  
  512.  <key n="50">
  513.   <name>2</name>
  514.   <desc>Elevator up or increase autopilot altitude</desc>
  515.   <category>Flight control</category>
  516.   <repeatable type="bool">true</repeatable>
  517.   <binding>
  518.    <command>nasal</command>
  519.    <script>
  520.      controls.incElevator(-0.05, 100)
  521.    </script>
  522.   </binding>
  523.   <mod-shift>
  524.    <desc>Look back</desc>
  525.    <category>Views</category>
  526.    <binding>
  527.     <command>property-assign</command>
  528.     <property>/sim/current-view/goal-heading-offset-deg</property>
  529.     <property>/sim/view/config/back-direction-deg</property>
  530.    </binding>
  531.   </mod-shift>
  532.  </key>
  533.  
  534.  <key n="51">
  535.   <name>3</name>
  536.   <desc>Decrease throttle or autopilot autothrottle</desc>
  537.   <category>Propulsion</category>
  538.   <repeatable type="bool">true</repeatable>
  539.   <binding>
  540.    <command>nasal</command>
  541.    <script>
  542.      controls.incThrottle(-0.01, -1.0)
  543.    </script>
  544.   </binding>
  545.   <mod-shift>
  546.    <desc>Look back right</desc>
  547.    <category>Views</category>
  548.    <binding>
  549.     <command>property-assign</command>
  550.     <property>/sim/current-view/goal-heading-offset-deg</property>
  551.     <property>/sim/view/config/back-right-direction-deg</property>
  552.    </binding>
  553.   </mod-shift>
  554.  </key>
  555.  
  556.  <key n="52">
  557.   <name>4</name>
  558.   <desc>Move aileron left (or adjust AP heading.)</desc>
  559.   <category>Flight control</category>
  560.   <repeatable type="bool">true</repeatable>
  561.   <binding>
  562.    <command>nasal</command>
  563.    <script>
  564.      controls.incAileron(-0.05, -1.0)
  565.    </script>
  566.   </binding>
  567.   <mod-shift>
  568.    <desc>Look left</desc>
  569.    <category>Views</category>
  570.    <binding>
  571.     <command>property-assign</command>
  572.     <property>/sim/current-view/goal-heading-offset-deg</property>
  573.     <property>/sim/view/config/left-direction-deg</property>
  574.    </binding>
  575.   </mod-shift>
  576.  </key>
  577.  
  578.  <key n="53">
  579.   <name>5</name>
  580.   <desc>Center aileron, elevator, and rudder</desc>
  581.   <category>Flight control</category>
  582.   <binding>
  583.    <command>nasal</command>
  584.    <script>controls.centerFlightControls()</script>
  585.   </binding>
  586.  </key>
  587.  
  588.  <key n="54">
  589.   <name>6</name>
  590.   <desc>Move aileron right (or adjust AP heading.)</desc>
  591.   <category>Flight control</category>
  592.   <repeatable type="bool">true</repeatable>
  593.   <binding>
  594.    <command>nasal</command>
  595.    <script>
  596.      controls.incAileron(0.05, 1.0)
  597.    </script>
  598.   </binding>
  599.   <mod-shift>
  600.    <desc>Look right</desc>
  601.    <category>Views</category>
  602.    <binding>
  603.     <command>property-assign</command>
  604.     <property>/sim/current-view/goal-heading-offset-deg</property>
  605.     <property>/sim/view/config/right-direction-deg</property>
  606.    </binding>
  607.   </mod-shift>
  608.  </key>
  609.  
  610.  <key n="55">
  611.   <name>7</name>
  612.   <desc>Increase elevator trim</desc>
  613.   <category>Flight control</category>
  614.   <repeatable type="bool">true</repeatable>
  615.   <binding>
  616.    <command>property-adjust</command>
  617.    <property>/controls/flight/elevator-trim</property>
  618.    <step type="double">0.001</step>
  619.   </binding>
  620.   <mod-shift>
  621.    <desc>Look front left</desc>
  622.    <category>Views</category>
  623.    <binding>
  624.     <command>property-assign</command>
  625.     <property>/sim/current-view/goal-heading-offset-deg</property>
  626.     <property>/sim/view/config/front-left-direction-deg</property>
  627.    </binding>
  628.   </mod-shift>
  629.  </key>
  630.  
  631.  <key n="56">
  632.   <name>8</name>
  633.   <desc>Elevator down or decrease autopilot altitude</desc>
  634.   <category>Flight control</category>
  635.   <repeatable type="bool">true</repeatable>
  636.   <binding>
  637.    <command>nasal</command>
  638.    <script>
  639.      controls.incElevator(0.05, -100)
  640.    </script>
  641.   </binding>
  642.   <mod-shift>
  643.    <desc>Look forward</desc>
  644.    <category>Views</category>
  645.    <binding>
  646.     <command>property-assign</command>
  647.     <property>/sim/current-view/goal-heading-offset-deg</property>
  648.     <property>/sim/view/config/front-direction-deg</property>
  649.    </binding>
  650.   </mod-shift>
  651.  </key>
  652.  
  653.  <key n="57">
  654.   <name>9</name>
  655.   <desc>Increase throttle or autopilot autothrottle</desc>
  656.   <category>Propulsion</category>
  657.   <repeatable type="bool">true</repeatable>
  658.   <binding>
  659.   <command>nasal</command>
  660.    <script>
  661.      controls.incThrottle(0.01, 1.0)
  662.    </script>
  663.   </binding>
  664.   <mod-shift>
  665.    <desc>Look front right</desc>
  666.    <category>Views</category>
  667.    <binding>
  668.     <command>property-assign</command>
  669.     <property>/sim/current-view/goal-heading-offset-deg</property>
  670.     <property>/sim/view/config/front-right-direction-deg</property>
  671.    </binding>
  672.   </mod-shift>
  673.  </key>
  674.  
  675.  <key n="58">
  676.   <name>:</name>
  677.   <desc>Start multikey command</desc>
  678.   <category>Simulation</category>
  679.   <binding>
  680.    <command>nasal</command>
  681.    <script>multikey.start()</script>
  682.   </binding>
  683.  </key>
  684.  
  685.  <key n="63">
  686.   <name>?</name>
  687.   <desc>Show help dialog</desc>
  688.   <category>Simulation</category>
  689.   <binding>
  690.    <command>nasal</command>
  691.    <script>gui.showHelpDialog("/sim/help", 1)</script>
  692.   </binding>
  693.  </key>
  694.  
  695.  <key n="64">
  696.   <name>@</name>
  697.   <desc>Select second engine</desc>
  698.   <category>Propulsion</category>
  699.   <binding>
  700.    <command>nasal</command>
  701.    <script>controls.selectEngine(1)</script>
  702.   </binding>
  703.  </key>
  704.  
  705.  <key n="65">
  706.   <name>A</name>
  707.   <desc>Decrease speed-up</desc>
  708.   <category>Simulation</category>
  709.     <binding>
  710.         <command>nasal</command>
  711.         <script>controls.speedup(-1);</script>
  712.     </binding>
  713.  </key>
  714.  
  715.  <key n="66">
  716.   <name>B</name>
  717.   <desc>Toggle parking brake on or off</desc>
  718.   <category>Gears and doors</category>
  719.   <binding>
  720.    <command>nasal</command>
  721.    <script>controls.applyParkingBrake(1)</script>
  722.   </binding>
  723.   <mod-up>
  724.    <binding>
  725.     <command>nasal</command>
  726.     <script>controls.applyParkingBrake(0)</script>
  727.    </binding>
  728.   </mod-up>
  729.  </key>
  730.  
  731.  <key n="71">
  732.   <name>G</name>
  733.   <desc>Gear down</desc>
  734.   <category>Gears and doors</category>
  735.   <binding>
  736.    <command>nasal</command>
  737.    <script>controls.gearDown(1)</script>
  738.   </binding>
  739.   <mod-up>
  740.    <binding>
  741.     <command>nasal</command>
  742.     <script>controls.gearDown(0)</script>
  743.    </binding>
  744.   </mod-up>
  745.  </key>
  746.  
  747.  <key n="72">
  748.   <name>H</name>
  749.   <desc>Cycle HUD Brightness</desc>
  750.   <category>Views</category>
  751.   <binding>
  752.    <command>nasal</command>
  753.    <script>aircraft.HUD.cycle_brightness()</script>
  754.   </binding>
  755.  </key>
  756.  
  757.  <key n="73">
  758.   <name>I</name>
  759.   <desc>Switch to and toggle alternative HUD types</desc>
  760.   <category>Views</category>
  761.   <binding>
  762.    <command>nasal</command>
  763.    <script>aircraft.HUD.cycle_type()</script>
  764.   </binding>
  765.  </key>
  766.  
  767.  <key n="77">
  768.   <name>M</name>
  769.   <desc>Mixture leaner</desc>
  770.   <category>Propulsion</category>
  771.   <repeatable type="bool">true</repeatable>
  772.   <binding>
  773.    <command>nasal</command>
  774.    <script>controls.adjMixture(-1)</script>
  775.   </binding>
  776.  </key>
  777.  
  778.  <key n="78">
  779.   <name>N</name>
  780.   <desc>Propeller Coarser</desc>
  781.   <category>Propulsion</category>
  782.   <repeatable type="bool">true</repeatable>
  783.   <binding>
  784.    <command>nasal</command>
  785.    <script>controls.adjPropeller(-1)</script>
  786.   </binding>
  787.  </key>
  788.  
  789.  <key n="80">
  790.   <name>P</name>
  791.   <desc>Toggle panel</desc>
  792.   <category>Views</category>
  793.   <binding>
  794.    <command>property-toggle</command>
  795.    <property>/sim/panel/visibility</property>
  796.   </binding>
  797.  </key>
  798.  
  799.  <key n="83">
  800.   <name>S</name>
  801.   <desc>Swap panels</desc>
  802.   <category>Views</category>
  803.   <binding>
  804.    <condition>
  805.      <not>
  806.      <property>/sim/allow-toggle-cockpit</property>
  807.      </not>
  808.    </condition>
  809.    <command>property-swap</command>
  810.    <property>/sim/panel/path</property>
  811.    <property>/sim/panel_2/path</property>
  812.   </binding>
  813.   <binding>
  814.    <condition>
  815.      <not>
  816.      <property>/sim/allow-toggle-cockpit</property>
  817.      </not>
  818.    </condition>
  819.    <command>panel-load</command>
  820.   </binding>
  821.  </key>
  822.  
  823.  <key n="84">
  824.   <name>T</name>
  825.   <desc>Decrease warp delta</desc>
  826.   <category>Simulation</category>
  827.   <binding>
  828.    <command>property-adjust</command>
  829.    <property>/sim/time/warp-delta</property>
  830.    <step type="int">-30</step>
  831.   </binding>
  832.  </key>
  833.  
  834.  <key n="86">
  835.   <name>V</name>
  836.   <desc>Scroll in reverse through views</desc>
  837.   <category>Views</category>
  838.   <binding>
  839.    <command>nasal</command>
  840.    <script>view.stepView(-1)</script>
  841.   </binding>
  842.  </key>
  843.  
  844.  <key n="87">
  845.   <name>W</name>
  846.   <desc>Decrease warp</desc>
  847.   <category>Simulation</category>
  848.   <binding>
  849.    <command>property-adjust</command>
  850.    <property>/sim/time/warp</property>
  851.    <step type="int">-60</step>
  852.   </binding>
  853.  </key>
  854.  
  855.  <key n="88">
  856.   <name>X</name>
  857.   <desc>Increase field of view</desc>
  858.   <category>Views</category>
  859.   <repeatable type="bool">true</repeatable>
  860.   <binding>
  861.    <command>nasal</command>
  862.    <script>view.increase()</script>
  863.   </binding>
  864.  </key>
  865.  
  866.  <key n="90">
  867.   <name>Z</name>
  868.   <desc>Decrease Visibility</desc>
  869.   <category>Views</category>
  870.   <repeatable type="bool">true</repeatable>
  871.   <binding>
  872.    <command>nasal</command>
  873.    <script>environment.decreaseVisibility()</script>
  874.   </binding>
  875.  </key>
  876.  
  877.  <key n="91">
  878.   <name>[</name>
  879.   <desc>Decrease flaps</desc>
  880.   <category>Flight control</category>
  881.   <binding>
  882.    <command>nasal</command>
  883.    <script>controls.flapsDown(-1)</script>
  884.   </binding>
  885.   <mod-up>
  886.    <binding>
  887.     <command>nasal</command>
  888.     <script>controls.flapsDown(0)</script>
  889.    </binding>
  890.   </mod-up>
  891.  </key>
  892.  
  893.  <key n="93">
  894.   <name>]</name>
  895.   <desc>Increase flaps</desc>
  896.   <category>Flight control</category>
  897.   <binding>
  898.    <command>nasal</command>
  899.    <script>controls.flapsDown(1)</script>
  900.   </binding>
  901.   <mod-up>
  902.    <binding>
  903.     <command>nasal</command>
  904.     <script>controls.flapsDown(0)</script>
  905.    </binding>
  906.   </mod-up>
  907.  </key>
  908.  
  909.  <key n="95">
  910.   <name>_</name>
  911.   <repeatable type="bool">false</repeatable>
  912.   <desc>Compose Chat</desc>
  913.   <category>MP, ATC and AI</category>
  914.   <binding>
  915.     <command>nasal</command>
  916.     <script>multiplayer.compose_message()</script>
  917.   </binding>
  918.  </key>
  919.  
  920.  <key n="97">
  921.   <name>a</name>
  922.   <desc>Increase speed-up</desc>
  923.   <category>Simulation</category>
  924.     <binding>
  925.         <command>nasal</command>
  926.         <script>controls.speedup(1);</script>
  927.     </binding>
  928.  </key>
  929.  
  930.  <key n="98">
  931.   <name>b</name>
  932.   <desc>Apply all brakes</desc>
  933.   <category>Gears and doors</category>
  934.   <binding>
  935.    <command>nasal</command>
  936.    <script>controls.applyBrakes(1)</script>
  937.   </binding>
  938.   <mod-up>
  939.    <binding>
  940.     <command>nasal</command>
  941.     <script>controls.applyBrakes(0)</script>
  942.    </binding>
  943.   </mod-up>
  944.  </key>
  945.  
  946.  <key n="99">
  947.   <name>c</name>
  948.   <desc>Toggle 3D/2D cockpit</desc>
  949.   <category>Views</category>
  950.   <binding>
  951.    <command>nasal</command>
  952.    <script>
  953.     if(getprop("/sim/allow-toggle-cockpit")) {
  954.         setprop("/sim/current-view/internal", !getprop("/sim/current-view/internal"));
  955.         setprop("/sim/view/internal", getprop("/sim/current-view/internal"));
  956.         setprop("/sim/virtual-cockpit", !getprop("/sim/virtual-cockpit"));
  957.         if(getprop("/sim/current-view/internal")) {
  958.           setprop("/sim/current-view/heading-offset-deg", getprop("/sim/current-view/config/heading-offset-deg"));
  959.           setprop("/sim/current-view/pitch-offset-deg", getprop("/sim/current-view/config/pitch-offset-deg"));
  960.         } else {
  961.           setprop("/sim/current-view/heading-offset-deg", 0);
  962.           setprop("/sim/current-view/pitch-offset-deg", 0);
  963.         }
  964.     }
  965.    </script>
  966.   </binding>
  967.  </key>
  968.  
  969.  <key n="103">
  970.   <name>g</name>
  971.   <desc>Gear Up</desc>
  972.   <category>Gears and doors</category>
  973.   <binding>
  974.    <command>nasal</command>
  975.    <script>controls.gearDown(-1)</script>
  976.   </binding>
  977.   <mod-up>
  978.    <binding>
  979.     <command>nasal</command>
  980.     <script>controls.gearDown(0)</script>
  981.    </binding>
  982.   </mod-up>
  983.  </key>
  984.  
  985.  <key n="104">
  986.   <name>h</name>
  987.   <desc>HUD Master Switch</desc>
  988.   <category>Views</category>
  989.   <binding>
  990.    <command>nasal</command>
  991.    <script>aircraft.HUD.cycle_color()</script>
  992.   </binding>
  993.  </key>
  994.  
  995.  <key n="105">
  996.   <name>i</name>
  997.   <desc>Normal HUD</desc>
  998.   <category>Views</category>
  999.   <binding>
  1000.    <command>nasal</command>
  1001.    <script>aircraft.HUD.normal_type()</script>
  1002.   </binding>
  1003.  </key>
  1004.  
  1005.  <key n="106">
  1006.   <name>j</name>
  1007.   <desc>Decrease spoilers</desc>
  1008.   <category>Flight control</category>
  1009.   <binding>
  1010.    <command>nasal</command>
  1011.    <script>controls.stepSpoilers(-1)</script>
  1012.   </binding>
  1013.  </key>
  1014.  
  1015.  <key n="107">
  1016.   <name>k</name>
  1017.   <desc>Increase spoilers</desc>
  1018.   <category>Flight control</category>
  1019.   <binding>
  1020.    <command>nasal</command>
  1021.    <script>controls.stepSpoilers(1)</script>
  1022.   </binding>
  1023.  </key>
  1024.  
  1025.  <key n="108">
  1026.   <name>l</name>
  1027.   <desc>Toggle tail-wheel lock</desc>
  1028.   <category>Gears and doors</category>
  1029.   <binding>
  1030.    <command>property-toggle</command>
  1031.    <property>/controls/gear/tailwheel-lock</property>
  1032.   </binding>
  1033.  </key>
  1034.  
  1035.  <key n="109">
  1036.   <name>m</name>
  1037.   <desc>Mixture richer</desc>
  1038.   <category>Propulsion</category>
  1039.   <repeatable type="bool">true</repeatable>
  1040.   <binding>
  1041.    <command>nasal</command>
  1042.    <script>controls.adjMixture(1)</script>
  1043.   </binding>
  1044.  </key>
  1045.  
  1046.  <key n="110">
  1047.   <name>n</name>
  1048.   <desc>Propeller Finer</desc>
  1049.   <category>Propulsion</category>
  1050.   <repeatable type="bool">true</repeatable>
  1051.   <binding>
  1052.    <command>nasal</command>
  1053.    <script>controls.adjPropeller(1)</script>
  1054.   </binding>
  1055.  </key>
  1056.  
  1057.  <key n="112">
  1058.   <name>p</name>
  1059.   <desc>Toggle the pause state of the sim</desc>
  1060.   <category>Simulation</category>
  1061.   <binding>
  1062.    <command>pause</command>
  1063.   </binding>
  1064.  </key>
  1065.  
  1066.  <key n="115">
  1067.   <name>s</name>
  1068.   <desc>Fire Starter on Selected Engine(s)</desc>
  1069.   <category>Propulsion</category>
  1070.   <binding>
  1071.    <command>nasal</command>
  1072.    <script>controls.startEngine(1)</script>
  1073.   </binding>
  1074.   <mod-up>
  1075.    <binding>
  1076.     <command>nasal</command>
  1077.     <script>controls.startEngine(0)</script>
  1078.    </binding>
  1079.   </mod-up>
  1080.  </key>
  1081.  
  1082.  <nasal>
  1083.   <script>
  1084.     var t_id = 0;
  1085.   </script>
  1086.  </nasal>
  1087.  
  1088.  <key n="116">
  1089.   <name>t</name>
  1090.   <desc>Increase warp delta</desc>
  1091.   <category>Simulation</category>
  1092.   <binding>
  1093.    <command>property-adjust</command>
  1094.    <property>/sim/time/warp-delta</property>
  1095.    <step type="int">30</step>
  1096.   </binding>
  1097.   <binding>
  1098.    <command>nasal</command>
  1099.    <script>
  1100.     (func(x) {
  1101.         settimer(func {
  1102.             x == t_id or return;
  1103.             gui.popupTip("resetting warp");
  1104.             setprop("/sim/time/warp-delta", 0);
  1105.         }, 1, 1)
  1106.     })(t_id += 1)
  1107.    </script>
  1108.   </binding>
  1109.   <mod-up>
  1110.    <binding>
  1111.     <command>nasal</command>
  1112.     <script>t_id += 1</script>
  1113.    </binding>
  1114.   </mod-up>
  1115.  </key>
  1116.  
  1117.  <key n="118">
  1118.   <name>v</name>
  1119.   <desc>Scroll through views</desc>
  1120.   <category>Views</category>
  1121.   <binding>
  1122.    <command>nasal</command>
  1123.    <script>view.stepView(1)</script>
  1124.   </binding>
  1125.  </key>
  1126.  
  1127.  <key n="119">
  1128.   <name>w</name>
  1129.   <desc>Increase warp</desc>
  1130.   <category>Simulation</category>
  1131.   <binding>
  1132.    <command>property-adjust</command>
  1133.    <property>/sim/time/warp</property>
  1134.    <step type="int">60</step>
  1135.   </binding>
  1136.  </key>
  1137.  
  1138.  <key n="120">
  1139.   <name>x</name>
  1140.   <desc>Decrease field of view</desc>
  1141.   <category>Views</category>
  1142.   <repeatable type="bool">true</repeatable>
  1143.   <binding>
  1144.    <command>nasal</command>
  1145.    <script>view.decrease()</script>
  1146.   </binding>
  1147.  </key>
  1148.  
  1149.  <key n="122">
  1150.   <name>z</name>
  1151.   <desc>Increase Visibility</desc>
  1152.   <category>Views</category>
  1153.   <repeatable type="bool">true</repeatable>
  1154.    <binding>
  1155.    <command>nasal</command>
  1156.    <script>environment.increaseVisibility()</script>
  1157.   </binding>
  1158.  </key>
  1159.  
  1160.  <key n="123">
  1161.   <name>{</name>
  1162.   <desc>Decrease Magneto on Selected Engine</desc>
  1163.   <category>Propulsion</category>
  1164.   <binding>
  1165.    <command>nasal</command>
  1166.    <script>controls.stepMagnetos(-1)</script>
  1167.   </binding>
  1168.   <mod-up>
  1169.    <binding>
  1170.     <command>nasal</command>
  1171.     <script>controls.stepMagnetos(0)</script>
  1172.    </binding>
  1173.   </mod-up>
  1174.  </key>
  1175.  
  1176.  <key n="125">
  1177.   <name>}</name>
  1178.   <desc>Increase Magneto on Selected Engine</desc>
  1179.   <category>Propulsion</category>
  1180.   <binding>
  1181.    <command>nasal</command>
  1182.    <script>controls.stepMagnetos(1)</script>
  1183.   </binding>
  1184.   <mod-up>
  1185.    <binding>
  1186.     <command>nasal</command>
  1187.     <script>controls.stepMagnetos(0)</script>
  1188.    </binding>
  1189.   </mod-up>
  1190.  </key>
  1191.  
  1192.  <key n="126">
  1193.   <name>~</name>
  1194.   <desc>Select all engines</desc>
  1195.   <category>Propulsion</category>
  1196.   <binding>
  1197.    <command>nasal</command>
  1198.    <script>controls.selectAllEngines()</script>
  1199.   </binding>
  1200.  </key>
  1201.  
  1202.  <key n="257">
  1203.   <name>F1</name>
  1204.   <mod-shift>
  1205.    <desc>Load flight recorder tape</desc>
  1206.    <category>Simulation</category>
  1207.    <binding>
  1208.     <command>dialog-show</command>
  1209.     <dialog-name>flight-recorder-load</dialog-name>
  1210.    </binding>
  1211.   </mod-shift>
  1212.  </key>
  1213.  
  1214.  <key n="258">
  1215.   <name>F2</name>
  1216.   <mod-shift>
  1217.    <desc>Save flight recorder tape</desc>
  1218.    <category>Simulation</category>
  1219.    <binding>
  1220.     <command>dialog-show</command>
  1221.     <dialog-name>flight-recorder-save</dialog-name>
  1222.    </binding>
  1223.   </mod-shift>
  1224.  </key>
  1225.  
  1226.  <key n="259">
  1227.   <name>F3</name>
  1228.   <desc>Capture screen</desc>
  1229.   <category>Simulation</category>
  1230.   <binding>
  1231.    <command>screen-capture</command>
  1232.   </binding>
  1233.   <mod-shift>
  1234.    <desc>Load panel</desc>
  1235.    <category>Simulation</category>
  1236.    <binding>
  1237.     <command>panel-load</command>
  1238.    </binding>
  1239.   </mod-shift>
  1240.  </key>
  1241.  
  1242.  <key n="261">
  1243.   <name>F5</name>
  1244.   <repeatable type="bool">true</repeatable>
  1245.   <mod-shift>
  1246.    <desc>Scroll panel down</desc>
  1247.    <category>Views</category>
  1248.    <binding>
  1249.     <command>property-adjust</command>
  1250.     <property>/sim/panel/y-offset</property>
  1251.     <step type="int">-5</step>
  1252.    </binding>
  1253.   </mod-shift>
  1254.  </key>
  1255.  
  1256.  <key n="262">
  1257.   <name>F6</name>
  1258.   <desc>Toggle Autopilot Heading Mode</desc>
  1259.   <category>Autopilot and avionics</category>
  1260.   <repeatable type="bool">true</repeatable>
  1261.   <binding>
  1262.    <command>nasal</command>
  1263.    <script>
  1264.     var prop = "/autopilot/locks/heading";
  1265.     var curr = getprop(prop);
  1266.     if(curr == "true-heading-hold") { setprop(prop, ""); }
  1267.     else { setprop(prop, "true-heading-hold"); }
  1268.    </script>
  1269.   </binding>
  1270.   <mod-shift>
  1271.    <desc>Scroll panel up</desc>
  1272.    <category>Views</category>
  1273.    <binding>
  1274.     <command>property-adjust</command>
  1275.     <property>/sim/panel/y-offset</property>
  1276.     <step type="int">5</step>
  1277.    </binding>
  1278.   </mod-shift>
  1279.  </key>
  1280.  
  1281.  <key n="263">
  1282.   <name>F7</name>
  1283.   <repeatable type="bool">true</repeatable>
  1284.   <mod-shift>
  1285.    <desc>Scroll panel left</desc>
  1286.    <category>Views</category>
  1287.    <binding>
  1288.     <command>property-adjust</command>
  1289.     <property>/sim/panel/x-offset</property>
  1290.     <step type="int">-5</step>
  1291.    </binding>
  1292.   </mod-shift>
  1293.  </key>
  1294.  
  1295.  <key n="264">
  1296.   <name>F8</name>
  1297.   <repeatable type="bool">true</repeatable>
  1298.   <mod-shift>
  1299.    <desc>Scroll panel right</desc>
  1300.    <category>Views</category>
  1301.    <binding>
  1302.     <command>property-adjust</command>
  1303.     <property>/sim/panel/x-offset</property>
  1304.     <step type="int">5</step>
  1305.    </binding>
  1306.   </mod-shift>
  1307.  </key>
  1308.  
  1309.  <key n="266">
  1310.   <name>F10</name>
  1311.   <desc>Toggle menubar</desc>
  1312.   <category>Views</category>
  1313.   <binding>
  1314.    <command>property-toggle</command>
  1315.    <property>/sim/menubar/visibility</property>
  1316.   </binding>
  1317.   <mod-shift>
  1318.     <desc>Toggle fullscreen</desc>
  1319.     <category>Views</category>
  1320.     <binding>
  1321.       <command>toggle-fullscreen</command>
  1322.     </binding>
  1323. <!--
  1324.   <desc>Switch to next GUI style</desc>
  1325.   <binding>
  1326.    <command>nasal</command>
  1327.    <script>gui.nextStyle()</script>
  1328.   </binding>
  1329. -->
  1330.   </mod-shift>
  1331.  </key>
  1332.  
  1333.  <key n="267">
  1334.   <name>F11</name>
  1335.   <desc>Pop up autopilot dialog</desc>
  1336.   <category>Autopilot and avionics</category>
  1337.   <binding>
  1338.    <command>dialog-show</command>
  1339.    <dialog-name>autopilot</dialog-name>
  1340.   </binding>
  1341.  </key>
  1342.  
  1343.  <key n="268">
  1344.   <name>F12</name>
  1345.   <desc>Pop up radio settings dialog</desc>
  1346.   <category>Autopilot and avionics</category>
  1347.   <category>Simulation</category>
  1348.   <binding>
  1349.    <command>dialog-show</command>
  1350.    <dialog-name>radios</dialog-name>
  1351.   </binding>
  1352.  </key>
  1353.  
  1354.  <key n="269">
  1355.   <name>Enter</name>
  1356.   <desc>Move rudder right</desc>
  1357.   <category>Flight control</category>
  1358.   <repeatable type="bool">true</repeatable>
  1359.   <binding>
  1360.    <command>property-adjust</command>
  1361.    <property>/controls/flight/rudder</property>
  1362.    <step type="double">0.05</step>
  1363.   </binding>
  1364.  </key>
  1365.  
  1366.  <key n="309">
  1367.   <name>Keypad 5</name>
  1368.   <desc>Center aileron, elevator, and rudder</desc>
  1369.   <category>Flight control</category>
  1370.   <binding>
  1371.    <command>nasal</command>
  1372.    <script>controls.centerFlightControls()</script>
  1373.   </binding>
  1374.  </key>
  1375.  
  1376.  <key n="356">
  1377.   <name>Left</name>
  1378.   <desc>Move aileron left (or adjust AP heading.)</desc>
  1379.   <category>Flight control</category>
  1380.   <repeatable type="bool">true</repeatable>
  1381.   <binding>
  1382.    <command>nasal</command>
  1383.    <script>
  1384.      if (getprop("/sim/freeze/replay-state"))
  1385.        controls.replaySkip(-5);
  1386.      else
  1387.        controls.incAileron(-0.05, -1.0)
  1388.    </script>
  1389.   </binding>
  1390.   <mod-shift>
  1391.    <desc>Look left</desc>
  1392.    <category>Views</category>
  1393.    <binding>
  1394.     <command>property-assign</command>
  1395.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1396.     <property>/sim/view/config/left-direction-deg</property>
  1397.    </binding>
  1398.   </mod-shift>
  1399.  </key>
  1400.  
  1401.  <key n="357">
  1402.   <name>Up</name>
  1403.   <desc>Elevator down or decrease autopilot altitude</desc>
  1404.   <category>Flight control</category>
  1405.   <repeatable type="bool">true</repeatable>
  1406.   <binding>
  1407.    <command>nasal</command>
  1408.    <script>
  1409.      if (getprop("/sim/freeze/replay-state"))
  1410.        controls.speedup(1);
  1411.      else
  1412.        controls.incElevator(0.05, -100)
  1413.    </script>
  1414.   </binding>
  1415.   <mod-shift>
  1416.    <desc>Look forward</desc>
  1417.    <category>Views</category>
  1418.    <binding>
  1419.     <command>property-assign</command>
  1420.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1421.     <property>/sim/view/config/front-direction-deg</property>
  1422.    </binding>
  1423.   </mod-shift>
  1424.  </key>
  1425.  
  1426.  <key n="358">
  1427.   <name>Right</name>
  1428.   <desc>Move aileron right (or adjust AP heading.)</desc>
  1429.   <category>Flight control</category>
  1430.   <repeatable type="bool">true</repeatable>
  1431.   <binding>
  1432.    <command>nasal</command>
  1433.    <script>
  1434.      if (getprop("/sim/freeze/replay-state"))
  1435.        controls.replaySkip(5);
  1436.      else
  1437.        controls.incAileron(0.05, 1.0)
  1438.    </script>
  1439.    <step type="double">0.05</step>
  1440.   </binding>
  1441.   <mod-shift>
  1442.    <desc>Look right</desc>
  1443.    <category>Views</category>
  1444.    <binding>
  1445.     <command>property-assign</command>
  1446.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1447.     <property>/sim/view/config/right-direction-deg</property>
  1448.    </binding>
  1449.   </mod-shift>
  1450.  </key>
  1451.  
  1452.  <key n="359">
  1453.   <name>Down</name>
  1454.   <desc>Elevator up or increase autopilot altitude</desc>
  1455.   <category>Flight control</category>
  1456.   <repeatable type="bool">true</repeatable>
  1457.   <binding>
  1458.    <command>nasal</command>
  1459.    <script>
  1460.      if (getprop("/sim/freeze/replay-state"))
  1461.        controls.speedup(-1);
  1462.      else
  1463.        controls.incElevator(-0.05, 100)
  1464.    </script>
  1465.   </binding>
  1466.   <mod-shift>
  1467.    <desc>Look backwards</desc>
  1468.    <category>Views</category>
  1469.    <binding>
  1470.     <command>property-assign</command>
  1471.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1472.     <property>/sim/view/config/back-direction-deg</property>
  1473.    </binding>
  1474.   </mod-shift>
  1475.  </key>
  1476.  
  1477.  <key n="360">
  1478.   <name>PageUp</name>
  1479.   <desc>Increase throttle or autopilot autothrottle</desc>
  1480.   <category>Propulsion</category>
  1481.   <repeatable type="bool">true</repeatable>
  1482.   <binding>
  1483.    <command>nasal</command>
  1484.    <script>
  1485.      controls.incThrottle(0.01, 1.0)
  1486.    </script>
  1487.   </binding>
  1488.   <mod-shift>
  1489.    <desc>Look front right</desc>
  1490.    <category>Views</category>
  1491.    <binding>
  1492.     <command>property-assign</command>
  1493.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1494.     <property>/sim/view/config/front-right-direction-deg</property>
  1495.    </binding>
  1496.   </mod-shift>
  1497.  </key>
  1498.  
  1499.  <key n="361">
  1500.   <name>PageDown</name>
  1501.   <desc>Decrease throttle or autopilot autothrottle</desc>
  1502.   <category>Propulsion</category>
  1503.   <repeatable type="bool">true</repeatable>
  1504.   <binding>
  1505.    <command>nasal</command>
  1506.    <script>
  1507.      controls.incThrottle(-0.01, -1.0)
  1508.    </script>
  1509.   </binding>
  1510.   <mod-shift>
  1511.    <desc>Look back right</desc>
  1512.    <category>Views</category>
  1513.    <binding>
  1514.     <command>property-assign</command>
  1515.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1516.     <property>/sim/view/config/back-right-direction-deg</property>
  1517.    </binding>
  1518.   </mod-shift>
  1519.  </key>
  1520.  
  1521.  <key n="362">
  1522.   <name>Home</name>
  1523.   <desc>Increase elevator trim</desc>
  1524.   <category>Flight control</category>
  1525.   <repeatable type="bool">true</repeatable>
  1526.   <binding>
  1527.    <command>property-adjust</command>
  1528.    <property>/controls/flight/elevator-trim</property>
  1529.    <step type="double">0.001</step>
  1530.   </binding>
  1531.   <mod-shift>
  1532.    <desc>Look front left</desc>
  1533.    <category>Views</category>
  1534.    <binding>
  1535.     <command>property-assign</command>
  1536.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1537.     <property>/sim/view/config/front-left-direction-deg</property>
  1538.    </binding>
  1539.   </mod-shift>
  1540.  </key>
  1541.  
  1542.  <key n="363">
  1543.   <name>End</name>
  1544.   <desc>Decrease elevator trim</desc>
  1545.   <category>Flight control</category>
  1546.   <repeatable type="bool">true</repeatable>
  1547.   <binding>
  1548.    <command>property-adjust</command>
  1549.    <property>/controls/flight/elevator-trim</property>
  1550.    <step type="double">-0.001</step>
  1551.   </binding>
  1552.   <mod-shift>
  1553.    <desc>Look back left</desc>
  1554.    <category>Views</category>
  1555.    <binding>
  1556.     <command>property-assign</command>
  1557.     <property>/sim/current-view/goal-heading-offset-deg</property>
  1558.     <property>/sim/view/config/back-left-direction-deg</property>
  1559.    </binding>
  1560.   </mod-shift>
  1561.  </key>
  1562.  
  1563.  <key n="364">
  1564.   <name>Insert</name>
  1565.   <desc>Move rudder left</desc>
  1566.   <category>Flight control</category>
  1567.   <repeatable type="bool">true</repeatable>
  1568.   <binding>
  1569.    <command>property-adjust</command>
  1570.    <property>/controls/flight/rudder</property>
  1571.    <step type="double">-0.05</step>
  1572.   </binding>
  1573.  </key>
  1574.  
  1575. </PropertyList>
  1576.  
  1577. <!-- end of keyboard.xml -->
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement