doc/en/gnome/docs/faq2.sgml
Adam Weinberger 427bb03212 Replace the standard FreeBSD side navigation menu thinger with a
new fancypants FreeBSD/GNOME-specific one.

Note that the index.html and newsflash.html pages haven't been updated
because I can't figure out the magic XSL incantation to make them read
in the new includes.navgnome.sgml.
2005-12-29 06:42:28 +00:00

1122 lines
41 KiB
Text

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/en/gnome/docs/faq2.sgml,v 1.104 2005/12/01 05:09:25 marcus Exp $">
<!ENTITY title "FreeBSD GNOME Project: GNOME &gnomever; FAQ">
<!ENTITY % navincludes SYSTEM "../includes.navgnome.sgml"> %navincludes;
<!ENTITY % gnomeincludes SYSTEM "../includes.sgml"> %gnomeincludes;
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
]>
<html>
&header;
<h2>Contents</h2>
<ol>
<li> <a href="#q1">How do I get GNOME &gnomever; for FreeBSD?</a>
<li> <a href="#q2">GNOME &gnomever; is failing to build from ports. What
do I do?</a>
<li> <a href="#q3">I installed GNOME &gnomever;, but I am missing
application foo. What gives?</a>
<li> <a href="#q4">What is the best way to upgrade from GNOME
1.4 to GNOME 2?</a>
<li> <a href="#q5">What is the best way to upgrade from GNOME
&gnomeoldver; to GNOME &gnomever;?</a>
<li> <a href="#q6">How do I keep my GNOME &gnomever; components
and applications up-to-date?</a>
<li> <a href="#q7">Can I install GNOME 1.4 applications under
GNOME &gnomever;?</a>
<li> <a href="#q8">Where can I get more themes for GNOME
&gnomever;?</a>
<li> <a href="#q9">What window managers work well with GNOME
&gnomever;? </a>
<li> <a href="#q10">Does GNOME &gnomever; support anti-aliased
fonts?</a>
<li> <a href="#q11">How can I control what fonts are anti-aliased?
</a>
<li> <a href="#q12">How do I edit my GNOME 2 menus?</a>
<li> <a href="#q13">How do I use GTK+ 2 resource settings for
GTK+ 2 applications when not in a GNOME environment?</a>
<li> <a href="#q14">How do I configure settings for GNOME 1.4
applications under GNOME &gnomever;?</a>
<li> <a href="#q15">Nautilus-cd-burner does not let me burn CDs,
or Totem/Goobox/Sound-juicer cannot find my CD/DVD drive.
How can I fix this?</a>
<li> <a href="#q16">How do I add new GDM sessions?</a>
<li> <a href="#q17">How do I disable spatial Nautilus?</a>
<li> <a href="#q18">How do I disable desktop icons for
"Computer," "Home," and "Trash?"</a>
<li> <a href="#q19">How do I mount my removable media in
Nautilus?</a>
<li> <a href="#q20">Why is GNOME so slow to start up?</a>
<li> <a href="#q21">How do I install GNOME packages from
the GNOME Tinderbox?</a>
<li> <a href="#q22">How do I add new MIME types to
GNOME?</a>
<li> <a href="#q23">How do I configure GDM for
automatic logins?</a>
<li> <a href="#q24">How do I upgrade from gnome2-lite to
the full GNOME &gnomever; desktop?</a>
<li> <a href="#q25">How do I use D-BUS from within the
GNOME Desktop?</a>
<li> <a href="#q26">How do I enable Emacs-style
keybindings in GTK+ applications?</a>
<li> <a href="#q27">Why do I only see generic icons in
Nautilus?</a>
</ol>
<h2>Full Text </h2>
<ol>
<!-- Q1 -->
<li style="padding-bottom: 0.5em"><a name="q1"></a>
<p><b>How do I get GNOME &gnomever; for FreeBSD?</b></p>
<!-- A1 -->
<p>There are two ways to install GNOME &gnomever; on FreeBSD. One way is to use
<a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/packages-using.html">
packages</a>, and the other way is to use
<a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html">
ports</a>. Before doing either installation, you should
first familiarize yourself with the GNOME &gnomever;
<a href="http://www.gnome.org/start/&gnomever;/notes/">
release notes</a>.</p>
<p><u>Install GNOME &gnomever; from packages.</u></p>
<p>To install GNOME &gnomever; from packages, use the command:</p>
<tt># pkg_add -r gnome2</tt>
<p>This will download the latest GNOME &gnomever; packages from the
FreeBSD FTP site, and proceed to install them on your system.
</p>
<p>Up-to-date GNOME packages for i386 and amd64 for all supported
versions of FreeBSD are also available from the
<a href="#q21">GNOME Tinderbox</a>.</p>
<p>To build GNOME &gnomever;, you must first obtain the
latest ports tree skeleton. This is most easily
accomplished with <tt>portsnap(8)</tt> or <a
href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">cvsup</a>.
Then:</p>
<pre>
# cd /usr/ports/x11/gnome2
# make clean
# make install clean
</pre>
<p><u>Enable File Alteration Monitor (FAM) support for
your &gnomever; desktop.</u></p>
<p>GNOME includes support for the File Alteration Monitor
(<tt>devel/fam</tt>) by default, in order to improve the
GNOME desktop's ability to respond to files being added,
deleted, or modified by other programs. To take advantage
of this functionality, FAM must be enabled in inetd.conf(5).
More information can be found in
<tt>ports/devel/fam/pkg-message</tt>.</p>
<p><u>Make GNOME &gnomever; start when X starts.</u></p>
<p>Once you have the GNOME &gnomever; desktop installed,
GNOME &gnomever; can be started by adding the following line
to <tt>~/.xsession</tt> or <tt>~/.xinitrc</tt>, as appropriate:</p>
<pre>
exec gnome-session
</pre>
</li>
<!-- Q2 -->
<li style="padding-bottom: 0.5em"><a name="q2"></a>
<p><b>GNOME &gnomever; is failing to build from ports. What do I do?</b></p>
<!-- A2 -->
<p>The majority of GNOME &gnomever; compilation problems can be solved
by making sure all the necessary GNOME &gnomever; components are
<a href="#q6">up-to-date</a>.</p>
<p><u>Updating solves most problems</u></p>
<p>If you have not yet followed <a href="#q6">FAQ #6</a>, do so, as
it will most likely fix the problem you are reading this document
to solve.</p>
<p>Please follow <a href="#q6">FAQ #6</a>. If you have not done so,
and you ask for help, you will be told to follow FAQ #6.</p>
<p>In general, when a GNOME &gnomever; component is not up-to-date,
you will see an error similar to the following:</p>
<pre>
checking for libgnomeui-2.0 libbonoboui-2.0 libbonobo-2.0 >= 2.2.1
gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2 libglade-2.0...
configure: error: Library requirements (libgnomeui-2.0 libbonoboui-2.0
libbonobo-2.0 >= 2.2.1 gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2
libglade-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable
if your libraries are in a nonstandard prefix so pkg-config can find them.
</pre>
<p>Simply keeping your ports tree <a href="#q6">up-to-date</a> will
prevent these errors.</p>
<p>If the <tt>pkg-config</tt> program is out-of-date, you may see
a configure error similar to the following:</p>
<pre>
configure: error: *** pkg-config too old; version 0.14 or better required.
</pre>
<p>While this may be buried in some other text, the error is
very straight-forward: you need to upgrade pkg-config.
The pkg-config application is found in the
<tt>devel/pkgconfig</tt> port. By updating this port to
the latest version, this error will go away.</p>
<p>You may see compiler errors relating to pthreads
(&posix; threads), such as:</p>
<pre>
undefined reference to 'strerror_r'
</pre>
<p>To fix thread related errors, make sure you have the following
compiled into your kernel:</p>
<pre>
options _KPOSIX_PRIORITY_SCHEDULING
</pre>
<p>If you are tracking -stable or -current, make sure that you
do <b>not</b> have <tt>NOLIBC_R</tt> set in
<tt>/etc/make.conf</tt>. If you do, remove it, then rebuild world.
If you still have trouble, please send email to
<a href="mailto:&email;@FreeBSD.org">
&email;@FreeBSD.org</a> with the output of the failed compilation.
It is also helpful to include the config.log from the port's
work directory.</p>
<p><u>Prevent two versions of the same library.</u></p>
<p>A common source of build failures is the existence of multiple versions
of the same library. This can happen if you have two different versions of
a port installed, or can even happen through normal <tt>portupgrade</tt> use.
You can back up the libraries in <tt>/usr/local/lib/compat/pkg</tt> and remove
them, and then run <tt>portupgrade -u -rf pkgconfig</tt>. This will force a
rebuild of all GNOME-related apps (and a fair number of other apps) without
retaining old versions of libraries in <tt>/usr/local/lib/compat/pkg</tt>.
</p>
</li>
<!-- Q3 -->
<li style="padding-bottom: 0.5em"><a name="q3"></a>
<p><b>I installed GNOME &gnomever;, but I am missing application foo.
What gives?</b></p>
<!-- A3 -->
<p>Only the core desktop is included in the
<tt>gnome2</tt> package. Here are some other GNOME
meta-ports that offer convenient groupings of popular GNOME 2
software.</p>
<ul>
<li>The <b>GNOME 2 Fifth Toe</b> (<tt>x11/gnome2-fifth-toe</tt>)
consists of stable GNOME 2 applications that many users
expect to find in a functional desktop environment. This
includes image manipulation applications, chat and instant
messenger applications, and music and multimedia players</li>
<li>The <b>GNOME 2 Hacker Tools</b>
(<tt>devel/gnome2-hacker-tools</tt>) consists of applications
developers would need to create and maintain GNOME software
projects. This includes IDEs, interface builders, "hacker"
editors, and code generation tools.</li>
<li>The <b>GNOME 2 Office</b> (<tt>editors/gnome2-office</tt>)
consists of applications that are commonly found in office or
productivity suites. This includes a spreadsheet application,
word processor, project management application, database
access application, groupware suite, and diagramming
application.</li>
<li>The <b>GNOME 2 Power Tools</b>
(<tt>x11/gnome2-power-tools</tt>) consists of utilities
and applets for the technically-minded GNOME user. It
also contains many useful add-on utilities for some of
the applications found in the Desktop and Fifth
Toe.</li>
</ul>
<p>To install any of these from packages:</p>
<pre>
# pkg_add -r <em>meta-port</em>
</pre>
<p>For example, to install the GNOME 2 Fifth Toe from packages:</p>
<pre>
# pkg_add -r gnome2-fifth-toe
</pre>
<p>To install any of these from ports:</p>
<pre>
# cd /usr/ports/<em>category</em>/<em>meta-port</em>
# make clean
# make install clean
</pre>
<p>For example, to install the GNOME 2 Fifth Toe from ports:</p>
<pre>
# cd /usr/ports/x11/gnome2-fifth-toe
# make clean
# make install clean
</pre>
</li>
<!-- Q4 -->
<li style="padding-bottom: 0.5em"><a name="q4"></a>
<p><b>What is the best way to upgrade from GNOME 1.4 to GNOME 2?</b></p>
<!-- A4 -->
<p>If you have
GNOME 1.4, and you want to upgrade to GNOME &gnomever;, first
familiarize yourself with the <a href="http://www.gnome.org/start/2.0/installation.html#upgrading">official</a> upgrade instructions from
the GNOME site. Make sure your GNOME 1.4 ports are
up-to-date, and then remove the following GNOME 1.4 packages from
the system:</p>
<pre>
gnomecore
sawfish
gnomeapplets
gnomemedia
gtop
libgtop
nautilus
gedit
xalf
bugbuddy
gnomeaudio
gnomegames
gnomeutils
gdm
eog
ggv
</pre>
<p>After those packages are removed, you can build GNOME &gnomever; as per
the <a href="#q1">instructions listed above</a>.</p>
</li>
<!-- Q5 -->
<li style="padding-bottom: 0.5em"><a name="q5"></a>
<p><b>What is the best way to upgrade from GNOME &gnomeoldver; to GNOME &gnomever;?</b></p>
<!-- A5 -->
<p>The &gnomeoldver; to &gnomever; process is trickier than the 2.4 to &gnomeoldver; process. You are
strongly advised to read the <a href="faq26.html">upgrade FAQ</a> for detailed
instructions.</p>
</li>
<!-- Q6 -->
<li style="padding-bottom: 0.5em"><a name="q6"></a>
<p><b>How do I keep my GNOME &gnomever; components and applications
up-to-date?</b></p>
<!-- A6 -->
<p>You are emphatically encouraged to use <tt>portupgrade</tt> --
and <em>only</em> <tt>portupgrade</tt> -- to keep your GNOME
&gnomever; components and applications up-to-date.</p>
<p><u>Update your ports with <tt>portupgrade.</tt></u></p>
<p>Once you have updated your ports tree (presumably with
<tt>cvsup</tt>), the following two simple commands will update
what needs to be updated, and will prevent inconsistencies:</p>
<pre>
# pkgdb -F
# portupgrade -a
</pre>
<p><u>Start from scratch.</u></p>
<p>Despite consistent utilization of <tt>portupgrade</tt>, if
it seems like everything is refusing to build with everything
else, you might save yourself a headache or three by removing
all your GNOME apps and reinstalling them (your data files will
remain untouched). To do this, follow these commands:</p>
<pre>
# pkgdb -F
# pkg_delete -rf pkgconfig\*
# cd /usr/ports/x11/gnome2
# make clean
# make install clean
</pre>
<p>After running the above commands, you will have to reinstall all
the GNOME applications you desire. This process sounds painful,
but it is actually a great way to clear cruft off of your system.
Just install applications as you need them, and you will be surprised
how much disk space you have reclaimed. A full rebuild does take
a significant amount of time; fortunately, this measure is only
rarely needed.</p>
</li>
<!-- Q7 -->
<li style="padding-bottom: 0.5em"><a name="q7"></a>
<p><b>Can I install GNOME 1.4 applications under GNOME &gnomever;?</b></p>
<!-- A7 -->
<p>GNOME 1.4 ports will run well under the GNOME 2 desktop. Older
applications that were incompatible with the GNOME 2 desktop
have been removed from the ports tree, so it should be safe to
run any GNOME application in the ports tree under the GNOME 2
desktop.</p>
</li>
<!-- Q8 -->
<li style="padding-bottom: 0.5em"><a name="q8"></a>
<p><b>Where can I get more themes for GNOME &gnomever;?</b></p>
<!-- A8 -->
<p>On the following websites, you can find themes for GTK+-1/2,
metacity, sawfish, nautilus, GDM, icon themes, backgrounds,
and more:
</p>
<ul>
<li><a href="http://art.gnome.org">art.gnome.org</a></li>
<li><a href="http://www.gnome-look.org">GNOME-look.org</a></li>
<li><a href="http://www.themedepot.org">The Theme Depot</a></li>
<li><a href="http://themes.freshmeat.net">themes.freshmeat.net</a></li>
<li><a href="http://jimmac.musichall.cz/icons.php">Jimmac's Icons site</a></li>
</ul>
<p>Some of these themes have already been ported to
FreeBSD. Check out the <tt>x11-themes/gnome-icons</tt> and
<tt>x11-themes/metacity-themes</tt> meta-ports for a nice
sample.</p>
</li>
<!-- Q9 -->
<li style="padding-bottom: 0.5em"><a name="q9"></a>
<p><b>What window managers work well with GNOME &gnomever;?</b></p>
<!-- A9 -->
<p>The <tt>gnome2</tt> meta-port installs the
metacity window manager by default. Another popular window
manager that works well with GNOME &gnomever; is
<a href="http://sawmill.sourceforge.net/">sawfish</a>. Sawfish
can be found in <tt>x11-wm/sawfish2</tt>.</p>
<p>To switch between metacity and sawfish in GNOME 2, you will need
to do the following:</p>
<pre>
# killall metacity; sawfish &
# gnome-session-save --gui
</pre>
<p>The <tt>gnome-session-save</tt> is important. Without it, the
window manager will revert back to the one previously configured
upon next login. To switch back, simply reverse sawfish and
metacity.</p>
<p>If you have gotten the GNOME &gnomever; desktop working under an
alternative window manager, please take a screenshot and
<a href="mailto:&email;@FreeBSD.org">send it to us</a>!
</p>
</li>
<!-- Q10 -->
<li style="padding-bottom: 0.5em"><a name="q10"></a>
<p><b>Does GNOME &gnomever; support anti-aliased fonts?</b></p>
<!-- A10 -->
<p>Yes! Anti-aliasing requires XFree86 4.x or X.Org with
freetype2 support. To add freetype2 support to X, make
sure you have the following modules loaded in your
XF86Config or xorg.conf file under the Modules section:</p>
<pre>
Load "freetype"
Load "type1"
</pre>
<p>Then, simply check out the Fonts capplet under
Applications->Desktop Preferences. If you want a good set
of TrueType starter fonts, install the
<tt>x11-fonts/webfonts</tt> port.</p>
<p>Sometimes, after adding new fonts to the system, it is
necessary to teach fontconfig about them. If you find that
newly added fonts are not made available even after
restarting GNOME 2, run the following command as root:</p>
<pre>
# fc-cache -f -v
</pre>
<p>If you have any questions, please send them to
<a href="mailto:&email;@FreeBSD.org">&email;@FreeBSD.org</a>.
</p>
</li>
<!-- Q11 -->
<li style="padding-bottom: 0.5em"><a name="q11"></a>
<p><b>How can I control what fonts are anti-aliased?</b></p>
<!-- A11 -->
<p>GNOME &gnomever; makes use of libXft and fontconfig to
handle anti-aliasing. Fontconfig is a very powerful
XML-based font configuration package. You can create a
<tt>~/.fonts.conf</tt> file that controls virtually
every aspect of fontconfig. For example, if you do not
want to anti-alias fonts smaller than 16 point, create
a <tt>~/.fonts.conf</tt> with the following contents:</p>
<pre>
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;fontconfig&gt;
&lt;match target="font"&gt;
&lt;test name="size" compare="less_eq"&gt;
&lt;double&gt;16&lt;/double&gt;
&lt;/test&gt;
&lt;edit name="antialias" mode="assign"&gt;
&lt;bool&gt;false&lt;/bool&gt;
&lt;/edit&gt;
&lt;/match&gt;
&lt;match target="font"&gt;
&lt;test name="pixelsize" compare="less_eq"&gt;
&lt;double&gt;16&lt;/double&gt;
&lt;/test&gt;
&lt;edit name="antialias" mode="assign"&gt;
&lt;bool&gt;false&lt;/bool&gt;
&lt;/edit&gt;
&lt;/match&gt;
&lt;/fontconfig&gt;
</pre>
<p>Refer to fonts-conf(5) for more information.</p>
</li>
<!-- Q12 -->
<li style="padding-bottom: 0.5em"><a name="q12"></a>
<p><b>How do I edit my GNOME 2 menus?</b></p>
<!-- A12 -->
<p>Right-click on the Applications menu, and select
<b>Edit Menus</b>. This will invoke the
<b>gnome-menu-editor</b> tool. Another popular, and
more fully-featured menu editor, is
<tt>deskutils/alacarte</tt>.</p>
</li>
<!-- Q13 -->
<li style="padding-bottom: 0.5em"><a name="q13"></a>
<p><b>How do I use GTK+ 2 resource settings for GTK+ 2 applications
when not in a GNOME environment?</b></p>
<!-- A13 -->
<p> GNOME 2 applications get their GTK+ 2 resources from themes and
the corresponding theme engine. If you would rather run your
GTK+ 2 applications in a non-GNOME environment then you will
need to create a file named <tt>~/.gtkrc-2.0</tt>.</p>
<p> To use the widgets from a GTK+ 2 theme when in a non-GNOME
environment, simply <tt>include</tt> the theme's
<tt>gtk-2.0/gtkrc</tt> in your <tt>~/.gtkrc-2.0</tt>. For example:
<pre>include "/usr/X11R6/share/themes/Crux/gtk-2.0/gtkrc"</pre>
<p> If you prefer, you can use the same GTK+ 1.2 theme for both
GTK+ 1.2 and GTK+ 2 applications, which will give your GTK+
programs a consistent look. For the most part, you can transfer
your settings from your <tt>~/.gtkrc</tt> file (used for
GTK+ 1.2) with a couple of caveats.</p>
<ol>
<li> If you have any theme engine references, you will have
to make sure there is a corresponding GTK+ 2 theme engine.
Otherwise, remove the engine entries.</li>
<li> The default font specification should be outside of
any <tt>style</tt> blocks and should be specified with
the <tt>gtk-font-name</tt> keyword. For example:
<pre>gtk-font-name = "Verdana 11"</pre>
</li>
</ol>
<p> Note that while a GTK+ 1.2 <tt>gtkrc</tt> file will work
in a GTK+ 2 <tt>gtkrc-2.0</tt> file, the opposite is <i>not</i>
true: the contents of a GTK+ 2 <tt>gtkrc-2.0</tt> file will
<i>not</i> work inside a GTK+ 1.2 <tt>gtkrc</tt> file.</p>
<p>For simply switching GTK+ themes without needing to
edit your <tt>~/.gtkrc</tt> files, you can use the
<tt>x11/gtk-theme-switch</tt> and
<tt>x11/gtk2-theme-switch</tt> ports.</p>
</li>
<!-- Q14 -->
<li style="padding-bottom: 0.5em"><a name="q14"></a>
<p><b>How do I configure settings for GNOME 1.4 applications under
GNOME &gnomever;?</b></p>
<!-- A14 -->
<p>Install <tt>sysutils/gnomecontrolcenter</tt>, then invoke
<tt>gnomecc</tt> from the command line to bring up the GNOME
1.4 control center.</p>
</li>
<!-- Q15 -->
<li style="padding-bottom: 0.5em"><a name="q15"></a>
<p><b>Nautilus-cd-burner does not let me burn CDs or
Totem/Goobox/Sound-juicer cannot find my CD/DVD drive. How can I
fix this?</b></p>
<!-- A15 -->
<p>Nautilus-cd-burner, totem, goobox, and sound-juicer cannot
use CD/DVD drives unless support for those devices is
enabled in the kernel, and the permissions on the device
nodes allow write access.
Nautilus-cd-burner, totem, goobox, and sound-juicer talk to
CD/DVD drives through the SCSI CAM subsystem. Therefore,
you must make sure you have the following configured in your
kernel:</p>
<pre>
device scbus
device cd
device pass
</pre>
<p>You must also make sure you have the following configured in
your kernel if you are using an ATAPI CD/DVD drive:</p>
<pre>
device atapicam
</pre>
<p>To figure out which CD/DVD drive you will be using, run the
following command as root:</p>
<pre>
# camcontrol devlist
</pre>
<p>Your output will look similar to the following:</p>
<pre>
&lt;QSI CDRW/DVD SBW-242 UD22&gt; at scbus1 target 0 lun 0 (cd0,pass0)
</pre>
<p>The devices in parentheses at the end are important. You
must make sure the <tt>/dev</tt> entries for those devices
are writable by the users that will be using
nautilus-cd-burner, totem, goobox, or sound-juicer. In addition
to those devices, <tt>/dev/xpt*</tt> must also be writable to
your nautilus-cd-burner, totem, goobox, and sound-juicer users.
The following <tt>/etc/devfs.conf</tt> configuration will
achieve the desired results given the above devlist (<b>NB:</b>
<tt>devfs.conf</tt> is only supported on FreeBSD 5.X and
higher):</p>
<pre>
perm cd0 0666
perm xpt0 0666
perm pass0 0666
</pre>
<p>On FreeBSD 4.X, you can simply set the device node
permissions, and they will be preserved across reboots.
Note that you must use the 'c' device nodes on
FreeBSD 4.X (e.g. <tt>cd0c</tt>).</p>
</li>
<!-- Q16 -->
<li style="padding-bottom: 0.5em"><a name="q16"></a>
<p><b>How do I add new GDM sessions?</b></p>
<!-- A16 -->
<p>The process for adding new GDM sessions has changed substantially
between GNOME 2.2 and &gnomever;. In order to add new sessions
now, you must create a <tt>.desktop</tt> file containing the session
configuration information. Session files live in
<tt>/usr/X11R6/etc/dm/Sessions</tt>. For example, to add
a KDE session, create a file in <tt>/usr/X11R6/etc/dm/Sessions</tt>
called <tt>kde.desktop</tt>. That file should contain the
following:</p>
<pre>
[Desktop Entry]
Encoding=UTF-8
Name=KDE
Comment=This session logs you into KDE
Exec=/usr/local/bin/startkde
TryExec=/usr/local/bin/startkde
Icon=
Type=Application
</pre>
<p>This file must have execute permissions. For example:</p>
<pre>
# chmod 0555 kde.desktop
</pre>
<p>After creating this file, restart GDM, and there will be a
<b>KDE</b> link under the <em>Sessions</em> menu.</p>
</li>
<!-- Q17 -->
<li style="padding-bottom: 0.5em"><a name="q17"></a>
<p><b>How do I disable spatial Nautilus?</b></p>
<!-- A17 -->
<p>As of GNOME 2.8, Nautilus operates in what is known as
a "spatial" mode. This means that each item is opened in
a new window. This may not be desirable to all users. If
you wish to revert back to the old Nautilus file system
browser, go to Desktop-&gt;Preferences-&gt;File
Management, click on the Behavior tab, and check the
"Always open in browser windows" checkbox.</p>
</li>
<!-- Q18 -->
<li style="padding-bottom: 0.5em"><a name="q18"></a>
<p><b>How do I disable desktop icons for "Computer,"
"Home," and "Trash?"</b></p>
<!-- A18 -->
<p>If you do not want your desktop cluttered with the
default icons for "Computer," "Home," and "Trash," you can
disable any or all of them. To
do this, launch <b>Applications &gt; System Tools &gt;
Configuration Editor</b> (<tt>gconf-editor</tt> from the
command line), and go to the
<tt>/apps/nautilus/desktop</tt> key. From here, you can
enable or disable the icons, and even rename "Home" and
"Trash."</p>
</li>
<!-- Q19 -->
<li style="padding-bottom: 0.5em"><a name="q19"></a>
<p><b>How do I mount my removable media in
Nautilus?</b></p>
<!-- A19 -->
<p>In order for removable volumes (e.g. CD-ROMs, floppy
drives, etc.) to be visible in Nautilus, you must first
set the <tt>vfs.usermount</tt> sysctl to <tt>1</tt>. To
do that, add the following to <tt>/etc/sysctl.conf</tt>
then reboot:</p>
<pre>
vfs.usermount=1
</pre>
<p>Next, each user mountpoint must be added to
<tt>/etc/fstab</tt>. For example, if user <tt>marcus</tt>
wants to be able to mount a CD under
<tt>/home/marcus/cdrom</tt>, the following must be in
<tt>/etc/fstab</tt>:</p>
<pre>
/dev/acd0 /home/marcus/cdrom cd9660 ro,noauto 0 0
</pre>
<p>Each additional user would require a similar entry.
<b>Note:</b> the user must own the mountpoint, and have
write access to the device node in question. In the
example above, <tt>/home/marcus/cdrom</tt> must be owned
by the user <tt>marcus</tt>, and <tt>marcus</tt> must have
write access to the <tt>/dev/acd0</tt> node. Once all of
that is setup, a CD-ROM icon will appear under the Computer
location in Nautilus. Double-clicking on that icon will mount
the CD, and place an icon on the desktop.</p>
<p>Another important caveat with removable media mounting
to keep in mind is that mount points must be specified
with <em>fully-qualified</em> path names in
<tt>/etc/fstab</tt>. For example, if <tt>/home</tt> is
a symlink to <tt>/usr/home</tt>, you must specify
<tt>/usr/home/marcus/cdrom</tt> in the example above.
If you do not do this, you will ecnounter strange
problems trying to access or unmount your volume.</p>
<p>Gary Dunn also provides a <a
href="http://www.aloha.com/~knowtree/howto/gnomeSMBmount.html">
very detailed how-to</a> for user-mounting SMB volumes.</p>
</li>
<!-- Q20 -->
<li style="padding-bottom: 0.5em"><a name="q20"></a>
<p><b>Why is GNOME so slow to start up?</b></p>
<!-- A20 -->
<p>Under normal circumstances, GNOME should only take a
few seconds to start up (fifteen at most). However,
certain configurations may cause it to hang for up to an
hour at login time.</p>
<p>First, make sure your machine's hostname properly
resolves. To test this, run the following command:</p>
<pre>
ping `hostname`
</pre>
<p>If the command fails, you will either have to add your
fully-qualified hostname to DNS or to <tt>/etc/hosts</tt>.
If you do not have a static IP address, you can append
your hostname to the <tt>localhost</tt> line in
<tt>/etc/hosts</tt>. For example, if your machine's
hostname is <tt>gnome-rocks.mydomain.com</tt>, edit
<tt>/etc/hosts</tt>, and change the line:</p>
<pre>
127.0.0.1 localhost localhost.my.domain
</pre>
<p>To:</p>
<pre>
127.0.0.1 localhost localhost.my.domain gnome-rocks gnome-rocks.mydomain.com
</pre>
<p>Once hostname resolution is working, you must make sure
FAM is properly configured. Since GNOME &gnomever;, FAM
support is enabled in <tt>gnomevfs2</tt> by default. This
causes applications such as Nautilus to attempt a
connection to <tt>127.0.0.1:111</tt> on start up. To
configure FAM, read the <tt>pkg-message</tt> in
<tt>/usr/ports/devel/fam</tt>. If you do not wish to
use FAM, uninstall the <tt>devel/fam</tt> port, then add
the following to <tt>/etc/make.conf</tt> and rebuild
the <tt>devel/gnomevfs2 port</tt>:</p>
<pre>
WITHOUT_FAM=yes
</pre>
<p>Finally, if you have either the TCP or UDP blackhole
sysctl enabled, this may cause GNOME to stall on login.
If, after fixing hostname resolution and configuring FAM,
GNOME still takes a long time to startup, verify the following
sysctls are set to 0:</p>
<pre>
net.inet.tcp.blackhole
net.inet.udp.blackhole
</pre>
</li>
<!-- Q21 -->
<li style="padding-bottom: 0.5em"><a name="q21"></a>
<p><b>How do I install GNOME packages from the GNOME
Tinderbox?</b></p>
<!-- A21 -->
<p>The GNOME Tinderbox is a service that continually builds
<a href="http://www.marcuscom.com/tinderbox/">i386</a>
and <a
href="http://www.marcuscom.com/tinderbox-amd64/">amd64</a>
packages of the GNOME desktop for all supported versions
of FreeBSD. As hardware gets better, more meta-ports may
be added in the future. This service can be a great way
of getting the latest GNOME desktop without having to wait
for everything to build from ports.</p>
<p>To install packages from the GNOME Tinderbox, you must
set the <tt>PACKAGESITE</tt> environment variable to the
correct package directory. The package directory can be
found by clicking on the <em>Package Directory</em> link
on the main Tinderbox page for your architecture. Once you
have the correct package directory, you should append
<tt>/Latest/</tt> to it so you can <tt>pkg_add gnome2</tt>
without knowing any additional version numbers. For example,
if you are installing on i386 FreeBSD 5.4, set
<tt>PACKAGESITE</tt> to the following:</p>
<pre>
http://www.marcuscom.com/tb/packages/5.4-FreeBSD/Latest/
</pre>
<p>If you are installing on amd64 FreeBSD 5.4, set
<tt>PACKAGESITE</tt> to the following:</p>
<pre>
http://www.marcuscom.com/tb/packages-amd64/5.4-FreeBSD/Latest/
</pre>
<p>If you are installing on FreeBSD -STABLE, -CURRENT, or
any release after 4.9 or 5.2, then you can simply
follow the <a href="#q1">instructions</a> on installing
GNOME from packages. However, if you are installing on
FreeBSD 4.9 or 5.2.1, you must first install the
<tt>sysutils/pkg_install</tt> port or package,
then use the following command to install GNOME from
packages:</p>
<pre>
/usr/local/sbin/pkg_add -r gnome2
</pre>
<p>Ade Lovett (ade) offers periodically built amd64 package sets
for all the GNOME 2 meta-ports on his
<a href="http://tinderbox.lovett.com/">package building
server</a>.
</li>
<!-- Q22 -->
<li style="padding-bottom: 0.5em"><a name="q22"></a>
<p><b>How do I add new MIME types to GNOME?</b></p>
<!-- A22 -->
<p>Since GNOME 2.8, MIME types are stored in the new
FreeDesktop shared-mime-info database. However,
gnome-control-center has not been updated to allow
one to easily add MIME types to this database.
Therefore, if applications such as Nautilus complain
that there is no MIME type associated with a particular
file, using the <em>Open With</em> tab under Properties
not work.</p>
<p>New MIME types can be added in one of two places. They
can either be added system-wide for all users, or added
locally on a per-user basis. System-wide MIME types
must be added to either
<tt>${LOCALBASE}/share/mime</tt> or
<tt>${X11BASE}/share/mime</tt>, where as local MIME types
must be added to <tt>~/.local/share/mime</tt>. In
both cases, the procedure is the same.</p>
<p>To define a new MIME type, you must create an
<em>application</em> and a <em>packages</em> file to
describe it. The application file will be named for
the MIME type, and contain its name and a brief
comment describing it. The packages file will list
all the extensions associated with this MIME type
as well as any special file magic that can be used
to identify files without an extension.</p>
<p>For example, if we wanted to add a new local MIME type for
Windows HTML Help files (i.e. .chm files) called
<b>application/x-chm</b>, we would do the
following. First, we would create the directories
<tt>~/.local/share/mime/application</tt> and
<tt>~/.local/share/mime/packages</tt> if they did not
already exist. Then, we create an application file
called <tt>x-chm.xml</tt> that we will place in
<tt>~/.local/share/mime/application</tt>. The file
looks like:</p>
<pre>
&lt;xml version="1.0" encoding="UTF-8"?&gt;
&lt;mime-type
xmlns="http://www.freedesktop.org/standards/shared-mime-info"
type="application/x-chm"&gt;
&lt;comment&gt;Windows HTML Help file&lt;/comment&gt;
&lt;/mime-type&gt;
</pre>
<p>Next, we create a packages file called <tt>chm.xml</tt>
that we will place in
<tt>~/.local/share/mime/packages</tt>. The file looks
like:</p>
<pre>
&lt;xml version="1.0" encoding="UTF-8"?&gt;
&lt;mime-info
xmlns="http://www.freedesktop.org/standards/shared-mime-info"&gt;
&lt;mime-type type="application/x-chm"&gt;
&lt;comment&gt;Windows HTML Help file&lt;/comment&gt;
&lt;glob pattern="*.chm" /&gt;
&lt;/mime-type&gt;
&lt;/mime-info&gt;
</pre>
<p>Once the files have been created, the MIME database
must be updated. To do that, run the command:</p>
<pre>
% update-mime-database ~/.local/share/mime
</pre>
<p>Finally (and unfortunately), you must logout and log
back in to GNOME for the changes to fully take effect.
Nautilus' <em>Properties-&gt;Open With</em> interface can now
be used to associate an application to this MIME type.
Hopefully all of this will be made much easier in a future
GNOME release.</p>
</li>
<!-- Q23 -->
<li style="padding-bottom: 0.5em"><a name="q23"></a>
<p><b>How do I configure GDM for automatic logins?</b></p>
<!-- A23 -->
<p>The GNOME Display Manager (GDM) can be configured to
automatically log a user in when it starts up. To do
that, you must first configure Pluggable Authentication
Module (PAM) support for <em>gdm-autologin</em>. On
5.X and higher, create a <tt>/etc/pam.d/gdm-autologin</tt> file
with the following contents:</p>
<pre>
auth required pam_nologin.so
auth required pam_permit.so
account required pam_unix.so
session required pam_permit.so
</pre>
<p>On 4.X, add the following to
<tt>/etc/pam.conf</tt>:</p>
<pre>
gdm-autologin auth required pam_permit.so
gdm-autologin account required pam_unix.so
gdm-autologin session required pam_permit.so
</pre>
<p>Once PAM is configured to allow GDM automatic logins,
edit <tt>/usr/X11R6/etc/gdm/gdm.conf</tt>, and set
<tt>AutomaticLoginEnable=true</tt>, and
<tt>AutomaticLogin</tt> equal to the username for which
you wish to enable automatic logins. For example:</p>
<pre>
AutomaticLoginEnable=true
AutomaticLogin=marcus
</pre>
<p>That will automatically login the user
<em>marcus</em> as soon as GDM launches.</p>
</li>
<!-- Q24 -->
<li style="padding-bottom: 0.5em"><a name="q24"></a>
<p><b>How do I upgrade from gnome2-lite to the full
GNOME &gnomever; desktop?</b></p>
<!-- A24 -->
<p>The <em>Lite</em> edition does not include all of
the components of the standard GNOME &gnomever; desktop.
If you wish to install the full desktop, first remove
the <tt>gnome2-lite</tt> package, then <a href="#q1">
install</a> the <tt>gnome2</tt> port or package. For
example:</p>
<pre>
# pkg_delete gnome2-lite
</pre>
<p>Then one of the following:</p>
<pre>
# cd /usr/ports/x11/gnome2
# make install clean
</pre>
<p>or:</p>
<pre>
# pkg_add -r gnome2
</pre>
<p>Alternatively, you can install additional GNOME
components individually using either their ports or
packages.</p>
</li>
<!-- Q25 -->
<li style="padding-bottom: 0.5em"><a name="q25"></a>
<p><b>How do I use D-BUS from within the GNOME
Desktop?</b></p>
<!-- A25 -->
<p>If you ever start up an application and see the
following error:</p>
<pre>
WARNING **: Service registration failed.
WARNING **: Unable to determine the address of the message bus
</pre>
<p>It means the application wants to use <a
href="http://www.freedesktop.org/wiki/Software_2fdbus">D-BUS</a>.
D-BUS is a message bus system which allows for
applications to communicate with one another. Many
applications such as Evince, Epiphany, Evolution,
and Liferea are starting to make use of D-BUS's
services.</p>
<p>In order for applications to communicate with D-BUS,
the system message daemon must first be started. To do
this, add the following to <tt>/etc/rc.conf</tt>:</p>
<pre>
dbus_enable="YES"
</pre>
<p>Next, the GNOME Desktop must be started with D-BUS
support. To do this, launch <tt>gnome-session</tt> from
within <tt>dbus-launch</tt>. For example, if you start
GNOME using <tt>~/.xinitrc</tt> or <tt>~/.xsession</tt>,
change the line that execs <tt>gnome-session</tt> to the
following:</p>
<pre>
exec dbus-launch --exit-with-session gnome-session
</pre>
<p>If you use GDM to start GNOME, <a href="#q16">create a
new GDM session</a> with the following parameters:</p>
<pre>
[Desktop Entry]
Encoding=UTF-8
Name=GNOME with D-BUS
Comment=GNOME Desktop with D-BUS support
Exec=/usr/local/bin/dbus-launch --exit-with-session /usr/X11R6/bin/gnome-session
TryExec=/usr/local/bin/dbus-launch
Icon=
Type=Application
</pre>
<p>Call this new GDM session
<tt>gnome-dbus.desktop</tt>.</p>
</li>
<!-- Q26 -->
<li style="padding-bottom: 0.5em"><a name="q26"></a>
<p><b>How do I enable Emacs-style keybindings in GTK+
applications?</b></p>
<!-- A26 -->
<p>By default, GTK+ uses Windows-like keyboard shortcuts
for command line editing. Many UNIX users are more
familiar or more comfortable with Emacs-style shortcuts.
For example, GTK+ uses Control+A to mean, "select all,"
where as Emacs uses Control+A to mean, "put cursor at
the beginning of line."</p>
<p>In order to use Emacs-style keybindings in GTK+
applications, edit <tt>~/.gtkrc-2.0</tt>, and add the
following:</p>
<pre>
gtk-key-theme-name = "Emacs"
</pre>
<p>If you are using the GNOME Desktop, however, this is
not sufficient. You must also change the GConf key
<tt>/desktop/gnome/interface/gtk_key_theme</tt> to
"Emacs" using <b>Applications
&gt; System Tools &gt; Configuration Editor</b>
(<tt>gconf-editor</tt> from the command line).</p>
</li>
<!-- Q27 -->
<li style="padding-bottom: 0.5em"><a name="q27"></a>
<p><b>Why do I only see generic icons in Nautilus?</b></p>
<!-- A27 -->
<p>This typically occurs for users that are not running
the full GNOME Desktop. By default,
<tt>gnome-session</tt> will start
<tt>gnome-settings-daemon</tt> automatically. This
daemon is responsible for setting many GTK+ and GNOME
preferences including the icon theme. If you are not
running the GNOME Desktop, make sure the following has
been added to your X11 session startup preferences:</p>
<pre>
/usr/X11R6/libexec/gnome-settings-daemon &
</pre>
<p>If you are running the full GNOME Desktop, there may be
a problem executing <tt>gnome-settings-daemon</tt>. Try
running
<tt>/usr/X11R6/libexec/gnome-settings-daemon</tt> from
the command line, and check for any errors. Most
problems can be solved by reinstalling
<tt>sysutils/gnomecontrolcenter2</tt>.</p>
</li>
</ol>
&footer;
</body>
</html>