├── compose-tests ├── home │ └── XCompose ├── xlocaledir │ ├── % │ └── locale.alias └── testcases │ ├── t00 │ ├── t000 │ │ ├── t0009 │ │ │ ├── XCompose │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0006 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── XCompose │ │ ├── t0001 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0003 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── XCompose │ │ ├── t0008 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0004 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── XCompose │ │ ├── t0002 │ │ │ ├── XCompose │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0007 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ └── t0005 │ │ │ ├── XCompose │ │ │ ├── input.txt │ │ │ └── expected.txt │ ├── t002 │ │ ├── t0025 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0026 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0027 │ │ │ ├── XCompose │ │ │ ├── expected.txt │ │ │ └── input.txt │ │ ├── t0028 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0029 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0021 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── XCompose │ │ ├── t0023 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── XCompose │ │ ├── t0024 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0020 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ └── t0022 │ │ │ ├── input.txt │ │ │ ├── XCOMPOSEFILE │ │ │ └── expected.txt │ ├── t003 │ │ ├── t0030 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0031 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0032 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0033 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0034 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0035 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0036 │ │ │ ├── XCompose │ │ │ ├── expected.txt │ │ │ └── input.txt │ │ ├── t0037 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0038 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ └── t0039 │ │ │ ├── XCompose │ │ │ ├── input.txt │ │ │ └── expected.txt │ ├── t004 │ │ ├── t0040 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0041 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0042 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0043 │ │ │ ├── expected.txt │ │ │ ├── input.txt │ │ │ └── XCompose │ │ ├── t0045 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0046 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0049 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0047 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ ├── t0048 │ │ │ ├── input.txt │ │ │ ├── XCompose │ │ │ └── expected.txt │ │ └── t0044 │ │ │ ├── XCompose │ │ │ └── input.txt │ └── t001 │ │ ├── t0015 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0016 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0017 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0012 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0013 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0014 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0010 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0018 │ │ ├── input.txt │ │ ├── XCompose │ │ └── expected.txt │ │ ├── t0019 │ │ ├── XCompose │ │ ├── input.txt │ │ └── expected.txt │ │ └── t0011 │ │ ├── XCompose │ │ ├── input.txt │ │ └── expected.txt │ ├── .gitignore │ └── .gitattributes ├── compile-tests ├── home │ └── % ├── testcases │ ├── t02 │ │ ├── t021 │ │ │ ├── t0213 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0214 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ └── b │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0215 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ └── b │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0216 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ └── b │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0217 │ │ │ │ ├── rules │ │ │ │ │ ├── b │ │ │ │ │ └── a │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0218 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0219 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ └── t0212 │ │ │ │ └── expected.toml │ │ ├── t023 │ │ │ ├── t0237 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ ├── b │ │ │ │ │ └── c │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0238 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ ├── b │ │ │ │ │ └── c │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0234 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0235 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0236 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ └── b │ │ │ │ └── expected.toml │ │ │ ├── t0239 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0230 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0231 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0232 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ └── t0233 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ ├── t024 │ │ │ ├── t0240 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0241 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0242 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0243 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0244 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0245 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0246 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0247 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0248 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ │ └── a │ │ │ └── t0249 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ ├── t025 │ │ │ ├── t0257 │ │ │ │ └── input.xkb │ │ │ ├── t0256 │ │ │ │ └── input.xkb │ │ │ ├── t0250 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0251 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0253 │ │ │ │ ├── keycodes │ │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0259 │ │ │ │ ├── keycodes │ │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0255 │ │ │ │ ├── compat │ │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0254 │ │ │ │ ├── compat │ │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0258 │ │ │ │ └── input.xkb │ │ │ └── t0252 │ │ │ │ ├── keycodes │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ ├── t022 │ │ │ ├── t0222 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0220 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0223 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0225 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ │ └── a │ │ │ ├── t0226 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ │ └── a │ │ │ ├── t0228 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0229 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0224 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0227 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ │ └── a │ │ │ └── t0221 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ └── a │ │ ├── t027 │ │ │ ├── t0277 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0274 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ ├── extra-includes │ │ │ │ │ └── keycodes │ │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0275 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ ├── extra-includes │ │ │ │ │ └── keycodes │ │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0276 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0278 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0279 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0271 │ │ │ │ └── input.xkb │ │ │ ├── t0270 │ │ │ │ └── input.xkb │ │ │ ├── t0272 │ │ │ │ └── input.xkb │ │ │ └── t0273 │ │ │ │ └── input.xkb │ │ ├── t028 │ │ │ ├── t0280 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0281 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0286 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0287 │ │ │ │ ├── keycodes │ │ │ │ │ ├── x.xkb │ │ │ │ │ └── y.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0285 │ │ │ │ └── input.xkb │ │ │ ├── t0282 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0283 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ └── x.xkb │ │ │ ├── t0284 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ └── x.xkb │ │ │ ├── t0288 │ │ │ │ └── input.xkb │ │ │ └── t0289 │ │ │ │ └── input.xkb │ │ ├── t026 │ │ │ ├── t0268 │ │ │ │ └── input.xkb │ │ │ ├── t0269 │ │ │ │ └── input.xkb │ │ │ ├── t0262 │ │ │ │ └── input.xkb │ │ │ ├── t0266 │ │ │ │ └── input.xkb │ │ │ ├── t0267 │ │ │ │ └── input.xkb │ │ │ ├── t0260 │ │ │ │ └── input.xkb │ │ │ ├── t0261 │ │ │ │ └── input.xkb │ │ │ └── t0263 │ │ │ │ └── input.xkb │ │ ├── t020 │ │ │ ├── t0201 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0202 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0203 │ │ │ │ └── input.toml │ │ │ ├── t0207 │ │ │ │ └── expected.toml │ │ │ ├── t0204 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0206 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0205 │ │ │ │ └── input.toml │ │ │ ├── t0200 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ └── t0209 │ │ │ │ └── expected.toml │ │ └── t029 │ │ │ ├── t0297 │ │ │ └── input.xkb │ │ │ ├── t0290 │ │ │ └── input.xkb │ │ │ ├── t0293 │ │ │ └── input.xkb │ │ │ ├── t0294 │ │ │ └── input.xkb │ │ │ ├── t0295 │ │ │ └── input.xkb │ │ │ ├── t0296 │ │ │ └── input.xkb │ │ │ ├── t0298 │ │ │ └── input.xkb │ │ │ ├── t0291 │ │ │ └── input.xkb │ │ │ └── t0292 │ │ │ └── input.xkb │ ├── .gitattributes │ ├── t04 │ │ ├── t040 │ │ │ ├── t0404 │ │ │ │ ├── rules │ │ │ │ │ ├── a │ │ │ │ │ └── b │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0400 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0401 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0402 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0403 │ │ │ │ ├── input.toml │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ └── expected.toml │ │ │ ├── t0406 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0408 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0407 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0409 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ └── t0405 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ ├── t041 │ │ │ ├── t0410 │ │ │ │ ├── rules │ │ │ │ │ └── a │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0411 │ │ │ │ └── input.xkb │ │ │ └── t0414 │ │ │ │ └── input.xkb │ │ ├── t048 │ │ │ ├── t0484 │ │ │ │ └── input.xkb │ │ │ ├── t0483 │ │ │ │ └── input.xkb │ │ │ ├── t0481 │ │ │ │ └── expected.toml │ │ │ ├── t0480 │ │ │ │ └── expected.toml │ │ │ └── t0489 │ │ │ │ └── input.xkb │ │ ├── t046 │ │ │ ├── t0464 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0466 │ │ │ │ ├── input.toml │ │ │ │ ├── expected.toml │ │ │ │ └── rules │ │ │ │ │ └── a │ │ │ ├── t0467 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0468 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0469 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0465 │ │ │ │ ├── symbols │ │ │ │ │ ├── b.xkb │ │ │ │ │ ├── y.xkb │ │ │ │ │ ├── a.xkb │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0460 │ │ │ │ └── input.xkb │ │ │ └── t0461 │ │ │ │ └── input.xkb │ │ ├── t047 │ │ │ ├── t0470 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0473 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0476 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0471 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0472 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0474 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0475 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0477 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0478 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ └── t0479 │ │ │ │ └── expected.toml │ │ ├── t042 │ │ │ ├── t0421 │ │ │ │ └── input.xkb │ │ │ ├── t0422 │ │ │ │ └── input.xkb │ │ │ ├── t0423 │ │ │ │ └── input.xkb │ │ │ ├── t0424 │ │ │ │ └── input.xkb │ │ │ ├── t0420 │ │ │ │ └── input.xkb │ │ │ ├── t0425 │ │ │ │ └── input.xkb │ │ │ ├── t0426 │ │ │ │ └── input.xkb │ │ │ ├── t0427 │ │ │ │ └── input.xkb │ │ │ ├── t0428 │ │ │ │ └── input.xkb │ │ │ └── t0429 │ │ │ │ └── input.xkb │ │ ├── t049 │ │ │ └── t0493 │ │ │ │ └── input.xkb │ │ └── t043 │ │ │ ├── t0438 │ │ │ └── input.xkb │ │ │ └── t0434 │ │ │ └── input.xkb │ ├── t00 │ │ ├── t000 │ │ │ ├── t0001 │ │ │ │ └── input.xkb │ │ │ ├── t0008 │ │ │ │ └── input.xkb │ │ │ ├── t0009 │ │ │ │ └── input.xkb │ │ │ ├── t0002 │ │ │ │ └── keycodes │ │ │ │ │ ├── a.xkb │ │ │ │ │ └── b.xkb │ │ │ ├── t0004 │ │ │ │ ├── compat │ │ │ │ │ └── a.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0007 │ │ │ │ └── input.xkb │ │ │ ├── t0005 │ │ │ │ └── input.xkb │ │ │ └── t0006 │ │ │ │ └── input.xkb │ │ ├── t009 │ │ │ ├── t0095 │ │ │ │ └── input.xkb │ │ │ ├── t0093 │ │ │ │ ├── input.xkb │ │ │ │ └── compat │ │ │ │ │ └── x.xkb │ │ │ ├── t0096 │ │ │ │ └── input.xkb │ │ │ ├── t0099 │ │ │ │ └── input.xkb │ │ │ ├── t0094 │ │ │ │ └── input.xkb │ │ │ └── t0092 │ │ │ │ └── compat │ │ │ │ └── x.xkb │ │ ├── t001 │ │ │ ├── t0010 │ │ │ │ └── input.xkb │ │ │ ├── t0013 │ │ │ │ ├── input.xkb │ │ │ │ └── symbols │ │ │ │ │ ├── x.xkb │ │ │ │ │ └── y.xkb │ │ │ ├── t0014 │ │ │ │ ├── input.xkb │ │ │ │ └── symbols │ │ │ │ │ ├── x.xkb │ │ │ │ │ └── y.xkb │ │ │ ├── t0015 │ │ │ │ └── input.xkb │ │ │ ├── t0011 │ │ │ │ └── input.xkb │ │ │ ├── t0016 │ │ │ │ └── input.xkb │ │ │ ├── t0017 │ │ │ │ └── input.xkb │ │ │ ├── t0012 │ │ │ │ └── input.xkb │ │ │ ├── t0018 │ │ │ │ └── input.xkb │ │ │ └── t0019 │ │ │ │ └── input.xkb │ │ ├── t005 │ │ │ ├── t0057 │ │ │ │ └── input.xkb │ │ │ ├── t0058 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0059 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ ├── x.xkb │ │ │ │ │ └── y.xkb │ │ │ └── t0055 │ │ │ │ └── input.xkb │ │ ├── t007 │ │ │ ├── t0071 │ │ │ │ └── types │ │ │ │ │ └── x.xkb │ │ │ ├── t0072 │ │ │ │ └── types │ │ │ │ │ └── x.xkb │ │ │ ├── t0078 │ │ │ │ └── input.xkb │ │ │ └── t0074 │ │ │ │ └── input.xkb │ │ ├── t006 │ │ │ ├── t0060 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ ├── x.xkb │ │ │ │ │ └── y.xkb │ │ │ ├── t0066 │ │ │ │ ├── keycodes │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0065 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ └── x.xkb │ │ │ ├── t0064 │ │ │ │ └── input.xkb │ │ │ ├── t0061 │ │ │ │ └── input.xkb │ │ │ └── t0062 │ │ │ │ └── input.xkb │ │ ├── t008 │ │ │ └── t0080 │ │ │ │ └── input.xkb │ │ ├── t002 │ │ │ └── t0020 │ │ │ │ └── input.xkb │ │ └── t003 │ │ │ ├── t0032 │ │ │ └── input.xkb │ │ │ └── t0033 │ │ │ └── input.xkb │ ├── .gitignore │ ├── t01 │ │ ├── t010 │ │ │ ├── t0102 │ │ │ │ ├── symbols │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0103 │ │ │ │ ├── symbols │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0109 │ │ │ │ └── input.xkb │ │ │ └── t0107 │ │ │ │ └── input.xkb │ │ ├── t015 │ │ │ ├── t0156 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0157 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0152 │ │ │ │ ├── input.xkb │ │ │ │ └── keycodes │ │ │ │ │ └── x.xkb │ │ │ ├── t0154 │ │ │ │ ├── expected.toml │ │ │ │ ├── input.toml │ │ │ │ └── rules │ │ │ │ │ └── evdev │ │ │ ├── t0158 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0159 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0155 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ └── t0151 │ │ │ │ └── input.xkb │ │ ├── t012 │ │ │ ├── t0129 │ │ │ │ └── symbols │ │ │ │ │ └── x.xkb │ │ │ ├── t0128 │ │ │ │ ├── symbols │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0126 │ │ │ │ └── input.xkb │ │ │ ├── t0127 │ │ │ │ └── input.xkb │ │ │ └── t0120 │ │ │ │ └── input.xkb │ │ ├── t013 │ │ │ ├── t0130 │ │ │ │ ├── input.xkb │ │ │ │ └── symbols │ │ │ │ │ └── x.xkb │ │ │ ├── t0131 │ │ │ │ ├── symbols │ │ │ │ │ └── x.xkb │ │ │ │ └── input.xkb │ │ │ ├── t0134 │ │ │ │ └── input.xkb │ │ │ ├── t0138 │ │ │ │ └── input.xkb │ │ │ └── t0133 │ │ │ │ └── input.xkb │ │ ├── t016 │ │ │ ├── t0162 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0168 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0169 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0163 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0164 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0165 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0166 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0167 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0160 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ └── t0161 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ ├── t017 │ │ │ ├── t0170 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0171 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0172 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0173 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0174 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0175 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0176 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0177 │ │ │ │ └── expected.toml │ │ │ └── t0179 │ │ │ │ └── expected.toml │ │ ├── t018 │ │ │ ├── t0184 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0186 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0180 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0182 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0183 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0185 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0187 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0181 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ ├── t0188 │ │ │ │ ├── input.toml │ │ │ │ └── expected.toml │ │ │ └── t0189 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ ├── t019 │ │ │ ├── t0190 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0194 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0195 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0196 │ │ │ │ └── expected.toml │ │ │ ├── t0198 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0191 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0193 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0197 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ ├── t0199 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ │ └── t0192 │ │ │ │ ├── expected.toml │ │ │ │ └── input.toml │ │ ├── t011 │ │ │ ├── t0113 │ │ │ │ └── input.xkb │ │ │ ├── t0112 │ │ │ │ └── input.xkb │ │ │ ├── t0114 │ │ │ │ └── input.xkb │ │ │ ├── t0115 │ │ │ │ └── input.xkb │ │ │ ├── t0116 │ │ │ │ └── input.xkb │ │ │ ├── t0110 │ │ │ │ └── input.xkb │ │ │ └── t0117 │ │ │ │ └── input.xkb │ │ └── t014 │ │ │ ├── t0140 │ │ │ └── input.xkb │ │ │ ├── t0146 │ │ │ └── input.xkb │ │ │ ├── t0149 │ │ │ └── input.xkb │ │ │ ├── t0141 │ │ │ └── input.xkb │ │ │ └── t0147 │ │ │ └── input.xkb │ └── t03 │ │ ├── t039 │ │ ├── t0394 │ │ │ ├── symbols │ │ │ │ └── a.xkb │ │ │ └── input.xkb │ │ ├── t0395 │ │ │ └── input.xkb │ │ ├── t0396 │ │ │ └── input.xkb │ │ └── t0398 │ │ │ └── input.xkb │ │ ├── t030 │ │ ├── t0307 │ │ │ └── input.xkb │ │ ├── t0304 │ │ │ └── input.xkb │ │ ├── t0306 │ │ │ └── input.xkb │ │ └── t0305 │ │ │ └── input.xkb │ │ ├── t034 │ │ └── t0348 │ │ │ └── input.xkb │ │ ├── t036 │ │ ├── t0360 │ │ │ └── input.xkb │ │ ├── t0369 │ │ │ └── input.xkb │ │ ├── t0362 │ │ │ └── input.xkb │ │ ├── t0363 │ │ │ └── input.xkb │ │ ├── t0364 │ │ │ └── input.xkb │ │ ├── t0365 │ │ │ └── input.xkb │ │ └── t0368 │ │ │ └── input.xkb │ │ ├── t038 │ │ ├── t0380 │ │ │ └── input.xkb │ │ ├── t0386 │ │ │ └── input.xkb │ │ ├── t0383 │ │ │ └── input.xkb │ │ ├── t0387 │ │ │ └── input.xkb │ │ └── t0382 │ │ │ └── input.xkb │ │ ├── t032 │ │ ├── t0322 │ │ │ └── input.xkb │ │ ├── t0327 │ │ │ └── input.xkb │ │ ├── t0325 │ │ │ └── input.xkb │ │ └── t0328 │ │ │ └── input.xkb │ │ └── t037 │ │ ├── t0370 │ │ ├── input.xkb │ │ └── symbols │ │ │ └── a.xkb │ │ ├── t0378 │ │ └── input.xkb │ │ └── t0379 │ │ └── input.xkb ├── include-extra │ └── rules │ │ └── x └── include │ └── rules │ └── x ├── rustfmt.toml ├── type-tests └── testcases │ ├── .gitignore │ ├── .gitattributes │ ├── t00 │ ├── t001 │ │ ├── t0019 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0016 │ │ │ └── input.txt │ │ ├── t0013 │ │ │ └── input.txt │ │ ├── t0010 │ │ │ └── input.txt │ │ ├── t0012 │ │ │ └── input.txt │ │ ├── t0018 │ │ │ └── input.txt │ │ ├── t0017 │ │ │ └── input.txt │ │ ├── t0014 │ │ │ └── input.txt │ │ ├── t0015 │ │ │ └── input.txt │ │ └── t0011 │ │ │ └── input.txt │ ├── t007 │ │ ├── t0071 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── map.xkb │ │ ├── t0073 │ │ │ └── input.txt │ │ ├── t0077 │ │ │ └── input.txt │ │ ├── t0072 │ │ │ └── input.txt │ │ ├── t0074 │ │ │ └── input.txt │ │ ├── t0075 │ │ │ └── input.txt │ │ ├── t0076 │ │ │ └── input.txt │ │ ├── t0078 │ │ │ └── input.txt │ │ ├── t0079 │ │ │ └── input.txt │ │ └── t0070 │ │ │ └── input.txt │ ├── t009 │ │ ├── t0094 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── map.xkb │ │ ├── t0095 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── map.xkb │ │ ├── t0090 │ │ │ └── input.txt │ │ ├── t0091 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0092 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0093 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0096 │ │ │ ├── input.txt │ │ │ ├── expected.txt │ │ │ └── map.xkb │ │ ├── t0098 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0097 │ │ │ └── input.txt │ │ └── t0099 │ │ │ └── input.txt │ ├── t000 │ │ ├── t0003 │ │ │ └── input.txt │ │ ├── t0005 │ │ │ └── input.txt │ │ ├── t0007 │ │ │ └── input.txt │ │ ├── t0002 │ │ │ └── input.txt │ │ ├── t0004 │ │ │ └── input.txt │ │ ├── t0006 │ │ │ └── input.txt │ │ ├── t0009 │ │ │ └── input.txt │ │ ├── t0008 │ │ │ └── input.txt │ │ └── t0001 │ │ │ └── input.txt │ ├── t008 │ │ ├── t0089 │ │ │ └── input.txt │ │ ├── t0085 │ │ │ └── input.txt │ │ ├── t0083 │ │ │ └── input.txt │ │ ├── t0081 │ │ │ └── input.txt │ │ ├── t0080 │ │ │ └── input.txt │ │ ├── t0082 │ │ │ └── input.txt │ │ ├── t0088 │ │ │ └── input.txt │ │ ├── t0087 │ │ │ └── input.txt │ │ ├── t0086 │ │ │ ├── input.txt │ │ │ └── map.xkb │ │ └── t0084 │ │ │ └── input.txt │ ├── t003 │ │ ├── t0031 │ │ │ └── input.txt │ │ ├── t0032 │ │ │ └── input.txt │ │ ├── t0038 │ │ │ └── input.txt │ │ ├── t0035 │ │ │ └── input.txt │ │ ├── t0030 │ │ │ └── input.txt │ │ ├── t0039 │ │ │ └── input.txt │ │ ├── t0034 │ │ │ └── input.txt │ │ ├── t0036 │ │ │ └── input.txt │ │ ├── t0037 │ │ │ └── input.txt │ │ └── t0033 │ │ │ └── input.txt │ ├── t002 │ │ ├── t0020 │ │ │ └── input.txt │ │ ├── t0021 │ │ │ └── input.txt │ │ ├── t0024 │ │ │ └── input.txt │ │ ├── t0025 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0026 │ │ │ ├── input.txt │ │ │ └── expected.txt │ │ ├── t0028 │ │ │ └── input.txt │ │ ├── t0029 │ │ │ └── input.txt │ │ ├── t0027 │ │ │ └── input.txt │ │ └── t0023 │ │ │ └── input.txt │ ├── t006 │ │ ├── t0067 │ │ │ └── input.txt │ │ ├── t0062 │ │ │ └── input.txt │ │ ├── t0061 │ │ │ └── input.txt │ │ ├── t0065 │ │ │ └── input.txt │ │ ├── t0066 │ │ │ └── input.txt │ │ ├── t0068 │ │ │ └── input.txt │ │ ├── t0069 │ │ │ └── input.txt │ │ └── t0063 │ │ │ └── input.txt │ ├── t004 │ │ ├── t0046 │ │ │ └── input.txt │ │ ├── t0047 │ │ │ └── input.txt │ │ ├── t0048 │ │ │ └── input.txt │ │ ├── t0041 │ │ │ └── input.txt │ │ ├── t0049 │ │ │ └── input.txt │ │ ├── t0045 │ │ │ └── input.txt │ │ ├── t0043 │ │ │ └── input.txt │ │ ├── t0042 │ │ │ └── input.txt │ │ ├── t0040 │ │ │ └── input.txt │ │ └── t0044 │ │ │ └── input.txt │ └── t005 │ │ ├── t0056 │ │ └── input.txt │ │ ├── t0057 │ │ └── input.txt │ │ ├── t0051 │ │ └── input.txt │ │ ├── t0052 │ │ └── input.txt │ │ ├── t0050 │ │ └── input.txt │ │ ├── t0059 │ │ └── input.txt │ │ └── t0053 │ │ └── input.txt │ └── t01 │ └── t010 │ ├── t0108 │ ├── input.txt │ └── expected.txt │ ├── t0107 │ ├── input.txt │ └── expected.txt │ ├── t0104 │ ├── input.txt │ └── expected.txt │ ├── t0105 │ ├── input.txt │ └── expected.txt │ ├── t0101 │ ├── input.txt │ └── expected.txt │ ├── t0100 │ └── input.txt │ ├── t0102 │ └── input.txt │ ├── t0103 │ ├── input.txt │ └── expected.txt │ └── t0106 │ └── input.txt ├── x11-tests └── src │ └── .gitignore ├── kbvm └── src │ ├── config.rs │ ├── xkb │ └── code_loader │ │ └── symbols.xkb │ └── syms.rs ├── kbvm-cli ├── src │ ├── evdev.rs │ └── wayland_protocols.rs └── build.rs ├── .gitignore ├── libxkbcommon-test-linker └── Cargo.toml ├── integration-test-utils └── Cargo.toml └── .gitmodules /compose-tests/home/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | -------------------------------------------------------------------------------- /compose-tests/xlocaledir/%: -------------------------------------------------------------------------------- 1 | : a 2 | -------------------------------------------------------------------------------- /compile-tests/home/%: -------------------------------------------------------------------------------- 1 | ! include %E/x 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0009/XCompose: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | imports_granularity = "One" 2 | -------------------------------------------------------------------------------- /type-tests/testcases/.gitignore: -------------------------------------------------------------------------------- 1 | actual.txt 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0213/input.toml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /compose-tests/testcases/.gitignore: -------------------------------------------------------------------------------- 1 | actual.txt 2 | -------------------------------------------------------------------------------- /type-tests/testcases/.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /compile-tests/include-extra/rules/x: -------------------------------------------------------------------------------- 1 | ! include %S/x 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0025/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0025/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0026/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0026/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0027/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0027/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0027/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0028/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0029/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0030/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0031/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0032/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0033/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0034/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0035/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0035/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0036/XCompose: -------------------------------------------------------------------------------- 1 | Shift 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0036/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0036/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0037/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0038/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0040/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0040/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0041/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0041/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0042/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0042/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0043/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0043/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0045/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0046/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0049/input.txt: -------------------------------------------------------------------------------- 1 | d 2 | -------------------------------------------------------------------------------- /x11-tests/src/.gitignore: -------------------------------------------------------------------------------- 1 | actual.xkb 2 | roundtrip.xkb 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0214/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0215/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0216/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0237/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0237/rules/b: -------------------------------------------------------------------------------- 1 | ! include c 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0237/rules/c: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0238/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0238/rules/b: -------------------------------------------------------------------------------- 1 | ! include c 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0238/rules/c: -------------------------------------------------------------------------------- 1 | ! include b 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0015/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0016/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0017/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0021/input.txt: -------------------------------------------------------------------------------- 1 | NoSymbol 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0023/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0024/input.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0025/XCompose: -------------------------------------------------------------------------------- 1 | a: a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0029/XCompose: -------------------------------------------------------------------------------- 1 | None : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0030/XCompose: -------------------------------------------------------------------------------- 1 | ! : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0035/XCompose: -------------------------------------------------------------------------------- 1 | include 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0040/XCompose: -------------------------------------------------------------------------------- 1 | : 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0042/XCompose: -------------------------------------------------------------------------------- 1 | None: a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0043/XCompose: -------------------------------------------------------------------------------- 1 | !: a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0047/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0048/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | -------------------------------------------------------------------------------- /compile-tests/include/rules/x: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | a = b 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0234/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0235/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0236/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0237/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0238/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0239/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0240/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0257/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_layout { }; 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0404/rules/a: -------------------------------------------------------------------------------- 1 | ! include b c 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t041/t0410/rules/a: -------------------------------------------------------------------------------- 1 | ! include %H/%% 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0006/input.txt: -------------------------------------------------------------------------------- 1 | 7 2 | a 3 | b 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0012/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | C 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0013/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | C 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0014/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | C 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0021/expected.txt: -------------------------------------------------------------------------------- 1 | NoSymbol 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0024/XCompose: -------------------------------------------------------------------------------- 1 | include "%L" v 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0024/expected.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0031/XCompose: -------------------------------------------------------------------------------- 1 | ~Shift : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0037/XCompose: -------------------------------------------------------------------------------- 1 | include "%S/%%" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0039/XCompose: -------------------------------------------------------------------------------- 1 | include "%L" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0041/XCompose: -------------------------------------------------------------------------------- 1 | : "a" 2 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0019/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0071/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both b 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0073/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | both b 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0094/input.txt: -------------------------------------------------------------------------------- 1 | down b 2 | up b 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0095/input.txt: -------------------------------------------------------------------------------- 1 | down b 2 | up b 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0108/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both b 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0001/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | }; 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0234/rules/a: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = U 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0256/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_semantics { }; 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0001/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | space 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0006/expected.txt: -------------------------------------------------------------------------------- 1 | 7 2 | a 3 | b 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0020/input.txt: -------------------------------------------------------------------------------- 1 | dead_acute 2 | A 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0022/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | space 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0026/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0033/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | ~ : b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0038/XCompose: -------------------------------------------------------------------------------- 1 | include "%H/XCompose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0039/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | space 3 | -------------------------------------------------------------------------------- /kbvm/src/config.rs: -------------------------------------------------------------------------------- 1 | include!(concat!(env!("OUT_DIR"), "/config.rs")); 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0236/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | ! include b 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0236/rules/b: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = +u 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t048/t0484/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap "a\"b" { }; 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0003/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | dead_tilde 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0008/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | A 3 | C 4 | B 5 | A 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0009/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | A 3 | C 4 | B 5 | A 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0010/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | B 4 | A 5 | C 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0018/input.txt: -------------------------------------------------------------------------------- 1 | NoSymbol 2 | Multi_key 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0032/XCompose: -------------------------------------------------------------------------------- 1 | Ctrl Shift Alt Lock : a 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0045/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | < 3 | : b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0003/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | down i 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0005/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | down i 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0007/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | down i 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0077/input.txt: -------------------------------------------------------------------------------- 1 | down b 2 | both a 3 | up b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0089/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | both c 3 | both a 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0090/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | both c 3 | both a 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0091/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | down b 3 | up b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0092/input.txt: -------------------------------------------------------------------------------- 1 | down b 2 | both a 3 | up b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0093/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | down b 3 | up b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0096/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | down b 3 | up b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0098/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | down b 3 | up b 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0095/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap "\101" { 2 | }; 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0400/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0401/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0402/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0403/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0404/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t041/t0410/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "a" 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t048/t0483/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap "a\u{22}b" { }; 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0009/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | A 3 | C 4 | B 5 | A 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0028/XCompose: -------------------------------------------------------------------------------- 1 | : x 2 | : unknown_keysym 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0034/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | : b something 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0031/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0032/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/.gitignore: -------------------------------------------------------------------------------- 1 | round_trip.xkb 2 | actual.xkb 3 | actual.toml 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0214/rules/b: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | x = y 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0222/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0239/rules/a: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = +U 3 | = +U 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0277/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keycodes { } }; 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0280/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keycodes { % }; 2 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0281/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keymap { 2 | }; 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0286/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | }; 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0404/rules/b: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | * = b 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0406/rules/a: -------------------------------------------------------------------------------- 1 | ! unknown = symbols 2 | a = b 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0408/rules/a: -------------------------------------------------------------------------------- 1 | ! layout = unknown 2 | a = b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0004/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | space 3 | Caps_Lock 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0018/XCompose: -------------------------------------------------------------------------------- 1 | include "%S/en_US.UTF-8/Compose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0019/XCompose: -------------------------------------------------------------------------------- 1 | include "%S/en_US.UTF-8/Compose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0020/XCompose: -------------------------------------------------------------------------------- 1 | include "%S/en_US.UTF-8/Compose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0021/XCompose: -------------------------------------------------------------------------------- 1 | include "%S/en_US.UTF-8/Compose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0022/XCOMPOSEFILE: -------------------------------------------------------------------------------- 1 | include "%S/en_US.UTF-8/Compose" 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0028/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | x 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0029/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0030/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0031/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0032/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0033/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0034/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0037/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0038/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0045/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0046/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | X 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0016/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both rightshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0020/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0021/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both rightshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0024/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0025/input.txt: -------------------------------------------------------------------------------- 1 | down rightshift 2 | down leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0026/input.txt: -------------------------------------------------------------------------------- 1 | down rightshift 2 | down leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0028/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0029/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftshift 3 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0067/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both capslock 3 | both a 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0072/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both b 3 | both b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0074/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both b 3 | both b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0075/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both b 3 | both b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0076/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both b 3 | both b 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0085/input.txt: -------------------------------------------------------------------------------- 1 | down b 2 | down leftshift 3 | up b 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0240/rules/a: -------------------------------------------------------------------------------- 1 | ! = symbols keycodes 2 | = +U +V 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0400/rules/a: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | ! 3 | a = b 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0407/rules/a: -------------------------------------------------------------------------------- 1 | ! layout ! = symbols 2 | a = b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0011/XCompose: -------------------------------------------------------------------------------- 1 | : X 2 | : Y 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0011/input.txt: -------------------------------------------------------------------------------- 1 | A 2 | C 3 | D 4 | A 5 | C 6 | C 7 | D 8 | -------------------------------------------------------------------------------- /kbvm-cli/src/evdev.rs: -------------------------------------------------------------------------------- 1 | #[rustfmt::skip] 2 | mod generated; 3 | 4 | pub use generated::*; 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0002/input.txt: -------------------------------------------------------------------------------- 1 | down leftctrl 2 | both i 3 | up leftctrl 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0004/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | down leftshift 3 | down i 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0006/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | down rightalt 3 | down i 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0062/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both z 3 | both minus 4 | both z 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0083/input.txt: -------------------------------------------------------------------------------- 1 | both y 2 | both b 3 | both c 4 | both c 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0097/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | down b 3 | both a 4 | up b 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0107/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both c 3 | both b 4 | both d 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | !.gitignore 3 | !.gitmodules 4 | !.gitattributes 5 | !.github 6 | /target 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0102/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | key { }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0217/rules/b: -------------------------------------------------------------------------------- 1 | 語 2 | 3 | ! model = keycodes 4 | x = y 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0235/rules/a: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = +u 3 | 4 | ! include a 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0409/rules/a: -------------------------------------------------------------------------------- 1 | ! layout model = unknown 2 | a ! = b 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0001/XCompose: -------------------------------------------------------------------------------- 1 | : "~" asciitilde # TILDE 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0002/XCompose: -------------------------------------------------------------------------------- 1 | : "~" asciitilde # TILDE 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0002/input.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | space 3 | dead_tilde 4 | space 5 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0018/expected.txt: -------------------------------------------------------------------------------- 1 | NoSymbol 2 | Multi_key 3 | pending 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0047/XCompose: -------------------------------------------------------------------------------- 1 | : "original" 2 | : "replacement" 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0048/XCompose: -------------------------------------------------------------------------------- 1 | : "original" 2 | : "replacement" 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0049/expected.txt: -------------------------------------------------------------------------------- 1 | d 2 | composed 3 | replacement 4 | -------------------------------------------------------------------------------- /kbvm/src/xkb/code_loader/symbols.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { [ a ] }; 3 | }; 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0013/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both leftshift 3 | both a 4 | both a 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0046/input.txt: -------------------------------------------------------------------------------- 1 | down leftshift 2 | both leftalt 3 | up leftshift 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0047/input.txt: -------------------------------------------------------------------------------- 1 | down leftalt 2 | both leftshift 3 | up leftalt 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0104/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both a 3 | 4 | both b 5 | both b 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0105/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both a 3 | 4 | both b 5 | both b 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0008/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_types { 2 | virtual_modifiers x; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0009/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_compat { 2 | virtual_modifiers x; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0010/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0013/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | include "x.xkb+y.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0014/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | include "x.xkb|y.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0057/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_compat { 2 | indicator "X" { }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t007/t0071/types/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_types { 2 | type "X" { 3 | }; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0214/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0215/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0216/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0217/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0218/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0219/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0220/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | 4 | [[groups]] 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0223/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0225/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0226/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0228/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0229/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0230/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0231/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0232/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0233/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "U" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0241/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "l" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0241/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = -%i- 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0242/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "l" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0242/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = a%+l 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0243/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "l" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0243/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = a%|l 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0244/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = %(m[1]) 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0245/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0245/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = %(l[11) 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0246/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0246/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = %(l11]) 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0247/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0247/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = %(l[x]) 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0248/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0249/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0250/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0251/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0464/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0466/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "X" 5 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0007/input.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | apostrophe 3 | 7 4 | 7 5 | Caps_Lock 6 | -------------------------------------------------------------------------------- /kbvm-cli/src/wayland_protocols.rs: -------------------------------------------------------------------------------- 1 | include!(concat!(env!("OUT_DIR"), "/wayland-protocols/mod.rs")); 2 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0009/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftalt 3 | both leftshift 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0010/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both leftalt 3 | both leftshift 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0012/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | down leftshift 3 | both a 4 | up leftshift 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0018/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both leftshift 3 | both leftshift 4 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0038/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both e 3 | both l 4 | both l 5 | both o 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0061/input.txt: -------------------------------------------------------------------------------- 1 | both 5 2 | down rightalt 3 | both 5 4 | up rightalt 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0065/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | down compose 3 | both a 4 | up compose 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0101/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both b 3 | both c 4 | both a 5 | both a 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0002/keycodes/a.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 3 = "Z"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0004/compat/a.xkb: -------------------------------------------------------------------------------- 1 | default xkb_compat { 2 | include "b.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0015/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x, y; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0058/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "X"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0059/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | augment "x.xkb|y.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0059/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "X"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0059/keycodes/y.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "Y"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0060/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | augment "x.xkb+y.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0060/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "X"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0060/keycodes/y.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "Y"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0156/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | 3 | [[groups]] 4 | layout = "foo" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0215/rules/b: -------------------------------------------------------------------------------- 1 | ! include a 2 | 3 | ! model = symbols 4 | x = y 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0217/rules/a: -------------------------------------------------------------------------------- 1 | ! include b 2 | 3 | ! model = symbols 4 | x = y 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0218/rules/a: -------------------------------------------------------------------------------- 1 | x = z 2 | 3 | ! model = symbols 4 | x = y 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0223/rules/a: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = x 3 | 4 | ! = symbols 5 | = %l[5] 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0228/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = %-m%-l%_l 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0229/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = abc%(def 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0230/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = abc%xdef 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0231/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = abc%l[def 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0232/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = abc:%i[1]def 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0233/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = abc%(l[1)def 3 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0250/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = \ 3 | %l 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0253/keycodes/a.xkb: -------------------------------------------------------------------------------- 1 | default XkB_kEyCoDeS { 2 | = 2; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0259/keycodes/a.xkb: -------------------------------------------------------------------------------- 1 | DEFAULT xkb_keycodes { 2 | = 1; 3 | }; 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0008/XCompose: -------------------------------------------------------------------------------- 1 | : "foo" X 2 | : "baz" Y 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0012/XCompose: -------------------------------------------------------------------------------- 1 | : "foo" A 2 | : "bar" B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0013/XCompose: -------------------------------------------------------------------------------- 1 | : "bar" B 2 | : "foo" A 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0014/XCompose: -------------------------------------------------------------------------------- 1 | : "bar" B 2 | : "bar" B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0015/XCompose: -------------------------------------------------------------------------------- 1 | : "foo" A 2 | : "bar" B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0016/XCompose: -------------------------------------------------------------------------------- 1 | : "foo" A 2 | : "foo" B 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0017/XCompose: -------------------------------------------------------------------------------- 1 | : "foo" A 2 | : "bar" A 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0019/input.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | Multi_key 3 | Multi_key 4 | Multi_key 5 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0047/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | replacement 4 | b 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0081/input.txt: -------------------------------------------------------------------------------- 1 | both z 2 | both y 3 | down x 4 | down b 5 | up b 6 | up x 7 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0095/expected.txt: -------------------------------------------------------------------------------- 1 | down b 2 | key_down(b) 3 | up b 4 | key_up(b) 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0002/keycodes/b.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 2 = "alpha"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0013/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x = Mod1; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0013/symbols/y.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers y = Mod2; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0014/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x = Mod1; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0014/symbols/y.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x = Mod2; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0103/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | key { [ A ], [ B ] }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0129/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | modmap Mod1 { , }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0249/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | // * = < 3 | * = %l 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0251/rules/a: -------------------------------------------------------------------------------- 1 | ! $ = a 2 | 3 | ! layout[any] = symbols 4 | $ = X 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0274/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | indicator 1 = "A"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0275/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | indicator 1 = "A"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0276/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | indicator 1 = "B"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0278/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | indicator 1 = "B"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0279/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | indicator 1 = "B"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0287/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keycodes { 2 | include "y.xkb" 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t039/t0394/symbols/a.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { [ a ] }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0401/rules/a: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | ! model = keycodes = 3 | a = b 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0403/rules/a: -------------------------------------------------------------------------------- 1 | ! $g = a 2 | ! ! 3 | 4 | ! model = symbols 5 | $g = b 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0005/XCompose: -------------------------------------------------------------------------------- 1 | : "@" at # COMMERCIAL AT 2 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0006/XCompose: -------------------------------------------------------------------------------- 1 | : "@" at # COMMERCIAL AT 2 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0008/input.txt: -------------------------------------------------------------------------------- 1 | both i 2 | down rightalt 3 | both i 4 | up rightalt 5 | both i 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0035/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both compose 3 | down leftalt 4 | both h 5 | both h 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0056/input.txt: -------------------------------------------------------------------------------- 1 | down leftshift 2 | down leftalt 3 | up leftalt 4 | up leftshift 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0057/input.txt: -------------------------------------------------------------------------------- 1 | down leftalt 2 | down leftshift 3 | up leftshift 4 | up leftalt 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0216/rules/b: -------------------------------------------------------------------------------- 1 | oeauoaeunthoaeunteoh 2 | 3 | ! model = symbols 4 | x = y 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0224/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "V" 3 | 4 | [[groups]] 5 | layout = "U" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0224/rules/a: -------------------------------------------------------------------------------- 1 | ! = keycodes 2 | = x 3 | 4 | ! = symbols 5 | = %l[1]-%m[1]-%m 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0227/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "V" 3 | 4 | [[groups]] 5 | layout = "U" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0244/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "u" 3 | 4 | [[groups]] 5 | layout = "l" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0255/compat/a.xkb: -------------------------------------------------------------------------------- 1 | xkb_compat_map { 2 | indicator "Caps Lock" { }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0287/keycodes/y.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keycodes { 2 | indicator 1 = "A"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0402/rules/a: -------------------------------------------------------------------------------- 1 | ! $g = a 2 | ! $g b 3 | 4 | ! model = symbols 5 | $g = b 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0005/input.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | Shift_L 3 | A 4 | Caps_Lock 5 | Control_L 6 | T 7 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0015/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | bar B 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0016/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | foo B 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0017/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | bar A 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0048/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both h 3 | both e 4 | both l 5 | both l 6 | both o 7 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0051/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both e 3 | up capslock 4 | both l 5 | both l 6 | both o 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0066/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | = 1; 3 | = 2; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0128/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | key { }; 3 | key { }; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0254/compat/a.xkb: -------------------------------------------------------------------------------- 1 | xkb_compatibility_map { 2 | indicator "Caps Lock" { }; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0467/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l1" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0470/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l2" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0473/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l3" 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0476/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l4" 5 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0012/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | bar B 6 | C 7 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0014/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | bar B 6 | C 7 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0044/XCompose: -------------------------------------------------------------------------------- 1 | : c 2 | : d 3 | : y 4 | : z 5 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0048/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | pending 3 | b 4 | composed 5 | replacement 6 | -------------------------------------------------------------------------------- /compose-tests/xlocaledir/locale.alias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahkoh/kbvm/HEAD/compose-tests/xlocaledir/locale.alias -------------------------------------------------------------------------------- /type-tests/testcases/t00/t000/t0001/input.txt: -------------------------------------------------------------------------------- 1 | down i 2 | down leftshift 3 | repeat 4 | up leftshift 5 | repeat 6 | up i 7 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0027/input.txt: -------------------------------------------------------------------------------- 1 | down leftshift 2 | down rightshift 3 | up leftshift 4 | up rightshift 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0030/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both leftshift 3 | both leftshift 4 | both leftshift 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0099/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | down a 3 | both b 4 | down b 5 | up a 6 | up b 7 | both b 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0100/input.txt: -------------------------------------------------------------------------------- 1 | both b 2 | down a 3 | both b 4 | down b 5 | up a 6 | up b 7 | both b 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0102/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both b 3 | both c 4 | both a 5 | both a 6 | both b 7 | both b 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0103/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both a 3 | 4 | both b 5 | both b 6 | 7 | both c 8 | both c 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0058/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "Y"; 3 | augment "x.xkb" 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0157/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | model = "pc104" 3 | 4 | [[groups]] 5 | layout = "foo" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0219/rules/a: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | x = y 3 | 4 | ! model = keycodes 5 | x z = y 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0274/extra-includes/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "b" { 2 | indicator 2 = "B"; 3 | }; 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0010/XCompose: -------------------------------------------------------------------------------- 1 | : X 2 | : dollar 3 | : dead_acute 4 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0020/expected.txt: -------------------------------------------------------------------------------- 1 | dead_acute 2 | pending 3 | A 4 | composed 5 | Á Aacute 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0023/expected.txt: -------------------------------------------------------------------------------- 1 | a 2 | composed 3 | a 4 | b 5 | composed 6 | b 7 | -------------------------------------------------------------------------------- /kbvm-cli/build.rs: -------------------------------------------------------------------------------- 1 | use wl_client_builder::Builder; 2 | 3 | fn main() { 4 | Builder::default().build().unwrap(); 5 | } 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0017/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both rightshift 3 | both rightshift 4 | both rightshift 5 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0078/input.txt: -------------------------------------------------------------------------------- 1 | both z 2 | both y 3 | down x 4 | down b 5 | up b 6 | down b 7 | up b 8 | up x 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0079/input.txt: -------------------------------------------------------------------------------- 1 | both z 2 | both y 3 | down x 4 | down b 5 | up b 6 | down b 7 | up b 8 | up x 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0080/input.txt: -------------------------------------------------------------------------------- 1 | both z 2 | both y 3 | down x 4 | down b 5 | up b 6 | down b 7 | up b 8 | up x 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0082/input.txt: -------------------------------------------------------------------------------- 1 | both z 2 | both y 3 | down x 4 | down b 5 | up b 6 | down b 7 | up b 8 | up x 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0106/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both a 3 | 4 | both a 5 | down a 6 | both b 7 | up a 8 | both a 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0011/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x; 3 | virtual_modifiers y; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t007/t0072/types/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_types { 2 | type "Y" { 3 | }; 4 | type "X" { 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0093/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0130/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0130/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | name[Group1] = "X"; 3 | name[Group2] = "Y"; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0131/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | name[Group1] = "X"; 3 | name[Group2] = "Y"; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0220/rules/a: -------------------------------------------------------------------------------- 1 | ! model = symbols 2 | x = y 3 | 4 | ! model = keycodes 5 | x = y z 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0254/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | include "a.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0255/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | include "a.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0271/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[!0] = "1"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0275/extra-includes/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_keycodes { 2 | indicator 2 = "B"; 3 | }; 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0285/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | replace "(" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0052/input.txt: -------------------------------------------------------------------------------- 1 | both kp1 2 | both numlock 3 | both kp1 4 | both kp2 5 | both numlock 6 | both kp2 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0007/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_types { 3 | virtual_modifiers x; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0065/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0131/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | include "x.xkb:3" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0152/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb(a)" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0213/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0214/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0215/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0216/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0217/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0218/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0219/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0220/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "y" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0221/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | model = "x" 3 | options = ["z"] 4 | 5 | [[groups]] 6 | layout = "y" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0222/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0223/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "x" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0226/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "x" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0234/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "U" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0235/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "u" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0237/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0238/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0239/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "U" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0240/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "V" 2 | types = "" 3 | compat = "" 4 | symbols = "U" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0241/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "--" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0244/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0245/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0246/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0247/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0248/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "X" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0249/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "X" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0250/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "X" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0251/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0258/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_KEYCODES { 3 | indicator 1 = "A"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0275/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0280/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0281/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0286/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0287/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t030/t0307/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = 2; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t034/t0348/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | modmap Mod1 { }; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0400/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0401/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0402/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0403/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0404/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0405/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "d" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0406/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0407/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0408/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0409/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t041/t0410/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0001/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | space 4 | composed 5 | ~ asciitilde 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0013/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | pending 5 | C 6 | composed 7 | foo A 8 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0022/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | space 4 | composed 5 | ~ asciitilde 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t003/t0039/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | space 4 | composed 5 | ~ asciitilde 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0039/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down leftshift 3 | both e 4 | both l 5 | up leftshift 6 | both l 7 | both o 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0041/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down leftshift 3 | both e 4 | both l 5 | up rightshift 6 | both l 7 | both o 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0049/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both e 3 | both capslock 4 | both l 5 | both l 6 | both capslock 7 | both o 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0050/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down capslock 3 | both e 4 | both l 5 | both l 6 | up capslock 7 | both o 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0088/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both a 3 | down leftshift 4 | both a 5 | up leftshift 6 | both a 7 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0094/expected.txt: -------------------------------------------------------------------------------- 1 | down b 2 | key_down(b) 3 | controls = 0x00000400 4 | up b 5 | key_up(b) 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0004/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | include "a.xkb+b.xkb(y)" 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0065/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes { 2 | indicator 1 = "X"; 3 | indicator 2 = "Y"; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0096/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "\101"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0099/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[Group1] = "\101"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0154/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "pc+pc:2" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0221/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "a" 2 | types = "" 3 | compat = "c" 4 | symbols = "b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0225/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "-:1-" 2 | types = "" 3 | compat = "" 4 | symbols = "-:-" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0227/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "x+VU" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0228/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "-U_U" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0229/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "abc" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0230/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "abcdef" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0231/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "abc" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0233/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "abcdef" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0236/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "u+u" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0242/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "a+l" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0243/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "a|l" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t024/t0248/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = %l 3 | // ^ there is a tab here 4 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0268/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[5 - 1 - 1] = "3"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0269/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[8 / 2 / 2] = "2"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0270/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[~0xfffffffd] = "2"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0272/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[Group2[1]] = "2"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0405/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | 6 | [[groups]] 7 | layout = "x" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0406/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | 6 | [[groups]] 7 | layout = "x" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0407/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | 6 | [[groups]] 7 | layout = "x" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0408/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | 6 | [[groups]] 7 | layout = "x" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t040/t0409/input.toml: -------------------------------------------------------------------------------- 1 | rules = "a" 2 | 3 | [[groups]] 4 | layout = "a" 5 | 6 | [[groups]] 7 | layout = "x" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0464/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "xyz" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0466/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "" 2 | types = "" 3 | compat = "" 4 | symbols = "a^b" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0468/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l1" 5 | variant = "v1" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0469/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l1" 5 | variant = "v2" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0471/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l2" 5 | variant = "v1" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0472/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l2" 5 | variant = "v2" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0474/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l3" 5 | variant = "v1" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0475/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l3" 5 | variant = "v2" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0477/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l4" 5 | variant = "v1" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0478/input.toml: -------------------------------------------------------------------------------- 1 | rules = "extended-wild-cards" 2 | 3 | [[groups]] 4 | layout = "l4" 5 | variant = "v2" 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0003/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | dead_tilde 4 | composed 5 | ~ asciitilde 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0087/input.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | both a 3 | both leftshift 4 | both a 5 | 6 | both leftshift 7 | both a 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0016/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x; 3 | augment virtual_modifiers y = Mod1; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0017/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x = Mod1; 3 | virtual_modifiers x = Mod2; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0093/compat/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_compat { 2 | indicator "B" { 3 | }; 4 | indicator "A" { 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0154/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | 3 | [[groups]] 4 | layout = "us" 5 | 6 | [[groups]] 7 | layout = "de" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0158/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | model = "foo" 3 | 4 | [[groups]] 5 | layout = "ar" 6 | variant = "bar" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0162/input.toml: -------------------------------------------------------------------------------- 1 | rules = "wildcard" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "a" 6 | variant = "1" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0224/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "x" 2 | types = "" 3 | compat = "" 4 | symbols = "U-V[1]-V" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t023/t0232/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "abc:1[1]def" 2 | types = "" 3 | compat = "" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0262/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | virtual INDICATOR 1 = "A"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0273/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[Group2.Group3] = "2"; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0360/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_types { 3 | virtual_modifiers a, Shift, b; 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0004/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | space 4 | composed 5 | ~ asciitilde 6 | Caps_Lock 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0012/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_symbols { 2 | virtual_modifiers x = Mod1; 3 | augment virtual_modifiers x = Mod2; 4 | }; 5 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0094/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "\101" { 4 | }; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0170/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "a" 6 | variant = "" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0171/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "a" 6 | variant = "1" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0282/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "dummy" { 2 | }; 3 | 4 | default xkb_keycodes { 5 | indicator 1 = "B"; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0465/symbols/b.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { 3 | symbols[Group1] = [ b ], 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0465/symbols/y.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { 3 | symbols[Group1] = [ y ], 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0466/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = symbols 2 | * = a 3 | 4 | ! layout[any] = symbols 5 | * = ^b 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t004/t0044/input.txt: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | c 4 | 5 | a 6 | b 7 | d 8 | 9 | a 10 | x 11 | y 12 | 13 | a 14 | x 15 | z 16 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0023/input.txt: -------------------------------------------------------------------------------- 1 | both rightshift 2 | both leftshift 3 | both rightshift 4 | down leftshift 5 | both a 6 | up leftshift 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0168/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "layout_a" 6 | variant = "" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0169/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "layout_e" 6 | variant = "" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0172/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "layout_c" 6 | variant = "" 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0173/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "layout_d" 6 | variant = "" 7 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0007/expected.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | pending 3 | apostrophe 4 | pending 5 | 7 6 | aborted 7 | 7 8 | Caps_Lock 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0086/input.txt: -------------------------------------------------------------------------------- 1 | down a 2 | up a 3 | repeat 4 | down a 5 | up a 6 | down a 7 | up a 8 | down a 9 | up a 10 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0104/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | both a 4 | 5 | both b 6 | key_down(b) 7 | both b 8 | key_up(b) 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0105/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | both a 4 | 5 | both b 6 | key_down(b) 7 | both b 8 | key_up(b) 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0005/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | hurr durr; 4 | indicator 1 = "A"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0134/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[Group1].x = "X"; 4 | name = "Y"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0154/rules/evdev: -------------------------------------------------------------------------------- 1 | ! layout[1] = symbols 2 | * = pc 3 | 4 | ! layout[later] = symbols 5 | * = +pc:%i 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0163/input.toml: -------------------------------------------------------------------------------- 1 | rules = "wildcard" 2 | model = "" 3 | options = [""] 4 | 5 | [[groups]] 6 | layout = "a" 7 | variant = "1" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0225/rules/a: -------------------------------------------------------------------------------- 1 | ! = symbols 2 | = -:%i- 3 | 4 | ! layout[any] = keycodes 5 | * = -:%i- 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0226/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = x 3 | 4 | ! layout[any] = keycodes 5 | * = %+m%l[%i] 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0227/rules/a: -------------------------------------------------------------------------------- 1 | ! layout[any] = keycodes 2 | * = x 3 | 4 | ! layout[any] = keycodes 5 | * = %+m%l[%i] 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0252/keycodes/a.xkb: -------------------------------------------------------------------------------- 1 | partial xkb_keycodes { 2 | = 1; 3 | }; 4 | 5 | default xkb_keycodes { 6 | = 2; 7 | }; 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0014/input.txt: -------------------------------------------------------------------------------- 1 | down leftshift 2 | both a 3 | up leftshift 4 | down a 5 | down leftshift 6 | repeat 7 | up leftshift 8 | up a 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0015/input.txt: -------------------------------------------------------------------------------- 1 | down leftshift 2 | both a 3 | up leftshift 4 | down a 5 | down leftshift 6 | repeat 7 | up leftshift 8 | up a 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0184/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0186/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "es" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0201/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "olpc" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "us" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0202/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "olpc" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0274/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb(a)" 4 | include "x.xkb(b)" 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0277/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | indicator 1 = "A"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0279/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | replace "x.xkb(b)" 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0283/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | replace "x.xkb" 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0284/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | replace "x.xkb()" 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0467/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l10:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0468/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l20:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0470/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l2:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0473/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l50:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0476/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l4:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0477/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l4(v1):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0152/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "a" { 2 | include "x.xkb(b)" 3 | }; 4 | 5 | xkb_keycodes "b" { 6 | include "x.xkb(a)" 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0162/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+a(1)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0163/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+a(1)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0164/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+a(1)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0165/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "b(2):2" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0166/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+a(1)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0167/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "b(2):2" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0180/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "ar" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0182/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "ataritt" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "es" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0183/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "ataritt" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0185/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "xxx" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0187/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "es" 7 | variant = "xxx" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0203/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "de" 7 | variant = "neo" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0369/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 32 = "X"; 4 | indicator 33 = "Y"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t038/t0380/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[Group1] = "abc"; 4 | name[Group2] = def; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0460/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_types { 3 | virtual_modifiers a = 1; 4 | virtual_modifiers a; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0469/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l30(v2):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0471/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l40(v1):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0472/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l40(v2):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0474/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l50(v1):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0475/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l50(v2):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0478/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l4(v20):1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0019/expected.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | pending 3 | Multi_key 4 | aborted 5 | Multi_key 6 | pending 7 | Multi_key 8 | aborted 9 | -------------------------------------------------------------------------------- /kbvm/src/syms.rs: -------------------------------------------------------------------------------- 1 | //! [`Keysym`] constants for well-known keysyms. 2 | 3 | #[allow(unused_imports)] 4 | use crate::Keysym; 5 | pub use crate::keysym::generated::syms::*; 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0064/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "X"; 4 | indicator 2 = "X"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t008/t0080/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator.modifiers = Mod1; 4 | indicator "A" { }; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0266/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | alternate indicator 1 = "B"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0283/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "" { 2 | indicator 1 = "C"; 3 | }; 4 | 5 | default xkb_keycodes { 6 | indicator 1 = "B"; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0284/keycodes/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_keycodes "" { 2 | indicator 1 = "C"; 3 | }; 4 | 5 | default xkb_keycodes { 6 | indicator 1 = "B"; 7 | }; 8 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0003/XCompose: -------------------------------------------------------------------------------- 1 | : "~" asciitilde # TILDE 2 | : "~" asciitilde # TILDE 3 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0004/XCompose: -------------------------------------------------------------------------------- 1 | : "~" asciitilde # TILDE 2 | : "~" asciitilde # TILDE 3 | -------------------------------------------------------------------------------- /libxkbcommon-test-linker/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "libxkbcommon-test-linker" 3 | version = "0.1.0" 4 | edition = "2024" 5 | publish = false 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0045/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both e 3 | both compose 4 | both k 5 | both f 6 | both compose 7 | both compose 8 | both compose 9 | both o 10 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0059/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down rightalt 3 | both h 4 | up rightalt 5 | both h 6 | down rightalt 7 | both h 8 | up rightalt 9 | both h 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0170/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "a" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0171/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "a(1)" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0181/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "ben" 7 | variant = "probhat" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0297/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=xyz; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0043/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down leftshift 3 | both e 4 | down leftshift 5 | both l 6 | up leftshift 7 | both l 8 | up leftshift 9 | both o 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t009/t0092/compat/x.xkb: -------------------------------------------------------------------------------- 1 | xkb_compat { 2 | interpret B { 3 | }; 4 | interpret A { 5 | action = SetMods(mods = Mod1); 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0168/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_A" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0173/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_D" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0174/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "a+b:2" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0175/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "a+b(c):2" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0290/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=None+1; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0293/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=Group99; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0294/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=Group0; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0295/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=Group; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0296/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=GROUP1; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0298/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | groups=froup1; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t038/t0386/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | virtual_modifiers A = Mod1; 4 | virtual_modifiers B = "Mod1"; 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0465/symbols/a.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { 3 | symbols[Group1] = [ a ], 4 | symbols[Group2] = [ a ], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0465/symbols/x.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { 3 | symbols[Group1] = [ x ], 4 | symbols[Group2] = [ x ], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t047/t0479/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l10:1+l20:2+l30(v2):3+l2:4" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0034/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both compose 3 | both h 4 | both h 5 | both scrolllock 6 | both h 7 | both e 8 | both compose 9 | both h 10 | both h 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0042/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down leftshift 3 | both e 4 | down rightshift 5 | both l 6 | up rightshift 7 | both l 8 | up leftshift 9 | both o 10 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0096/expected.txt: -------------------------------------------------------------------------------- 1 | both b 2 | key_down(b) 3 | controls = 0x00000400 4 | key_up(b) 5 | down b 6 | key_down(b) 7 | up b 8 | key_up(b) 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0018/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0102/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | include "x.xkb:2" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0103/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | include "x.xkb:2" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0138/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | modmap Mod1 { }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0159/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat|some:compat" 4 | symbols = "" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0188/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = ["misc:typo", "misc:apl"] 4 | 5 | [[groups]] 6 | layout = "br" 7 | variant = "" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0276/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | augment "x.xkb" 5 | replace "x.xkb" 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0282/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | augment "x.xkb" 5 | replace "x.xkb" 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t039/t0394/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | include "a.xkb:1" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t048/t0481/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l50(v2):1+l4(v20):4+l4:2+l4(v1):3" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0040/input.txt: -------------------------------------------------------------------------------- 1 | down h 2 | repeat 3 | repeat 4 | down leftshift 5 | repeat 6 | repeat 7 | up leftshift 8 | repeat 9 | repeat 10 | up h 11 | both h 12 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0066/input.txt: -------------------------------------------------------------------------------- 1 | both 2 2 | both 3 3 | both 7 4 | both 8 5 | both slash 6 | down leftctrl 7 | both 2 8 | both 3 9 | both 7 10 | both 8 11 | both slash 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0155/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | 3 | model = "my_model" 4 | options = ["my_option"] 5 | 6 | [[groups]] 7 | layout = "my_layout" 8 | variant = "my_variant" 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0156/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "default_symbols" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0157/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "something(pc104)" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "default_symbols" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0158/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "my_symbols+(bar)" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0169/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_E+layout_e" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0207/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "x:1+x:2+x:3+x:4+x:5" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t021/t0212/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "x:1+x:2+x:3+x:4+x:5" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0252/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "a.xkb" 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0253/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "a.xkb" 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t025/t0259/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "a.xkb" 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0421/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { locks, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t048/t0480/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+l40(v1):1+l40(v2):2+l50:3+l50(v1):4" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0005/expected.txt: -------------------------------------------------------------------------------- 1 | Multi_key 2 | pending 3 | Shift_L 4 | A 5 | pending 6 | Caps_Lock 7 | Control_L 8 | T 9 | composed 10 | @ at 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0126/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | augment name[Group1] = "X"; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0155/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "my_keycodes" 2 | types = "my_types" 3 | compat = "my_compat|some:compat" 4 | symbols = "my_symbols+extra_variant" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0172/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_C:1+symbols_z:1" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0176/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_e:1+symbols_x:2" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0180/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+ara+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0186/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+es+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t027/t0278/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | augment "x.xkb(a)" 5 | replace "x.xkb(a)" 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0288/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | }; 5 | xkb_keycodes { 6 | indicator 1 = "B"; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0422/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { !locks, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0461/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | indicator 2 = "B"; 5 | indicator 1 = "B"; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t049/t0493/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ VoidAction() ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0071/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | sym = a, char = 'a' 4 | key_up(a) 5 | both b 6 | key_down(a) 7 | sym = a, char = 'a' 8 | key_up(a) 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0184/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete+japan" 4 | symbols = "pc+jp+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0187/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+es(xxx)+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0189/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+ara+pt:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0190/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+pt+ara:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0194/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+jp+es:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0195/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+es+jp:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0196/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+jp+es:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0198/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+latin+jp:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0291/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | controls = SlowKeys + MouseKeys; 5 | }; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0423/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { locks, !locks, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0424/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { !locks, locks, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t043/t0438/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { locks[1] = true, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0181/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+in(ben_probhat)+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0185/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete+japan" 4 | symbols = "pc+jp(xxx)+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t022/t0221/rules/a: -------------------------------------------------------------------------------- 1 | ! $any = x y z 2 | 3 | ! model = keycodes 4 | $any = a 5 | 6 | ! layout = symbols 7 | $any = b 8 | 9 | ! option = compat 10 | $any = c 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t028/t0289/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | }; 5 | xkb_keycodes { 6 | augment indicator 1 = "B"; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0420/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ Redirect(mods = Mod1), ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t004/t0044/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | down capslock 3 | both h 4 | down capslock 5 | both h 6 | up capslock 7 | both h 8 | up capslock 9 | both h 10 | both capslock 11 | both h 12 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0086/map.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "generated" 4 | }; 5 | xkb_symbols { 6 | key { locks = true, [ a ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0174/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "a" 6 | variant = "" 7 | 8 | [[groups]] 9 | layout = "b" 10 | variant = "" 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0175/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "a" 6 | variant = "" 7 | 8 | [[groups]] 9 | layout = "b" 10 | variant = "c" 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0191/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+in(ben_probhat)+gb:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0193/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+in(ben_probhat)+ara:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0197/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+jp(xxx)+es(yyy):2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0199/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+latin(xxx)+jp(yyy):2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0201/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+olpc(olpc)+aliases(qwerty)" 2 | types = "complete" 3 | compat = "olpc" 4 | symbols = "olpc+us(olpc)+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0202/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+olpc(olpc)+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete+japan" 4 | symbols = "olpc+jp+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0204/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+olpc(olpc)+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+jp+es:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0206/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+olpc(olpc)+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+es+jp:2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t038/t0383/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | 1; 7 | key { [ a ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t038/t0387/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator "1" = "A"; 4 | indicator 999999999999999999 = "B"; 5 | indicator 2 = "C"; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0008/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | composed 3 | foo X 4 | A 5 | composed 6 | foo X 7 | C 8 | B 9 | pending 10 | A 11 | composed 12 | baz Y 13 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0011/input.txt: -------------------------------------------------------------------------------- 1 | both capslock 2 | both leftshift 3 | both capslock 4 | down leftshift 5 | both i 6 | up leftshift 7 | down i 8 | down leftshift 9 | up i 10 | up leftshift 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0068/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both 2 3 | both 3 4 | both 7 5 | both 8 6 | both slash 7 | down leftctrl 8 | both a 9 | both 2 10 | both 3 11 | both 7 12 | both 8 13 | both slash 14 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0103/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | both a 4 | 5 | both b 6 | key_down(b) 7 | both b 8 | key_up(b) 9 | 10 | both c 11 | key_down(c) 12 | both c 13 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t007/t0078/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "A" { 4 | groups = Group1; 5 | whichgroupstate = Locked; 6 | }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0128/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | include "x.xkb" 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0182/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "xfree68_vndr/ataritt(us)+es+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t030/t0304/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "A" { 4 | mods = Mod1; 5 | whichModState = All-Latched; 6 | }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t030/t0306/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "A" { 4 | mods = Mod1; 5 | whichModState = All-[Latched]; 6 | }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0362/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "merge_modes" 4 | }; 5 | xkb_symbols { 6 | include "merge_modes(new-default)" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0363/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "merge_modes" 4 | }; 5 | xkb_symbols { 6 | include "merge_modes(new-augment)" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0364/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "merge_modes" 4 | }; 5 | xkb_symbols { 6 | include "merge_modes(new-override)" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0365/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "merge_modes" 4 | }; 5 | xkb_symbols { 6 | include "merge_modes(new-replace)" 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0011/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | C 4 | aborted 5 | D 6 | A 7 | pending 8 | C 9 | aborted 10 | C 11 | pending 12 | D 13 | composed 14 | Y 15 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t002/t0023/XCompose: -------------------------------------------------------------------------------- 1 | : a 2 | include "%H/aba8642e-3ce1-4140-b38b-ac1b53ee331f" 3 | include "%L/aba8642e-3ce1-4140-b38b-ac1b53ee331f" 4 | include "%L%X" 5 | include invalid 6 | : b 7 | 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0036/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both compose 3 | both compose 4 | both h 5 | both e 6 | both scrolllock 7 | both h 8 | both e 9 | both compose 10 | both compose 11 | both h 12 | both e 13 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0037/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both compose 3 | both compose 4 | both h 5 | both e 6 | both scrolllock 7 | both h 8 | both e 9 | both compose 10 | both compose 11 | both h 12 | both e 13 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0069/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both b 3 | down leftshift 4 | both a 5 | both b 6 | up leftshift 7 | both capslock 8 | both a 9 | both b 10 | down leftshift 11 | both a 12 | both b 13 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0107/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | both c 4 | key_down(c) 5 | both b 6 | key_up(a) 7 | key_down(b) 8 | both d 9 | key_up(c) 10 | key_down(d) 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0108/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(0xfffe) 3 | sym = a, char = 'a' 4 | key_up(0xfffe) 5 | both b 6 | key_down(0xffff) 7 | sym = b, char = 'b' 8 | key_up(0xffff) 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0159/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | options = ["my_option"] 3 | 4 | [[groups]] 5 | layout = "my_layout" 6 | variant = "my_variant" 7 | 8 | [[groups]] 9 | layout = "second_layout" 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0160/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "default_symbols+extra:1+extra:2+extra:3+extra:4" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0161/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | model = "my_model" 3 | options = ["option3", "option1", "colon:opt", "option11"] 4 | 5 | [[groups]] 6 | layout = "my_layout" 7 | variant = "my_variant" 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0164/input.toml: -------------------------------------------------------------------------------- 1 | rules = "wildcard" 2 | model = "" 3 | options = [""] 4 | 5 | [[groups]] 6 | layout = "a" 7 | variant = "1" 8 | 9 | [[groups]] 10 | layout = "" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0165/input.toml: -------------------------------------------------------------------------------- 1 | rules = "wildcard" 2 | model = "" 3 | options = [""] 4 | 5 | [[groups]] 6 | layout = "" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "b" 11 | variant = "2" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0166/input.toml: -------------------------------------------------------------------------------- 1 | rules = "wildcard" 2 | model = "" 3 | options = [""] 4 | 5 | [[groups]] 6 | layout = "a" 7 | variant = "1" 8 | 9 | [[groups]] 10 | layout = "b" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0167/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | model = "" 3 | options = [""] 4 | 5 | [[groups]] 6 | layout = "a" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "b" 11 | variant = "2" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0183/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete+japan" 4 | symbols = "xfree68_vndr/ataritt(us)+jp+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0188/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+br+inet(evdev)+apl(level3):1+typo(base):1" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0192/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+gb+in(ben):2+in(ben_probhat):2+inet(evdev)" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0267/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_symbols { 3 | name[1 + 2 * 3] = "7"; 4 | name[(1 + 2) * 3] = "9"; 5 | name[((1 + 2) / (3 + 4)) + 5] = "5"; 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t030/t0305/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "A" { 4 | mods = Mod1; 5 | whichModState = All-(All-Latched); 6 | }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t043/t0434/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key.locks; 7 | key { [ a ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t000/t0002/expected.txt: -------------------------------------------------------------------------------- 1 | dead_tilde 2 | pending 3 | space 4 | composed 5 | ~ asciitilde 6 | dead_tilde 7 | pending 8 | space 9 | composed 10 | ~ asciitilde 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0093/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | controls = 0x00000400 4 | key_up(a) 5 | down b 6 | key_down(b) 7 | up b 8 | key_up(b) 9 | controls = 0x00000000 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t005/t0055/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | virtual_modifiers A = Mod1; 4 | 5 | indicator "X" { 6 | modifiers = A; 7 | }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0061/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 1; 5 | }; 6 | xkb_symbols { 7 | key { 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0066/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "x.xkb" 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | key { }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0113/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | key { [ B ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t014/t0140/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ A ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0176/input.toml: -------------------------------------------------------------------------------- 1 | rules = "special_indexes" 2 | options = [] 3 | 4 | [[groups]] 5 | layout = "layout_e" 6 | variant = "" 7 | 8 | [[groups]] 9 | layout = "layout_a" 10 | variant = "" 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t039/t0395/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ a ] }; 7 | modmap X { }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t001/t0019/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | modmap Mod1 { }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t006/t0062/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | augment = 2; 5 | }; 6 | xkb_symbols { 7 | key { 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0109/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | !groupsWrap, 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0112/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | augment modmap Mod1 { }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0127/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | name[Group1] = "X"; 7 | name[Group1] = "Y"; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0177/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_a:1+symbols_y:2+layout_c:3+layout_d:4+symbols_z:3" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t018/t0189/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "ar" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "pt" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0190/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "pt" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "ar" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0194/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "ataritt" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "es" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0195/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "ataritt" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "es" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "jp" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0198/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "latin" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "jp" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0204/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "olpc" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "es" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0205/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "gb" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "de" 11 | variant = "neo" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0206/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "olpc" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "es" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "jp" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t029/t0292/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_compat { 3 | indicator "Caps Lock" { 4 | mods = Mod1; 5 | whichmodstate = Latched + Locked; 6 | }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t038/t0382/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key."repeat" = false; 7 | key { [ a ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0425/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | augment key { locks }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t048/t0489/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | modmap Mod1 { "\377", }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compose-tests/testcases/t00/t001/t0010/expected.txt: -------------------------------------------------------------------------------- 1 | A 2 | pending 3 | B 4 | composed 5 | X 6 | B 7 | pending 8 | A 9 | composed 10 | dollar 11 | C 12 | composed 13 | dead_acute 14 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0114/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | augment key { [ B ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0115/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ] }; 7 | replace key { [ B ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t013/t0133/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key[0].groupsClamp; 7 | key { 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0197/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "jp" 7 | variant = "xxx" 8 | 9 | [[groups]] 10 | layout = "es" 11 | variant = "yyy" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t032/t0322/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetMods(mods) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t041/t0411/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | key { [ RedirectKey(key = ) ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t041/t0414/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | key { [ RedirectKey(key = ) ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0426/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { !locks, }; 7 | augment key { locks }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0427/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { locks, }; 7 | augment key { !locks }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0428/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { locks, }; 7 | override key { !locks }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t042/t0429/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { !locks, }; 7 | override key { locks }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /integration-test-utils/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "integration-test-utils" 3 | version = "0.1.0" 4 | edition = "2024" 5 | publish = false 6 | 7 | [dependencies] 8 | kbvm = { path = "../kbvm" } 9 | parking_lot = "0.12.3" 10 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t008/t0084/input.txt: -------------------------------------------------------------------------------- 1 | down a 2 | down b 3 | up b 4 | up a 5 | 6 | down b 7 | down a 8 | up a 9 | up b 10 | 11 | down b 12 | down a 13 | up b 14 | up a 15 | 16 | down a 17 | down b 18 | up a 19 | up b 20 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t010/t0107/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | groupsClamp = true, 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0116/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ A ], [ B ] }; 7 | replace key { [ C ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t017/t0179/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "default_keycodes" 2 | types = "default_types" 3 | compat = "default_compat" 4 | symbols = "symbols_a:1+symbols_y:2+layout_c:3+layout_d:4+layout_e:5+symbols_z:3" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0191/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "ben" 7 | variant = "probhat" 8 | 9 | [[groups]] 10 | layout = "gb" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0192/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "gb" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "ben" 11 | variant = "probhat" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0193/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "whatever" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "ben" 7 | variant = "probhat" 8 | 9 | [[groups]] 10 | layout = "ar" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t019/t0199/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = [] 4 | 5 | [[groups]] 6 | layout = "latin" 7 | variant = "xxx" 8 | 9 | [[groups]] 10 | layout = "jp" 11 | variant = "yyy" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t032/t0327/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetMods(1 + 1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0070/input.txt: -------------------------------------------------------------------------------- 1 | both a 2 | both x 3 | both a 4 | both a 5 | both x 6 | both x 7 | both a 8 | both x 9 | 10 | both a 11 | both y 12 | both a 13 | both a 14 | both y 15 | both y 16 | both a 17 | both y 18 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0094/map.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "generated" 4 | }; 5 | xkb_symbols { 6 | key { [ LockControls(controls = Overlay1, affect = lock) ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0095/map.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "generated" 4 | }; 5 | xkb_symbols { 6 | key { [ LockControls(controls = Overlay1, affect = unlock) ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0096/map.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "generated" 4 | }; 5 | xkb_symbols { 6 | key { [ LockControls(controls = Overlay1, affect = lock) ] }; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t000/t0006/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | indicator 1 = "A"; 4 | }; 5 | xkb_keycodes { 6 | indicator 2 = "B"; 7 | override indicator 1 = "C"; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t014/t0146/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetGroup(group = +1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t014/t0149/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ LatchGroup(group = +1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t015/t0151/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ LockGroup(group = +1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0161/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "my_keycodes" 2 | types = "my_types" 3 | compat = "my_compat+some:compat+group(bla)" 4 | symbols = "my_symbols+extra_variant+compose(foo)+keypad(bar)+altwin(menu)" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t032/t0325/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ NoAction(mods = Mod1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t032/t0328/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetMods(MODS = Mod1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t036/t0368/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetMods(mods = ~0x100) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t037/t0370/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | include "a.xkb(v)" 8 | include "a.xkb" 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0025/expected.txt: -------------------------------------------------------------------------------- 1 | down rightshift 2 | key_down(rightshift) 3 | group_pressed = 1 4 | group_effective = 1 5 | down leftshift 6 | key_down(leftshift) 7 | group_pressed = 2 8 | group_effective = 2 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t002/t0026/expected.txt: -------------------------------------------------------------------------------- 1 | down rightshift 2 | key_down(rightshift) 3 | group_pressed = 1 4 | group_effective = 1 5 | down leftshift 6 | key_down(leftshift) 7 | group_pressed = 2 8 | group_effective = 2 9 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t005/t0053/input.txt: -------------------------------------------------------------------------------- 1 | both 1 2 | both q 3 | down leftshift 4 | both 1 5 | both q 6 | up leftshift 7 | both v 8 | both capslock 9 | both 1 10 | both v 11 | down rightshift 12 | both v 13 | up rightshift 14 | both v 15 | -------------------------------------------------------------------------------- /type-tests/testcases/t01/t010/t0101/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | both b 4 | key_up(a) 5 | key_down(b) 6 | both c 7 | key_up(b) 8 | key_down(c) 9 | both a 10 | key_up(c) 11 | key_down(a) 12 | both a 13 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t002/t0020/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | key { [ A ] }; 8 | key { [ A ] }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t012/t0120/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | key { 8 | [ A ] 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0200/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "evdev+aliases(qwerty)" 2 | types = "complete" 3 | compat = "complete" 4 | symbols = "pc+ca+br:2+inet(evdev)+apl(level3):1+apl(level3):2+typo(base):1+typo(base):2" 5 | geometry = "pc(pc104)" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0200/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev-modern" 2 | model = "pc104" 3 | options = ["misc:typo", "misc:apl"] 4 | 5 | [[groups]] 6 | layout = "ca" 7 | variant = "" 8 | 9 | [[groups]] 10 | layout = "br" 11 | variant = "" 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t020/t0209/expected.toml: -------------------------------------------------------------------------------- 1 | keycodes = "my_keycodes" 2 | types = "my_types" 3 | compat = "my_compat" 4 | symbols = "base:1+base:2+base:3+base:4+base:5+symbols_a:2+symbols_b:3+default_symbols:4+default_symbols:5" 5 | geometry = "" 6 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0260/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | !repeats, 8 | [ A ], 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0261/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ A ], 8 | !repeats 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t02/t026/t0263/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | !key.repeats; 7 | key { 8 | [ A ], 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t037/t0370/symbols/a.xkb: -------------------------------------------------------------------------------- 1 | default xkb_symbols { 2 | key { [ a ] }; 3 | }; 4 | 5 | default xkb_symbols { 6 | key { [ A ] }; 7 | }; 8 | 9 | xkb_symbols "v" { 10 | key { [ b ] }; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t037/t0378/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | { { { } } }; 7 | key { 8 | [ a ], 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t037/t0379/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ a b ], 8 | [ c ], 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t039/t0396/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | name[Group1]; 7 | key { 8 | [ a ], 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t003/t0033/input.txt: -------------------------------------------------------------------------------- 1 | both h 2 | both e 3 | down compose 4 | both h 5 | both e 6 | up compose 7 | both scrolllock 8 | both h 9 | both e 10 | down compose 11 | both h 12 | both e 13 | up compose 14 | both h 15 | both e 16 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t006/t0063/input.txt: -------------------------------------------------------------------------------- 1 | both 5 2 | both kp1 3 | both numlock 4 | down leftshift 5 | both kp1 6 | up leftshift 7 | both capslock 8 | both kp1 9 | down leftshift 10 | both kp1 11 | up leftshift 12 | both capslock 13 | both a 14 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0091/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | controls = 0x00000400 4 | key_up(a) 5 | down b 6 | key_down(b) 7 | controls = 0x00000c00 8 | up b 9 | key_up(b) 10 | controls = 0x00000400 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0092/expected.txt: -------------------------------------------------------------------------------- 1 | down b 2 | key_down(b) 3 | controls = 0x00000800 4 | both a 5 | key_down(a) 6 | controls = 0x00000c00 7 | key_up(a) 8 | up b 9 | key_up(b) 10 | controls = 0x00000400 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t009/t0098/expected.txt: -------------------------------------------------------------------------------- 1 | both a 2 | key_down(a) 3 | controls = 0x00000800 4 | key_up(a) 5 | down b 6 | key_down(b) 7 | controls = 0x00000c00 8 | up b 9 | key_up(b) 10 | controls = 0x00000400 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t003/t0032/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ a, A ], 8 | [ a, A ] 9 | }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0110/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { }; 7 | modmap Mod1 { }; 8 | modmap Mod2 { }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t011/t0117/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { [ ], [ A ] }; 7 | augment key { [ ], [ NoSymbol, B ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t014/t0141/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetMods(mods = Mod1, clearLocks) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t014/t0147/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 99; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ SetGroup(group = +1, clearLocks) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t01/t016/t0160/input.toml: -------------------------------------------------------------------------------- 1 | rules = "evdev" 2 | options = ["some:opt"] 3 | 4 | [[groups]] 5 | layout = "br" 6 | 7 | [[groups]] 8 | layout = "al" 9 | 10 | [[groups]] 11 | layout = "cn" 12 | 13 | [[groups]] 14 | layout = "az" 15 | -------------------------------------------------------------------------------- /compile-tests/testcases/t03/t039/t0398/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ NoAction(), SetMods(mods = Mod1) ], 8 | }; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /compile-tests/testcases/t04/t046/t0465/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | = 2; 5 | }; 6 | xkb_symbols { 7 | include "a.xkb+b.xkb" 8 | include "x.xkb^y.xkb" 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t001/t0019/expected.txt: -------------------------------------------------------------------------------- 1 | both leftshift 2 | key_down(leftshift) 3 | mods_pressed = 0x00000001 4 | mods_effective = 0x00000001 5 | key_up(leftshift) 6 | mods_pressed = 0x00000000 7 | mods_effective = 0x00000000 8 | -------------------------------------------------------------------------------- /type-tests/testcases/t00/t007/t0071/map.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | include "generated" 4 | }; 5 | xkb_symbols { 6 | key { [ a ] }; 7 | key { [ RedirectKey(key = ) ] }; 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libxkbcommon"] 2 | path = libxkbcommon 3 | url = https://github.com/xkbcommon/libxkbcommon.git 4 | [submodule "xkeyboard-config"] 5 | path = xkeyboard-config 6 | url = https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config.git 7 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t003/t0033/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_symbols { 6 | key { 7 | [ a, A ], 8 | }; 9 | modmap Mod1 { a }; 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /compile-tests/testcases/t00/t007/t0074/input.xkb: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { 3 | = 1; 4 | }; 5 | xkb_compat { 6 | }; 7 | xkb_symbols { 8 | key { 9 | [ A ] 10 | }; 11 | }; 12 | }; 13 | --------------------------------------------------------------------------------