Description [src]

final class Gdk.Keymap : GObject.Object {
  /* No available fields */

A GdkKeymap defines the translation from keyboard state (including a hardware key, a modifier mask, and active keyboard group) to a keyval. This translation has two phases. The first phase is to determine the effective keyboard group and level for the keyboard state; the second phase is to look up the keycode/group/level triplet in the keymap and see what keyval it corresponds to.


hierarchy this GdkKeymap ancestor_0 GObject ancestor_0--this




Returns the GdkKeymap attached to the default display.

Deprecated since: 3.22


Returns the GdkKeymap attached to display.

Available since: 2.2

Instance methods


Maps the non-virtual modifiers (i.e Mod2, Mod3, …) which are set in state to the virtual modifiers (i.e. Super, Hyper and Meta) and set the corresponding bits in state.

Available since: 2.20


Returns whether the Caps Lock modifer is locked.

Available since: 2.16


Returns the direction of effective layout of the keymap.


Returns the keyvals bound to hardware_keycode. The Nth GdkKeymapKey in keys is bound to the Nth keyval in keyvals. Free the returned arrays with g_free(). When a keycode is pressed by the user, the keyval from this list of entries is selected by considering the effective keyboard group and level. See gdk_keymap_translate_keyboard_state().


Obtains a list of keycode/group/level combinations that will generate keyval. Groups and levels are two kinds of keyboard mode; in general, the level determines whether the top or bottom symbol on a key is used, and the group determines whether the left or right symbol is used. On US keyboards, the shift key changes the keyboard level, and there are no groups. A group switch key might convert a keyboard between Hebrew to English modes, for example. GdkEventKey contains a %group field that indicates the active keyboard group. The level is computed from the modifier mask. The returned array should be freed with g_free().


Returns the modifier mask the keymap’s windowing system backend uses for a particular purpose.

Available since: 3.4


Returns the current modifier state.

Available since: 3.4


Returns whether the Num Lock modifer is locked.

Available since: 3.0


Returns whether the Scroll Lock modifer is locked.

Available since: 3.18


Determines if keyboard layouts for both right-to-left and left-to-right languages are in use.

Available since: 2.12


Looks up the keyval mapped to a keycode/group/level triplet. If no keyval is bound to key, returns 0. For normal user input, you want to use gdk_keymap_translate_keyboard_state() instead of this function, since the effective group/level may not be the same as the current keyboard state.


Maps the virtual modifiers (i.e. Super, Hyper and Meta) which are set in state to their non-virtual counterparts (i.e. Mod2, Mod3,…) and set the corresponding bits in state.

Available since: 2.20


Translates the contents of a GdkEventKey into a keyval, effective group, and level. Modifiers that affected the translation and are thus unavailable for application use are returned in consumed_modifiers. See [Groups][key-group-explanation] for an explanation of groups and levels. The effective_group is the group that was actually used for the translation; some keys such as Enter are not affected by the active keyboard group. The level is derived from state. For convenience, GdkEventKey already contains the translated keyval, so this function isn’t as useful as you might think.

Methods inherited from GObject (42)

Please see GObject for a full list of methods.



The ::direction-changed signal gets emitted when the direction of the keymap changes.

Available since: 2.0


The ::keys-changed signal is emitted when the mapping represented by keymap changes.

Available since: 2.2


The ::state-changed signal is emitted when the state of the keyboard changes, e.g when Caps Lock is turned on or off. See gdk_keymap_get_caps_lock_state().

Available since: 2.16

Signals inherited from GObject (1)

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.