1 // basé sur gb, avec des idées de http://www.zolid.com/uk-intl-kb/index.htm
2 // charger avec `xkbcomp uk-intl.xkb $DISPLAY'
3 // ctrl sur caps, modifier dans modifier_map pour changer ça
6 xkb_keycodes "evdev+aliases(qwerty)" {
253 indicator 1 = "Caps Lock";
254 indicator 2 = "Num Lock";
255 indicator 3 = "Scroll Lock";
256 indicator 4 = "Compose";
257 indicator 5 = "Kana";
258 indicator 6 = "Sleep";
259 indicator 7 = "Suspend";
260 indicator 8 = "Mute";
261 indicator 9 = "Misc";
262 indicator 10 = "Mail";
263 indicator 11 = "Charging";
264 virtual indicator 12 = "Shift Lock";
265 virtual indicator 13 = "Group 2";
266 virtual indicator 14 = "Mouse Keys";
267 alias <AC12> = <BKSL>;
268 alias <MENU> = <COMP>;
269 alias <HZTG> = <TLDE>;
270 alias <LMTA> = <LWIN>;
271 alias <RMTA> = <RWIN>;
272 alias <ALGR> = <RALT>;
273 alias <KPPT> = <I129>;
274 alias <LatQ> = <AD01>;
275 alias <LatW> = <AD02>;
276 alias <LatE> = <AD03>;
277 alias <LatR> = <AD04>;
278 alias <LatT> = <AD05>;
279 alias <LatY> = <AD06>;
280 alias <LatU> = <AD07>;
281 alias <LatI> = <AD08>;
282 alias <LatO> = <AD09>;
283 alias <LatP> = <AD10>;
284 alias <LatA> = <AC01>;
285 alias <LatS> = <AC02>;
286 alias <LatD> = <AC03>;
287 alias <LatF> = <AC04>;
288 alias <LatG> = <AC05>;
289 alias <LatH> = <AC06>;
290 alias <LatJ> = <AC07>;
291 alias <LatK> = <AC08>;
292 alias <LatL> = <AC09>;
293 alias <LatZ> = <AB01>;
294 alias <LatX> = <AB02>;
295 alias <LatC> = <AB03>;
296 alias <LatV> = <AB04>;
297 alias <LatB> = <AB05>;
298 alias <LatN> = <AB06>;
299 alias <LatM> = <AB07>;
302 xkb_types "complete" {
304 virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
308 level_name[Level1]= "Any";
313 level_name[Level1]= "Base";
314 level_name[Level2]= "Shift";
317 modifiers= Shift+Lock;
320 level_name[Level1]= "Base";
321 level_name[Level2]= "Caps";
324 modifiers= Shift+NumLock;
326 map[NumLock]= Level2;
327 level_name[Level1]= "Base";
328 level_name[Level2]= "Number";
331 modifiers= Shift+Alt;
332 map[Shift+Alt]= Level2;
333 level_name[Level1]= "Base";
334 level_name[Level2]= "Shift+Alt";
336 type "PC_CONTROL_LEVEL2" {
338 map[Control]= Level2;
339 level_name[Level1]= "Base";
340 level_name[Level2]= "Control";
342 type "PC_LCONTROL_LEVEL2" {
344 map[LControl]= Level2;
345 level_name[Level1]= "Base";
346 level_name[Level2]= "LControl";
348 type "PC_RCONTROL_LEVEL2" {
350 map[RControl]= Level2;
351 level_name[Level1]= "Base";
352 level_name[Level2]= "RControl";
354 type "PC_ALT_LEVEL2" {
357 level_name[Level1]= "Base";
358 level_name[Level2]= "Alt";
360 type "PC_LALT_LEVEL2" {
363 level_name[Level1]= "Base";
364 level_name[Level2]= "LAlt";
366 type "PC_RALT_LEVEL2" {
369 level_name[Level1]= "Base";
370 level_name[Level2]= "RAlt";
373 modifiers= Shift+Control+Alt+LevelThree;
375 map[LevelThree]= Level3;
376 map[Shift+LevelThree]= Level4;
377 map[Control+Alt]= Level5;
378 level_name[Level1]= "Base";
379 level_name[Level2]= "Shift";
380 level_name[Level3]= "Alt Base";
381 level_name[Level4]= "Shift Alt";
382 level_name[Level5]= "Ctrl+Alt";
384 type "LOCAL_EIGHT_LEVEL" {
385 modifiers= Shift+Lock+Control+LevelThree;
386 map[Shift+Lock]= Level1;
389 map[LevelThree]= Level3;
390 map[Shift+Lock+LevelThree]= Level3;
391 map[Shift+LevelThree]= Level4;
392 map[Lock+LevelThree]= Level4;
393 map[Control]= Level5;
394 map[Shift+Lock+Control]= Level5;
395 map[Shift+Control]= Level6;
396 map[Lock+Control]= Level6;
397 map[Control+LevelThree]= Level7;
398 map[Shift+Lock+Control+LevelThree]= Level7;
399 map[Shift+Control+LevelThree]= Level8;
400 map[Lock+Control+LevelThree]= Level8;
401 level_name[Level1]= "Base";
402 level_name[Level2]= "Shift";
403 level_name[Level3]= "Level3";
404 level_name[Level4]= "Shift Level3";
405 level_name[Level5]= "Ctrl";
406 level_name[Level6]= "Shift Ctrl";
407 level_name[Level7]= "Level3 Ctrl";
408 level_name[Level8]= "Shift Level3 Ctrl";
411 modifiers= Shift+LevelThree;
413 map[LevelThree]= Level3;
414 map[Shift+LevelThree]= Level3;
415 level_name[Level1]= "Base";
416 level_name[Level2]= "Shift";
417 level_name[Level3]= "Level3";
420 modifiers= Shift+LevelThree+LevelFive;
422 map[LevelThree]= Level3;
423 map[Shift+LevelThree]= Level4;
424 map[LevelFive]= Level5;
425 map[Shift+LevelFive]= Level6;
426 map[LevelThree+LevelFive]= Level7;
427 map[Shift+LevelThree+LevelFive]= Level8;
428 level_name[Level1]= "Base";
429 level_name[Level2]= "Shift";
430 level_name[Level3]= "Alt Base";
431 level_name[Level4]= "Shift Alt";
432 level_name[Level5]= "X";
433 level_name[Level6]= "X Shift";
434 level_name[Level7]= "X Alt Base";
435 level_name[Level8]= "X Shift Alt";
437 type "EIGHT_LEVEL_ALPHABETIC" {
438 modifiers= Shift+Lock+LevelThree+LevelFive;
441 map[LevelThree]= Level3;
442 map[Shift+LevelThree]= Level4;
443 map[Lock+LevelThree]= Level4;
444 map[Shift+Lock+LevelThree]= Level3;
445 map[LevelFive]= Level5;
446 map[Shift+LevelFive]= Level6;
447 map[Lock+LevelFive]= Level6;
448 map[LevelThree+LevelFive]= Level7;
449 map[Shift+LevelThree+LevelFive]= Level8;
450 map[Lock+LevelThree+LevelFive]= Level8;
451 map[Shift+Lock+LevelThree+LevelFive]= Level7;
452 level_name[Level1]= "Base";
453 level_name[Level2]= "Shift";
454 level_name[Level3]= "Alt Base";
455 level_name[Level4]= "Shift Alt";
456 level_name[Level5]= "X";
457 level_name[Level6]= "X Shift";
458 level_name[Level7]= "X Alt Base";
459 level_name[Level8]= "X Shift Alt";
461 type "EIGHT_LEVEL_SEMIALPHABETIC" {
462 modifiers= Shift+Lock+LevelThree+LevelFive;
465 map[LevelThree]= Level3;
466 map[Shift+LevelThree]= Level4;
467 map[Lock+LevelThree]= Level3;
468 preserve[Lock+LevelThree]= Lock;
469 map[Shift+Lock+LevelThree]= Level4;
470 preserve[Shift+Lock+LevelThree]= Lock;
471 map[LevelFive]= Level5;
472 map[Shift+LevelFive]= Level6;
473 map[Lock+LevelFive]= Level6;
474 preserve[Lock+LevelFive]= Lock;
475 map[LevelThree+LevelFive]= Level7;
476 map[Shift+LevelThree+LevelFive]= Level8;
477 map[Lock+LevelThree+LevelFive]= Level7;
478 preserve[Lock+LevelThree+LevelFive]= Lock;
479 map[Shift+Lock+LevelThree+LevelFive]= Level8;
480 preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
481 map[Shift+Lock+LevelFive]= Level1;
482 preserve[Shift+Lock+LevelFive]= Lock;
483 level_name[Level1]= "Base";
484 level_name[Level2]= "Shift";
485 level_name[Level3]= "Alt Base";
486 level_name[Level4]= "Shift Alt";
487 level_name[Level5]= "X";
488 level_name[Level6]= "X Shift";
489 level_name[Level7]= "X Alt Base";
490 level_name[Level8]= "X Shift Alt";
493 modifiers= Shift+LevelThree;
495 map[LevelThree]= Level3;
496 map[Shift+LevelThree]= Level4;
497 level_name[Level1]= "Base";
498 level_name[Level2]= "Shift";
499 level_name[Level3]= "Alt Base";
500 level_name[Level4]= "Shift Alt";
502 type "FOUR_LEVEL_ALPHABETIC" {
503 modifiers= Shift+Lock+LevelThree;
506 map[LevelThree]= Level3;
507 map[Shift+LevelThree]= Level4;
508 map[Lock+LevelThree]= Level4;
509 map[Shift+Lock+LevelThree]= Level3;
510 level_name[Level1]= "Base";
511 level_name[Level2]= "Shift";
512 level_name[Level3]= "Alt Base";
513 level_name[Level4]= "Shift Alt";
515 type "FOUR_LEVEL_SEMIALPHABETIC" {
516 modifiers= Shift+Lock+LevelThree;
519 map[LevelThree]= Level3;
520 map[Shift+LevelThree]= Level4;
521 map[Lock+LevelThree]= Level3;
522 preserve[Lock+LevelThree]= Lock;
523 map[Shift+Lock+LevelThree]= Level4;
524 preserve[Shift+Lock+LevelThree]= Lock;
525 level_name[Level1]= "Base";
526 level_name[Level2]= "Shift";
527 level_name[Level3]= "Alt Base";
528 level_name[Level4]= "Shift Alt";
530 type "FOUR_LEVEL_MIXED_KEYPAD" {
531 modifiers= Shift+NumLock+LevelThree;
532 map[Shift+NumLock]= Level1;
533 map[NumLock]= Level2;
535 map[LevelThree]= Level3;
536 map[NumLock+LevelThree]= Level3;
537 map[Shift+LevelThree]= Level4;
538 map[Shift+NumLock+LevelThree]= Level4;
539 level_name[Level1]= "Base";
540 level_name[Level2]= "Number";
541 level_name[Level3]= "Alt Base";
542 level_name[Level4]= "Shift Alt";
544 type "FOUR_LEVEL_X" {
545 modifiers= Shift+Control+Alt+LevelThree;
546 map[LevelThree]= Level2;
547 map[Shift+LevelThree]= Level3;
548 map[Control+Alt]= Level4;
549 level_name[Level1]= "Base";
550 level_name[Level2]= "Alt Base";
551 level_name[Level3]= "Shift Alt";
552 level_name[Level4]= "Ctrl+Alt";
554 type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
555 modifiers= Shift+Lock+LevelThree;
558 preserve[Lock]= Lock;
559 map[LevelThree]= Level3;
560 map[Shift+LevelThree]= Level4;
561 map[Lock+LevelThree]= Level3;
562 preserve[Lock+LevelThree]= Lock;
563 map[Shift+Lock+LevelThree]= Level3;
564 level_name[Level1]= "Base";
565 level_name[Level2]= "Shift";
566 level_name[Level3]= "AltGr Base";
567 level_name[Level4]= "Shift AltGr";
569 type "FOUR_LEVEL_PLUS_LOCK" {
570 modifiers= Shift+Lock+LevelThree;
572 map[LevelThree]= Level3;
573 map[Shift+LevelThree]= Level4;
575 map[Shift+Lock]= Level2;
576 map[Lock+LevelThree]= Level3;
577 map[Shift+Lock+LevelThree]= Level4;
578 level_name[Level1]= "Base";
579 level_name[Level2]= "Shift";
580 level_name[Level3]= "Alt Base";
581 level_name[Level4]= "Shift Alt";
582 level_name[Level5]= "Lock";
584 type "FOUR_LEVEL_KEYPAD" {
585 modifiers= Shift+NumLock+LevelThree;
587 map[NumLock]= Level2;
588 map[LevelThree]= Level3;
589 map[Shift+LevelThree]= Level4;
590 map[NumLock+LevelThree]= Level4;
591 map[Shift+NumLock+LevelThree]= Level3;
592 level_name[Level1]= "Base";
593 level_name[Level2]= "Number";
594 level_name[Level3]= "Alt Base";
595 level_name[Level4]= "Alt Number";
599 xkb_compatibility "complete" {
601 virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
603 interpret.useModMapMods= AnyLevel;
604 interpret.repeat= False;
605 interpret.locking= False;
606 interpret ISO_Level2_Latch+Exactly(Shift) {
607 useModMapMods=level1;
608 action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
610 interpret Shift_Lock+AnyOf(Shift+Lock) {
611 action= LockMods(modifiers=Shift);
613 interpret Num_Lock+AnyOf(all) {
614 virtualModifier= NumLock;
615 action= LockMods(modifiers=NumLock);
617 interpret ISO_Level3_Shift+AnyOf(all) {
618 virtualModifier= LevelThree;
619 useModMapMods=level1;
620 action= SetMods(modifiers=LevelThree,clearLocks);
622 interpret ISO_Level3_Latch+AnyOf(all) {
623 virtualModifier= LevelThree;
624 useModMapMods=level1;
625 action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
627 interpret ISO_Level3_Lock+AnyOf(all) {
628 virtualModifier= LevelThree;
629 useModMapMods=level1;
630 action= LockMods(modifiers=LevelThree);
632 interpret Alt_L+AnyOf(all) {
633 virtualModifier= Alt;
634 action= SetMods(modifiers=modMapMods,clearLocks);
636 interpret Alt_R+AnyOf(all) {
637 virtualModifier= Alt;
638 action= SetMods(modifiers=modMapMods,clearLocks);
640 interpret Meta_L+AnyOf(all) {
641 virtualModifier= Meta;
642 action= SetMods(modifiers=modMapMods,clearLocks);
644 interpret Meta_R+AnyOf(all) {
645 virtualModifier= Meta;
646 action= SetMods(modifiers=modMapMods,clearLocks);
648 interpret Super_L+AnyOf(all) {
649 virtualModifier= Super;
650 action= SetMods(modifiers=modMapMods,clearLocks);
652 interpret Super_R+AnyOf(all) {
653 virtualModifier= Super;
654 action= SetMods(modifiers=modMapMods,clearLocks);
656 interpret Hyper_L+AnyOf(all) {
657 virtualModifier= Hyper;
658 action= SetMods(modifiers=modMapMods,clearLocks);
660 interpret Hyper_R+AnyOf(all) {
661 virtualModifier= Hyper;
662 action= SetMods(modifiers=modMapMods,clearLocks);
664 interpret Scroll_Lock+AnyOf(all) {
665 virtualModifier= ScrollLock;
666 action= LockMods(modifiers=modMapMods);
668 interpret ISO_Level5_Shift+AnyOf(all) {
669 virtualModifier= LevelFive;
670 useModMapMods=level1;
671 action= SetMods(modifiers=LevelFive,clearLocks);
673 interpret ISO_Level5_Latch+AnyOf(all) {
674 virtualModifier= LevelFive;
675 action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
677 interpret ISO_Level5_Lock+AnyOf(all) {
678 virtualModifier= LevelFive;
679 action= LockMods(modifiers=LevelFive);
681 interpret Mode_switch+AnyOfOrNone(all) {
682 virtualModifier= AltGr;
683 useModMapMods=level1;
684 action= SetGroup(group=+1);
686 interpret ISO_Level3_Shift+AnyOfOrNone(all) {
687 action= SetMods(modifiers=LevelThree,clearLocks);
689 interpret ISO_Level3_Latch+AnyOfOrNone(all) {
690 action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
692 interpret ISO_Level3_Lock+AnyOfOrNone(all) {
693 action= LockMods(modifiers=LevelThree);
695 interpret ISO_Group_Latch+AnyOfOrNone(all) {
696 virtualModifier= AltGr;
697 useModMapMods=level1;
698 action= LatchGroup(group=2);
700 interpret ISO_Next_Group+AnyOfOrNone(all) {
701 virtualModifier= AltGr;
702 useModMapMods=level1;
703 action= LockGroup(group=+1);
705 interpret ISO_Prev_Group+AnyOfOrNone(all) {
706 virtualModifier= AltGr;
707 useModMapMods=level1;
708 action= LockGroup(group=-1);
710 interpret ISO_First_Group+AnyOfOrNone(all) {
711 action= LockGroup(group=1);
713 interpret ISO_Last_Group+AnyOfOrNone(all) {
714 action= LockGroup(group=2);
716 interpret KP_1+AnyOfOrNone(all) {
718 action= MovePtr(x=-1,y=+1);
720 interpret KP_End+AnyOfOrNone(all) {
722 action= MovePtr(x=-1,y=+1);
724 interpret KP_2+AnyOfOrNone(all) {
726 action= MovePtr(x=+0,y=+1);
728 interpret KP_Down+AnyOfOrNone(all) {
730 action= MovePtr(x=+0,y=+1);
732 interpret KP_3+AnyOfOrNone(all) {
734 action= MovePtr(x=+1,y=+1);
736 interpret KP_Next+AnyOfOrNone(all) {
738 action= MovePtr(x=+1,y=+1);
740 interpret KP_4+AnyOfOrNone(all) {
742 action= MovePtr(x=-1,y=+0);
744 interpret KP_Left+AnyOfOrNone(all) {
746 action= MovePtr(x=-1,y=+0);
748 interpret KP_6+AnyOfOrNone(all) {
750 action= MovePtr(x=+1,y=+0);
752 interpret KP_Right+AnyOfOrNone(all) {
754 action= MovePtr(x=+1,y=+0);
756 interpret KP_7+AnyOfOrNone(all) {
758 action= MovePtr(x=-1,y=-1);
760 interpret KP_Home+AnyOfOrNone(all) {
762 action= MovePtr(x=-1,y=-1);
764 interpret KP_8+AnyOfOrNone(all) {
766 action= MovePtr(x=+0,y=-1);
768 interpret KP_Up+AnyOfOrNone(all) {
770 action= MovePtr(x=+0,y=-1);
772 interpret KP_9+AnyOfOrNone(all) {
774 action= MovePtr(x=+1,y=-1);
776 interpret KP_Prior+AnyOfOrNone(all) {
778 action= MovePtr(x=+1,y=-1);
780 interpret KP_5+AnyOfOrNone(all) {
782 action= PtrBtn(button=default);
784 interpret KP_Begin+AnyOfOrNone(all) {
786 action= PtrBtn(button=default);
788 interpret KP_F2+AnyOfOrNone(all) {
790 action= SetPtrDflt(affect=button,button=1);
792 interpret KP_Divide+AnyOfOrNone(all) {
794 action= SetPtrDflt(affect=button,button=1);
796 interpret KP_F3+AnyOfOrNone(all) {
798 action= SetPtrDflt(affect=button,button=2);
800 interpret KP_Multiply+AnyOfOrNone(all) {
802 action= SetPtrDflt(affect=button,button=2);
804 interpret KP_F4+AnyOfOrNone(all) {
806 action= SetPtrDflt(affect=button,button=3);
808 interpret KP_Subtract+AnyOfOrNone(all) {
810 action= SetPtrDflt(affect=button,button=3);
812 interpret KP_Separator+AnyOfOrNone(all) {
814 action= PtrBtn(button=default,count=2);
816 interpret KP_Add+AnyOfOrNone(all) {
818 action= PtrBtn(button=default,count=2);
820 interpret KP_0+AnyOfOrNone(all) {
822 action= LockPtrBtn(button=default,affect=lock);
824 interpret KP_Insert+AnyOfOrNone(all) {
826 action= LockPtrBtn(button=default,affect=lock);
828 interpret KP_Decimal+AnyOfOrNone(all) {
830 action= LockPtrBtn(button=default,affect=unlock);
832 interpret KP_Delete+AnyOfOrNone(all) {
834 action= LockPtrBtn(button=default,affect=unlock);
836 interpret F25+AnyOfOrNone(all) {
838 action= SetPtrDflt(affect=button,button=1);
840 interpret F26+AnyOfOrNone(all) {
842 action= SetPtrDflt(affect=button,button=2);
844 interpret F27+AnyOfOrNone(all) {
846 action= MovePtr(x=-1,y=-1);
848 interpret F29+AnyOfOrNone(all) {
850 action= MovePtr(x=+1,y=-1);
852 interpret F31+AnyOfOrNone(all) {
854 action= PtrBtn(button=default);
856 interpret F33+AnyOfOrNone(all) {
858 action= MovePtr(x=-1,y=+1);
860 interpret F35+AnyOfOrNone(all) {
862 action= MovePtr(x=+1,y=+1);
864 interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
865 action= PtrBtn(button=default);
867 interpret Pointer_Button1+AnyOfOrNone(all) {
868 action= PtrBtn(button=1);
870 interpret Pointer_Button2+AnyOfOrNone(all) {
871 action= PtrBtn(button=2);
873 interpret Pointer_Button3+AnyOfOrNone(all) {
874 action= PtrBtn(button=3);
876 interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
877 action= PtrBtn(button=default,count=2);
879 interpret Pointer_DblClick1+AnyOfOrNone(all) {
880 action= PtrBtn(button=1,count=2);
882 interpret Pointer_DblClick2+AnyOfOrNone(all) {
883 action= PtrBtn(button=2,count=2);
885 interpret Pointer_DblClick3+AnyOfOrNone(all) {
886 action= PtrBtn(button=3,count=2);
888 interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
889 action= LockPtrBtn(button=default,affect=both);
891 interpret Pointer_Drag1+AnyOfOrNone(all) {
892 action= LockPtrBtn(button=1,affect=both);
894 interpret Pointer_Drag2+AnyOfOrNone(all) {
895 action= LockPtrBtn(button=2,affect=both);
897 interpret Pointer_Drag3+AnyOfOrNone(all) {
898 action= LockPtrBtn(button=3,affect=both);
900 interpret Pointer_EnableKeys+AnyOfOrNone(all) {
901 action= LockControls(controls=MouseKeys);
903 interpret Pointer_Accelerate+AnyOfOrNone(all) {
904 action= LockControls(controls=MouseKeysAccel);
906 interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
907 action= SetPtrDflt(affect=button,button=+1);
909 interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
910 action= SetPtrDflt(affect=button,button=-1);
912 interpret AccessX_Enable+AnyOfOrNone(all) {
913 action= LockControls(controls=AccessXKeys);
915 interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
916 action= LockControls(controls=AccessXFeedback);
918 interpret RepeatKeys_Enable+AnyOfOrNone(all) {
919 action= LockControls(controls=RepeatKeys);
921 interpret SlowKeys_Enable+AnyOfOrNone(all) {
922 action= LockControls(controls=SlowKeys);
924 interpret BounceKeys_Enable+AnyOfOrNone(all) {
925 action= LockControls(controls=BounceKeys);
927 interpret StickyKeys_Enable+AnyOfOrNone(all) {
928 action= LockControls(controls=StickyKeys);
930 interpret MouseKeys_Enable+AnyOfOrNone(all) {
931 action= LockControls(controls=MouseKeys);
933 interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
934 action= LockControls(controls=MouseKeysAccel);
936 interpret Overlay1_Enable+AnyOfOrNone(all) {
937 action= LockControls(controls=Overlay1);
939 interpret Overlay2_Enable+AnyOfOrNone(all) {
940 action= LockControls(controls=Overlay2);
942 interpret AudibleBell_Enable+AnyOfOrNone(all) {
943 action= LockControls(controls=AudibleBell);
945 interpret Alt_L+AnyOfOrNone(all) {
946 action= SetMods(modifiers=Alt,clearLocks);
948 interpret Alt_R+AnyOfOrNone(all) {
949 action= SetMods(modifiers=Alt,clearLocks);
951 interpret Meta_L+AnyOfOrNone(all) {
952 action= SetMods(modifiers=Meta,clearLocks);
954 interpret Meta_R+AnyOfOrNone(all) {
955 action= SetMods(modifiers=Meta,clearLocks);
957 interpret Super_L+AnyOfOrNone(all) {
958 action= SetMods(modifiers=Super,clearLocks);
960 interpret Super_R+AnyOfOrNone(all) {
961 action= SetMods(modifiers=Super,clearLocks);
963 interpret Hyper_L+AnyOfOrNone(all) {
964 action= SetMods(modifiers=Hyper,clearLocks);
966 interpret Hyper_R+AnyOfOrNone(all) {
967 action= SetMods(modifiers=Hyper,clearLocks);
969 interpret Shift_L+AnyOfOrNone(all) {
970 action= SetMods(modifiers=Shift,clearLocks);
972 interpret XF86Switch_VT_1+AnyOfOrNone(all) {
974 action= SwitchScreen(screen=1,!same);
976 interpret XF86Switch_VT_2+AnyOfOrNone(all) {
978 action= SwitchScreen(screen=2,!same);
980 interpret XF86Switch_VT_3+AnyOfOrNone(all) {
982 action= SwitchScreen(screen=3,!same);
984 interpret XF86Switch_VT_4+AnyOfOrNone(all) {
986 action= SwitchScreen(screen=4,!same);
988 interpret XF86Switch_VT_5+AnyOfOrNone(all) {
990 action= SwitchScreen(screen=5,!same);
992 interpret XF86Switch_VT_6+AnyOfOrNone(all) {
994 action= SwitchScreen(screen=6,!same);
996 interpret XF86Switch_VT_7+AnyOfOrNone(all) {
998 action= SwitchScreen(screen=7,!same);
1000 interpret XF86Switch_VT_8+AnyOfOrNone(all) {
1002 action= SwitchScreen(screen=8,!same);
1004 interpret XF86Switch_VT_9+AnyOfOrNone(all) {
1006 action= SwitchScreen(screen=9,!same);
1008 interpret XF86Switch_VT_10+AnyOfOrNone(all) {
1010 action= SwitchScreen(screen=10,!same);
1012 interpret XF86Switch_VT_11+AnyOfOrNone(all) {
1014 action= SwitchScreen(screen=11,!same);
1016 interpret XF86Switch_VT_12+AnyOfOrNone(all) {
1018 action= SwitchScreen(screen=12,!same);
1020 interpret XF86LogGrabInfo+AnyOfOrNone(all) {
1022 action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);
1024 interpret XF86LogWindowTree+AnyOfOrNone(all) {
1026 action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);
1028 interpret XF86Next_VMode+AnyOfOrNone(all) {
1030 action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
1032 interpret XF86Prev_VMode+AnyOfOrNone(all) {
1034 action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
1036 interpret ISO_Level5_Shift+AnyOfOrNone(all) {
1037 action= SetMods(modifiers=LevelFive,clearLocks);
1039 interpret ISO_Level5_Latch+AnyOfOrNone(all) {
1040 action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
1042 interpret ISO_Level5_Lock+AnyOfOrNone(all) {
1043 action= LockMods(modifiers=LevelFive);
1045 interpret Caps_Lock+AnyOfOrNone(all) {
1046 action= LockMods(modifiers=Lock);
1048 interpret Any+Exactly(Lock) {
1049 action= LockMods(modifiers=Lock);
1051 interpret Any+AnyOf(all) {
1052 action= SetMods(modifiers=modMapMods,clearLocks);
1057 indicator "Caps Lock" {
1059 whichModState= locked;
1062 indicator "Num Lock" {
1064 whichModState= locked;
1067 indicator "Scroll Lock" {
1068 whichModState= locked;
1069 modifiers= ScrollLock;
1071 indicator "Shift Lock" {
1073 whichModState= locked;
1076 indicator "Group 2" {
1080 indicator "Mouse Keys" {
1081 indicatorDrivesKeyboard;
1082 controls= mouseKeys;
1086 xkb_symbols "gb_FR" {
1088 name[group1]="English + French dead accents";
1090 key <ESC> { [ Escape ] };
1093 symbols[Group1]= [ 1, exclam, exclamdown, onesuperior ]
1097 symbols[Group1]= [ 2, quotedbl, dead_diaeresis, oneeighth ]
1101 symbols[Group1]= [ 3, sterling, threesuperior, sterling ]
1105 symbols[Group1]= [ 4, dollar, EuroSign, cent ]
1109 symbols[Group1]= [ 5, percent, onehalf, threeeighths ]
1113 symbols[Group1]= [ 6, asciicircum, dead_circumflex, fiveeighths ]
1117 symbols[Group1]= [ 7, ampersand, braceleft, seveneighths ]
1121 symbols[Group1]= [ 8, asterisk, bracketleft, trademark ]
1125 symbols[Group1]= [ 9, parenleft, bracketright, plusminus ]
1129 symbols[Group1]= [ 0, parenright, braceright, degree ]
1133 symbols[Group1]= [ minus, underscore, emdash, endash ]
1137 symbols[Group1]= [ equal, plus, multiply, division ]
1139 key <BKSP> { [ BackSpace, BackSpace, NoSymbol, NoSymbol ]
1141 key <TAB> { [ Tab, ISO_Left_Tab ] };
1143 type= "FOUR_LEVEL_SEMIALPHABETIC",
1144 symbols[Group1]= [ q, Q, at, Greek_OMEGA ]
1147 type= "FOUR_LEVEL_ALPHABETIC",
1148 symbols[Group1]= [ w, W, lstroke, Lstroke ]
1151 type= "FOUR_LEVEL_ALPHABETIC",
1152 symbols[Group1]= [ e, E, e, E ]
1155 type= "FOUR_LEVEL_SEMIALPHABETIC",
1156 symbols[Group1]= [ r, R, registered, registered ]
1159 type= "FOUR_LEVEL_ALPHABETIC",
1160 symbols[Group1]= [ t, T, tslash, Tslash ]
1163 type= "FOUR_LEVEL_SEMIALPHABETIC",
1164 symbols[Group1]= [ y, Y, leftarrow, yen ]
1167 type= "FOUR_LEVEL_SEMIALPHABETIC",
1168 symbols[Group1]= [ u, U, downarrow, uparrow ]
1171 type= "FOUR_LEVEL_SEMIALPHABETIC",
1172 symbols[Group1]= [ i, I, rightarrow, idotless ]
1175 type= "FOUR_LEVEL_ALPHABETIC",
1176 symbols[Group1]= [ o, O, oe, OE ]
1179 type= "FOUR_LEVEL_ALPHABETIC",
1180 symbols[Group1]= [ p, P, thorn, THORN ]
1184 symbols[Group1]= [ bracketleft, braceleft, guillemotleft, NoSymbol ]
1188 symbols[Group1]= [ bracketright, braceright, guillemotright, NoSymbol ]
1190 key <RTRN> { [ Return ] };
1191 key <LCTL> { [ Control_L ] };
1193 type= "FOUR_LEVEL_ALPHABETIC",
1194 symbols[Group1]= [ a, A, ae, AE ]
1197 type= "FOUR_LEVEL_SEMIALPHABETIC",
1198 symbols[Group1]= [ s, S, ssharp, section ]
1201 type= "FOUR_LEVEL_ALPHABETIC",
1202 symbols[Group1]= [ d, D, eth, ETH ]
1205 type= "FOUR_LEVEL_SEMIALPHABETIC",
1206 symbols[Group1]= [ f, F, dstroke, ordfeminine ]
1209 type= "FOUR_LEVEL_ALPHABETIC",
1210 symbols[Group1]= [ g, G, eng, ENG ]
1213 type= "FOUR_LEVEL_ALPHABETIC",
1214 symbols[Group1]= [ h, H, hstroke, Hstroke ]
1217 type= "FOUR_LEVEL_SEMIALPHABETIC",
1218 symbols[Group1]= [ j, J, dead_hook, dead_horn ]
1221 type= "FOUR_LEVEL_SEMIALPHABETIC",
1222 symbols[Group1]= [ k, K, kra, ampersand ]
1225 type= "FOUR_LEVEL_ALPHABETIC",
1226 symbols[Group1]= [ l, L, lstroke, Lstroke ]
1230 symbols[Group1]= [ semicolon, colon, paragraph, NoSymbol ]
1234 symbols[Group1]= [ apostrophe, at, dead_acute, dead_caron ]
1238 symbols[Group1]= [ grave, notsign, dead_grave, bar ]
1240 key <LFSH> { [ Shift_L ] };
1243 symbols[Group1]= [ numbersign, asciitilde, dead_tilde, dead_breve ]
1246 type= "FOUR_LEVEL_SEMIALPHABETIC",
1247 symbols[Group1]= [ z, Z, guillemotleft, less ]
1250 type= "FOUR_LEVEL_SEMIALPHABETIC",
1251 symbols[Group1]= [ x, X, guillemotright, greater ]
1254 type= "FOUR_LEVEL_SEMIALPHABETIC",
1255 symbols[Group1]= [ c, C, copyright, cent ]
1258 type= "FOUR_LEVEL_SEMIALPHABETIC",
1259 symbols[Group1]= [ v, V, leftdoublequotemark, leftsinglequotemark ]
1262 type= "FOUR_LEVEL_SEMIALPHABETIC",
1263 symbols[Group1]= [ b, B, rightdoublequotemark, rightsinglequotemark ]
1266 type= "FOUR_LEVEL_ALPHABETIC",
1267 symbols[Group1]= [ n, N, n, N ]
1270 type= "FOUR_LEVEL_SEMIALPHABETIC",
1271 symbols[Group1]= [ m, M, mu, masculine ]
1275 symbols[Group1]= [ comma, less, dead_cedilla, dead_cedilla ]
1279 symbols[Group1]= [ period, greater, dead_belowdot, division ]
1283 symbols[Group1]= [ slash, question, questiondown, dead_abovedot ]
1285 key <RTSH> { [ Shift_R ] };
1288 symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ]
1290 key <LALT> { [ Alt_L, Meta_L ] };
1293 symbols[Group1]= [ space, space, nobreakspace, nobreakspace ]
1295 // key <CAPS> { [ Caps_Lock, Caps_Lock ] };
1296 key <CAPS> { [ Control_L, Control_L ] };
1299 symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ]
1303 symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ]
1307 symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ]
1311 symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ]
1315 symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ]
1319 symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ]
1323 symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ]
1327 symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ]
1331 symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ]
1335 symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ]
1337 key <NMLK> { [ Num_Lock ] };
1338 key <SCLK> { [ Scroll_Lock ] };
1339 key <KP7> { [ KP_Home, KP_7 ] };
1340 key <KP8> { [ KP_Up, KP_8 ] };
1341 key <KP9> { [ KP_Prior, KP_9 ] };
1344 symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ]
1346 key <KP4> { [ KP_Left, KP_4 ] };
1347 key <KP5> { [ KP_Begin, KP_5 ] };
1348 key <KP6> { [ KP_Right, KP_6 ] };
1351 symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ]
1353 key <KP1> { [ KP_End, KP_1 ] };
1354 key <KP2> { [ KP_Down, KP_2 ] };
1355 key <KP3> { [ KP_Next, KP_3 ] };
1356 key <KP0> { [ KP_Insert, KP_0 ] };
1357 key <KPDL> { [ KP_Delete, KP_Decimal ] };
1358 key <LVL3> { [ ISO_Level3_Shift ] };
1361 symbols[Group1]= [ backslash, bar, bar, brokenbar ]
1365 symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ]
1369 symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ]
1371 key <KATA> { [ Katakana ] };
1372 key <HIRA> { [ Hiragana ] };
1373 key <HENK> { [ Henkan_Mode ] };
1374 key <HKTG> { [ Hiragana_Katakana ] };
1375 key <MUHE> { [ Muhenkan ] };
1376 key <KPEN> { [ KP_Enter ] };
1377 key <RCTL> { [ Control_R ] };
1380 symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ]
1383 type= "PC_ALT_LEVEL2",
1384 symbols[Group1]= [ Print, Sys_Req ]
1388 symbols[Group1]= [ ISO_Level3_Shift, Multi_key ]
1390 key <LNFD> { [ Linefeed ] };
1391 key <HOME> { [ Home ] };
1392 key <UP> { [ Up ] };
1393 key <PGUP> { [ Prior ] };
1394 key <LEFT> { [ Left ] };
1395 key <RGHT> { [ Right ] };
1396 key <END> { [ End ] };
1397 key <DOWN> { [ Down ] };
1398 key <PGDN> { [ Next ] };
1399 key <INS> { [ Insert ] };
1400 key <DELE> { [ Delete ] };
1401 key <MUTE> { [ XF86AudioMute ] };
1402 key <VOL-> { [ XF86AudioLowerVolume ] };
1403 key <VOL+> { [ XF86AudioRaiseVolume ] };
1404 key <POWR> { [ XF86PowerOff ] };
1405 key <KPEQ> { [ KP_Equal ] };
1406 key <I126> { [ plusminus ] };
1408 type= "PC_CONTROL_LEVEL2",
1409 symbols[Group1]= [ Pause, Break ]
1411 key <I128> { [ XF86LaunchA ] };
1412 key <I129> { [ KP_Decimal, KP_Decimal ] };
1413 key <HNGL> { [ Hangul ] };
1414 key <HJCV> { [ Hangul_Hanja ] };
1415 key <LWIN> { [ Super_L ] };
1416 key <RWIN> { [ Super_R ] };
1417 key <COMP> { [ Menu ] };
1418 key <STOP> { [ Cancel ] };
1419 key <AGAI> { [ Redo ] };
1420 key <PROP> { [ SunProps ] };
1421 key <UNDO> { [ Undo ] };
1422 key <FRNT> { [ SunFront ] };
1423 key <COPY> { [ XF86Copy ] };
1424 key <OPEN> { [ SunOpen ] };
1425 key <PAST> { [ XF86Paste ] };
1426 key <FIND> { [ Find ] };
1427 key <CUT> { [ XF86Cut ] };
1428 key <HELP> { [ Help ] };
1429 key <I147> { [ XF86MenuKB ] };
1430 key <I148> { [ XF86Calculator ] };
1431 key <I150> { [ XF86Sleep ] };
1432 key <I151> { [ XF86WakeUp ] };
1433 key <I152> { [ XF86Explorer ] };
1434 key <I153> { [ XF86Send ] };
1435 key <I155> { [ XF86Xfer ] };
1436 key <I156> { [ XF86Launch1 ] };
1437 key <I157> { [ XF86Launch2 ] };
1438 key <I158> { [ XF86WWW ] };
1439 key <I159> { [ XF86DOS ] };
1440 key <I160> { [ XF86ScreenSaver ] };
1441 key <I162> { [ XF86RotateWindows ] };
1442 key <I163> { [ XF86Mail ] };
1443 key <I164> { [ XF86Favorites ] };
1444 key <I165> { [ XF86MyComputer ] };
1445 key <I166> { [ XF86Back ] };
1446 key <I167> { [ XF86Forward ] };
1447 key <I169> { [ XF86Eject ] };
1448 key <I170> { [ XF86Eject, XF86Eject ] };
1449 key <I171> { [ XF86AudioNext ] };
1450 key <I172> { [ XF86AudioPlay, XF86AudioPause ] };
1451 key <I173> { [ XF86AudioPrev ] };
1452 key <I174> { [ XF86AudioStop, XF86Eject ] };
1453 key <I175> { [ XF86AudioRecord ] };
1454 key <I176> { [ XF86AudioRewind ] };
1455 key <I177> { [ XF86Phone ] };
1456 key <I179> { [ XF86Tools ] };
1457 key <I180> { [ XF86HomePage ] };
1458 key <I181> { [ XF86Reload ] };
1459 key <I182> { [ XF86Close ] };
1460 key <I185> { [ XF86ScrollUp ] };
1461 key <I186> { [ XF86ScrollDown ] };
1462 key <I187> { [ parenleft ] };
1463 key <I188> { [ parenright ] };
1464 key <I189> { [ XF86New ] };
1465 key <I190> { [ Redo ] };
1466 key <FK13> { [ XF86Tools ] };
1467 key <FK14> { [ XF86Launch5 ] };
1468 key <FK15> { [ XF86Launch6 ] };
1469 key <FK16> { [ XF86Launch7 ] };
1470 key <FK17> { [ XF86Launch8 ] };
1471 key <FK18> { [ XF86Launch9 ] };
1472 key <FK21> { [ XF86TouchpadToggle ] };
1473 key <FK22> { [ XF86TouchpadOn ] };
1474 key <FK23> { [ XF86TouchpadOff ] };
1475 key <MDSW> { [ Mode_switch ] };
1476 key <ALT> { [ NoSymbol, Alt_L ] };
1477 key <META> { [ NoSymbol, Meta_L ] };
1478 key <SUPR> { [ NoSymbol, Super_L ] };
1479 key <HYPR> { [ NoSymbol, Hyper_L ] };
1480 key <I208> { [ XF86AudioPlay ] };
1481 key <I209> { [ XF86AudioPause ] };
1482 key <I210> { [ XF86Launch3 ] };
1483 key <I211> { [ XF86Launch4 ] };
1484 key <I212> { [ XF86LaunchB ] };
1485 key <I213> { [ XF86Suspend ] };
1486 key <I214> { [ XF86Close ] };
1487 key <I215> { [ XF86AudioPlay ] };
1488 key <I216> { [ XF86AudioForward ] };
1489 key <I218> { [ Print ] };
1490 key <I220> { [ XF86WebCam ] };
1491 key <I223> { [ XF86Mail ] };
1492 key <I224> { [ XF86Messenger ] };
1493 key <I225> { [ XF86Search ] };
1494 key <I226> { [ XF86Go ] };
1495 key <I227> { [ XF86Finance ] };
1496 key <I228> { [ XF86Game ] };
1497 key <I229> { [ XF86Shop ] };
1498 key <I231> { [ Cancel ] };
1499 key <I232> { [ XF86MonBrightnessDown ] };
1500 key <I233> { [ XF86MonBrightnessUp ] };
1501 key <I234> { [ XF86AudioMedia ] };
1502 key <I235> { [ XF86Display ] };
1503 key <I236> { [ XF86KbdLightOnOff ] };
1504 key <I237> { [ XF86KbdBrightnessDown ] };
1505 key <I238> { [ XF86KbdBrightnessUp ] };
1506 key <I239> { [ XF86Send ] };
1507 key <I240> { [ XF86Reply ] };
1508 key <I241> { [ XF86MailForward ] };
1509 key <I242> { [ XF86Save ] };
1510 key <I243> { [ XF86Documents ] };
1511 key <I244> { [ XF86Battery ] };
1512 key <I245> { [ XF86Bluetooth ] };
1513 key <I246> { [ XF86WLAN ] };
1514 modifier_map Control { <LCTL> };
1515 modifier_map Shift { <LFSH> };
1516 modifier_map Shift { <RTSH> };
1517 modifier_map Mod1 { <LALT> };
1518 modifier_map Control { <CAPS> };
1519 modifier_map Mod2 { <NMLK> };
1520 modifier_map Mod5 { <LVL3> };
1521 modifier_map Control { <RCTL> };
1522 modifier_map Mod4 { <LWIN> };
1523 modifier_map Mod4 { <RWIN> };
1524 modifier_map Mod5 { <MDSW> };
1525 modifier_map Mod1 { <META> };
1526 modifier_map Mod4 { <SUPR> };
1527 modifier_map Mod4 { <HYPR> };