Board index FlightGear Support Flying

Pilot sitting too low how to "raise the seat"

Controlling your aircraft, using the autopilot etc.

Pilot sitting too low how to "raise the seat"

Postby georgem1956 » Wed Sep 05, 2018 1:45 pm

I finally got my 3 monitors working but I can't see over the instrument panel and through the windshield very well. It's as if the pilot's seat is set too low. How do I raise the seat or my/pilot's eye level to see more of the runway and taxi way in front of me?

Thanks,
George
georgem1956
 
Posts: 35
Joined: Thu Aug 23, 2018 3:30 pm

Re: Pilot sitting too low how to "raise the seat"

Postby Thorsten » Wed Sep 05, 2018 3:04 pm

Right mouse button hold / drag forward (if I remember correctly). Alternatively there's also a view adjustment dialog under 'View'.
Thorsten
 
Posts: 12490
Joined: Mon Nov 02, 2009 9:33 am

Re: Pilot sitting too low how to "raise the seat"

Postby georgem1956 » Wed Sep 05, 2018 3:09 pm

Ok. Thanks. I'll give them a try this evening. I've been holding RMB and dragging around but didn't think about "forward".....I don't remember seeing anything in View but will look again.
georgem1956
 
Posts: 35
Joined: Thu Aug 23, 2018 3:30 pm

Re: Pilot sitting too low how to "raise the seat"

Postby sim » Wed Sep 05, 2018 6:48 pm

Or if you fly using a joystick assuming you have buttons to spare, it is possible to adjust pilot's viewpoint very
accurately using script codes dedicated to two buttons (or an axis). The sim/current-view/y-offset-m value can
be adjusted to do that.
Change the "x" to "z" and you can move pilot view back or forward. To move viewpoint left or right change to "x".
:wink:

Here is a demo showing how the viewpoint moves using X or Y or Z offsets.
In this video the value inputs are very high especially Z set so high it swiftly moves viewpoint from KSFO to the Golden
Gate Bridge!
User avatar
sim
 
Posts: 1431
Joined: Tue Jun 30, 2009 3:13 pm
Location: Shropshire England
Callsign: Fly4Fun
Version: 0.9.10 up
OS: 64 Win 10 HD6450

Re: Pilot sitting too low how to "raise the seat"

Postby Alant » Wed Sep 05, 2018 7:35 pm

The pilot´s eye height is controlled by the property sim/current-view/y-offset-m. You can easily play with this using the menu Debug -> browse internal properties.
The default value is usually set in the aircrfat xxxst.xml file
There is no standard keyboard or joystick binding to adjust this.

Dragging the RMB up and down only results in tilting the file of view. It does not move the eye height.

I have this nasal code in my WIP
# ================================== Seat Height =================================================

var seatRaise = func {

var switchPos = getprop("controls/switches/seat");
var power = getprop("systems/electrical/outputs/essACbus_online");
var y_offset = getprop("sim/current-view/y-offset-m") or 0;
var min = 0.05; ## 2 inches
var max = 0.19; ## 7.5 inches

while(switchPos!=0) {
y_offset = y_offset + ((power * 0.0005)*switchPos);
## print ("power ", power, " switchPos ", switchPos, " y_offset ", y_offset);
if(y_offset > max){y_offset=max};
if(y_offset < min){y_offset=min};

setprop('sim/current-view/y-offset-m', y_offset);
if (power > 0) setprop('controls/seat/vertical-adjust', 1); # trigger for sound
return registerTimerControlsNil(seatRaise); # continue watching
}

setprop('controls/seat/vertical-adjust', 0); # reset sound

} # end function
setlistener("controls/switches/seat", seatRaise);

This in my xxxst.xml file
<!-- Seat Lower -->
<key n="85">
<name>U</name>
<desc>Seat Down</desc>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>-1</value>
</binding>
<mod-up>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>0</value>
</binding>
</mod-up>
</key>
<!-- Seat Raise -->
<key n="117">
<name>u</name>
<desc>Seat Up</desc>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>1</value>
</binding>
<mod-up>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>0</value>
</binding>
</mod-up>
</key>


and this in my Joystick file
<button n="17">
<desc>Seat Up</desc>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>1</value>
</binding>
<mod-up>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>0</value>
</binding>
</mod-up>
</button>
<!-- TGL 4 Down -->
<button n="18">
<desc>Seat Down</desc>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>-1</value>
</binding>
<mod-up>
<binding>
<condition>
<equals>
<property>sim/current-view/view-number</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/controls/switches/seat</property>
<value>0</value>
</binding>
</mod-up>
</button>

Hopefully this will give you some ideas.

Alan
Alant
 
Posts: 1219
Joined: Wed Jun 23, 2010 6:58 am
Location: Portugal
Callsign: Tarnish99
Version: latest Git
OS: Windows 10/11

Re: Pilot sitting too low how to "raise the seat"

Postby WoodSTokk » Wed Sep 05, 2018 9:27 pm

RMB only --> rotate the view direction
Ctrl+RMB --> move the eye point left/right and up/down
Ctrl+RMB+MMB --> move the eye point left/right and forward/back
WoodSTokk
 
Posts: 1077
Joined: Tue Oct 17, 2017 3:30 pm
Location: Milky Way/Sol/Earth/Europe
Callsign: SX-W57
IRC name: WoodSTokk
Version: 2020.4.0
OS: Debian Bullseye

Re: Pilot sitting too low how to "raise the seat"

