---
name: "install_keyboard"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/install_keyboard"
---

# install\_keyboard(3alleg)

Installs the Allegro keyboard interrupt handler.

## NAME

install\_keyboard - Installs the Allegro keyboard interrupt handler.

## SYNOPSIS

**#include \<allegro.h\>**

**int install\_keyboard();**

## DESCRIPTION

Installs the Allegro keyboard interrupt handler. You must call this  before using any of the keyboard input routines. Once you have set up the  Allegro handler, you can no longer use operating system calls or C  library functions to access the keyboard.

Note that on some platforms the keyboard won't work unless you have set a graphics mode, even if this function returns a success value before calling set\_gfx\_mode. This can happen in environments with graphic windowed modes, since Allegro usually reads the keyboard through the graphical window (which appears after the set\_gfx\_mode call). Example:

```
   allegro_init();
   install_timer();
   install_keyboard();
   /* We are not 100% sure we can read the keyboard yet! */
   if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) != 0)
      abort_on_error("Couldn't set graphic mode!");
   /* Now we are guaranteed to be able to read the keyboard. */
   readkey();
```

## RETURN VALUE

Returns zero on success, or a negative number on failure (but you may decide not to check the return value as this function is very unlikely to fail).

## SEE ALSO

[**remove\_keyboard**(3alleg)](/remove_keyboard/3alleg.md), [**poll\_keyboard**(3alleg)](/poll_keyboard/3alleg.md), [**key**(3alleg)](/key/3alleg.md), [**keypressed**(3alleg)](/keypressed/3alleg.md), [**readkey**(3alleg)](/readkey/3alleg.md), [**ureadkey**(3alleg)](/ureadkey/3alleg.md), [**keyboard\_callback**(3alleg)](/keyboard_callback/3alleg.md), [**keyboard\_ucallback**(3alleg)](/keyboard_ucallback/3alleg.md), [**keyboard\_lowlevel\_callback**(3alleg)](/keyboard_lowlevel_callback/3alleg.md), [**three\_finger\_flag**(3alleg)](/three_finger_flag/3alleg.md), [**key\_led\_flag**(3alleg)](/key_led_flag/3alleg.md), [**set\_leds**(3alleg)](/set_leds/3alleg.md), [**set\_keyboard\_rate**(3alleg)](/set_keyboard_rate/3alleg.md), [**set\_gfx\_mode**(3alleg)](/set_gfx_mode/3alleg.md)
