X keyboard extension

X keyboard extension
Original author(s)X.Org Foundation
Stable release
1.0 / 1996; 29 years ago (1996)
Websitewww.x.org/wiki/XKB/ Edit this on Wikidata

In human–computer interfaces, the X keyboard extension or XKB is a part of the X Window System that extends the ability to control the keyboard over what is offered by the X Window System core protocol, and allows to use multiple keyboard layouts.

Its main features are:

  • enhanced support for modifiers (Alt, Shift, etc.);
  • better treatment of key groups (typically keyboard layouts);
  • extended control of keyboard indicators (LEDs) and bells;
  • various new keyboard parameters (controls);
  • association of actions (of a particular kind) to keys.

XKB is composed of two parts: a server extension and a client library. Modern versions of Xlib 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.

XKB is also used by Wayland compositors and kmscon.

Latched and locked modifiers

XKB allows a modifier to be locked or latched, other than being in its regular state. Normally, a modifier is active exactly when it is pressed, like the Shift. However, a modifier may also be locked, like the Caps Lock 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.

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.

Key groups

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 group, and a keyboard can switch to a different group at any time.

XKB defines some group selectors (which are simply called groups in the specification). As with modifiers, a group selector can be associated with a key, but can also be latched or locked.

Controls

The behavior of the keyboard depends on a number of parameters that can be changed by the clients. These parameters are called controls. For example, the SlowKey control can be used to ignore short keypresses. Another control is the MouseKeys, 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.

The above two controls are Boolean: they are either active or not. The PerKeyRepeat 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 be used to deactivate the effects of the control completely.

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 (XLookupString) and event delivery.

Actions

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:

  1. Change the state of a modifier, making it active, inactive, latched or locked
  2. Change the state of the group selectors (same as modifiers)
  3. Simulate a mouse event (movement or button activity)
  4. Change the active screen (this kind of action is optional, that is, not necessarily supported by the server)
  5. Change the state of Boolean controls
  6. Generate a message event (that is, a packet that is sent to the client)
  7. Generate a different keycode

Moreover, there are some actions related to devices that are available if the server supports the X Input extension.

Compatibility problems

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 Xephyr.

Other

XKB allows better handling of the keyboard indicators (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.

XKB also improves upon the core protocol's handling of bells; 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.

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 sections have a geometry, which comprise the approximate outline of the key, its bounding box, and the precise form. Other than keys, the geometry also includes doodads, 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).

References

  • X Consortium Inc. The X keyboard extension: library specification (1996). HTML, PDF.
  • X Consortium Inc. The X keyboard extension: protocol specification (1996). HTML, PDF.
  • X Consortium Inc. The XKB configuration guide (2010) HTML, PDF.
  • X Consortium Inc. How to further enhance XKB configuration (2002). HTML, PDF.
On XKB

Read other articles:

First Resources LimitedJenisPublikDidirikan1992[1]PendiriMartiasKantorpusat 8 Temasek Boulevard, 36-02 Suntec Tower Three, SingapuraTokohkunciLim Ming Seong (Ketua)[2]Ciliandra Fangiono (CEO)[2]ProdukMinyak kelapa sawitPendapatanUSD 575.234 Juta (2016)Laba bersihUSD 115.486 Million (2016)PemilikCiliandra FangionoKaryawan11.802 (2011)[3]Induk-Situs webwww.first-resources.com First Resources merupakan salah satu perusahaan kelapa sawit yang saat ini beroperasi di...

 

العلاقات المكسيكية الغامبية المكسيك غامبيا   المكسيك   غامبيا تعديل مصدري - تعديل   العلاقات المكسيكية الغامبية هي العلاقات الثنائية التي تجمع بين المكسيك وغامبيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارن...

 

1970 studio album by MinaMina canta o BrasilStudio album by MinaReleased1970 (1970)Recorded1970StudioLa Basilica, Milan[1]GenrePopTropicáliabossa novaLength35:07LanguagePortugueseLabelPDUProducerBob MitchellMina chronology ...bugiardo più che mai... più incosciente che mai...(1969) Mina canta o Brasil(1970) ...quando tu mi spiavi in cima a un batticuore...(1970) Mina canta o Brasil is a studio album by Italian singer Mina, released in 1970 by PDU. The album, inspired b...