Postby wlbragg » Wed Sep 05, 2018 9:43 pm

If using "Click right mouse to cycle mouse behavior", that is my default, the middle mouse button in the control mode (cross hair) will allow you to move the view point in the direction you move the mouse add ctrl and it moves fore and aft.

If you want to make your view point permanent, like @Alant said you can change the setting, usually in /Aircraft/[aircraft-name]-set.xml or a specific view.xml file. Code looks like this...

Code: Select all
<view>
        <internal type="bool" archive="y">true</internal>
        <config>
            <x-offset-m archive="y" type="double">-0.0 </x-offset-m><!--y-->
            <y-offset-m archive="y" type="double">-0.2 </y-offset-m><!--z-->
            <z-offset-m archive="y" type="double"> 0.98 </z-offset-m><!--x-->
            <pitch-offset-deg type="double">5</pitch-offset-deg>
            <default-field-of-view-deg>100</default-field-of-view-deg>
        </config>
    </view>


Note the difference between view and world coordinateness in the comments.

You could even add another view VS changing the default. I don't know if any aircraft have vertically adjustable seats, but if any do I think it would be a good idea to simulate that feature.
Kansas and Ohio/Midwest scenery development.
KEQA, 3AU, KRCP Airport Layout
Intel i7/GeForce RTX 2070/Max-Q
User avatar
wlbragg
 
Posts: 7586
Joined: Sun Aug 26, 2012 12:31 am
Location: Kansas (Tornado Alley), USA
Callsign: WC2020
Version: next
OS: Win10/Linux/RTX 2070

Re: Pilot sitting too low how to "raise the seat"

Postby Alant » Wed Sep 05, 2018 10:09 pm

My WIP has a vertically adjustable seat. This means that as well as moving the viewpoint I animate the seat and its occupant - and then move the canvas HUD origin up and down to give the collimated at infinity effect.

Thanks for the info about using the CTRL button. You learn new things every day.

Alan
Alant
 
Posts: 1219
Joined: Wed Jun 23, 2010 6:58 am
Location: Portugal
Callsign: Tarnish99
Version: latest Git
OS: Windows 10/11

Re: Pilot sitting too low how to "raise the seat"

Postby Octal450 » Thu Sep 06, 2018 12:36 pm

I'm not sure how you guys missed this....
Hold CTRL and right click and drag up. Your eyepoint will move up.

Kind Regards,
Josh
Skillset: JSBsim Flight Dynamics, Systems, Canvas, Autoflight/Control, Instrumentation, Animations
Aircraft: A320-family, MD-11, MD-80, Contribs in a few others

Octal450's GitHub|Launcher Catalog
|Airbus Dev Discord|Octal450 Hangar Dev Discord
User avatar
Octal450
 
Posts: 5583
Joined: Tue Oct 06, 2015 1:51 pm
Location: Huntsville, AL
Callsign: WTF411
Version: next
OS: Windows 11

Re: Pilot sitting too low how to "raise the seat"

Postby georgem1956 » Thu Sep 06, 2018 1:14 pm

Wow! That's easy! Thanks. There's a control under views but it's very twitchy. You click on a radial pointer which appears to start as 12:00 (0.00) but it's extremely difficult to select or click the value you want. It's represented numerically beneath the circle and it would be better if we could simply change that value rather them hit or miss with mouse clicks, so long story short....thank you for a much simpler way to do this...
georgem1956
 
Posts: 35
Joined: Thu Aug 23, 2018 3:30 pm

Re: Pilot sitting too low how to "raise the seat"

Postby wkitty42 » Thu Sep 06, 2018 1:39 pm

back when i played with these positioning knobs, i found that i got better precision if i clicked on the knob, held the button down, and slid my mouse further away from the knob so that i had a longer fulcrum with which to rotate the knob... the further out i moved the mouse on the fulcrum, the finer the precision i had...

my main use of these positioning knobs, at that time, was moving my view point when viewing from other craft in my sim... it was pretty neat to be able to select any other craft, AI or MP, and pop into it for a view of what they were seeing along their flight path... these positioning knobs had to be used since each craft has a different 0,0,0 origin point so you might pop up on the tail of one craft and then in the middle of the nose of the next one... i will say that watching an AI craft landing from a first person perspective, say from the craft's nose landing gear, is quite interesting...

i do, however, agree that being able to simply type in the desired numbers would be a GoodThing<tm> ;)
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: Pilot sitting too low how to "raise the seat"

Postby georgem1956 » Thu Sep 06, 2018 1:45 pm

I'll give that a try....
georgem1956
 
Posts: 35
Joined: Thu Aug 23, 2018 3:30 pm

Re: Pilot sitting too low how to "raise the seat"

Postby sim » Sat Sep 15, 2018 4:03 pm

There are enough unused keys in keyboard.xml to redesignate the X Y and Z keys to move viewpoint left/right
up/down and back/forward. Rename (Xkeyboard.xml) or Move the original keyboard.xml and substitute a new keyboard.xml using the code below. Then you can move your view or your seat in any direction you wish. :wink:
Code: Select all
<?xml version="1.0"?>
<!--THIS IS MODIFIED keyboard xml WITH EXTRA VIEW MOVEMENTS USING KEYBOARD
X x Y y Z z etcetera
Key binding definitions.

Regular keycodes go up to 255; special keys start at 256, and can be
calculated by adding 256 to the GLUT key value in glut.h.

