From 39148a77caad22f2d8e2fcc96801a4b9e36543a4 Mon Sep 17 00:00:00 2001
From: curt <curt>
Date: Mon, 4 Jun 2001 19:48:08 +0000
Subject: [PATCH] ** joysticks.xml - new external file for joystick
 configuration - designed for a basic three-axis, three-button joystick;
 others will   require some work

** keyboard.xml
- changed back to using index ('n' attribute) to represent key code
- switched to nesting for modifiers, so that they can all appear in
  the same declaration
- bound 'b' to brake, but modified so that the brake is released
  as soon as the button is

** preferences.xml
- start mixture at 1.0 (full rich), which is most appropriate for
  take-off and landing
- commented out old joystick bindings
- added reference to external joysticks.xml file
---
 joysticks.xml   | 116 ++++++++++
 keyboard.xml    | 556 +++++++++++++++++++++++-------------------------
 preferences.xml |  67 +-----
 3 files changed, 380 insertions(+), 359 deletions(-)
 create mode 100644 joysticks.xml

diff --git a/joysticks.xml b/joysticks.xml
new file mode 100644
index 000000000..f7a9e31f0
--- /dev/null
+++ b/joysticks.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--
+Joystick binding definitions.
+
+This file is included by preferences.xml, and uses the context of its
+inclusion point; that means that you need to prepend "/input/joysticks"
+to all property names.
+
+This file defines primary flight-control bindings for a simple
+three-axis, three-button joystick, as follow:
+
+  axis 0 (left-right): aileron
+  axis 1 (forward-backward): elevator
+  axis 2 (slider): throttle
+  button 0 (trigger): brakes
+  button 1: trim up
+  button 2: trim down
+
+If you have a more sophisticated joystick, there might be more axes
+available; on my joystick, axis 2 is actually a twist axis (usually
+for the rudder), while axis 3 is the throttle.  There are also two
+axes for the hat switch, and several more buttons.
+-->
+
+<PropertyList>
+
+ <js>
+
+  <axis n="0">
+   <desc>Aileron</desc>
+   <binding>
+    <command>property-scale</command>
+    <property>/controls/aileron</property>
+   </binding>
+  </axis>
+
+  <axis n="1">
+   <desc>Elevator</desc>
+   <binding>
+    <command>property-scale</command>
+    <property>/controls/elevator</property>
+    <factor type="double">-1.0</factor>
+   </binding>
+  </axis>
+
+  <axis n="2">
+   <desc>Throttle</desc>
+   <binding>
+    <command>property-scale</command>
+    <property>/controls/throttle</property>
+    <offset type="double">-1.0</offset>
+    <factor type="double">-0.5</factor>
+   </binding>
+  </axis>
+
+  <button n="0">
+   <desc>Brakes</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[0]</property>
+    <value type="double">1.0</value>
+   </binding>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[1]</property>
+    <value type="double">1.0</value>
+   </binding>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[2]</property>
+    <value type="double">1.0</value>
+   </binding>
+   <mod-up>
+    <binding>
+     <command>property-assign</command>
+     <property>/controls/brakes[0]</property>
+     <value type="double">0.0</value>
+    </binding>
+    <binding>
+     <command>property-assign</command>
+     <property>/controls/brakes[1]</property>
+     <value type="double">0.0</value>
+    </binding>
+    <binding>
+     <command>property-assign</command>
+     <property>/controls/brakes[2]</property>
+     <value type="double">0.0</value>
+    </binding>
+   </mod-up>
+  </button>
+
+  <button n="1">
+   <desc>Elevator trim up</desc>
+   <repeatable>true</repeatable>
+   <binding>
+    <command>property-adjust</command>
+    <property>/controls/elevator-trim</property>
+    <step type="double">0.01</step>
+   </binding>
+  </button>
+
+  <button n="2">
+   <desc>Elevator trim down</desc>
+   <repeatable>true</repeatable>
+   <binding>
+    <command>property-adjust</command>
+    <property>/controls/elevator-trim</property>
+    <step type="double">-0.01</step>
+   </binding>
+  </button>
+
+ </js>
+
+</PropertyList>
+
+<!-- end of joysticks.xml -->
diff --git a/keyboard.xml b/keyboard.xml
index 28f325d8c..1f328dbd5 100644
--- a/keyboard.xml
+++ b/keyboard.xml
@@ -13,14 +13,9 @@ 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.
 -->
 
