Linux input model

Does this look right? I’m trying to explain this to somebody and came up with a diagram.

Feedback appreciated. Thanks.

Published by


Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

7 thoughts on “Linux input model”

  1. Pingback: Linux input model
  2. I think it is a great learning tool, and that we need a simple image such as this one for each user-visible model.

    It may be quicker to understand it if it were spread out a bit, and aligned into stacks to make the flow clearer.

  3. Great diagram!

    I looked at key events (and their way from the drawing on the key cap, until the character on the screen) a few years ago, and ended up with a similar diagram on my notebook. Here are just a few details out of my notes (which may be outdated, and possibly wrong anyway!):
    The key event (press/release) generates up to 6 scancodes.
    The kernel keyboard driver has two (exclusive?) modes: scancode mode and keycode mode.
    Scancodes are translated (keymap) into either a character “a”, a string “\e[4”, an action.
    Finally if you live out of ascii, you add locales, encodings, and fonts, and you get the complete mess.

Comments are closed.