All Nasal code in this file lives in a common Nasal namespace __kbd.
All <nasal> blocks on the top level are executed in the order from
top down before the key bindings are parsed.
-->

<PropertyList>
 <nasal>
  <script>
      # /devices/status/keyboard/event/modifier/ and /devices/status/keyboard/
      # don't only have one BOOL child per modifier, but also contain the
      # modifier bitmap themselves, using these bit values:
      var mod = { shift: 1, ctrl: 2, alt: 4, meta: 8, super: 16, hyper: 32 };

      var modifiers = props.globals.getNode("/devices/status/keyboard");
      var shift = props.globals.getNode("/devices/status/keyboard/shift");
      var ctrl = props.globals.getNode("/devices/status/keyboard/ctrl");
      var alt = props.globals.getNode("/devices/status/keyboard/alt");

      var space_release = func nil;
      var space = func(state, mod) {
          if (!state) {
              space_release();
              return space_release = func nil;
          }
          if (mod == 0 or mod == 1) {
              controls.ptt(mod + 1);
              space_release = func controls.ptt(0);
          }
      }

      ## uncomment this line to get keycode reports printed to the terminal window
      #setlistener("devices/status/keyboard/event", func(n) debug.dump(n.getValues()));
  </script>
 </nasal>

 <key n="1">
  <name>Ctrl-A</name>
  <desc>Toggle autopilot altitude lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/altitude", 1);
     if ( node.getValue() == "altitude-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "altitude-hold" );
     }
   </script>
  </binding>
 </key>

 <key n="2">
  <name>Ctrl-B</name>
  <desc>Toggle speedbrake</desc>
  <binding>
   <command>property-toggle</command>
   <property>/controls/flight/speedbrake</property>
  </binding>
 </key>

 <key n="3">
  <name>Ctrl-C</name>
  <desc>Toggle clickable panel hotspots</desc>
  <binding>
   <command>property-toggle</command>
   <property>/sim/panel-hotspots</property>
  </binding>
 </key>

 <key n="7">
  <name>Ctrl-G</name>
  <desc>Toggle autopilot glide slope lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/altitude", 1);
     if ( node.getValue() == "gs1-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "gs1-hold" );
     }
   </script>
  </binding>
 </key>

 <key n="8">
  <name>Ctrl-H</name>
  <desc>Toggle autopilot heading lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/heading", 1);
     if ( node.getValue() == "dg-heading-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "dg-heading-hold" );
     }
   </script>
  </binding>
 </key>

 <key n="10"> <!-- OSG -->
  <name>Enter</name>
  <desc>Move rudder right</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/rudder</property>
   <step type="double">0.05</step>
  </binding>
 </key>

 <key n="13"> <!-- PLIB -->
  <name>Enter</name>
  <desc>Move rudder right</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/rudder</property>
   <step type="double">0.05</step>
  </binding>
 </key>

 <key n="14">
  <name>Ctrl-N</name>
  <desc>Toggle autopilot nav1 lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/heading", 1);
     if ( node.getValue() == "nav1-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "nav1-hold" );
     }
   </script>
  </binding>
 </key>

  <key n="15">
    <name>Ctrl-O</name>
    <desc>Reset visibility to default</desc>
    <binding>
      <command>nasal</command>
      <script>environment.resetVisibility()</script>
    </binding>
  </key>

 <key n="16">
  <name>Ctrl-P</name>
  <desc>Toggle pitch hold</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/altitude", 1);
     if ( node.getValue() == "pitch-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "pitch-hold" );
       var pitch = props.globals.getNode("/autopilot/settings/target-pitch-deg", 1);
       pitch.setValue( getprop("/orientation/pitch-deg") );
     }
   </script>
  </binding>
 </key>

 <key n="18">
  <name>Ctrl-R</name>
  <desc>Activate the instant replay system</desc>
  <binding>
   <command>replay</command>
  </binding>
  <binding>
   <command>dialog-show</command>
   <dialog-name>replay</dialog-name>
  </binding>
 </key>

 <key n="19">
  <name>Ctrl-S</name>
  <desc>Toggle auto-throttle lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/speed", 1);
     if ( node.getValue() == "speed-with-throttle" ) {
       node.setValue( "" );
     } else {
       node.setValue( "speed-with-throttle" );
     }
   </script>
  </binding>
 </key>

 <key n="20">
  <name>Ctrl-T</name>
  <desc>Toggle autopilot terrain lock</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/altitude", 1);
     if ( node.getValue() == "agl-hold" ) {
       node.setValue( "" );
     } else {
       node.setValue( "agl-hold" );
       var agl = props.globals.getNode("/autopilot/settings/target-agl-ft", 1);
       agl.setValue( getprop("/position/altitude-agl-ft") );
     }
   </script>
  </binding>
 </key>

 <key n="21">
  <name>Ctrl-U</name>
  <desc>[Cheat] Add 1000ft of emergency altitude</desc>
  <binding>
   <command>property-adjust</command>
   <property>/position/altitude-ft</property>
   <step type="double">1000.0</step>
  </binding>
  <binding>
   <command>property-assign</command>
   <property>/sim/startup/onground</property>
   <value type="bool">false</value>
  </binding>
 </key>

 <key n="22">
  <name>Ctrl-V</name>
  <desc>Select initial view (view 0)</desc>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/view-number</property>
   <value>0</value>
  </binding>
 </key>

 <key n="23">
  <name>Ctrl-W</name>
  <desc>Toggle autopilot wing leveler</desc>
  <binding>
   <command>nasal</command>
   <script>
     var node = props.globals.getNode("/autopilot/locks/heading", 1);
     if ( node.getValue() == "wing-leveler" ) {
       node.setValue( "" );
     } else {
       node.setValue( "wing-leveler" );
     }
   </script>
  </binding>
 </key>