Makiko Saito斉藤 真木子Informasi latar belakangNama lainMakkii (まっきぃcode: ja is deprecated )Lahir28 Juni 1994 (umur 29)AsalPrefektur OsakaGenreJ-popLabelZest Inc.Artis terkaitSKE48 Tim E Makiko Saito (斉藤 真木子code: ja is deprecated , Saito Makiko, lahir 28 Juni 1994) adalah anggota Tim E grup idola Jepang SKE48. Ia adalah anggota SKE48 Angkatan Kedua. Karier Kekaguman terhadap AKB48 dan SKE48 membuatnya tanpa ragu mengikuti Audisi Angkatan Kedua SKE48. Dari 3.248 ora...

 

Coq au vin Escargot Masakan Prancis (Cuisine française) adalah jenis masakan yang berasal dari negara Prancis dan berbagai negara lain yang mendapat pengaruh budaya Prancis.[1][2] Masakan Prancis yang terus berevolusi bersamaan dengan perubahan sosial dan politik dipandang sebagai jenis kuliner yang elegan, penuh warna, porsi yang sedikit, kadang-kadang kedaerahan.[1] Selain itu, juga telah dikenal akan kelezatannya dan merupakan golongan kuliner yang rumit dan menant...

 

  لمعانٍ أخرى، طالع روتي (توضيح). روتي (خبز)معلومات عامةالمنشأ شبه القارة الهندية بلد المطبخ مطبخ جنوب آسيا — مطبخ بنغالي النوع South Asian bread (en) — الخبز الهندي حرارة التقديم ساخن المكونات الرئيسية atta (en) تعديل - تعديل مصدري - تعديل ويكي بيانات روتي والمعرف أيضاً بشاباتي هو خ...

أرون وينتر (بالهولندية: Aron Winter)‏  معلومات شخصية الميلاد 1 مارس 1967 (العمر 57 سنة)باراماريبو الطول 1.76 م (5 قدم 9 1⁄2 بوصة) مركز اللعب لاعب وسط  الجنسية مملكة هولندا  معلومات النادي النادي الحالي سورينام مسيرة الشباب سنوات فريق 0000–1985 SV Lelystad 1985–1986 أكاديمية أيا�...

 

Sceaux 行政国 フランス地域圏 (Région) イル=ド=フランス地域圏県 (département) オー=ド=セーヌ県郡 (arrondissement) アントニー郡小郡 (canton) 小郡庁所在地INSEEコード 92071郵便番号 92330市長(任期) フィリップ・ローラン(2008年-2014年)自治体間連合 (fr) メトロポール・デュ・グラン・パリ人口動態人口 19,679人(2007年)人口密度 5466人/km2住民の呼称 Scéens地理座標 北緯48度4...

 

Kara Mustafa PasciàIl Gran Visir Kara Mustafa (Ritratto del XVII secolo) Gran visir dell'Impero ottomanoDurata mandato19 ottobre 1676 –25 dicembre 1683 MonarcaMehmed IV PredecessoreKöprülü Fazıl Ahmed Pascià SuccessoreKara İbrahim Pascià Capitan pasciàDurata mandato1666–1670 Dati generaliSuffisso onorificopascià Pascià Kara Mustafa (in turco ottomano: مرزيفونلى قره مصطفى پاشا, in turco Merzifonlu Kara Mustafa Paşa, lett. Mustaf...

ليغا باسكيت الدرجة الأولى موسم 2008–09 الدوري ليغا باسكيت الدرجة الأولى  المنظم دوري كرة السلة الإيطالي  [لغات أخرى]‏  البلد إيطاليا  البطل منز سانا 1871 باسكت ليغا باسكيت الدرجة الأولى موسم 2007–08  ليغا باسكيت الدرجة الأولى موسم 2009–10  تعديل مصدري - تعديل  ...

 

Computer series Philco was one of the pioneers of transistorized computers. After the company developed the surface barrier transistor, which was much faster than previous point-contact types, it was awarded contracts for military and government computers. Commercialized derivatives of some of these designs became successful business and scientific computers. The TRANSAC (Transistor Automatic Computer) Model S-1000 was released as a scientific computer. The TRANSAC S-2000 mainframe computer s...

 

Sofia PaleologaBasilissa dei RomeiIn carica21 luglio 1425 –agosto 1426 PredecessoreElena Dragaš SuccessoreMaria Comnena NascitaCasale Monferrato, 1399 MorteTorino, 21 agosto 1434 PadreTeodoro II del Monferrato MadreGiovanna di Bar Consorte diGiovanni VIII Paleologo Marchesato del MonferratoPaleologi Teodoro I Figli Giovanni II Violante Giovanni II Figli Ottone III Giovanni III Teodoro II Margherita Ottone III Giovanni III Teodoro II Figli Giovanni Giacomo Sofia Giovanni Giacomo ...