-<!--
-<!DOCTYPE PropertyList SYSTEM "keyboard.dtd">
--->
-
 <PropertyList>
 
- <key>
-  <code>1</code>
+ <key n="1">
   <name>Ctrl-A</name>
   <desc>Toggle autopilot altitude lock.</desc>
   <binding>
@@ -29,8 +24,7 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>8</code>
+ <key n="8">
   <name>Ctrl-H</name>
   <desc>Toggle autopilot heading lock.</desc>
   <binding>
@@ -39,19 +33,17 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>13</code>
+ <key n="13">
   <name>Enter</name>
   <desc>Move rudder right or increase autopilot heading.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/rudder</property>
-   <step>0.05</step>
+   <step type="double">0.05</step>
   </binding>
  </key>
 
- <key>
-  <code>14</code>
+ <key n="14">
   <name>Ctrl-N</name>
   <desc>Toggle autopilot nav1 lock.</desc>
   <binding>
@@ -60,8 +52,7 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>19</code>
+ <key n="19">
   <name>Ctrl-S</name>
   <desc>Toggle auto-throttle lock.</desc>
   <binding>
@@ -70,246 +61,231 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>21</code>
+ <key n="21">
   <name>Ctrl-U</name>
   <desc>[Cheat] Add 1000ft of emergency altitude.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/position/altitude</property>
-   <step>1000</step>
+   <step type="double">1000.0</step>
   </binding>
  </key>
 
- <key>
-  <code>48</code>
+ <key n="44">
+  <name>,</name>
+  <desc>Left brake</desc>
+  <binding>
+   <command>property-assign</command>
+   <property>/controls/brakes[0]</property>
+   <value type="double">1.0</value>
+  </binding>
+  <mod-up>
+    <command>property-assign</command>
+    <property>/controls/brakes[0]</property>
+    <value type="double">0.0</value>
+  </mod-up>
+ </key>
+
+ <key n="46">
+  <name>.</name>
+  <desc>Right brake</desc>
+  <binding>
+   <command>property-assign</command>
+   <property>/controls/brakes[1]</property>
+   <value type="double">1.0</value>
+  </binding>
+  <mod-up>
+    <command>property-assign</command>
+    <property>/controls/brakes[1]</property>
+    <value type="double">0.0</value>
+  </mod-up>
+ </key>
+
+ <key n="48">
   <name>0</name>
   <desc>Move rudder left or increase autopilot heading.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/rudder</property>
-   <step>-0.05</step>
+   <step type="double">-0.05</step>
   </binding>
  </key>
 
- <key>
-  <code>49</code>
+ <key n="49">
   <name>1</name>
   <desc>Decrease elevator trim.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/elevator-trim</property>
-   <step>-0.001</step>
+   <step type="double">-0.001</step>
   </binding>
+  <mod-shift>
+    <desc>Look back left</desc>
+    <binding>
+     <command>property-assign</command>
+     <property>/sim/view/goal-offset</property>
+     <value type="double">135</value>
+    </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>49</code>
-  <name>Keypad-1</name>
-  <desc>Look back left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>135</value>
-  </binding>
- </key>
-
- <key>
-  <code>50</code>
+ <key n="50">
   <name>2</name>
   <desc>Increase elevator or autopilot altitude.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/elevator</property>
-   <step>0.01</step>
+   <step type="double">0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look back.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">180</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>50</code>
-  <name>Keypad-2</name>
-  <desc>Look back.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>180</value>
-  </binding>
- </key>
-
- <key>
-  <code>51</code>
+ <key n="51">
   <name>3</name>
   <desc>Decrease throttle or autopilot autothrottle.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/throttle</property>
