X11 driver

LCD4Linux using the X11 driver

The driver opens a X11 window based on the geometry specified in the config file. This window cannot be resized.

The driver uses very low cpu time, and requires low bandwitdh, because only modified pixels are redrawn.

Display Section

Display <name> {
    Driver     'X11'
    Size       <string>
    Font       <string>
    Pixel      <string>
    Gap        <string>
    Border     <number>
    Foreground <color>
    Background <color>
    Basecolor  <color>
    Buttons <number>
    Brightness <number>
    Autorepeat <number>


Sizesize of the virtual display in pixels, specified as <width>x<height> (default is '120x32')
Fontfont size, specified as <width>x<height> (only '5x8' and '6x8' supported at the moment, default is '5x8')
Pixel<pixelsize>+<pixelgap>, e.g. '5+1' (see below for detailed explanation, default is '4+1')
Gap<row gap>x<column gap>, e.g. '3x3'(see below for detailed explanation, default is '-1x-1')
Borderborder width in pixels (default is 0)
Foregroundcolor of active pixels (RRGGBBAA or RRGGBB), default is opaque black '000000ff' (see colors for details)
Backgroundcolor of inactive pixels (RRGGBBAA or RRGGBB), default is transparent 'ffffff00' (see colors for details)
Basecolorcolor of virtual backlight (RRGGBB), default is white 'ffffff' (see colors for details)
Buttonsnumber of virtual keys (0..6, default is 0 = none)
Brightnesssimulation of background brightness (0..255, default is 255 = 100%)
Autorepeatretrigger keypress event when auto repeat events are received (0..1, default is 1 = on)

Buttons and Brightness are available in the SVN repository since revision 813. Autorepeat is available since revision 1125.


Display XWindow {
    Driver     'X11'
    Size       '120x32'
    Font       '6x8'
    Pixel      '4+1'
    Gap        '-1x-1'
    Border      20
    Foreground '000000ff'
    Background '00000033'
    Basecolor  '70c000'
    Buttons   6
    Brightness 133
    AutoRepeat 1


The defined buttons are drawn on the right side as a virtual keyboard. The keys are named "Up", "Down", "Left", "Right", "Commit" and "Cancel".

Since revision 1088 in the SVN repository, you may also use your real keyboard (arrow keys, RETURN key and ESCAPE key) to trigger the buttons.


The driver provides the following functions:

LCD::brightness()return current brightness setting
LCD::brightness(n)set brightness to n (0..255)

pixelsize, gaps, …

This may look weird, but it is weird. Let's explain this a bit further:

The X11 driver tries to emulate a real LC display. A real LCD has a size of columns*rows characters. Each character consists of xres*yres LCD cells. One single cell will be represented by a rectangle of pixelsize*pixelsize pixels.

If you want to, you can emulate the gap between this lcd cells by specifying a pixelgap greater than zero.

Size   '3x1'
Border  10
Font   '5x8'
Pixel  '8+2'
Gap    '-1x-1'

size   '3x1'
border  10
font   '5x8'
pixel  '10+0'
gap    '-1x-1'

Sometimes there's a gap between characters, too. You can specify this gap (in pixels again) horizontally and vertically. Usually this gap is the same size as a cell (which is pixelsize+pixelgap). If you specify either the row gap or the column gap as -1, this cell size will be used instead.

size   '3x1'
border  10
font   '5x8'
pixel  '8+2'
gap    '20x20'

If you use a font of 5x8, some characters may use the first and the last pixel. So you should specify a column gap, otherwise the caracters may touch. On the other hand, the 6x8 font never uses the first pixel. So you can omit the column gap, and will get the same text layout, but uninterupted bars!

size   '3x1'
border  10
font   '6x8'
pixel  '8+2'
gap    '0x-1'

After all: don't try to understand this unless you have tried it out!

Last modified 7 years ago Last modified on 07/11/10 13:29:20

Attachments (5)

Download all attachments as: .zip