summaryrefslogtreecommitdiff
path: root/pkg/xkeyboard-config/gen.lua
blob: a481a5030a8c79e057484d660802b0375d9f837f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
local data = [[
	compat/(
		accessx basic caps complete
		iso9995
		japan ledcaps
		lednum ledscroll level5
		misc mousekeys
		olpc pc pc98 xfree86
		xtest README
	)
	geometry/(
		digital_vndr/(lk pc unix)
		sgi_vndr/(indigo indy O2)
		amiga ataritt chicony
		dell everex fujitsu
		hhk hp keytronic kinesis
		macintosh microsoft nec nokia
		northgate pc sanwa sony thinkpad
		sun teck steelseries typematrix winbook README
	)
	keycodes/(
		digital_vndr/(lk pc)
		sgi_vndr/(indigo indy iris)
		aliases
		amiga
		ataritt
		empty
		evdev
		fujitsu
		hp
		ibm
		jolla
		macintosh
		olpc
		sony
		sun
		xfree86
		xfree98
		README
	)
	rules/(
		xfree98
		xkb.dtd
		README
	)
	symbols/(
		digital_vndr/(lk pc us vt)
		fujitsu_vndr/(jp us)
		hp_vndr/(us)
		jolla_vndr/(sbj)
		macintosh_vndr/(
			apple ch de dk
			fi fr
			gb is it jp
			latam nl no pt
			se us
		)
		nec_vndr/(jp)
		nokia_vndr/(rx-44 rx-51 su-8w)
		sgi_vndr/(jp)
		sharp_vndr/(sl-c3x00 ws003sh ws007sh ws011sh ws020sh)
		sony_vndr/(us)
		sun_vndr/(
			ara be br ca ch
			cz de dk ee es
			fi fr gb gr it
			jp kr lt lv nl
			no pl pt ro ru
			se sk solaris tr
			tw ua us
		)
		xfree68_vndr/(amiga ataritt)
		af al am apl
		ara at au az
		ba bd be
		bg br brai
		bt bw by
		ca cd ch
		cm cn cz
		de dk dz
		ee es et epo eu
		fi fo fr
		gb ge gh gn
		gr hr hu
		id ie il
		in iq
		ir is it
		jp
		ke kg kh
		kr kz
		la latam latin
		lk lt lv
		ma mao md me
		mk ml mm
		mn mt mv my
		ng nl no np
		parens pc ph pk pl pt
		ro rs ru
		se si sk sn
		sy th
		terminate tg
		tj tm tr tw tz
		ua us uz vn
		za
		altwin capslock compose ctrl empty eurosign rupeesign group inet
		keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo
	)
	types/(
		basic cancel caps
		complete default extra
		iso9995 level5 mousekeys nokia numpad
		pc README
	)
]]
for f in iterpaths(data) do
	file('share/xkb/'..f, '644', '$srcdir/'..f)
end

rule('merge', 'HDR=$srcdir/rules/HDR ./$srcdir/rules/merge.sh $out.tmp $in && mv $out.tmp $out')
function merge(out, srcs)
	build('merge', '$outdir/'..out, {
		expand{'$srcdir/rules/', paths(srcs)},
		'|', '$srcdir/rules/HDR', '$srcdir/rules/merge.sh',
	})
	file('share/xkb/rules/'..out, '644', '$outdir/'..out)
end

merge('base', [[
	base.hdr.part base.lists.part
	base.lists.base.part
	HDR base.m_k.part
	HDR base.l1_k.part
	HDR base.l_k.part
	HDR
	HDR base.ml_g.part
	HDR base.m_g.part
	HDR base.mlv_s.part
	HDR base.ml_s.part
	HDR base.ml1_s.part
	HDR
	HDR base.ml2_s.part
	HDR base.ml3_s.part
	HDR base.ml4_s.part
	HDR
	HDR
	HDR
	HDR base.m_s.part
	HDR base.ml_s1.part
	HDR
	HDR
	HDR
	HDR
	HDR
	HDR base.ml_c.part
	HDR base.ml1_c.part
	HDR base.m_t.part
	HDR
	HDR base.l1o_s.part
	HDR base.l2o_s.part
	HDR base.l3o_s.part
	HDR base.l4o_s.part
	HDR base.o_s.part
	HDR base.o_c.part
	HDR base.o_t.part
]])
merge('evdev', [[
	base.hdr.part base.lists.part
	evdev.lists.part
	HDR evdev.m_k.part
	HDR base.l1_k.part
	HDR base.l_k.part
	HDR
	HDR base.ml_g.part
	HDR base.m_g.part
	HDR base.mlv_s.part
	HDR base.ml_s.part
	HDR base.ml1_s.part
	HDR
	HDR base.ml2_s.part
	HDR base.ml3_s.part
	HDR base.ml4_s.part
	HDR
	HDR
	HDR
	HDR evdev.m_s.part
	HDR
	HDR
	HDR
	HDR
	HDR
	HDR
	HDR base.ml_c.part
	HDR base.ml1_c.part
	HDR base.m_t.part
	HDR
	HDR base.l1o_s.part
	HDR base.l2o_s.part
	HDR base.l3o_s.part
	HDR base.l4o_s.part
	HDR base.o_s.part
	HDR base.o_c.part
	HDR base.o_t.part
]])

fetch 'git'