-   <step>-0.01</step>
+   <step type="double">-0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look back right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">225</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>51</code>
-  <name>Keypad-3</name>
-  <desc>Look back right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>225</value>
-  </binding>
- </key>
-
- <key>
-  <code>52</code>
+ <key n="52">
   <name>4</name>
   <desc>Move aileron left.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/aileron</property>
-   <step>-0.05</step>
+   <step type="double">-0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look left.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">90</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>52</code>
-  <name>Keypad-4</name>
-  <desc>Look left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>90</value>
-  </binding>
- </key>
-
- <key>
-  <code>53</code>
+ <key n="53">
   <name>5</name>
   <desc>Center aileron, elevator, and rudder.</desc>
   <binding>
    <command>property-assign</command>
    <property>/controls/aileron</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
   <binding>
    <command>property-assign</command>
    <property>/controls/elevator</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
   <binding>
    <command>property-assign</command>
    <property>/controls/rudder</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
  </key>
 
- <key>
-  <code>54</code>
+ <key n="54">
   <name>6</name>
   <desc>Move aileron right.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/aileron</property>
-   <step>0.05</step>
+   <step type="double">0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">270</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>54</code>
-  <name>Keypad-6</name>
-  <desc>Look right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>270</value>
-  </binding>
- </key>
-
- <key>
-  <code>55</code>
+ <key n="55">
   <name>7</name>
   <desc>Increase elevator trim.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/elevator-trim</property>
-   <step>0.001</step>
+   <step type="double">0.001</step>
   </binding>
+  <mod-shift>
+   <desc>Look front left.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">45</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>55</code>
-  <name>Keypad-7</name>
-  <desc>Look front left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>45</value>
-  </binding>
- </key>
-
- <key>
-  <code>56</code>
+ <key n="56">
   <name>8</name>
   <desc>Decrease elevator or autopilot altitude.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/elevator</property>
-   <step>-0.01</step>
+   <step type="double">-0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look forward.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">0</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>56</code>
-  <name>Keypad-8</name>
-  <desc>Look forward.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>0</value>
-  </binding>
- </key>
-
- <key>
-  <code>57</code>
+ <key n="57">
   <name>9</name>
   <desc>Increase throttle or autopilot autothrottle.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/throttle</property>
-   <step>0.01</step>
+   <step type="double">0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look front right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">315</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>57</code>
-  <name>Keypad-9</name>
-  <desc>Look front right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>315</value>
-  </binding>
- </key>
-
- <key>
-  <code>65</code>
+ <key n="65">
   <name>A</name>
   <desc>Decrease speed-up.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/speed-up</property>
-   <step>-1</step>
+   <step type="double">-1</step>
   </binding>
  </key>
 
- <key>
-  <code>80</code>
+ <key n="80">
   <name>P</name>
   <desc>Toggle panel.</desc>
   <binding>
@@ -318,41 +294,75 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>91</code>
+ <key n="91">
   <name>[</name>
   <desc>Decrease flaps.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/flaps</property>
-   <step>-0.34</step>
+   <step type="double">-0.34</step>
   </binding>
  </key>
 
- <key>
-  <code>93</code>
+ <key n="93">
   <name>]</name>
   <desc>Increase flaps.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/flaps</property>
-   <step>0.34</step>
+   <step type="double">0.34</step>
   </binding>
  </key>
 
- <key>
-  <code>97</code>
+ <key n="97">
   <name>a</name>
   <desc>Increase speed-up.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/sim/speed-up</property>
-   <step>1</step>
+   <step type="double">1</step>
   </binding>
  </key>
 
- <key>
-  <code>118</code>
+ <key n="98">
+  <name>b</name>
+  <desc>Apply all brakes.</desc>
+  <binding>
+   <command>property-assign</command>
+   <property>/controls/brakes[0]</property>
+   <value type="double">1.0</value>
+  </binding>
+  <binding>
+   <command>property-assign</command>
+   <property>/controls/brakes[1]</property>
+   <value type="double">1.0</value>
+  </binding>
+  <binding>
+   <command>property-assign</command>
+   <property>/controls/brakes[2]</property>
+   <value type="double">1.0</value>
+  </binding>
+  <mod-up>
+   <desc>Release all brakes.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[0]</property>
+    <value type="double">0.0</value>
+   </binding>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[1]</property>
+    <value type="double">0.0</value>
+   </binding>
+   <binding>
+    <command>property-assign</command>
+    <property>/controls/brakes[2]</property>
+    <value type="double">0.0</value>
+   </binding>
+  </mod-up>
+ </key>
+
+ <key n="118">
   <name>v</name>
   <desc>Cycle view</desc>
   <binding>
