---
name: "XkbAllocKeyboard"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XkbAllocKeyboard"
---

# XkbAllocKeyboard(3)

Creates a keyboard description from scratch

## NAME

XkbAllocKeyboard -  Creates a keyboard description from scratch

## SYNOPSIS

**XkbDescRec XkbAllocKeyboard** **(void);**

## DESCRIPTION

Applications seldom need to directly allocate a keyboard description; calling *XkbGetKeyboard* usually suffices. In the event you need to create a keyboard description from scratch, however, use *XkbAllocKeyboard* rather than directly calling *malloc.*

If *XkbAllocKeyboard* fails to allocate the keyboard description, it returns NULL. Otherwise, it returns a pointer to an empty keyboard description structure. The *device\_spec* field will have been initialized to XkbUseCoreKbd. You may then either fill in the structure components or use Xkb functions to obtain values for the structure components from a keyboard device.

## SEE ALSO

**malloc**(3F), **XkbUseCoreKbd**(3), [**XkbGetKeyboard**(3)](/XkbGetKeyboard/3.md)