Belgian cycling team Quick Step redirects here. For other uses, see Quickstep (disambiguation). Soudal Quick-StepTeam informationUCI codeSOQRegisteredBelgiumFounded2003 (2003)Discipline(s)RoadStatusUCI WorldTeamBicyclesSpecializedComponentsShimanoWebsiteTeam home pageKey personnelGeneral managerPatrick LefevereTeam manager(s)Davide BramatiIljo KeisseKlaas LodewyckWilfried PeetersTom SteelsGeert Van BondtTeam name history 2003–2004 Quick-Step–Davitamon (QSD) 2005–2007 Quick-Step–I...

 

Italian noble (1197–1253) Amadeus IVCount of SavoyReign1233–1253PredecessorThomas ISuccessorBonifaceBorn1197Montmélian, SavoieDied(1253-06-11)11 June 1253SpouseMarguerite of BurgundyCecilia of BauxIssueBeatrice of SavoyMargaret of SavoyBoniface, Count of SavoyBeatrice of SavoyHouseSavoyFatherThomas I of SavoyMotherMargaret of Geneva Amadeus IV (1197 – 11 June 1253)[1] was Count of Savoy from 1233 to 1253. Amadeus was born in Montmélian, Savoy. The legitimate heir ...

 

For other uses, see Heilbronn (disambiguation). City in Baden-Württemberg, GermanyHeilbronn CityView of the Heilbronn centre of town toward the Wartberg FlagCoat of armsArea map Heilbronn Show map of GermanyHeilbronn Show map of Baden-WürttembergCoordinates: 49°9′N 9°13′E / 49.150°N 9.217°E / 49.150; 9.217CountryGermanyStateBaden-WürttembergAdmin. regionStuttgart DistrictUrban districtSubdivisions9 StadtteileGovernment • Lord mayor (2022–30...

1982 film by C. V. Rajendran SangiliTheatrical release posterDirected byC. V. RajendranScreenplay byA.L. NarayananStory bySubhash GhaiProduced byS. D. GunasekaranStarringSivaji GanesanPrabhuSripriyaM. N. NambiarCinematographyT. S. VinayagamEdited byB. KandhasamyMusic byM. S. ViswanathanProductioncompanyArun Sujatha CombinesRelease date 14 April 1982 (1982-04-14) CountryIndiaLanguageTamil Sangili (transl. Chain)[1] is a 1982 Indian Tamil-language action drama film,...

 

جمال مناد معلومات شخصية الاسم الكامل جمال مناد الميلاد 22 يوليو 1960 (العمر 64 سنة)البيض الطول 1.75 م (5 قدم 9 بوصة) مركز اللعب مهاجم الجنسية الجزائر  معلومات النادي النادي الحالي اتحاد الحراش (Head coach) سنوات فريق م. (هـ.) 1977–1981 شباب بلوزداد ? 1981–1987 شبيبة القبائل ? 1987–1990 نيم ...

 

Andrew Geoffrey LyneAndrew Lyne pada 2007.Lahir13 Juli 1942 (umur 82)AlmamaterSt John's College, CambridgePenghargaanFellow of the Royal SocietyKarier ilmiahInstitusiJodrell Bank ObservatoryUniversitas ManchesterUniversitas CambridgeDisertasi[pranala nonaktif permanen] Interferometric observations of lunar occulations and pulsars (1970) Situs webwww.jb.man.ac.uk/~aglAndrew Geoffrey Lyne FRS (lahir 13 Juli 1942) adalah seorang fisikawan Britania. Lyne adalah Profesor Langwor...

GelatoVari gusti di gelato artigianale in una gelateriaOriginiLuogo d'origine Italia Diffusionemondiale DettagliCategoriadolce Ingredienti principalilattezuccheropannauovoaromi vari Variantikulfi, sorbetto Il gelato è una preparazione alimentare a base di latte, zucchero e vari aromi, portata allo stato solido e pastoso mediante congelamento e contemporanea agitazione; il tutto posteriormente all’impiego delle materie prime utilizzate per la sua fabbricazione e destinate alla vendita ...

 

Biblical phrase defining a geography Map of the 12 Tribes of Israel. Click on image to read labels. The city of Dan (not to be confused with the Tribe of Dan) is in the northern part of Naphtali's territory. Beersheba is in Simeon's territory. From Dan to Beersheba is a biblical phrase used nine times[1] in the Hebrew Bible to refer to the settled areas of the Tribes of Israel between Dan in the North and Beersheba in the South. The term contributed to the position that was used by Br...