Control appearance of shift key depending on status of modifier.
[guacamole.git] / src / main / webapp / layouts / en-us-qwerty-mobile.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4     Guacamole - Clientless Remote Desktop
5     Copyright (C) 2010  Michael Jumper
6
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU Affero General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU Affero General Public License for more details.
16
17     You should have received a copy of the GNU Affero General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 -->
20
21 <keyboard lang="en_US" layout="qwerty" size="16.3">
22     <row>
23         <key size="1.5">
24             <cap keysym="0xFF09">Tab</cap>
25         </key>
26         <gap size="0.1"/>
27         <key>
28             <cap>q</cap>
29             <cap if="numsym">1</cap>
30             <cap if="shift">Q</cap>
31             <cap if="numsym,shift">q</cap>
32         </key>
33         <gap size="0.1"/>
34         <key>
35             <cap>w</cap>
36             <cap if="numsym">2</cap>
37             <cap if="shift">W</cap>
38             <cap if="numsym,shift">w</cap>
39         </key>
40         <gap size="0.1"/>
41         <key>
42             <cap>e</cap>
43             <cap if="numsym">3</cap>
44             <cap if="shift">E</cap>
45             <cap if="numsym,shift">e</cap>
46         </key>
47         <gap size="0.1"/>
48         <key>
49             <cap>r</cap>
50             <cap if="numsym">4</cap>
51             <cap if="shift">R</cap>
52             <cap if="numsym,shift">r</cap>
53         </key>
54         <gap size="0.1"/>
55         <key>
56             <cap>t</cap>
57             <cap if="numsym">5</cap>
58             <cap if="shift">T</cap>
59             <cap if="numsym,shift">t</cap>
60         </key>
61         <gap size="0.1"/>
62         <key>
63             <cap>y</cap>
64             <cap if="numsym">6</cap>
65             <cap if="shift">Y</cap>
66             <cap if="numsym,shift">y</cap>
67         </key>
68         <gap size="0.1"/>
69         <key>
70             <cap>u</cap>
71             <cap if="numsym">7</cap>
72             <cap if="shift">U</cap>
73             <cap if="numsym,shift">u</cap>
74         </key>
75         <gap size="0.1"/>
76         <key>
77             <cap>i</cap>
78             <cap if="numsym">8</cap>
79             <cap if="shift">I</cap>
80             <cap if="numsym,shift">i</cap>
81         </key>
82         <gap size="0.1"/>
83         <key>
84             <cap>o</cap>
85             <cap if="numsym">9</cap>
86             <cap if="shift">O</cap>
87             <cap if="numsym,shift">o</cap>
88         </key>
89         <gap size="0.1"/>
90         <key>
91             <cap>p</cap>
92             <cap if="numsym">0</cap>
93             <cap if="shift">P</cap>
94             <cap if="numsym,shift">p</cap>
95         </key>
96         <gap size="0.1"/>
97         <key>
98             <cap>[</cap>
99             <cap if="shift">{</cap>
100         </key>
101         <gap size="0.1"/>
102         <key>
103             <cap>]</cap>
104             <cap if="shift">}</cap>
105         </key>
106         <gap size="0.1"/>
107         <key size="1.5">
108             <cap keysym="0xFF08">Back</cap>
109         </key>
110     </row>
111
112     <row><gap size="0.1"/></row>
113
114     <row>
115         <key size="1.85">
116             <cap modifier="numsym" sticky="true">?123</cap>
117         </key>
118         <gap size="0.1"/>
119         <key>
120             <cap>a</cap>
121             <cap if="numsym">#</cap>
122             <cap if="shift">A</cap>
123             <cap if="numsym,shift">a</cap>
124         </key>
125         <gap size="0.1"/>
126         <key>
127             <cap>s</cap>
128             <cap if="numsym">$</cap>
129             <cap if="shift">S</cap>
130             <cap if="numsym,shift">s</cap>
131         </key>
132         <gap size="0.1"/>
133         <key>
134             <cap>d</cap>
135             <cap if="numsym">%</cap>
136             <cap if="shift">D</cap>
137             <cap if="numsym,shift">d</cap>
138         </key>
139         <gap size="0.1"/>
140         <key>
141             <cap>f</cap>
142             <cap if="numsym">&amp;</cap>
143             <cap if="shift">F</cap>
144             <cap if="numsym,shift">f</cap>
145         </key>
146         <gap size="0.1"/>
147         <key>
148             <cap>g</cap>
149             <cap if="numsym">*</cap>
150             <cap if="shift">G</cap>
151             <cap if="numsym,shift">g</cap>
152         </key>
153         <gap size="0.1"/>
154         <key>
155             <cap>h</cap>
156             <cap if="numsym">-</cap>
157             <cap if="shift">H</cap>
158             <cap if="numsym,shift">h</cap>
159         </key>
160         <gap size="0.1"/>
161         <key>
162             <cap>j</cap>
163             <cap if="numsym">+</cap>
164             <cap if="shift">J</cap>
165             <cap if="numsym,shift">j</cap>
166         </key>
167         <gap size="0.1"/>
168         <key>
169             <cap>k</cap>
170             <cap if="numsym">(</cap>
171             <cap if="shift">K</cap>
172             <cap if="numsym,shift">k</cap>
173         </key>
174         <gap size="0.1"/>
175         <key>
176             <cap>l</cap>
177             <cap if="numsym">)</cap>
178             <cap if="shift">L</cap>
179             <cap if="numsym,shift">l</cap>
180         </key>
181         <gap size="0.1"/>
182         <key>
183             <cap>;</cap>
184             <cap if="shift">:</cap>
185         </key>
186         <gap size="0.1"/>
187         <key>
188             <cap>'</cap>
189             <cap if="shift">"</cap>
190         </key>
191         <gap size="0.1"/>
192         <key size="2.25">
193             <cap keysym="0xFF0D">Enter</cap>
194         </key>
195     </row>
196
197     <row><gap size="0.1"/></row>
198
199     <row>
200         <key size="2.1" class="shift">
201             <cap modifier="shift" keysym="0xFFE1">Shift</cap>
202         </key>
203         <gap size="0.1"/>
204         <key>
205             <cap>z</cap>
206             <cap if="numsym">&lt;</cap>
207             <cap if="shift">Z</cap>
208             <cap if="numsym,shift">z</cap>
209         </key>
210         <gap size="0.1"/>
211         <key>
212             <cap>x</cap>
213             <cap if="numsym">&gt;</cap>
214             <cap if="shift">X</cap>
215             <cap if="numsym,shift">x</cap>
216         </key>
217         <gap size="0.1"/>
218         <key>
219             <cap>c</cap>
220             <cap if="numsym">=</cap>
221             <cap if="shift">C</cap>
222             <cap if="numsym,shift">c</cap>
223         </key>
224         <gap size="0.1"/>
225         <key>
226             <cap>v</cap>
227             <cap if="numsym">'</cap>
228             <cap if="shift">V</cap>
229             <cap if="numsym,shift">v</cap>
230         </key>
231         <gap size="0.1"/>
232         <key>
233             <cap>b</cap>
234             <cap if="numsym">;</cap>
235             <cap if="shift">B</cap>
236             <cap if="numsym,shift">b</cap>
237         </key>
238         <gap size="0.1"/>
239         <key>
240             <cap>n</cap>
241             <cap if="numsym">,</cap>
242             <cap if="shift">N</cap>
243             <cap if="numsym,shift">n</cap>
244         </key>
245         <gap size="0.1"/>
246         <key>
247             <cap>m</cap>
248             <cap if="numsym">.</cap>
249             <cap if="shift">M</cap>
250             <cap if="numsym,shift">m</cap>
251         </key>
252         <gap size="0.1"/>
253         <key>
254             <cap>,</cap>
255             <cap if="numsym">!</cap>
256             <cap if="shift">!</cap>
257             <cap if="numsym,shift">!</cap>
258         </key>
259         <gap size="0.1"/>
260         <key>
261             <cap>.</cap>
262             <cap if="numsym">?</cap>
263             <cap if="shift">?</cap>
264             <cap if="numsym,shift">?</cap>
265         </key>
266         <gap size="0.1"/>
267         <key>
268             <cap>/</cap>
269             <cap if="shift">?</cap>
270         </key>
271         <gap size="0.1"/>
272         <key size="3.1" class="shift">
273             <cap modifier="shift" keysym="0xFFE2">Shift</cap>
274         </key>
275     </row>
276
277     <row><gap size="0.1"/></row>
278
279     <row>
280         <key size="1.6">
281             <cap modifier="control" keysym="0xFFE3">Ctrl</cap>
282         </key>
283         <gap size="0.1"/>
284         <key size="1.6">
285             <cap modifier="super" keysym="0xFFEB">Super</cap>
286         </key>
287         <gap size="0.1"/>
288         <key size="1.6">
289             <cap modifier="alt" keysym="0xFFE9">Alt</cap>
290         </key>
291         <gap size="0.1"/>
292         <key size="6.1">
293             <cap> </cap>
294         </key>
295         <gap size="0.1"/>
296         <key size="1.6">
297             <cap modifier="alt" keysym="0xFFE3">Alt</cap>
298         </key>
299         <gap size="0.1"/>
300         <key size="1.6">
301             <cap modifier="super" keysym="0xFF67">Menu</cap>
302         </key>
303         <gap size="0.1"/>
304         <key size="1.6">
305             <cap modifier="control" keysym="0xFFE4">Ctrl</cap>
306         </key>
307     </row>
308 </keyboard>