2002-01-01 23:51:00 +00:00
|
|
|
<refentry id="gtk-framebuffer" revision="1 Jan 2002">
|
2001-02-09 06:14:34 +00:00
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>Framebuffer</refentrytitle>
|
|
|
|
<manvolnum>3</manvolnum>
|
|
|
|
<refmiscinfo>GTK Library</refmiscinfo>
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
<refnamediv>
|
2002-01-01 23:51:00 +00:00
|
|
|
<refname>Using GTK+ on the Framebuffer</refname>
|
2001-02-09 06:14:34 +00:00
|
|
|
<refpurpose>
|
|
|
|
Using embedded GTK+ on the Linux framebuffer
|
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsect1>
|
2002-01-01 23:51:00 +00:00
|
|
|
<title>GTK+ for the Linux Framebuffer</title>
|
2001-02-09 06:14:34 +00:00
|
|
|
|
|
|
|
<para>
|
2002-01-01 23:51:00 +00:00
|
|
|
The linux-fb port of GTK+, also known as GtkFB is an implementation of
|
|
|
|
GDK (and therefore GTK+) that runs on the linux framebuffer. It runs in
|
|
|
|
a single process that doesn't need X. It should run most GTK+ programs
|
|
|
|
without any changes to the source.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<refsect2><title>Build requirements</title>
|
|
|
|
<para>
|
|
|
|
You need GTK+ 2.0; the 1.2.x series does not have framebuffer support.
|
|
|
|
To compile GTK+ with framebuffer support you will need freetype 2, we
|
|
|
|
recommend FreeType 2.0.1 or later, as there was some problems with
|
|
|
|
freetype-config in 2.0. Make sure that you install freetype before
|
|
|
|
Pango, since Pango also needs it. Freetype can be found at
|
|
|
|
ftp://ftp.freetype.org
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2><title>Hardware requirements</title>
|
|
|
|
<para>
|
|
|
|
You need a graphics card with an availible framebuffer driver that can
|
|
|
|
run in 8, 16, 24 or 32 bpp, such as matroxfb or vesafb. You also need
|
|
|
|
a supported mouse. GTK+ currently supports the ps2 mouse, ms serial
|
|
|
|
mouse and fidmour touchscreen. Additional hardware support should
|
|
|
|
be simple to add.
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2><title>Building and installing</title>
|
|
|
|
<para>
|
|
|
|
First build and install glib and pango as usual, in that order.
|
|
|
|
|
|
|
|
Then configure Gtk by running configure (or autogen.sh if running from
|
|
|
|
CVS) with <literal>--with-gdktarget=linux-fb</literal>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>Then compile as ususal: make; make install</para>
|
|
|
|
</refsect2>
|
2001-02-09 06:14:34 +00:00
|
|
|
|
2002-01-01 23:51:00 +00:00
|
|
|
<refsect2><title>Fonts</title>
|
|
|
|
<para>
|
|
|
|
Since GtkFB uses freetype 2 to render fonts it can render truetype and
|
|
|
|
postscript type 1 antialiased fonts.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>At startup it scans some directories looking for fonts. By default
|
|
|
|
it looks in $prefix/lib/ft2fonts, and if you want to change this you
|
|
|
|
must add something like:
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
[PangoFT2]
|
|
|
|
FontPath = /usr/share/fonts/default/Type1:/usr/share/fonts/default/TrueType
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
To your <filename>$prefix/etc/pango/pangorc</filename> or <filename>~/.pangorc</filename>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
You must also set up font aliases for the fonts Sans, Serif and
|
|
|
|
Monotype. This is done by creating a
|
|
|
|
<filename>$prefix/etc/pango/pangoft2.aliases</filename> or
|
|
|
|
<filename>~/.pangoft2_aliases</filename> file. You can also set the name of this file using
|
|
|
|
the key AliasFiles in the PangoFT2 section in pangorc.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
An example of a font alias file for the urw fontset is:
|
|
|
|
<programlisting>
|
|
|
|
sans normal normal normal normal "urw gothic l"
|
|
|
|
serif normal normal normal normal "urw palladio l"
|
|
|
|
monospace normal normal normal normal "nimbus mono l"
|
|
|
|
</programlisting>
|
2001-02-09 06:14:34 +00:00
|
|
|
</para>
|
|
|
|
|
2002-01-01 23:51:00 +00:00
|
|
|
<para>
|
|
|
|
And one using the Windows truetype fonts is:
|
|
|
|
<programlisting>
|
|
|
|
sans normal normal normal normal "arial"
|
|
|
|
serif normal normal normal normal "times new roman"
|
|
|
|
monospace normal normal normal normal "courier new"
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
A more detailed example can be found in examples/pangoft2.aliases in the
|
|
|
|
pango distribution.
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2><title>Running</title>
|
|
|
|
<para>
|
|
|
|
To run a program you should only need to start it, but there are some
|
|
|
|
things that can cause problems, and some things that can be controlled
|
|
|
|
by environment variables. Try testgtk distributed with GTK+ to test
|
|
|
|
if things work.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you use a ps2 mouse, make sure that /dev/psaux is readable and
|
|
|
|
writable.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>Make sure gpm is not running.</para>
|
|
|
|
|
|
|
|
<para>If you don't specify anything GtkFB will start up in the current
|
|
|
|
virtual console in the current resolution and bit-depth. This can be
|
|
|
|
changed by specifying environment variables:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<programlisting>
|
|
|
|
GDK_VT:
|
|
|
|
unset means open on the current VT.
|
|
|
|
0-9: open on the specified VT. Make sure you have read/write rights
|
|
|
|
there.
|
|
|
|
new: Allocate a new VT after the last currently used one.
|
|
|
|
|
|
|
|
GDK_DISPLAY_MODE:
|
|
|
|
Specifies the name of a mode in /etc/fb.modes that you want to use.
|
|
|
|
|
|
|
|
GDK_DISPLAY_DEPTH:
|
|
|
|
Specify the desired bit depth of the framebuffer.
|
|
|
|
|
|
|
|
GDK_DISPLAY_WIDTH:
|
|
|
|
Specify the desired width of the framebuffer.
|
|
|
|
|
|
|
|
GDK_DISPLAY_HEIGHT:
|
|
|
|
Specify the desired height of the framebuffer.
|
|
|
|
|
|
|
|
GDK_DISPLAY:
|
|
|
|
Specify the framebuffer device to use. Default is /dev/fb0
|
|
|
|
|
|
|
|
GDK_MOUSE_TYPE:
|
|
|
|
Specify mouse type. Currently supported is:
|
|
|
|
ps2 - PS/2 mouse
|
|
|
|
imps2 - PS/2 intellimouse (wheelmouse)
|
|
|
|
ms - Microsoft serial mouse
|
|
|
|
fidmour - touch screen
|
|
|
|
Default is ps2.
|
|
|
|
|
|
|
|
GDK_KEYBOARD_TYPE:
|
|
|
|
Specify keyboard type. Currently supported is
|
|
|
|
xlate - normal tty mode keyboard.
|
|
|
|
Quite limited, cannot detect key up/key down events. Doesn't
|
|
|
|
handle ctrl/alt/shift for all keys. This is the default driver,
|
|
|
|
but should not be used in "production" use.
|
|
|
|
raw - read from the tty in RAW mode.
|
|
|
|
Sets the keyboard in RAW mode and handles all the keycodes. This
|
|
|
|
gives correct handling of modifiers and key up/down events. You
|
|
|
|
must be root to use this. If you use this for development or
|
|
|
|
debugging it is recommended to enable magic sysrq handling in the
|
|
|
|
kernel. Then you can use ALT-SysRQ-r to turn the keyboard back to
|
|
|
|
normal mode.
|
|
|
|
Default is xlate.
|
|
|
|
</programlisting>
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2><title>Debug features</title>
|
|
|
|
<para>Pressing Ctrl-Alt-Return repaints the whole screen.
|
|
|
|
Unfortunately this cannot be pressed when using the xlate keyboard
|
|
|
|
driver, so instead you can use shift-F1 instead when using this
|
|
|
|
driver.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>Pressing Ctrl-Alt-BackSpace kills the GtkFB program. (Can't be pressed
|
|
|
|
in the xlate driver.)</para>
|
|
|
|
</refsect2>
|
|
|
|
|
2001-02-09 06:14:34 +00:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
</refentry>
|