wiki:X11

Version 8 (modified by volker, 12 years ago) (diff)

Keypad support, plugin brightness

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>
}

Parameters

Driver'X11'
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%)

Buttons and Brightness are available in the svn since version 813.


Example

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
}

Keyboard

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


Plugins

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!


Attachments (5)

Download all attachments as: .zip