Desktop, light setup
After installing and configuring the base system, here are instructions on how to get a light desktop up and running quickly. The instructions provided show how to get x11/xdm , x11/slim or x11/wdm login managers working. This example on the window manager fluxbox provides insight on how to install other window managers.
Contents |
Install
The following input is sufficient to install the programs for a running Desktop system:
% pkg install xorg fluxbox
Alternatively, ports may be installed. xdm and wdm login managers are other options.
Desktop login
Basic session managers are XDM, WDM, and slim. KDM and GDM login manager installations are not covered here, because they are part of base windowmanagers with heavy dependencies.
To proceed with your choice of desktop login...
XDM
To configure xdm to start up on boot, edit /etc/ttys and change the option on line ttyv8 from off to on:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm on secure
The secure option allows logging in to the root console without a password from single user mode.
Then set up .xsession in each home folder, with owner permissions to read and execute, chmod 400 .xsession
.xsession requires the minimum of:
#!/bin/sh exec /usr/local/bin/<windowmanager> exec $1
If problems occur, check /var/log/xdm.log
% less /var/log/xdm.log
Customization
Customization files for XDM are located in /usr/local/lib/X11/xdm/.
The background image can be changed by using a background setting command from Xsetup_0. xsetroot can change the background color, but for images it is limited in the file types it can display. To overcome this, use graphics/hsetroot or sysutils/nitrogen .
Example of xsetroot:
xsetroot -solid seagreen
For more information, see XFree Local Multi-User HOWTO: Using xdm and FreeBSD Handbook: XDM Configuration Files.
Console
Without a properly set .xinitrc in each home folder, the window manager will fail to load from that console. Add exec <window manager>] to the .xinitrc file, without an &. Here is an example of the minimum needed .xinitrc:
#!/bin/sh exec /usr/local/bin/fluxbox exec $1
Make sure the owner file permissions of .xinitrc are set to read.
% chmod 400 .xinitrc
Finally, type startx.
WDM
Here is how to set up Wings Display Manager's (WDM). x11/WDM is not functional on x64 architecture.
To enable WDM, edit line ttyv8 in file /etc/ttys to:
ttyv8 "/usr/local/bin/wdm -nodaemon" xterm on secure
It's configuration files are at /usr/local/lib/X11/wdm/.
Make sure the file /usr/local/lib/X11/wdm/wdm-config lists your window manager on the line DisplayManager*wdmWm:. The default window manager for WDM is windowmaker:
DisplayManager*wdmWm: wmaker:afterstep:blackbox:ctwm:enlightenment:fvwm:fvwm2:fvwm95:olvwm:qvwm:tvtwm:jwm
After rebooting, click the option on WDM's login screen, before logging in.
Slim
x11/slim is a practical choice for a login manager, unless remote login access is needed. To enable slim, edit the line in /etc/ttys to :
ttyv8 "/usr/local/bin/slim -nodaemon" xterm on secure
Slim requires a *.desktop file, typically in /usr/local/share/xsessions/. This directory is specified in /usr/local/etc/slim.conf next to the sessiondir option. If the directory doesn't exist, create it with the mkdir -p command.
Example of a minimal /usr/local/share/xsessions/fluxbox.desktop file:
[Desktop Entry] Name=FLUXBOX Exec=fluxbox
.desktop files are in xdg-style, demonstrated at Desktop Entry Specification.
Customization
To change the background, look into /usr/local/share/slim/themes/default/ [optionally create a backup file of background.jpg] then copy your choice background image to /usr/local/share/slim/themes/default/background.jpg
% cd /usr/local/share/slim/themes/default % mv background.jpg background.bk.jpg % cp [pathname/your file] background.jpg
To create multiple themes, you may create a new directory under themes/ that is similar to the default/ directory, then specify this themes subdirectory from /usr/local/etc/slim.conf. If you do this, be sure each used folder ends off with three files named: slim.theme, background.jpg and panel.png.
Add or edit your themes to slim.conf:
#current theme, use comma separated list to specify a set to randomly choose from current_theme default,mytheme
To create themes directories:
% cd /usr/local/share/slim/themes % cp -R default mytheme
Then edit the mytheme/ files to your liking. For more details of slim configuration, type either:
% man slim
% less /usr/local/etc/slim.conf.sample
Desktop programs
Use the window manager's configuration files or .xinitrc to start up desktop programs.
Xorg
Xorg is now mostly auto-configured. xorg.conf is no longer used, but it is replaced by the directory /usr/local/etc/X11/xorg.conf.d/ for specific configurations only. The syntax of a configuration filename in this directory is #-<customname>.conf, such as 10-nvidia.conf.
See Configuring X and the FreeBSD Handbook: The X Window System for more information.
Enabling hardware
To enable the mouse and keyboard, considering that recent versions of xorg are set to use autodetection by default.
Add the following to /etc/rc.conf:
dbus_enable="YES"
For using devfs, add to /etc/fstab:
devfs /dev devfs rw 0 0 # May not be necessary, since devfs automatically uses /dev fdescfs /dev/fd fdescfs rw 0 0 # May not be necessary, since devfs automatically loads it
Programs may have to be built without the hal option. See the manpages: devd(), devfs(), devfs.conf(), devfs.rules(), and fdescfs().
For more advanced topics on hardware configuration, see Hardware Configuration, Audio/Video.
Obsolete configuration reference
This is for those who are familiar with older versions of FreeBSD.
Manually setting the option in xorg.conf to the next line enabled the mouse and keyboard:
Option "AllowEmptyInput" "False"
/etc/rc.conf:
hald_enable="YES" #this option can be replaced with FreeBSD's native program devd, if set in xorg-server.
For a custom xorg configuration file:
% Xorg -configure
After testing this configuration, xorg.conf.new can be copied to /etc/X11/xorg.conf:
% cp /root/xorg.conf.new /etc/X11/xorg.conf
Rescue configuration
If an error is made, there are convenient options to fix the problem from the console, without requiring the install disc. The availability of some options depend on the situation.
One solution is to reboot into single user mode, then remount the drive using mount -u /. Other partitions required for start-up may have to manually be mounted.
Some window managers will let you log in to the console line, by entering "console" as the user, depending on it's configuration file, as the login user name and the root password.
<ctrl>-<alt>-<functionkey> will pull up a virtual console, where you can log in to fix configuration errors. This uses either the sc(4)() or vt(4)() driver. The sc driver doesn't work with all video cards.
References
- FreeBSD 6 Unleashed (2006)
- Various FreeBSD and other related forums: https://forums.freebsd.org/
- FreeBSD and programs documentation