<key n="24">
  <name>Ctrl-X</name>
  <desc>Reset all views to default</desc>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/z-offset-m</property>
   <property>/sim/view/config/default-z-offset-m</property>
  </binding>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/x-offset-m</property>
   <property>/sim/view/config/default-x-offset-m</property>
  </binding>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/y-offset-m</property>
   <property>/sim/view/config/default-y-offset-m</property>
  </binding>
  <binding>
     <command>nasal</command>
     <script>
         view.resetFOV();
     </script>
    </binding>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/goal-heading-offset-deg</property>
   <property>/sim/view/config/default-goal-heading-offset-deg</property>
  </binding>
  <binding>
   <command>property-assign</command>
   <property>/sim/current-view/goal-pitch-offset-deg</property>
   <property>/sim/view/config/default-goal-pitch-offset-deg</property>
  </binding>
 </key>

  <key n="26">
    <name>Ctrl-Z</name>
    <desc>Reset visibility to default</desc>
    <binding>
      <command>nasal</command>
      <script>environment.resetVisibility()</script>
    </binding>
  </key>

  <key n="27">
  <name>ESC</name>
  <desc>Prompt and quit FlightGear</desc>
  <binding>
    <condition>
     <not>
      <property>/sim/freeze/replay-state</property>
     </not>
    </condition>
    <command>dialog-show</command>
    <dialog-name>exit</dialog-name>
  </binding>
  <binding>
    <condition>
      <property>/sim/freeze/replay-state</property>
    </condition>
    <command>property-assign</command>
    <property>/sim/replay/disable</property>
    <value type="bool">true</value>
  </binding>
  <mod-shift>
   <desc>Reset FlightGear</desc>
   <binding>
    <command>reset</command>
   </binding>
  </mod-shift>
 </key>

 <key n="32">
  <name>SPACE</name>
  <desc>PTT - Push To Talk (via FGCom)</desc>
  <binding>
   <command>nasal</command>
   <script>space(1, modifiers.getValue())</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>space(0, modifiers.getValue())</script>
   </binding>
  </mod-up>
  <mod-shift>
   <binding>
    <command>nasal</command>
    <script>space(1, modifiers.getValue())</script>
   </binding>
   <mod-up>
    <binding>
     <command>nasal</command>
     <script>space(0, modifiers.getValue())</script>
    </binding>
   </mod-up>
  </mod-shift>
 </key>

 <key n="33">
  <name>!</name>
  <desc>Select first engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.selectEngine(0)</script>
  </binding>
 </key>

 <key n="35">
  <name>#</name>
  <desc>Select third engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.selectEngine(2)</script>
  </binding>
 </key>

 <key n="36">
  <name>$</name>
  <desc>Select fourth engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.selectEngine(3)</script>
  </binding>
 </key>

 <key n="39">
  <name>'</name>
  <desc>Display a dialog relevant to the tuned in ATC service (if any)</desc>
  <binding>
    <!-- At the moment, we have no working interactive ATC, so this is
         disabled for v2.2.0. -->
    <command>ATC-dialog</command>
  </binding>
 </key>

 <key n="43">
  <name>+</name>
  <desc>Let ATC/instructor repeat last message</desc>
  <binding>
    <command>nasal</command>
    <script>screen.msg_repeat()</script>
  </binding>
 </key>

 <key n="44">
  <name>,</name>
  <desc>Left brake</desc>
  <binding>
   <command>nasal</command>
   <script>controls.applyBrakes(1, -1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.applyBrakes(0, -1)</script>
   </binding>
  </mod-up>
 </key>

 <key n="45">
  <name>-</name>
  <repeatable type="bool">false</repeatable>
  <desc>Chat Menu</desc>
  <binding>
     <command>dialog-show</command>
     <dialog-name>chat-menu</dialog-name>
  </binding>
 </key>

 <key n="46">
  <name>.</name>
  <desc>Right brake</desc>
  <binding>
   <command>nasal</command>
   <script>controls.applyBrakes(1, 1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.applyBrakes(0, 1)</script>
   </binding>
  </mod-up>
 </key>

 <key n="47">
  <name>/</name>
  <desc>Open property browser</desc>
  <binding>
   <condition>
    <not>
     <property>/sim/input/property-key-handler</property>
    </not>
   </condition>
   <command>nasal</command>
   <script>gui.property_browser()</script>
  </binding>
  <binding>
   <condition>
    <property>/sim/input/property-key-handler</property>
   </condition>
   <command>nasal</command>
   <script>prop_key_handler.start()</script>
  </binding>
 </key>

 <key n="48">
  <name>0</name>
  <desc>Move rudder left</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/rudder</property>
   <step type="double">-0.05</step>
  </binding>
 </key>

 <key n="49">
  <name>1</name>
  <desc>Decrease elevator trim</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/elevator-trim</property>
   <step type="double">-0.001</step>
  </binding>
  <mod-shift>
    <desc>Look back left</desc>
    <binding>
     <command>property-assign</command>
     <property>/sim/current-view/goal-heading-offset-deg</property>
     <property>/sim/view/config/back-left-direction-deg</property>
    </binding>
  </mod-shift>
 </key>

 <key n="50">
  <name>2</name>
  <desc>Elevator up or increase autopilot altitude</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incElevator(-0.05, 100)
   </script>
  </binding>
  <mod-shift>
   <desc>Look back</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/back-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="51">
  <name>3</name>
  <desc>Decrease throttle or autopilot autothrottle</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incThrottle(-0.01, -1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look back right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/back-right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="52">
  <name>4</name>
  <desc>Move aileron left (or adjust AP heading.)</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incAileron(-0.05, -1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look left</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/left-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="53">
  <name>5</name>
  <desc>Center aileron, elevator, and rudder</desc>
  <binding>
   <command>nasal</command>
   <script>controls.centerFlightControls()</script>
  </binding>
 </key>

 <key n="54">
  <name>6</name>
  <desc>Move aileron right (or adjust AP heading.)</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incAileron(0.05, 1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="55">
  <name>7</name>
  <desc>Increase elevator trim</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/elevator-trim</property>
   <step type="double">0.001</step>
  </binding>
  <mod-shift>
   <desc>Look front left</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-left-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="56">
  <name>8</name>
  <desc>Elevator down or decrease autopilot altitude</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incElevator(0.05, -100)
   </script>
  </binding>
  <mod-shift>
   <desc>Look forward</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="57">
  <name>9</name>
  <desc>Increase throttle or autopilot autothrottle</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
  <command>nasal</command>
   <script>
     controls.incThrottle(0.01, 1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look front right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="58">
  <name>:</name>
  <desc>Start multikey command</desc>
  <binding>
   <command>nasal</command>
   <script>multikey.start()</script>
  </binding>
 </key>

 <key n="63">
  <name>?</name>
  <desc>Show help dialog</desc>
  <binding>
   <command>nasal</command>
   <script>gui.showHelpDialog("/sim/help", 1)</script>
  </binding>
 </key>

 <key n="64">
  <name>@</name>
  <desc>Select second engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.selectEngine(1)</script>
  </binding>
 </key>

 <key n="65">
  <name>A</name>
  <desc>Decrease speed-up</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/speed-up</property>
   <min>1</min>
   <step type="double">-1</step>
  </binding>
 </key>

 <key n="66">
  <name>B</name>
  <desc>Toggle parking brake on or off</desc>
  <binding>
   <command>nasal</command>
   <script>controls.applyParkingBrake(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.applyParkingBrake(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="68">
  <name>D</name>
  <desc>Repair-c172</desc>
  <binding>
   <command>nasal</command>
   <script>c172p.repair_damage();electrical.reset_battery_and_circuit_breakers();c172p.click("engine-repair", 6.0)</script>
  </binding>
 </key>

 <key n="71">
  <name>G</name>
  <desc>Gear down</desc>
  <binding>
   <command>nasal</command>
   <script>controls.gearDown(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.gearDown(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="72">
  <name>H</name>
  <desc>Cycle HUD Brightness</desc>
  <binding>
   <command>nasal</command>
   <script>aircraft.HUD.cycle_brightness()</script>
  </binding>
 </key>

 <key n="73">
  <name>I</name>
  <desc>Switch to and toggle alternative HUD types</desc>
  <binding>
   <command>nasal</command>
   <script>aircraft.HUD.cycle_type()</script>
  </binding>
 </key>

 <key n="77">
  <name>M</name>
  <desc>Mixture leaner</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>controls.adjMixture(-1)</script>
  </binding>
 </key>

 <key n="78">
  <name>N</name>
  <desc>Propeller Coarser</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>controls.adjPropeller(-1)</script>
  </binding>
 </key>

 <key n="80">
  <name>P</name>
  <desc>Toggle panel</desc>
  <binding>
   <command>property-toggle</command>
   <property>/sim/panel/visibility</property>
  </binding>
 </key>

<key n="81">
  <name>Q</name>
<desc>VIEW DEFAULTS</desc>
  <repeatable type="bool">false</repeatable>
  <binding>
   <command>nasal</command> <script>
setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/view/config/default-pitch-deg"));
setprop("/sim/current-view/goal-heading-offset-deg", getprop("/sim/view/config/default-heading-deg"));
setprop("/sim/current-view/field-of-view", getprop("/sim/view/config/default-field-of-view-deg"));
setprop("/sim/current-view/x-offset-m", getprop("/sim/view/config/x-offset-m"));
setprop("/sim/current-view/y-offset-m", getprop("/sim/view/config/y-offset-m"));
setprop("/sim/current-view/z-offset-m", getprop("/sim/view/config/z-offset-m"));</script>
  </binding>
 </key>

  <key n="82">
  <name>R</name>
  <desc>PILOT VIEW</desc>
  <repeatable type="bool">false</repeatable>
  <binding>
   <command>nasal</command>
   <script>setprop("/sim/current-view/view-number","0");</script>
  </binding>
 </key>

 <key n="83">
  <name>S</name>
  <desc>Swap panels</desc>
  <binding>
   <condition>
     <not>
     <property>/sim/allow-toggle-cockpit</property>
     </not>
   </condition>
   <command>property-swap</command>
   <property>/sim/panel/path</property>
   <property>/sim/panel_2/path</property>
  </binding>
  <binding>
   <condition>
     <not>
     <property>/sim/allow-toggle-cockpit</property>
     </not>
   </condition>
   <command>panel-load</command>
  </binding>
 </key>

 <key n="84">
  <name>T</name>
  <desc>Decrease warp delta</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/time/warp-delta</property>
   <step type="int">-30</step>
  </binding>
 </key>

 <key n="86">
  <name>V</name>
  <desc>Scroll in reverse through views</desc>
  <binding>
   <command>nasal</command>
   <script>view.stepView(-1)</script>
  </binding>
 </key>

 <key n="87">
  <name>W</name>
  <desc>Decrease warp</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/time/warp</property>
   <step type="int">-60</step>
  </binding>
 </key>

 <key n="88">
  <name>X</name>
  <desc>move view left</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/x-offset-m</property>
 <step type="double">0.03</step>
 </binding>
 </key>

<key n="89">
  <name>Y</name>
  <desc>move view up</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/y-offset-m</property>
 <step type="double">0.03</step>
 </binding>
 </key>

<key n="90">
  <name>Z</name>
  <desc>move view forward</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/z-offset-m</property>
 <step type="double">0.03</step>
 </binding>
 </key>

 <key n="91">
  <name>[</name>
  <desc>Decrease flaps</desc>
  <binding>
   <command>nasal</command>
   <script>controls.flapsDown(-1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.flapsDown(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="93">
  <name>]</name>
  <desc>Increase flaps</desc>
  <binding>
   <command>nasal</command>
   <script>controls.flapsDown(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.flapsDown(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="95">
  <name>_</name>
  <repeatable type="bool">false</repeatable>
  <desc>Compose Chat</desc>
  <binding>
    <command>nasal</command>
    <script>multiplayer.compose_message()</script>
  </binding>
 </key>

 <key n="97">
  <name>a</name>
  <desc>Increase speed-up</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/speed-up</property>
   <min>1</min>
   <step type="double">1</step>
  </binding>
 </key>

 <key n="98">
  <name>b</name>
  <desc>Apply all brakes</desc>
  <binding>
   <command>nasal</command>
   <script>controls.applyBrakes(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.applyBrakes(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="99">
  <name>c</name>
  <desc>Toggle 3D/2D cockpit</desc>
  <binding>
   <command>nasal</command>
   <script>
    if(getprop("/sim/allow-toggle-cockpit")) {
        setprop("/sim/current-view/internal", !getprop("/sim/current-view/internal"));
        setprop("/sim/view/internal", getprop("/sim/current-view/internal"));
        setprop("/sim/virtual-cockpit", !getprop("/sim/virtual-cockpit"));
        if(getprop("/sim/current-view/internal")) {
          setprop("/sim/current-view/heading-offset-deg", getprop("/sim/current-view/config/heading-offset-deg"));
          setprop("/sim/current-view/pitch-offset-deg", getprop("/sim/current-view/config/pitch-offset-deg"));
        } else {
          setprop("/sim/current-view/heading-offset-deg", 0);
          setprop("/sim/current-view/pitch-offset-deg", 0);
        }
    }
   </script>
  </binding>
 </key>

 <key n="100">
  <name>d</name>
  <desc>Repair-c172</desc>
  <binding>
   <command>nasal</command>
   <script>c172p.repair_damage();electrical.reset_battery_and_circuit_breakers();c172p.click("engine-repair", 6.0)</script>
  </binding>
 </key>

 <key n="103">
  <name>g</name>
  <desc>Gear Up</desc>
  <binding>
   <command>nasal</command>
   <script>controls.gearDown(-1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.gearDown(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="104">
  <name>h</name>
  <desc>HUD Master Switch</desc>
  <binding>
   <command>nasal</command>
   <script>aircraft.HUD.cycle_color()</script>
  </binding>
 </key>

 <key n="105">
  <name>i</name>
  <desc>Normal HUD</desc>
  <binding>
   <command>nasal</command>
   <script>aircraft.HUD.normal_type()</script>
  </binding>
 </key>

 <key n="106">
  <name>j</name>
  <desc>Decrease spoilers</desc>
  <binding>
   <command>nasal</command>
   <script>controls.stepSpoilers(-1)</script>
  </binding>
 </key>

 <key n="107">
  <name>k</name>
  <desc>Increase spoilers</desc>
  <binding>
   <command>nasal</command>
   <script>controls.stepSpoilers(1)</script>
  </binding>
 </key>

 <key n="108">
  <name>l</name>
  <desc>Toggle tail-wheel lock</desc>
  <binding>
   <command>property-toggle</command>
   <property>/controls/gear/tailwheel-lock</property>
  </binding>
 </key>

 <key n="109">
  <name>m</name>
  <desc>Mixture richer</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>controls.adjMixture(1)</script>
  </binding>
 </key>

 <key n="110">
  <name>n</name>
  <desc>Propeller Finer</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>controls.adjPropeller(1)</script>
  </binding>
 </key>

  <key n="111">
  <name>o</name>
  <desc>Increase Visibility</desc>
  <repeatable type="bool">true</repeatable>
   <binding>
   <command>nasal</command>
   <script>environment.increaseVisibility()</script>
  </binding>
 </key>

 <key n="112">
  <name>p</name>
  <desc>Toggle the pause state of the sim</desc>
  <binding>
   <command>pause</command>
  </binding>
 </key>

<key n="113">
  <name>q</name>
<desc>VIEW DEFAULTS</desc>
  <repeatable type="bool">false</repeatable>
  <binding>
   <command>nasal</command> <script>
setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/view/config/default-pitch-deg"));
setprop("/sim/current-view/goal-heading-offset-deg", getprop("/sim/view/config/default-heading-deg"));
setprop("/sim/current-view/field-of-view", getprop("/sim/view/config/default-field-of-view-deg"));
setprop("/sim/current-view/x-offset-m", getprop("/sim/view/config/x-offset-m"));
setprop("/sim/current-view/y-offset-m", getprop("/sim/view/config/y-offset-m"));
setprop("/sim/current-view/z-offset-m", getprop("/sim/view/config/z-offset-m"));</script>
  </binding>
 </key>

  <key n="114">
  <name>r</name>
  <desc>PILOT VIEW</desc>
  <repeatable type="bool">false</repeatable>
  <binding>
   <command>nasal</command>
   <script>setprop("/sim/current-view/view-number","0");</script>
  </binding>
 </key>

 <key n="115">
  <name>s</name>
  <desc>Fire Starter on Selected Engine(s)</desc>
  <binding>
   <command>nasal</command>
   <script>controls.startEngine(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.startEngine(0)</script>
   </binding>
  </mod-up>
 </key>

 <nasal>
  <script>
    var t_id = 0;
  </script>
 </nasal>

 <key n="116">
  <name>t</name>
  <desc>Increase warp delta</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/time/warp-delta</property>
   <step type="int">30</step>
  </binding>
  <binding>
   <command>nasal</command>
   <script>
    (func(x) {
        settimer(func {
            x == t_id or return;
            gui.popupTip("resetting warp");
            setprop("/sim/time/warp-delta", 0);
        }, 1, 1)
    })(t_id += 1)
   </script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>t_id += 1</script>
   </binding>
  </mod-up>
 </key>

 <key n="118">
  <name>v</name>
  <desc>Scroll through views</desc>
  <binding>
   <command>nasal</command>
   <script>view.stepView(1)</script>
  </binding>
 </key>

 <key n="119">
  <name>w</name>
  <desc>Increase warp</desc>
  <binding>
   <command>property-adjust</command>
   <property>/sim/time/warp</property>
   <step type="int">60</step>
  </binding>
 </key>

<key n="120">
  <name>x</name>
  <desc>move view right</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/x-offset-m</property>
 <step type="double">-0.03</step>
 </binding>
 </key>

<key n="121">
  <name>y</name>
  <desc>move view down</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/y-offset-m</property>
 <step type="double">-0.03</step>
 </binding>
 </key>

<key n="122">
  <name>z</name>
  <desc>move view back</desc>
  <repeatable>true</repeatable> <binding> <command>property-adjust</command>
  <property>/sim/current-view/z-offset-m</property>
 <step type="double">-0.03</step>
 </binding>
 </key>

 <key n="123">
  <name>{</name>
  <desc>Decrease Magneto on Selected Engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.stepMagnetos(-1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.stepMagnetos(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="125">
  <name>}</name>
  <desc>Increase Magneto on Selected Engine</desc>
  <binding>
   <command>nasal</command>
   <script>controls.stepMagnetos(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.stepMagnetos(0)</script>
   </binding>
  </mod-up>
 </key>

 <key n="126">
  <name>~</name>
  <desc>Select all engines</desc>
  <binding>
   <command>nasal</command>
   <script>controls.selectAllEngines()</script>
  </binding>
 </key>

 <!--<key n="257">
  <name>F1</name>
  <mod-shift>
   <desc>Load flight</desc>
   <binding>
    <command>load</command>
   </binding>
  </mod-shift>
 </key>

 <key n="258">
  <mod-shift>
   <desc>Save flight</desc>
   <binding>
    <command>save</command>
    <write-all>false</write-all>
   </binding>
  </mod-shift>
 </key>-->

 <key n="259">
  <name>F3</name>
  <desc>Capture screen</desc>
  <binding>
   <command>screen-capture</command>
  </binding>
  <mod-shift>
   <desc>Load panel</desc>
   <binding>
    <command>panel-load</command>
   </binding>
  </mod-shift>
 </key>

 <key n="261">
  <name>F5</name>
  <repeatable type="bool">true</repeatable>
  <mod-shift>
   <desc>Scroll panel down</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/panel/y-offset</property>
    <step type="int">-5</step>
   </binding>
  </mod-shift>
 </key>

 <key n="262">
  <name>F6</name>
  <desc>Toggle Autopilot Heading Mode</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
    var prop = "/autopilot/locks/heading";
    var curr = getprop(prop);
    if(curr == "true-heading-hold") { setprop(prop, ""); }
    else { setprop(prop, "true-heading-hold"); }
   </script>
  </binding>
  <mod-shift>
   <desc>Scroll panel up</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/panel/y-offset</property>
    <step type="int">5</step>
   </binding>
  </mod-shift>
 </key>

 <key n="263">
  <name>F7</name>
  <repeatable type="bool">true</repeatable>
  <mod-shift>
   <desc>Scroll panel left</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/panel/x-offset</property>
    <step type="int">-5</step>
   </binding>
  </mod-shift>
 </key>

 <key n="264">
  <name>F8</name>
  <desc></desc>
  <repeatable type="bool">true</repeatable>
  <mod-shift>
   <desc>Scroll panel right</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/panel/x-offset</property>
    <step type="int">5</step>
   </binding>
  </mod-shift>
 </key>

 <key n="266">
  <name>F10</name>
  <desc>Toggle menubar</desc>
  <binding>
   <command>property-toggle</command>
   <property>/sim/menubar/visibility</property>
  </binding>
  <mod-shift>
   <desc>Switch to next GUI style</desc>
   <binding>
    <command>nasal</command>
    <script>gui.nextStyle()</script>
   </binding>
  </mod-shift>
 </key>

 <key n="267">
  <name>F11</name>
  <desc>Pop up autopilot dialog</desc>
  <binding>
   <command>dialog-show</command>
   <dialog-name>autopilot</dialog-name>
  </binding>
 </key>

 <key n="268">
  <name>F12</name>
  <desc>Pop up radio settings dialog</desc>
  <binding>
   <command>dialog-show</command>
   <dialog-name>radios</dialog-name>
  </binding>
 </key>

 <key n="269">
  <name>Enter</name>
  <desc>Move rudder right</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/rudder</property>
   <step type="double">0.05</step>
  </binding>
 </key>

 <key n="309">
  <name>Keypad 5</name>
  <desc>Center aileron, elevator, and rudder</desc>
  <binding>
   <command>nasal</command>
   <script>controls.centerFlightControls()</script>
  </binding>
 </key>

 <key n="356">
  <name>Left</name>
  <desc>Move aileron left (or adjust AP heading.)</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     if (getprop("/sim/freeze/replay-state"))
       controls.replaySkip(-5);
     else
       controls.incAileron(-0.05, -1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look left</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/left-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="357">
  <name>Up</name>
  <desc>Elevator down or decrease autopilot altitude</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     if (getprop("/sim/freeze/replay-state"))
       controls.speedup(1);
     else
       controls.incElevator(0.05, -100)
   </script>
  </binding>
  <mod-shift>
   <desc>Look forward</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="358">
  <name>Right</name>
  <desc>Move aileron right (or adjust AP heading.)</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     if (getprop("/sim/freeze/replay-state"))
       controls.replaySkip(5);
     else
       controls.incAileron(0.05, 1.0)
   </script>
   <step type="double">0.05</step>
  </binding>
  <mod-shift>
   <desc>Look right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="359">
  <name>Down</name>
  <desc>Elevator up or increase autopilot altitude</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     if (getprop("/sim/freeze/replay-state"))
       controls.speedup(-1);
     else
       controls.incElevator(-0.05, 100)
   </script>
  </binding>
  <mod-shift>
   <desc>Look backwards</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/back-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="360">
  <name>PageUp</name>
  <desc>Increase throttle or autopilot autothrottle</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incThrottle(0.01, 1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look front right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="361">
  <name>PageDown</name>
  <desc>Decrease throttle or autopilot autothrottle</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>nasal</command>
   <script>
     controls.incThrottle(-0.01, -1.0)
   </script>
  </binding>
  <mod-shift>
   <desc>Look back right</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/back-right-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="362">
  <name>Home</name>
  <desc>Increase elevator trim</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/elevator-trim</property>
   <step type="double">0.001</step>
  </binding>
  <mod-shift>
   <desc>Look front left</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/front-left-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="363">
  <name>End</name>
  <desc>Decrease elevator trim</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/elevator-trim</property>
   <step type="double">-0.001</step>
  </binding>
  <mod-shift>
   <desc>Look back left</desc>
   <binding>
    <command>property-assign</command>
    <property>/sim/current-view/goal-heading-offset-deg</property>
    <property>/sim/view/config/back-left-direction-deg</property>
   </binding>
  </mod-shift>
 </key>

 <key n="364">
  <name>Insert</name>
  <desc>Move rudder left</desc>
  <repeatable type="bool">true</repeatable>
  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/rudder</property>
   <step type="double">-0.05</step>
  </binding>
 </key>

</PropertyList>

<!-- end of keyboard.xml -->


Ctrl-V Select initial view
Ctrl-X Reset all views to default
Q View Defaults
q view defaults
R PILOT VIEW
r pilot view
V Scroll in reverse through views
v Scroll forward through views
X Move view left
x move view right
Y Move view up
y move view down
Z move view forward
z move view back
User avatar
sim
 
Posts: 1431
Joined: Tue Jun 30, 2009 3:13 pm
Location: Shropshire England
Callsign: Fly4Fun
Version: 0.9.10 up
OS: 64 Win 10 HD6450

Re: Pilot sitting too low how to "raise the seat"

Postby wkitty42 » Sat Sep 15, 2018 5:08 pm

x/X is taken by the simulator for increasing/decreasing zoom...
z/Z is taken by the simulator for increasing/decreasing visibility...
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: Pilot sitting too low how to "raise the seat"

Postby wlbragg » Sat Sep 15, 2018 5:38 pm

Hi George,

Are you referring to a specific aircraft that has seats that are too low?

I'm very picky about my view and 99% of the time adjust it at least a little bit. In the c172p I always raise the view high enough I can see the top of the nose of my aircraft. I plan an adding a 6-way adjustable seat option to the c172p so it will be possible to retain your seat position and not have adjust it every time you use it.
I can't imagine any pilot putting up with a view that is not to their liking and not doing whatever it takes to adjust their view.
Kansas and Ohio/Midwest scenery development.
KEQA, 3AU, KRCP Airport Layout
Intel i7/GeForce RTX 2070/Max-Q
User avatar
wlbragg
 
Posts: 7586
Joined: Sun Aug 26, 2012 12:31 am
Location: Kansas (Tornado Alley), USA
Callsign: WC2020
Version: next
OS: Win10/Linux/RTX 2070

Next

Return to Flying

Who is online

Users browsing this forum: No registered users and 3 guests