Knowledge

X keyboard extension

Source đź“ť

86: 568: 281:
is a control that is not boolean. Namely, it is a mask that says which keys are in autorepeat mode. According to the specification, non-boolean controls are "always active": that means that they always depends on a set of parameters (in this case, the mask), but that there is no single bit that can
367:
XKB allows a client to query the physical shape of the keyboard, including the shapes of individual keys. In particular, keys are arranged into sections, possibly rotated (as an example, the numeric keypad is typically considered a section). Within a section, keys are arranged into rows. Keys and
285:
Other than being boolean or non-boolean, controls also classifies as affecting the behavior of the server and affecting the behavior of the client library. The two above are server controls. Client library controls affect the translation of a keycode or a sequence of keycodes into a string
221:
modifier. When a modifier is locked, it remains active until it is explicitly deactivated. An intermediate condition between regular and locked is the latched state: When a modifier is latched, it remains active, but only until the next non-modifier key is pressed.
234:
XKB allows for the keyboard to switch between any of four different character groups. This is usually done for making a keyboard behave like a keyboard of a different language. In this context, the set of characters that is generated by the keyboard is called a
225:
XKB allows a client application to explicitly latch or lock a modifier. Moreover, an application can bind a key press or release to a modifier state change. This way, a modifier may automatically become latched or locked whenever a key is pressed or released.
270:, which makes some keypresses to simulate mouse movements. The control only indicates whether this simulation is active or not; which keys produce the movement is not considered a part of the control, but is specified by attaching actions to these keys. 298:
XKB allows for associating actions with key presses, which moves some of the burden of input event processing from client applications to the X server. However, the actions that can be associated with keys are limited to the following:
364:; the core protocol only supports one bell, and the only action a client can perform is to ring the bell. XKB supports multiple named bells and allows a client to deactivate some of them and to be informed when a bell is rung. 185:
contain XKB, which is active by default. Client programs not using this extension can deactivate it before connecting with the server, or can simply work normally as the extension simulates the core protocol by default.
376:, which are elements on the keyboard that are not keys. The overall shape of the keyboard is a doodad. Information provided about doodads includes their color and any text printed on them (including the font used). 337:
The X keyboard extension is incompatible with core keyboard handling and as a result several modifier keys are not working or require workarounds inside emulated environments such as VNC or
353:(LEDs). In particular, XKB provides symbolic names for indicators, which allows binding indicators to keyboard activity and checking which indicators are actually present on the keyboard. 1157: 1096: 522: 557: 505: 462: 842: 258:
The behavior of the keyboard depends on a number of parameters that can be changed by the clients. These parameters are called
801: 467: 250:
in the specification). As with modifiers, a group selector can be associated with a key, but can also be latched or locked.
1101: 531: 357: 116: 96: 1178: 1183: 622: 38: 853: 821: 954: 1032: 979: 886: 213:, other than being in its regular state. Normally, a modifier is active exactly when it is pressed, like the 896: 312:
Change the active screen (this kind of action is optional, that is, not necessarily supported by the server)
439: 435: 542: 472: 1024: 826: 806: 791: 612: 597: 498: 424: 420: 350: 326: 1106: 1047: 959: 929: 769: 1042: 796: 647: 85: 325:
Moreover, there are some actions related to devices that are available if the server supports the
642: 537: 190: 394: 390: 876: 783: 779: 617: 582: 409: 405: 274: 112: 836: 491: 457: 27: 1111: 637: 602: 547: 514: 181:
XKB is composed of two parts: a server extension and a client library. Modern versions of
157: 120: 108: 673: 552: 168: 1172: 1009: 682: 478: 369: 132: 463:
Damiano Venturin. A simple, humble but comprehensive guide to XKB for linux (2016)
368:
sections have a geometry, which comprise the approximate outline of the key, its
1137: 22: 303:
Change the state of a modifier, making it active, inactive, latched or locked
1052: 1004: 909: 218: 214: 145: 468:
Michal Kosmulski. Creating custom keyboard layouts for X11 using XKB (2011)
919: 871: 743: 688: 652: 1067: 969: 934: 811: 738: 708: 703: 693: 607: 318:
Generate a message event (that is, a packet that is sent to the client)
266:
control can be used to ignore short keypresses. Another control is the
138: 1132: 1072: 1062: 861: 733: 338: 194: 372:, and the precise form. Other than keys, the geometry also includes 1152: 1147: 1142: 1127: 989: 949: 914: 713: 627: 592: 483: 1057: 999: 974: 964: 944: 939: 924: 904: 881: 866: 816: 759: 723: 718: 698: 182: 487: 1037: 1014: 994: 984: 764: 728: 632: 567: 475:— Detailed information on the various XKB Configuration files. 239:, and a keyboard can switch to a different group at any time. 164: 282:
be used to deactivate the effects of the control completely.
479:
Doug Palmer. An unreliable guide to XKB configuration (2004)
306:
Change the state of the group selectors (same as modifiers)
68: 177:
association of actions (of a particular kind) to keys.
309:
Simulate a mouse event (movement or button activity)
1120: 1089: 1023: 895: 852: 835: 778: 752: 672: 661: 575: 521: 217:. However, a modifier may also be locked, like the 63: 37: 21: 402:The X keyboard extension: protocol specification 387:The X keyboard extension: library specification 499: 8: 16: 174:various new keyboard parameters (controls); 849: 669: 506: 492: 484: 84: 15: 163:extended control of keyboard indicators ( 432:How to further enhance XKB configuration 143: 137: 111:that extends the ability to control the 277:: they are either active or not. The 7: 315:Change the state of boolean controls 613:X Display Manager Control Protocol 349:XKB allows better handling of the 14: 1158:Desktop environments (comparison) 473:Ivan Pascal. X keyboard extension 566: 458:ArchWiki. X keyboard extension 1: 119:, and allows to use multiple 117:X Window System core protocol 321:Generate a different keycode 205:XKB allows a modifier to be 201:Latched and locked modifiers 115:over what is offered by the 623:X-Video Motion Compensation 417:The XKB configuration guide 356:XKB also improves upon the 273:The above two controls are 46:; 28 years ago 1200: 564: 246:(which are simply called 97:human–computer interfaces 59: 33: 608:Shared memory extension 126:Its main features are: 543:X Window authorization 333:Compatibility problems 290:) and event delivery. 598:X Rendering Extension 130:enhanced support for 770:X Toolkit Intrinsics 588:X keyboard extension 189:XKB is also used by 152:better treatment of 101:X keyboard extension 17:X keyboard extension 1179:X Window extensions 648:Composite Extension 351:keyboard indicators 262:. For example, the 191:Wayland compositors 18: 1184:Wayland extensions 643:Display PostScript 538:X Window selection 430:X Consortium Inc. 415:X Consortium Inc. 400:X Consortium Inc. 385:X Consortium Inc. 23:Original author(s) 1166: 1165: 1085: 1084: 1081: 1080: 846: 618:X video extension 583:X Image Extension 327:X Input extension 242:XKB defines some 107:is a part of the 93: 92: 1191: 850: 840: 784:Session managers 780:Display managers 753:Client libraries 670: 570: 508: 501: 494: 485: 158:keyboard layouts 121:keyboard layouts 89: 88: 81: 78: 76: 74: 72: 70: 54: 52: 47: 28:X.Org Foundation 19: 1199: 1198: 1194: 1193: 1192: 1190: 1189: 1188: 1169: 1168: 1167: 1162: 1116: 1112:freedesktop.org 1077: 1019: 891: 839: 837:Window managers 831: 782: 774: 748: 674:Display servers 666:implementations 665: 663: 657: 638:Multi-Pointer X 603:Shape extension 571: 562: 548:X11 color names 517: 515:X Window System 512: 449: 382: 358:core protocol's 347: 335: 296: 256: 244:group selectors 232: 203: 148: 141: 109:X Window System 83: 67: 55: 50: 48: 45: 12: 11: 5: 1197: 1195: 1187: 1186: 1181: 1171: 1170: 1164: 1163: 1161: 1160: 1155: 1150: 1145: 1140: 1135: 1130: 1124: 1122: 1118: 1117: 1115: 1114: 1109: 1104: 1099: 1093: 1091: 1087: 1086: 1083: 1082: 1079: 1078: 1076: 1075: 1070: 1065: 1060: 1055: 1050: 1045: 1040: 1035: 1029: 1027: 1021: 1020: 1018: 1017: 1012: 1007: 1002: 997: 992: 987: 982: 977: 972: 967: 962: 957: 952: 947: 942: 937: 932: 927: 922: 917: 912: 907: 901: 899: 893: 892: 890: 889: 884: 879: 874: 869: 864: 858: 856: 847: 833: 832: 830: 829: 824: 819: 814: 809: 804: 799: 794: 788: 786: 776: 775: 773: 772: 767: 762: 756: 754: 750: 749: 747: 746: 741: 736: 731: 726: 721: 716: 711: 706: 701: 696: 691: 686: 678: 676: 667: 659: 658: 656: 655: 650: 645: 640: 635: 630: 625: 620: 615: 610: 605: 600: 595: 590: 585: 579: 577: 573: 572: 565: 563: 561: 560: 555: 553:X Input Method 550: 545: 540: 535: 527: 525: 519: 518: 513: 511: 510: 503: 496: 488: 482: 481: 476: 470: 465: 460: 454: 453: 448: 447:External links 445: 444: 443: 428: 413: 398: 381: 378: 346: 343: 334: 331: 323: 322: 319: 316: 313: 310: 307: 304: 295: 292: 255: 252: 231: 228: 202: 199: 179: 178: 175: 172: 161: 150: 91: 90: 65: 61: 60: 57: 56: 43: 41: 39:Stable release 35: 34: 31: 30: 25: 13: 10: 9: 6: 4: 3: 2: 1196: 1185: 1182: 1180: 1177: 1176: 1174: 1159: 1156: 1154: 1151: 1149: 1146: 1144: 1141: 1139: 1136: 1134: 1131: 1129: 1126: 1125: 1123: 1119: 1113: 1110: 1108: 1105: 1103: 1100: 1098: 1095: 1094: 1092: 1088: 1074: 1071: 1069: 1066: 1064: 1061: 1059: 1056: 1054: 1051: 1049: 1046: 1044: 1041: 1039: 1036: 1034: 1031: 1030: 1028: 1026: 1022: 1016: 1013: 1011: 1008: 1006: 1003: 1001: 998: 996: 993: 991: 988: 986: 983: 981: 978: 976: 973: 971: 968: 966: 963: 961: 958: 956: 953: 951: 948: 946: 943: 941: 938: 936: 933: 931: 928: 926: 923: 921: 918: 916: 913: 911: 908: 906: 903: 902: 900: 898: 894: 888: 887:Enlightenment 885: 883: 880: 878: 875: 873: 870: 868: 865: 863: 860: 859: 857: 855: 851: 848: 844: 838: 834: 828: 825: 823: 820: 818: 815: 813: 810: 808: 805: 803: 800: 798: 795: 793: 790: 789: 787: 785: 781: 777: 771: 768: 766: 763: 761: 758: 757: 755: 751: 745: 742: 740: 737: 735: 732: 730: 727: 725: 722: 720: 717: 715: 712: 710: 707: 705: 702: 700: 697: 695: 692: 690: 687: 685: 684: 680: 679: 677: 675: 671: 668: 660: 654: 651: 649: 646: 644: 641: 639: 636: 634: 631: 629: 626: 624: 621: 619: 616: 614: 611: 609: 606: 604: 601: 599: 596: 594: 591: 589: 586: 584: 581: 580: 578: 574: 569: 559: 556: 554: 551: 549: 546: 544: 541: 539: 536: 534: 533: 532:Core protocol 529: 528: 526: 524: 520: 516: 509: 504: 502: 497: 495: 490: 489: 486: 480: 477: 474: 471: 469: 466: 464: 461: 459: 456: 455: 451: 450: 446: 441: 437: 433: 429: 426: 422: 418: 414: 411: 407: 403: 399: 396: 392: 388: 384: 383: 379: 377: 375: 371: 365: 363: 359: 354: 352: 344: 342: 340: 332: 330: 328: 320: 317: 314: 311: 308: 305: 302: 301: 300: 293: 291: 289: 288:XLookupString 283: 280: 276: 271: 269: 265: 261: 253: 251: 249: 245: 240: 238: 229: 227: 223: 220: 216: 212: 208: 200: 198: 196: 192: 187: 184: 176: 173: 170: 166: 162: 159: 155: 151: 147: 140: 135: 134: 129: 128: 127: 124: 122: 118: 114: 110: 106: 102: 98: 87: 80: 66: 62: 58: 44:1.0 / 1996 42: 40: 36: 32: 29: 26: 24: 20: 1121:Applications 1010:Window Maker 683:X.Org Server 681: 587: 530: 523:Architecture 431: 416: 401: 386: 373: 370:bounding box 366: 361: 360:handling of 355: 348: 336: 324: 297: 287: 284: 279:PerKeyRepeat 278: 272: 267: 263: 259: 257: 247: 243: 241: 236: 233: 224: 210: 206: 204: 188: 180: 153: 131: 125: 104: 100: 94: 854:Compositing 664:and notable 156:(typically 1173:Categories 843:comparison 662:Components 576:Extensions 380:References 230:Key groups 154:key groups 1090:Standards 1053:ratpoison 1005:WindowLab 910:AfterStep 268:MouseKeys 219:Caps Lock 133:modifiers 955:Matchbox 920:Blackbox 897:Stacking 872:Metacity 822:Entrance 744:XWayland 689:Cygwin/X 653:Xinerama 434:(2002). 404:(1996). 389:(1996). 260:controls 254:Controls 149:, etc.); 113:keyboard 1068:StumpWM 1033:awesome 980:Sawfish 970:Openbox 935:Fluxbox 812:LightDM 739:XQuartz 709:XDarwin 704:XFree86 694:X-Win32 558:Wayland 419:(2010) 374:doodads 294:Actions 275:boolean 264:SlowKey 211:latched 64:Website 49: ( 1133:xclock 1073:larswm 1063:xmonad 1025:Tiling 877:Mutter 862:Compiz 734:Xephyr 452:On XKB 339:Xephyr 248:groups 207:locked 195:kmscon 167:) and 99:, the 82:  1153:xeyes 1148:xterm 1143:xload 1138:xedit 1128:xcalc 1097:ICCCM 990:tvtwm 950:IceWM 915:amiwm 714:Xming 628:AIGLX 593:RandR 362:bells 345:Other 237:group 215:Shift 169:bells 146:Shift 75:/wiki 1102:EWMH 1058:wmii 1000:vtwm 975:Qvwm 965:olwm 945:FVWM 940:FLWM 925:CTWM 905:4Dwm 882:Xfwm 867:KWin 817:LXDM 802:SDDM 760:Xlib 724:Xsun 719:Xsgi 699:X386 436:HTML 421:HTML 406:HTML 391:HTML 193:and 183:Xlib 165:LEDs 77:/XKB 73:.org 51:1996 1107:XDS 1048:Ion 1038:dwm 1015:wm2 995:twm 985:swm 960:mwm 930:cwm 827:WDM 807:XDM 797:KDM 792:GDM 765:XCB 729:Xgl 633:GLX 440:PDF 425:PDF 410:PDF 395:PDF 209:or 139:Alt 105:XKB 103:or 95:In 69:www 1175:: 1043:i3 438:, 423:, 408:, 393:, 341:. 329:. 197:. 160:); 144:⇧ 142:, 123:. 71:.x 845:) 841:( 507:e 500:t 493:v 442:. 427:. 412:. 397:. 286:( 171:; 136:( 79:/ 53:)

Index

Original author(s)
X.Org Foundation
Stable release
www.x.org/wiki/XKB/
Edit this on Wikidata
human–computer interfaces
X Window System
keyboard
X Window System core protocol
keyboard layouts
modifiers
Alt
Shift
keyboard layouts
LEDs
bells
Xlib
Wayland compositors
kmscon
Shift
Caps Lock
boolean
X Input extension
Xephyr
keyboard indicators
core protocol's
bounding box
HTML
PDF
HTML

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