<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <!-- Sixaxis configuration for Fake-Joystick Use (Keyboard) -->
    <match key="input.product" contains="PLAYSTATION(R)3 Controller">
   
     <merge key="input.x11_driver" type="string">joystick</merge>

     <match key="info.udi" contains="input_1">

      <!-- Main Axis. Left=Mouse; Right=Scroll -->
      <merge key="input.x11_options.MapAxis1" type="string">mode=relative axis=+2x deadzone=5000</merge>
      <merge key="input.x11_options.MapAxis2" type="string">mode=relative axis=+2y deadzone=5000</merge>
      <merge key="input.x11_options.MapAxis3" type="string">mode=relative axis=+1zx deadzone=7500</merge>
      <merge key="input.x11_options.MapAxis4" type="string">mode=relative axis=+1zy deadzone=7500</merge>
      <merge key="input.x11_options.MapAxis5" type="string">mode=none</merge>
      <merge key="input.x11_options.MapAxis6" type="string">mode=none</merge>
      <merge key="input.x11_options.MapAxis7" type="string">mode=none</merge>
      <merge key="input.x11_options.MapAxis8" type="string">mode=none</merge>
 
      <!-- Select=SPACE; Start=ENTER; PS=D. -->
      <merge key="input.x11_options.MapButton1" type="string">key=65</merge>
      <merge key="input.x11_options.MapButton2" type="string">none</merge>
      <merge key="input.x11_options.MapButton3" type="string">none</merge>
      <merge key="input.x11_options.MapButton4" type="string">key=36</merge>
      <merge key="input.x11_options.MapButton17" type="string">key=40</merge>

      <!-- Direcctional keys (Up, Down, Left & Right) -->
      <merge key="input.x11_options.MapButton5" type="string">key=111</merge>
      <merge key="input.x11_options.MapButton8" type="string">key=113</merge>
      <merge key="input.x11_options.MapButton6" type="string">key=114</merge>
      <merge key="input.x11_options.MapButton7" type="string">key=116</merge>

      <!-- R2=R; L2=Q; R1=E; L1=W -->
      <merge key="input.x11_options.MapButton10" type="string">key=27</merge>
      <merge key="input.x11_options.MapButton9" type="string">key=24</merge>
      <merge key="input.x11_options.MapButton12" type="string">key=26</merge>
      <merge key="input.x11_options.MapButton11" type="string">key=25</merge>

      <!-- X=Z; O=X; []=A; Δ=S -->
      <merge key="input.x11_options.MapButton15" type="string">key=52</merge>
      <merge key="input.x11_options.MapButton14" type="string">key=53</merge>
      <merge key="input.x11_options.MapButton16" type="string">key=38</merge>
      <merge key="input.x11_options.MapButton13" type="string">key=39</merge>

     </match>

     <match key="info.udi" contains="input_2">

      <!-- Select=P; Start=,; PS=I -->
      <merge key="input.x11_options.MapButton1" type="string">key=33</merge>
      <merge key="input.x11_options.MapButton2" type="string">none</merge>
      <merge key="input.x11_options.MapButton3" type="string">none</merge>
      <merge key="input.x11_options.MapButton4" type="string">key=48</merge>
      <merge key="input.x11_options.MapButton17" type="string">key=31</merge>

	  <!-- Direcctional keys (^=O, v=L, <=K, >=.) -->
      <merge key="input.x11_options.MapButton5" type="string">key=32</merge>
      <merge key="input.x11_options.MapButton6" type="string">key=60</merge>
      <merge key="input.x11_options.MapButton7" type="string">key=46</merge>
      <merge key="input.x11_options.MapButton8" type="string">key=45</merge>

      <!-- R2=U; L2=G; R1=Y; L1=T -->
      <merge key="input.x11_options.MapButton10" type="string">key=30</merge>
      <merge key="input.x11_options.MapButton9" type="string">key=42</merge>
      <merge key="input.x11_options.MapButton12" type="string">key=29</merge>
      <merge key="input.x11_options.MapButton11" type="string">key=28</merge>

      <!-- X=N; O=M; []=H; Δ=J -->
      <merge key="input.x11_options.MapButton15" type="string">key=57</merge>
      <merge key="input.x11_options.MapButton14" type="string">key=58</merge>
      <merge key="input.x11_options.MapButton16" type="string">key=43</merge>
      <merge key="input.x11_options.MapButton13" type="string">key=44</merge>

    </match>
  </device>
</deviceinfo>
