hhk geometry, b.fd.o#11519
[xorg/xkeyboard-config] / geometry / hhk
1 //      $XKeyboardConfig$
2 //
3 //      XKB geometry for the Happy Hacking Keyboard (Lite).
4 //      Different variants correspond to different switch
5 //      settings on the HHK.
6 //
7 //  Copyright (c) Doug Palmer <doug@charvolant.org>, 2002
8 //
9 //  Permission is granted to anyone to use this document for any purpose, 
10 //  including commercial use, and to alter it and redistribute it 
11 //  freely, subject to the following restrictions:
12 //
13 //  (i) Altered versions must be clearly marked as such.
14 //
15 //  (ii) This notice may not be removed or altered.
16 //
17
18 // SW = 100 Default layout with windows keys
19 default xkb_geometry "win1" {
20         include "hhk(basic)"
21
22         key.gap = 1;
23         section "Space" {
24                 top = 86;
25                 left = 30;
26                 row {
27                         top = 1;
28                         keys {
29                                 <LALT>,
30                                 { <LWIN>, "DIAM" },
31                                 { <SPCE>, "SPCE" },
32                                 { <RWIN>, "DIAM" },
33                                 <RALT>
34                         };
35                 };
36         };
37 };
38
39 // SW = 101 Layout with windows and alt keys swapped
40 xkb_geometry "win2" {
41         include "hhk(basic)"
42
43         key.gap = 1;
44         section "Space" {
45                 top = 86;
46                 left = 30;
47                 row {
48                         top = 1;
49                         keys {
50                                 <LWIN>,
51                                 { <LALT>, "DIAM" },
52                                 { <SPCE>, "SPCE" },
53                                 { <RALT>, "DIAM" },
54                                 <RWIN>
55                         };
56                 };
57         };
58 };
59
60 // SW = 110 Default layout with windows keys, and left diamond = Fn key
61 xkb_geometry "win3" {
62         include "hhk(basic)"
63
64         key.gap = 1;
65         section "Space" {
66                 top = 86;
67                 left = 30;
68                 row {
69                         top = 1;
70                         keys {
71                                 <LALT>,
72                                 { <FN>, "DIAM" },
73                                 { <SPCE>, "SPCE" },
74                                 { <RWIN>, "DIAM" },
75                                 <RALT>
76                         };
77                 };
78         };
79 };
80
81 // SW = 101 Layout with windows and alt keys swapped and left-Alt = Fn key
82 xkb_geometry "win4" {
83         include "hhk(basic)"
84
85         key.gap = 1;
86         section "Space" {
87                 top = 86;
88                 left = 30;
89                 row {
90                         top = 1;
91                         keys {
92                                 <FN>,
93                                 { <LALT>, "DIAM" },
94                                 { <SPCE>, "SPCE" },
95                                 { <RALT>, "DIAM" },
96                                 <RWIN>
97                         };
98                 };
99         };
100 };
101
102 // SW = 000 Layout with Muhenkan and Henkan keys
103 xkb_geometry "jp1" {
104         include "hhk(basic)"
105
106         key.gap = 1;
107         section "Space" {
108                 top = 86;
109                 left = 30;
110                 row {
111                         top = 1;
112                         keys {
113                                 <LALT>,
114                                 { <NFER>, "DIAM" },
115                                 { <SPCE>, "SPCE" },
116                                 { <XFER>, "DIAM" },
117                                 <RALT>
118                         };
119                 };
120         };
121 };
122
123 // SW = 001 Layout with Muhenkan and Henkan keys swapped with Alt keys
124 xkb_geometry "jp2" {
125         include "hhk(basic)"
126
127         key.gap = 1;
128         section "Space" {
129                 top = 86;
130                 left = 30;
131                 row {
132                         top = 1;
133                         keys {
134                                 <NFER>,
135                                 { <LALT>, "DIAM" },
136                                 { <SPCE>, "SPCE" },
137                                 { <RALT>, "DIAM" },
138                                 <XFER>
139                         };
140                 };
141         };
142 };
143
144 // SW = 010 Layout with Henkan key and left-diamond as Fn
145 xkb_geometry "jp3" {
146         include "hhk(basic)"
147
148         key.gap = 1;
149         section "Space" {
150                 top = 86;
151                 left = 30;
152                 row {
153                         top = 1;
154                         keys {
155                                 <LALT>,
156                                 { <FN>, "DIAM" },
157                                 { <SPCE>, "SPCE" },
158                                 { <XFER>, "DIAM" },
159                                 <RALT>
160                         };
161                 };
162         };
163 };
164
165 // SW = 001 Layout with Henkan key swapped with Alt keys and left-Alt as Fn
166 xkb_geometry "jp4" {
167         include "hhk(basic)"
168
169         key.gap = 1;
170         section "Space" {
171                 top = 86;
172                 left = 30;
173                 row {
174                         top = 1;
175                         keys {
176                                 <FN>,
177                                 { <LALT>, "DIAM" },
178                                 { <SPCE>, "SPCE" },
179                                 { <RALT>, "DIAM" },
180                                 <XFER>
181                         };
182                 };
183         };
184 };
185
186 // Basic layout for non-swictchable keys
187 partial hidden xkb_geometry "basic" {
188
189         description = "Happy Hacking Keyboard";
190         width = 290;
191         height = 106;
192         
193         shape.cornerRadius = 1;
194         shape "NORM" { { [18, 18] }, { [2, 1], [14, 14] } };
195         shape "BKSP" { { [28, 18] }, { [2, 1], [24, 14] } };
196         shape "TABK" { { [28, 18] }, { [2, 1], [24, 14] } };
197         shape "CTRL" { { [32, 18] }, { [2, 1], [28, 14] } };
198         shape "RTRN" { { [42, 18] }, { [2, 1], [38, 14] } };
199         shape "LFSH" { { [42, 18] }, { [2, 1], [38, 14] } };
200         shape "RTSH" { { [32, 18] }, { [2, 1], [28, 14] } };
201         shape "DIAM" { { [28, 18] }, { [2, 1], [24, 14] } };
202         shape "SPCE" { { [114, 18] }, { [2, 1], [110, 14] } };
203
204         text.color = "black";
205         text "PFULabel" { left = 16; top = 2; fontsize = 20; text = "PFU"; };
206         text "HHKLabel" { left = 254; top = 90; text = "Happy Hacking\nKeyboard"; };
207
208         section.left = 1;
209         row.left = 1;
210         key.shape = "NORM";
211         key.gap = 1;
212
213         section "Alphanumeric" {
214                 top = 10;
215                 row {
216                         top = 1;
217                         keys {
218                                  <ESC>, 
219                                 <AE01>, <AE02>, <AE03>, <AE04>, <AE05>, 
220                                 <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, 
221                                 <AE11>, <AE12>, 
222                                 <BKSL>, <TLDE>
223                         };
224                 };
225                 row {
226                         top = 20;
227                         keys {
228                                 { <TAB>, "TABK" },
229                                 <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
230                                 <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
231                                 <AD11>, <AD12>,
232                                 { <BKSP>, "BKSP" }
233                         };
234                 };
235                 row {
236                         top = 39;
237                         keys {
238                                 { <LCTL>, "CTRL" },
239                                 <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
240                                 <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
241                                 <AC11>, 
242                                 { <RTRN>, "RTRN" }
243                         };
244                 };
245                 row {
246                         top = 58;
247                         keys {
248                                 { <LFSH>, "LFSH" },
249                                 <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
250                                 <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
251                                 { <RTSH>, "RTSH" },
252                                 { <FN>, color = "grey20" }
253                         };
254                 };
255         };
256
257         alias <AC00> = <LCTL>;
258 };
259