@@ -360,8 +370,7 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>259</code>
+ <key n="259">
   <name>F3</name>
   <desc>Capture screen.</desc>
   <binding>
@@ -369,230 +378,187 @@ calculated by adding 256 to the GLUT key value in glut.h.
   </binding>
  </key>
 
- <key>
-  <code>269</code>
+ <key n="269">
   <name>Enter</name>
   <desc>Move rudder right or increase autopilot heading.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/rudder</property>
-   <step>0.05</step>
+   <step type="double">0.05</step>
   </binding>
  </key>
 
- <key>
-  <code>309</code>
+ <key n="309">
   <name>Keypad 5</name>
   <desc>Center aileron, elevator, and rudder.</desc>
   <binding>
    <command>property-assign</command>
    <property>/controls/aileron</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
   <binding>
    <command>property-assign</command>
    <property>/controls/elevator</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
   <binding>
    <command>property-assign</command>
    <property>/controls/rudder</property>
-   <value>0.0</value>
+   <value type="double">0.0</value>
   </binding>
  </key>
 
- <key>
-  <code>356</code>
+ <key n="356">
   <name>Left</name>
   <desc>Move aileron left.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/aileron</property>
-   <step>-0.05</step>
+   <step type="double">-0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look left.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">90</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>356</code>
-  <name>Keypad-4</name>
-  <desc>Look left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>90</value>
-  </binding>
- </key>
-
- <key>
-  <code>357</code>
+ <key n="357">
   <name>Up</name>
   <desc>Increase elevator or autopilot altitude.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/elevator</property>
-   <step>0.05</step>
+   <step type="double">0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look forward.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">0</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>357</code>
-  <name>Keypad-8</name>
-  <desc>Look forward.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>0</value>
-  </binding>
- </key>
-
- <key>
-  <code>358</code>
+ <key n="358">
   <name>Right</name>
   <desc>Move aileron right.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/aileron</property>
-   <step>0.05</step>
+   <step type="double">0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">270</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>358</code>
-  <name>Keypad-6</name>
-  <desc>Look right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>270</value>
-  </binding>
- </key>
-
- <key>
-  <code>359</code>
+ <key n="359">
   <name>Down</name>
   <desc>Decrease elevator or autopilot altitude.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/elevator</property>
-   <step>-0.05</step>
+   <step type="double">-0.05</step>
   </binding>
+  <mod-shift>
+   <desc>Look backwards.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">180</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>359</code>
-  <name>Keypad-2</name>
-  <desc>Look backwards.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>180</value>
-  </binding>
- </key>
-
- <key>
-  <code>360</code>
+ <key n="360">
   <name>PageUp</name>
   <desc>Increase throttle or autopilot autothrottle.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/throttle</property>
-   <step>0.01</step>
+   <step type="double">0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look front right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">315</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>360</code>
-  <name>Keypad-9</name>
-  <desc>Look front right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>315</value>
-  </binding>
- </key>
-
- <key>
-  <code>361</code>
+ <key n="361">
   <name>PageDown</name>
   <desc>Decrease throttle or autopilot autothrottle.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/throttle</property>
-   <step>-0.01</step>
+   <step type="double">-0.01</step>
   </binding>
+  <mod-shift>
+   <desc>Look back right.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">225</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>361</code>
-  <name>Keypad-3</name>
-  <desc>Look back right.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>225</value>
-  </binding>
- </key>
-
- <key>
-  <code>362</code>
+ <key n="362">
   <name>Home</name>
   <desc>Increase elevator trim.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/elevator-trim</property>
