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>
|
2002-01-19 18:51:48 +00:00
|
|
|
<refentrytitle>Using GTK+ on the Framebuffer</refentrytitle>
|
2001-02-09 06:14:34 +00:00
|
|
|
<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>
|
2002-01-19 18:51:48 +00:00
|
|
|
Linux framebuffer aspects of using GTK+
|
2001-02-09 06:14:34 +00:00
|
|
|
</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
|
2002-01-03 00:36:09 +00:00
|
|
|
GDK (and therefore GTK+) that runs on the Linux framebuffer. It runs in
|
2002-01-01 23:51:00 +00:00
|
|
|
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.
|
2002-01-03 00:36:09 +00:00
|
|
|
To compile GTK+ with framebuffer support you will need FreeType 2, we
|
2002-01-01 23:51:00 +00:00
|
|
|
recommend FreeType 2.0.1 or later, as there was some problems with
|
2002-01-03 00:36:09 +00:00
|
|
|
<command>freetype-config</command> in 2.0. Make sure that you install
|
|
|
|
FreeType before Pango, since Pango also needs it. FreeType can be found at
|
|
|
|
<ulink url="ftp://ftp.freetype.org">ftp://ftp.freetype.org</ulink>.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2><title>Hardware requirements</title>
|
|
|
|
<para>
|
2002-01-03 00:36:09 +00:00
|
|
|
You need a graphics card with an available framebuffer driver that can
|
2002-01-01 23:51:00 +00:00
|
|
|
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>
|
2002-01-03 00:36:09 +00:00
|
|
|
First build and install GLib and Pango as usual, in that order.
|
2002-01-01 23:51:00 +00:00
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
Then configure GTK+ by running <command>configure</command> (or
|
|
|
|
<command>autogen.sh</command> if running from
|
|
|
|
CVS) with <option>--with-gdktarget=linux-fb</option>.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<para>Then compile as usual: <command>make; make install</command></para>
|
2002-01-01 23:51:00 +00:00
|
|
|
</refsect2>
|
2001-02-09 06:14:34 +00:00
|
|
|
|
2002-01-01 23:51:00 +00:00
|
|
|
<refsect2><title>Fonts</title>
|
|
|
|
<para>
|
2002-01-03 00:36:09 +00:00
|
|
|
Since GtkFB uses FreeType 2 to render fonts it can render TrueType and
|
|
|
|
Postscript type 1 antialiased fonts.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>At startup it scans some directories looking for fonts. By default
|
2002-01-03 00:36:09 +00:00
|
|
|
it looks in <filename>$prefix/lib/ft2fonts</filename>, and if you want to
|
|
|
|
change this you must add something like:
|
2002-01-01 23:51:00 +00:00
|
|
|
|
|
|
|
<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
|
2002-01-03 00:36:09 +00:00
|
|
|
the key <literal>AliasFiles</literal> in the <literal>PangoFT2</literal> section in <filename>pangorc</filename>.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
An example of a font alias file for the urw fontset is:
|
Small additions.
* gtk/tmpl/gtktextview.sgml: Small additions.
* gtk/tmpl/gtksignal.sgml: Explain what to use instead.
* gtk/question_index.sgml, gtk/text_widget.sgml, gtk/tree_widget.sgml,
gtk/changes-1.2.sgml, gtk/changes-2.0.sgml,
gtk/framebuffer.sgml: SGML fixes and additions.
* gtk/tmpl/gtksignal.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkeditable.sgml, gtk/tmpl/gtkfilesel.sgml,
gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkrc.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkwindow.sgml:
Replace references to deprecated functions.
2002-01-03 23:04:44 +00:00
|
|
|
<informalexample><programlisting>
|
2002-01-01 23:51:00 +00:00
|
|
|
sans normal normal normal normal "urw gothic l"
|
|
|
|
serif normal normal normal normal "urw palladio l"
|
|
|
|
monospace normal normal normal normal "nimbus mono l"
|
Small additions.
* gtk/tmpl/gtktextview.sgml: Small additions.
* gtk/tmpl/gtksignal.sgml: Explain what to use instead.
* gtk/question_index.sgml, gtk/text_widget.sgml, gtk/tree_widget.sgml,
gtk/changes-1.2.sgml, gtk/changes-2.0.sgml,
gtk/framebuffer.sgml: SGML fixes and additions.
* gtk/tmpl/gtksignal.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkeditable.sgml, gtk/tmpl/gtkfilesel.sgml,
gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkrc.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkwindow.sgml:
Replace references to deprecated functions.
2002-01-03 23:04:44 +00:00
|
|
|
</programlisting></informalexample>
|
2001-02-09 06:14:34 +00:00
|
|
|
</para>
|
|
|
|
|
2002-01-01 23:51:00 +00:00
|
|
|
<para>
|
2002-01-03 00:36:09 +00:00
|
|
|
And one using the Windows TrueType fonts is:
|
Small additions.
* gtk/tmpl/gtktextview.sgml: Small additions.
* gtk/tmpl/gtksignal.sgml: Explain what to use instead.
* gtk/question_index.sgml, gtk/text_widget.sgml, gtk/tree_widget.sgml,
gtk/changes-1.2.sgml, gtk/changes-2.0.sgml,
gtk/framebuffer.sgml: SGML fixes and additions.
* gtk/tmpl/gtksignal.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkeditable.sgml, gtk/tmpl/gtkfilesel.sgml,
gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkrc.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkwindow.sgml:
Replace references to deprecated functions.
2002-01-03 23:04:44 +00:00
|
|
|
<informalexample><programlisting>
|
2002-01-01 23:51:00 +00:00
|
|
|
sans normal normal normal normal "arial"
|
|
|
|
serif normal normal normal normal "times new roman"
|
|
|
|
monospace normal normal normal normal "courier new"
|
Small additions.
* gtk/tmpl/gtktextview.sgml: Small additions.
* gtk/tmpl/gtksignal.sgml: Explain what to use instead.
* gtk/question_index.sgml, gtk/text_widget.sgml, gtk/tree_widget.sgml,
gtk/changes-1.2.sgml, gtk/changes-2.0.sgml,
gtk/framebuffer.sgml: SGML fixes and additions.
* gtk/tmpl/gtksignal.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkeditable.sgml, gtk/tmpl/gtkfilesel.sgml,
gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkrc.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkwindow.sgml:
Replace references to deprecated functions.
2002-01-03 23:04:44 +00:00
|
|
|
</programlisting></informalexample>
|
2002-01-01 23:51:00 +00:00
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
A more detailed example can be found in
|
|
|
|
<filename>examples/pangoft2.aliases</filename> in the
|
|
|
|
Pango distribution.
|
2002-01-01 23:51:00 +00:00
|
|
|
</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
|
2002-01-03 00:36:09 +00:00
|
|
|
by environment variables. Try <application>gtk-demo</application> distributed
|
|
|
|
with GTK+ to test if things work.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2002-01-03 00:36:09 +00:00
|
|
|
If you use a ps2 mouse, make sure that <filename>/dev/psaux</filename> is
|
|
|
|
readable and writable.
|
2002-01-01 23:51:00 +00:00
|
|
|
</para>
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<para>Make sure <command>gpm</command> is not running.</para>
|
2002-01-01 23:51:00 +00:00
|
|
|
|
|
|
|
<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>
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_VT</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
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.
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_DISPLAY_MODE</envar>:
|
|
|
|
Specifies the name of a mode in <filename>/etc/fb.modes</filename> that you
|
|
|
|
want to use.
|
2002-01-01 23:51:00 +00:00
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_DISPLAY_DEPTH</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
Specify the desired bit depth of the framebuffer.
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_DISPLAY_WIDTH</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
Specify the desired width of the framebuffer.
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_DISPLAY_HEIGHT</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
Specify the desired height of the framebuffer.
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_DISPLAY</envar>:
|
|
|
|
Specify the framebuffer device to use. Default is <filename>/dev/fb0</filename>.
|
2002-01-01 23:51:00 +00:00
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_MOUSE_TYPE</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
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.
|
|
|
|
|
2002-01-03 00:36:09 +00:00
|
|
|
<envar>GDK_KEYBOARD_TYPE</envar>:
|
2002-01-01 23:51:00 +00:00
|
|
|
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>
|