DIRECTFBRC(5)

NAME
directfbrc - DirectFB configuration file

DESCRIPTION
The directfbrc file is a configuration file read by all DirectFB applications on startup. There are two of these: a system-wide one stored in /etc/directfbrc and a per-user $HOME/.directfbrc which may override system settings. The same parameters that can be used in the directfbrc file can also be passed to DirectFB applications on the command-line by prefixing them with --dfb:

SYNTAX
The directfbrc file contains one parameter per line. Comments are introduced by a hash sign (#), and continue until the end of the line. Blank lines are ignored. Most parameters are switches that turn certain features on or off. These switches have a no- variant that disables the feature. This man-page describes the positive variant and will also note which setting is the compiled-in default.

PARAMETERS
The following parameters may be specified in the directfbrc file:

system=<system>
    Specifies the graphics system to use. The default is to use the Linux frame buffer (fbdev) but you can also run DirectFB applications on SDL (sdl). Other systems might be added in the future.

fbdev=<device>
    Opens the given frame buffer device instead of /dev/fb0.

mode=<width>x<height>
    Sets the default screen resolution. If unspecified DirectFB will use the first mode from /etc/fb.modes Some frame buffer devices (namely vesafb) don't support mode switches and can only be used in the resolution that is set on boot time.

depth=<pixeldepth>
    Sets the default pixel depth in bits per pixel. If unspecified DirectFB will use the depth specified in the first mode from /etc/fb.modes DirectFB supports color depths of 8, 15, 16, 24 and 32. Which values are available depends on the frame buffer device you are using. Some frame buffer devices (namely vesafb) don't support mode switches at all and can only be used in the pixel depth that is set at boot time.

pixelformat=<pixelformat>
    Sets the default pixel format. This is similar to the depth parameter described above but allows more fine-grained control. Possible values for pixelformat are LUT8, RGB332, RGB16, RGB24 and RGB32. Some drivers may also support the more exotic pixel formats A8, ALUT44, ARGB, ARGB1555, I420, UYVY, YUY2 and YV12.

session=<num>
    Selects the multi application world which is joined or created. Starting with zero, negative values force creation of a new world using the lowest unused session number. This will override the environment variable "DIRECTFB_SESSION".

primary-layer=<id>
    Selects which layer is the "primary layer", default is the first. Check 'dfbinfo' for a list of layers supported by your hardware.

tmpfs=<directory>
    Uses the given directory (tmpfs mount point) for creation of the shared memory file in multi application mode. This option is only useful if the automatic detection fails or if non-tmpfs storage is desired.

memcpy=<method>
    With this option the probing of memcpy() routines can be skipped, saving a lot of startup time. Pass "help" for a list of possible values.

quiet
    Suppresses console output from DirectFB. Only error messages will be displayed.

[no-]banner
    Enables the output of the DirectFB banner at startup. This is on by default.

[no-]debug
    Enables debug output. This is on by default but you won't see any debug output unless you compiled DirectFB with debugging support.

force-windowed
    Forces the primary surface to be a window. This allows to run applications that were written to do full-screen access in a window.

force-desktop
    Forces the primary surface to be the background surface of the desktop.

[no-]hardware
    Turns hardware acceleration on. By default hardware acceleration is auto-detected. If you disable hardware acceleration, the driver for your graphics card will still be loaded and used to access additional display layers (if there are any), but all graphics operations will be performed by the software renderer.

[no-]sync
    Flushes all disk buffers before initializing DirectFB. This can be useful if you working with experimental device drivers and expect crashes. The default is not to sync.

[no-]mmx
    The no-mmx options allows to disable the use of MMX routines even if support for MMX was detected. By default MMX is used if is available and support for MMX was compiled in.

[no-]argb-font
    Instead of using A8 surfaces (alpha masks), load glyphs into ARGB surfaces. This uses more memory but some graphics cards do weird things with A8 surfaces. Try this option if your fonts look strange.

[no-]a1-font
    Instead of using A8 surfaces (alpha masks), load glyphs into A1 surfaces. If the graphics driver doesn't support colorizing + blending blits, this option will speed up font rendering, but reduce quality. In general you'll never need this option, because software based A8 fonts are highly optimized and fast enough.

[no-]sighandler
    By default DirectFB installs a signal handler for a number of signals that cause an application to exit. This signal handler tries to deinitialize the DirectFB engine before quitting the application. Use this option to enable/disable this feature.

dont-catch=<num>[[,<num>]...]
    As described with the sighandler option, DirectFB installs a signal handler for a number of signals. By using this option you may specify a list of signals that shouldn't be handled this way.

[no-]deinit-check
    By default DirectFB checks if the application has released all allocated resources on exit. If it didn't, it will clean up after the application. This option allows to switch this feature on or off.

block-all-signals
    This option activates blocking of all signals, useful for DirectFB daemons (a DirectFB master application that does nothing except being the master).

[no-]vt-switch
    By default DirectFB allocates a new virtual terminal and switches to it.

[no-]vt-switching
    Allow to switch virtual terminals using <Ctrl>+<Alt>+<F?>. This is an experimental feature that is usually disabled; use at your own risk.

[no-]graphics-vt
    Puts the virtual terminal into graphics mode. This has the advantage that kernel messages won't show up on your screen while the DirectFB application is running.

[no-]motion-compression
    Usually DirectFB compresses mouse motion events. This means that subsequent mouse motions are delivered to the application as a single mouse motion event. This leads to a more responsive but less exact mouse handling.

mouse-protocol=<protocol>
    Specifies the mouse protocol to use for a serial mouse. The following protocols are supported: MS Two button mouse using the Microsoft mouse protocol. MS3 Three button mouse using an extended Microsoft mouse protocol. MouseMan Three button mouse using a different extension to the Microsoft mouse protocol introduced by Logitech. MouseSystems The most commonly used protocol for three button mice. The different protocols for serial mice are described in more detail in mouse(4).

[no-]lefty
    Swaps left and right mouse buttons. Useful for left-handers.

[no-]capslock-meta
    Map the CapsLock key to Meta. Useful for users of the builtin WM without a Meta key on the keyboard (e.g. Window key).

[no-]cursor
    By default DirectFB shows a mouse cursor when an application makes use of windows. This option allows to switch the cursor off permanently. Applications cannot enable it explicitly.

disable-module=<modulename>
    Suppress loading of this module. The module name is the filename without the libdirectfb_ prefix and without extension (for example keyboard to disable loading of the keyboard input module).

bg-none
    Completely disables background handling. Doesn't make much sense since the mouse and moving windows will leave ugly traces on the background.

bg-color=AARRGGBB
    Controls the color of the background. The color is specified in hexadecimal notation. The alpha value defaults to full opacity and may be omitted. For example to choose a bright magenta background, you'd use bg-color=FF00FF.

bg-image=<filename>
    Fills the background with the given image from file. The image is stretched to fit to the screen dimensions.

bg-tile=<filename>
    Like bg-image but tiles the image to fit to the screen dimensions instead of stretching it.

[no-]translucent-windows
    By default DirectFB windows may be translucent. If you disable this feature, windows are forced to be either fully opaque or fully transparent. This is useful if your graphics card doesn't support alpha-transparent blits.

videoram-limit=<amount>
    Limits the amount of Video RAM used by DirectFB. The amount of Video RAM is specified in Kilobytes.

matrox-tv-standard=[pal|ntsc]
    Controls the signal produced by the TV output of Matrox cards.

[no-]matrox-sgram
    Some older Matrox G400 cards have SGRAM and a number of graphics operations are considerably faster on these cards if this feature is enabled. Don't try to enable it if your card doesn't have SGRAM! Otherwise you'd have to reboot.

[no-]matrox-crtc2
    If you have a dual head G400/G450/G550 you can use this option to enable additional layers using the second head.

screenshot-dir=<directory>
    If specified DirectFB will dump the screen contents in PPM format into this directory when the <Print> key gets pressed.

window-surface-policy=<policy>
    Allows to control where window surfaces are stored. Supported values for <policy> are: auto DirectFB decides depending on hardware capabilities. This is the default. videohigh Swapping system/video with high priority. videolow Swapping system/video with low priority. systemonly Window surfaces are stored in system memory. videoonly Window surfaces are stored in video memory.

desktop-buffer-mode=<mode>
    Allows to control the desktop buffer mode. Whenever a window is moved, opened, closed, resized or its contents change DirectFB recomposites the window stack at the affected region. This is done by blitting the windows together that are visible within that region. Opaque windows are blitted directly while translucent windows are blitted using alpha blending or color keying. If there's a back buffer the recomposition is not visible since only the final result is copied into the front buffer. Without a back buffer each step of the recomposition is visible. This causes noticeable flicker unless all windows are opaque. Supported values for <mode> are: auto DirectFB decides depending on hardware capabilities. This is the default. DirectFB chooses a back buffer in video memory if the hardware supports simple blitting (copying from back to front buffer). If there's no acceleration at all the back buffer is allocated in system memory since that gives much better performance for alpha blended recomposition in software and avoids reading from the video memory when the result is copied to the front buffer. backsystem The back buffer is allocated in system memory. This is the recommend choice if your hardware supports simple blitting but no alpha blending and you are going to have many alpha blended windows. backvideo Front and back buffer are allocated in video memory. It's not required to set this mode explicitly because the 'auto' mode chooses it if blits are accelerated. Without accelerated blits this mode is not recommended. frontonly There is no back buffer. This is the best choice if you are using opaque windows only and don't use any color keying.

vsync-after
    Wait for the vertical retrace after flipping. The default is to wait before doing the flip.

vsync-none
    Disables polling for vertical retrace.

EXAMPLES
Here are some examples that demonstrates how the parameters described above are passed to DirectFB application on the command-line.

df_neo --dfb:no-hardware
    Starts df_neo without hardware acceleration.

df_neo --dfb:help
    Lists the DirectFB options that can be passed to df_neo.

OTHER INFO
The canonical place to find informations about DirectFB is at http://www.directfb.org/. Here you can find the FAQ, tutorials, mailing list archives, the CVS tree and can download the latest version of the DirectFB library as well as a number of applications.

FILES

/etc/directfbrc
    system-wide DirectFB configuration file

$HOME/.directfbrc
    per-user DirectFB configuration file

/etc/fb.modes
    frame buffer modes file

SEE ALSO
fb.modes(5), fbset(8), mouse(4), ppm(5)