-   <step>0.001</step>
+   <step type="double">0.001</step>
   </binding>
+  <mod-shift>
+   <desc>Look front left.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">45</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>362</code>
-  <name>Keypad-7</name>
-  <desc>Look front left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>45</value>
-  </binding>
- </key>
-
- <key>
-  <code>363</code>
+ <key n="363">
   <name>End</name>
   <desc>Decrease elevator trim.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/controls/elevator-trim</property>
-   <step>-0.001</step>
+   <step type="double">-0.001</step>
   </binding>
+  <mod-shift>
+   <desc>Look back left.</desc>
+   <binding>
+    <command>property-assign</command>
+    <property>/sim/view/goal-offset</property>
+    <value type="double">135</value>
+   </binding>
+  </mod-shift>
  </key>
 
- <key>
-  <code>363</code>
-  <name>Keypad-1</name>
-  <desc>Look back left.</desc>
-  <mod-shift>true</mod-shift>
-  <binding>
-   <command>property-assign</command>
-   <property>/sim/view/goal-offset</property>
-   <value>135</value>
-  </binding>
- </key>
-
- <key>
-  <code>364</code>
+ <key n="364">
   <name>Insert</name>
   <desc>Move rudder left or decrease autopilot heading.</desc>
   <binding>
    <command>property-adjust</command>
    <property>/autopilot/control-overrides/rudder</property>
-   <step>-0.05</step>
+   <step type="double">-0.05</step>
   </binding>
  </key>
 
diff --git a/preferences.xml b/preferences.xml
index 8894287ed..3f8e9920f 100644
--- a/preferences.xml
+++ b/preferences.xml
@@ -78,7 +78,7 @@ Started September 2000 by David Megginson, david@megginson.com
  <!-- Controls -->
 
  <controls>
-  <mixture>0.8</mixture>
+  <mixture>1.0</mixture>
  </controls>
 
 
@@ -89,69 +89,8 @@ Started September 2000 by David Megginson, david@megginson.com
   <!-- included externally -->
   <keyboard include="keyboard.xml"/>
 
-  <js0>
-   <axis0>
-    <control>/controls/aileron</control>
-    <dead-band>0.1</dead-band>
-   </axis0>
-   <axis1>
-    <control>/controls/elevator</control>
-    <dead-band>0.1</dead-band>
-    <factor>-1.0</factor>
-   </axis1>
-   <axis2>
-    <control>/controls/rudder</control>
-    <dead-band>0.1</dead-band>
-   </axis2>
-   <axis3>
-    <control>/controls/throttle</control>
-    <dead-band>0.0</dead-band>
-    <factor>-0.5</factor>
-    <offset>-1.0</offset>
-   </axis3>
-   <button0>
-    <action>switch</action>
-    <control>/controls/brakes/all</control>
-    <repeatable>0.0</repeatable>
-    <step>1.0</step>
-   </button0>
-   <button1>
-    <action>switch</action>
-    <control>/controls/brakes[0]</control>
-    <repeatable>0.0</repeatable>
-    <step>1.0</step>
-   </button1>
-   <button2>
-    <action>switch</action>
-    <control>/controls/brakes[1]</control>
-    <repeatable>0.0</repeatable>
-    <step>1.0</step>
-   </button2>
-   <button3>
-    <action>adjust</action>
-    <control>/controls/elevator-trim</control>
-    <repeatable>true</repeatable>
-    <step>0.001</step>
-   </button3>
-   <button4>
-    <action>adjust</action>
-    <control>/controls/elevator-trim</control>
-    <repeatable>true</repeatable>
-    <step>-0.001</step>
-   </button4>
-   <button5>
-    <action>adjust</action>
-    <control>/controls/flaps</control>
-    <repeatable>false</repeatable>
-    <step>-0.34</step>
-   </button5>
-   <button6>
-    <action>adjust</action>
-    <control>/controls/flaps</control>
-    <repeatable>false</repeatable>
-    <step>0.34</step>
-   </button6>
-  </js0>
+  <!-- included externally -->
+  <joysticks include="joysticks.xml"/>	
 
  </input>