# Chapter 8. Desktop Environments

## 8.1. Synopsis

While FreeBSD is popular as a server for its performance and stability, it is also well suited for day-to-day use as a desktop. With over 36000 applications available in the FreeBSD ports tree, it is straightforward to build a customized desktop that can run a wide variety of desktop applications. This chapter demonstrates how to install popular desktop environments as well as desktop applications such as web browsers, productivity software, document viewers, and financial software.

Prerequisites:

- Readers of this chapter should already understand how to install either the X Window System or Wayland on FreeBSD.

- Readers are instructed throughout this chapter to install official packages. Refer to the section on using the ports collection to build customized packages from ports.

## 8.2. Desktop Environments

This section describes how to install and configure some popular desktop environments on a FreeBSD system. A desktop environment can range from a simple window manager to a complete suite of desktop applications.

Table 1. Supported desktop environments
Name | License | Package
--- | --- | ---
KDE Plasma | GPL 2.0 or later | x11/kde5
GNOME | GPL 2.0 or later | x11/gnome
XFCE | GPL, LGPL, BSD | x11-wm/xfce4
MATE | GPL 2.0, LGPL 2.0 | x11/mate
Cinnamon | GPL 2.0 or later | x11/cinnamon
LXQT | GPL, LGPL | x11-wm/lxqt

### 8.2.1. KDE Plasma

KDE Plasma is an easy-to-use desktop environment. This desktop provides a suite of applications with a consistent look and feel, a standardized menu and toolbars, keybindings, color-schemes, internationalization, and a centralized, dialog-driven desktop configuration. More information on KDE can be found at the KDE homepage. For FreeBSD-specific information, consult the FreeBSD homepage at KDE.

#### 8.2.1.1. Install KDE Plasma meta package

To install the KDE Plasma meta package with KDE Frameworks, Plasma Desktop and Applications execute:

    # pkg install kde5

#### 8.2.1.2. Minimal KDE Plasma installation

To install a minimal KDE Plasma execute:

    # pkg install plasma5-plasma

| This installation is really minimal. Konsole must be installed separately executing:
    # pkg install konsole

#### 8.2.1.3. Configure KDE Plasma

KDE Plasma uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of KDE Plasma.

Enable D-BUS service in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

To increase messages size execute:

    sysctl net.local.stream.recvspace=65536
    sysctl net.local.stream.sendspace=65536

#### 8.2.1.4. Start KDE Plasma

The preferred KDE Plasma display manager is x11/sddm. To install x11/sddm, execute:

    # pkg install sddm

Enable SDDM service in `/etc/rc.conf` to start at system boot:

    # sysrc sddm_enable="YES"

The keyboard language can be set in SDDM by running the following command (for Spanish, for example):

    # sysrc sddm_lang="es_ES"

A second method to start KDE Plasma is by manually invoking startx(1). For this to work, the following line is needed in ~/.xinitrc:

    % echo "exec dbus-launch --exit-with-x11 ck-launch-session startplasma-x11" > ~/.xinitrc

### 8.2.2. GNOME

GNOME is a user-friendly desktop environment. It includes a panel for starting applications and displaying status, a desktop, a set of tools and applications, and a set of conventions that make it easy for applications to cooperate and be consistent with each other.

#### 8.2.2.1. Install GNOME meta package

To install the GNOME meta package with GNOME Desktop and Applications, execute:

    # pkg install gnome

#### 8.2.2.2. Minimal GNOME installation

To install the GNOME-lite meta package with a GNOME desktop slimmed down for only the basics, execute:

    # pkg install gnome-lite

#### 8.2.2.3. Configure GNOME

GNOME requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount this file system automatically during system startup:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    proc                    /proc           procfs  rw              0       0

GNOME uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of GNOME.

Enable D-BUS service in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

#### 8.2.2.4. Start GNOME

GNOME Display Manager is the preferred display manager for GNOME. GDM is installed as part of the GNOME package.

Enable GDM in `/etc/rc.conf` to start at system boot:

    # sysrc gdm_enable="YES"

A second method to start GNOME is by manually invoking startx(1). For this to work, the following line is needed in `~/.xinitrc`:

    % echo "exec gnome-session" > ~/.xinitrc

### 8.2.3. XFCE

XFCE is a desktop environment based on the GTK+, lightweight and provides a simple, efficient, easy-to-use desktop. It is fully configurable, has a main panel with menus, applets, and application launchers, provides a file manager and sound manager, and is themeable. Since it is fast, light, and efficient, it is ideal for older or slower machines with memory limitations.

#### 8.2.3.1. Install XFCE

To install the XFCE meta package, execute:

    # pkg install xfce

#### 8.2.3.2. Configure XFCE

XFCE requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount this file system automatically during system startup:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    proc                    /proc           procfs  rw              0       0

XFCE uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of XFCE.

Enable D-BUS in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

#### 8.2.3.3. Start XFCE

x11/lightdm is a display manager that supports different display technologies and is a good choice as it is very lightweight, requires little memory usage, and has fast performance.

To install it, execute:

    # pkg install lightdm lightdm-gtk-greeter

Enable lightdm in `/etc/rc.conf` to start at system boot:

    # sysrc lightdm_enable="YES"

A second method to start XFCE is by manually invoking startx(1). For this to work, the following line is needed in `~/.xinitrc`:

    % echo '. /usr/local/etc/xdg/xfce4/xinitrc' > ~/.xinitrc

### 8.2.4. MATE

The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment using traditional metaphors.

#### 8.2.4.1. Install MATE meta package

To install the MATE meta package that includes the MATE Desktop with some extra applications such as text editor, archiver manager, etc., execute:

    # pkg install mate

#### 8.2.4.2. Minimal MATE installation

To install the MATE lite meta package with MATE desktop slimmed down for only the basics, execute:

    # pkg install mate-base

#### 8.2.4.3. Configure MATE

MATE requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount this file system automatically during system startup:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    proc                    /proc           procfs  rw              0       0

MATE uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of MATE. Enable D-BUS in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

#### 8.2.4.4. Start MATE

x11/lightdm is a display manager that supports different display technologies and is a good choice as it is very lightweight, requires little memory usage, and has fast performance.

To install it, execute:

    # pkg install lightdm lightdm-gtk-greeter

Enable lightdm in `/etc/rc.conf` to start at system boot:

    # sysrc lightdm_enable="YES"

A second method to start MATE is by manually invoking startx(1). For this to work, the following line is needed in `~/.xinitrc`:

    % echo "exec dbus-launch --exit-with-x11 ck-launch-session mate-session" > ~/.xinitrc

### 8.2.5. Cinnamon

Cinnamon is a UNIX® desktop which provides advanced innovative features and a traditional user experience. The desktop layout is similar to Gnome 2. The underlying technology is forked from Gnome Shell. The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience.

#### 8.2.5.1. Install Cinnamon

To install the Cinnamon package, execute:

    # pkg install cinnamon

#### 8.2.5.2. Configure Cinnamon

Cinnamon requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount this file system automatically during system startup:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    proc                    /proc           procfs  rw              0       0

Cinnamon uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of Cinnamon. Enable D-BUS in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

#### 8.2.5.3. Start Cinnamon

x11/lightdm is a display manager that supports different display technologies and is a good choice as it is very lightweight, requires little memory usage, and has fast performance.

To install it execute:

    # pkg install lightdm lightdm-gtk-greeter

Enable lightdm in `/etc/rc.conf` to start at system boot:

    # sysrc lightdm_enable="YES"

A second method to start Cinnamon is by manually invoking startx(1). For this to work, the following line is needed in `~/.xinitrc`:

    % echo "exec dbus-launch --exit-with-x11 ck-launch-session cinnamon-session" > ~/.xinitrc

### 8.2.6. LXQT

LXQt is an advanced, easy-to-use, and fast desktop environment based on Qt technologies. It has been tailored for users who value simplicity, speed, and an intuitive interface. Unlike most desktop environments, LXQt also works fine with less powerful machines.

#### 8.2.6.1. Install LXQT

To install the LXQT meta package, execute:

    # pkg install lxqt

#### 8.2.6.2. Configure LXQT

LXQT requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount this file system automatically during system startup:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    proc                    /proc           procfs  rw              0       0

LXQT uses dbus-daemon(1) for a message bus and hardware abstraction. This application is automatically installed as a dependency of LXQT.

Enable D-BUS in `/etc/rc.conf` to start at system boot:

    # sysrc dbus_enable="YES"

#### 8.2.6.3. Start LXQT

The preferred LXQT display manager is x11/sddm. To install x11/sddm, execute:

    # pkg install sddm

Enable SDDM service in `/etc/rc.conf` to start at system boot:

    # sysrc sddm_enable="YES"

The keyboard language can be set in SDDM by running the following command (for example, for Spanish):

    # sysrc sddm_lang="es_ES"

A second method to start LXQT is by manually invoking startx(1). For this to work, the following line is needed in `~/.xinitrc`:

    % echo "exec dbus-launch --exit-with-x11 ck-launch-session startlxqt" > ~/.xinitrc

## 8.3. Browsers

This section describes how to install and configure some popular web browsers on a FreeBSD system, from full web browsers with high resource consumption to command line web browsers with reduced resource usage.

Table 2. Supported browsers
Name | License | Package | Resources Needed
--- | --- | --- | ---
Firefox | MPL 2.0 | www/firefox | Heavy
Chromium | BSD-3 and others | www/chromium | Heavy
Iridium browser | BSD-3 and others | www/iridium-browser | Heavy
Falkon | MPL 2.0 | www/falkon-qtonly | Heavy
Konqueror | GPL 2.0 or later | x11-fm/konqueror | Medium
Gnome Web (Epiphany) | GPL 3.0 or later | www/epiphany | Medium
qutebrowser | GPL 3.0 or later | www/qutebrowser | Medium
Dillo | GPL 3.0 or later | www/dillo2 | Light
Links | GPL 2.0 or later | www/links | Light
w3m | MIT | www/w3m | Light

### 8.3.1. Firefox

Firefox is an open source browser that features a standards-compliant HTML display engine, tabbed browsing, popup blocking, extensions, improved security, and more. Firefox is based on the Mozilla codebase.

To install the package of the latest release version of Firefox, execute:

    # pkg install firefox

To instead install Firefox Extended Support Release (ESR) version, execute:

    # pkg install firefox-esr

### 8.3.2. Chromium

Chromium is an open source browser project that aims to build a safer, faster, and more stable web browsing experience. Chromium features tabbed browsing, popup blocking, extensions, and much more. Chromium is the open source project upon which the Google Chrome web browser is based.

To install Chromium, execute:

    # pkg install chromium

| The executable for Chromium is /usr/local/bin/chrome, not /usr/local/bin/chromium.

### 8.3.3. Iridium browser

Iridium is a free, open, and libre browser modification of the Chromium code base, with privacy being enhanced in several key areas. Automatic transmission of partial queries, keywords, metrics to central services is inhibited and only occurs with consent.

To install Iridium, execute:

    # pkg install iridium-browser

### 8.3.4. Falkon

Falkon is a new-ish and very fast QtWebEngine browser. It aims to be a lightweight web browser available on all major platforms. Falkon has all standard functions someone can expect from a web browser. It includes bookmarks, history (both also in sidebar) and tabs. Beyond that, AdBlock plugin can block ads, Click2Flash can block Flash content and SSL Manager can edit the local CA Certificates database.

To install Falkon, execute:

    # pkg install falkon

### 8.3.5. Konqueror

Konqueror is more than a web browser as it is also a file manager and a multimedia viewer. It supports WebKit, a rendering engine used by many modern browsers including Chromium, as well as its own KHTML engine.

To install Konqueror, execute:

    # pkg install konqueror

### 8.3.6. Gnome Web (Epiphany)

Gnome Web (Epiphany) is a web browser designed to be as lightweight and fast as possible, at the expense of many of the features found in other browsers.

To install Gnome Web (Epiphany), execute:

    # pkg install epiphany

### 8.3.7. qutebrowser

Qutebrowser is a keyboard-focused browser with a minimal GUI. It is based on Python and PyQt5 and free software, licensed under the GPL.

To install qutebrowser, execute:

    # pkg install qutebrowser

### 8.3.8. Dillo

Dillo aims to be a multiplatform alternative browser that is small, stable, developer-friendly, usable, fast, and extensible. This new, experimental version of Dillo is based upon FLTK toolkit, rather than GTK1, and has been substantially rewritten.

To install Dillo, execute:

    # pkg install dillo2

### 8.3.9. Links

A lynx-like web browser with text and graphics modes with many features like displaying tables, menus, etc.

To install Links, execute:

    # pkg install links

### 8.3.10. w3m

w3m is a pager/text-based web browser. It is a similar application to Lynx, but it has several features Lynx does not have like rendering tables and rendering frames.

To install w3m, execute:

    # pkg install w3m

## 8.4. Development tools

This section describes how to install and configure some popular development tools on a FreeBSD system.

Table 3. Supported development tools
Name | License | Package | Resources Needed
--- | --- | --- | ---
Visual Studio Code | MIT | editors/vscode | Heavy
Qt Creator | QtGPL | devel/qtcreator | Heavy
Kdevelop | GPL 2.0 or later and LGPL 2.0 or later | devel/kdevelop | Heavy
Eclipse IDE | EPL | java/eclipse | Heavy
Vim | VIM | editors/vim | Light
Neovim | Apache 2.0 | editors/neovim | Light
GNU Emacs | GPL 3.0 or later | editors/emacs | Light

### 8.4.1. Visual Studio Code

Visual Studio Code is a type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools.

To install Visual Studio Code, execute:

    # pkg install vscode

### 8.4.2. Qt Creator

Qt Creator is a cross-platform IDE (integrated development environment) tailored to the needs of Qt developers. Functionalities included with Qt Creator are:

- code editor with C++, QML and ECMAscript support;

- rapid code navigation tools;

- static code checking and style hints as you type;

- context sensitive help;

- visual debugger;

- integrated GUI layout and forms designer.

To install Qt Creator, execute:

    # pkg install qtcreator

### 8.4.3. kdevelop

Open source, feature-full, plugin extensible IDE for C/C++ and other programming languages. It is based on KDevPlatform and the KDE and Qt libraries, and it has been under development since 1998.

To install kdevelop, execute:

    # pkg install kdevelop

### 8.4.4. Eclipse IDE

The Eclipse Platform is an open extensible IDE for anything and yet nothing in particular. The Eclipse Platform provides building blocks and a foundation for constructing and running integrated software-development tools. The Eclipse Platform allows tool builders to independently develop tools that integrate with other people’s tools.

To install Eclipse IDE, execute:

    # pkg install eclipse

### 8.4.5. Vim

Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.

Vim is often called a "programmer’s editor," and so useful for programming that many consider it an entire IDE. It is not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files.

To install Vim, execute:

    # pkg install vim

### 8.4.6. Neovim

Neovim is an aggressive refactor of editors/vim. It represents a complete overhaul of the codebase with many sanity improvements, including sensible defaults, a built-in terminal emulator, asynchronous plugin architecture, and powerful APIs designed for speed and extensibility. It retains full compatibility with almost all Vim plugins and scripts.

To install Neovim, execute:

    # pkg install neovim

### 8.4.7. GNU Emacs

GNU Emacs is an extensible, customizable, free/libre text editor. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.

To install GNU Emacs, execute:

    # pkg install emacs

## 8.5. Desktop office productivity

When it comes to productivity, users often look for an office suite or an easy-to-use word processor. While some desktop environments like KDE Plasma provide an office suite, there is no default productivity package. Several office suites and graphical word processors are available for FreeBSD, regardless of the installed desktop environments.

This section demonstrates how to install the following popular productivity software and indicates if the application is resource-heavy, takes time to compile from ports, or has any major dependencies.

Table 4. Supported Desktop office productivity suites
Name | License | Package | Resources Needed
--- | --- | --- | ---
LibreOffice | MPL 2.0 | editors/libreoffice | Heavy
Calligra Suite | LGPL and GPL | editors/calligra | Medium
AbiWord | GPL 2.0 or later | editors/abiword | Medium

### 8.5.1. LibreOffice

LibreOffice is a free software office suite developed by The Document Foundation. It is compatible with other major office suites and available on a variety of platforms. It is a rebranded fork of Apache OpenOffice and includes applications found in a complete office productivity suite: a word processor, spreadsheet, presentation manager, drawing program, database management program, and a tool for creating and editing mathematical formulæ. It is available in a number of different languages and internationalization has been extended to interfaces, spell checkers, and dictionaries. More information about LibreOffice can be found at libreoffice.org.

To install LibreOffice, execute:

    # pkg install libreoffice

The LibreOffice package comes by default only in English. To have a localized version of LibreOffice it is necessary to install a language pack. For example, for the version localized in Spanish, it is necessary to install the package editors/libreoffice-es with the command:

    # pkg install libreoffice-es

### 8.5.2. Calligra

The KDE Plasma desktop environment includes an office suite which can be installed separately from KDE Plasma. Calligra includes standard components that can be found in other office suites. Words is the word processor, Sheets is the spreadsheet program, Stage manages slide presentations, and Karbon is used to draw graphical documents.

To install Calligra, execute:

    # pkg install calligra

### 8.5.3. AbiWord

AbiWord is a free word processing program similar in look and feel to Microsoft® Word. It is fast, contains many features, and is user-friendly.

AbiWord can import or export many file formats, including some proprietary ones like Microsoft® .rtf.

To install AbiWord, execute:

    # pkg install abiword

## 8.6. Document Viewers

Some new document formats have gained popularity since the advent of UNIX® and the viewers they require may not be available in the base system. This section demonstrates how to install the following document viewers:

Table 5. Supported Document Viewers
Name | License | Package | Resources Needed
--- | --- | --- | ---
Okular | GPL 2.0 | graphics/okular | Heavy
Evince | GPL 2.0 | graphics/evince | Medium
ePDFView | GPL 2.0 | graphics/epdfview | Medium
Xpdf | GPL 2.0 | graphics/xpdf | light
Zathura | Zlib | graphics/zathura | light

### 8.6.1. Okular

Okular is a universal document viewer, part of the KDE Plasma project.

Okular combines excellent functionality with the versatility of supporting different kind of documents, like PDF, Postscript, DjVu, CHM, XPS, ePub and others.

To install Okular, execute:

    # pkg install okular

### 8.6.2. Evince

Evince is a document viewer for multiple document formats including PDF and Postscript. Part of the GNOME project. The goal of evince is to replace document viewers such as ggv and gpdf with a single, simple application.

To install Evince, execute:

    # pkg install evince

### 8.6.3. ePDFView

ePDFView is a lightweight PDF document viewer that only uses the Gtk+ and Poppler libraries. The aim of ePDFView is to make a simple PDF document viewer, similar to Evince but without using the GNOME libraries.

To install ePDFView, execute:

    # pkg install epdfview

### 8.6.4. Xpdf

For users that prefer a small FreeBSD PDF viewer, Xpdf provides a light-weight and efficient viewer which requires few resources. It uses the standard X fonts and does not require any additional toolkit.

To install Xpdf, execute:

    # pkg install xpdf

### 8.6.5. Zathura

Zathura is a highly customizable and functional document viewer. It provides a minimalistic and space saving interface as well as an easy usage that mainly focuses on keyboard interaction.

To install zathura, with PDF support, execute:

    # pkg install zathura zathura-pdf-mupdf

Additionally, one can install graphics/zathura-pdf-poppler for alternative PDF support, graphics/zathura-ps for PostScript support, graphics/zathura-djvu for DjVu support, and graphics/zathura-cb for comic book support.

## 8.7. Finance

For managing personal finances on a FreeBSD desktop, some powerful and easy-to-use applications can be installed. Some are compatible with widespread file formats, such as the formats used by Quicken and Excel.

This section covers these programs:

Table 6. Supported Finance programs
Name | License | Package | Resources Needed
--- | --- | --- | ---
KMyMoney | GPL 2.0 | finance/kmymoney | Heavy
GnuCash | GPL 2.0 and GPL 3.0 | finance/gnucash | Heavy

### 8.7.1. KMyMoney

KMyMoney is a personal finance application created by the KDE community. KMyMoney aims to provide the important features found in commercial personal finance manager applications. It also highlights ease-of-use and proper double-entry accounting among its features. KMyMoney imports from standard Quicken QIF files, tracks investments, handles multiple currencies, and provides a wealth of reports.

To install KMyMoney, execute:

    # pkg install kmymoney

### 8.7.2. GnuCash

GnuCash is part of the GNOME effort to provide user-friendly, yet powerful, applications to end-users. GnuCash can be used to keep track of income and expenses, bank accounts, and stocks. It features an intuitive interface while remaining professional.

GnuCash provides a smart register, a hierarchical system of accounts, and many keyboard accelerators and auto-completion methods. It can split a single transaction into several more detailed pieces. GnuCash can import and merge Quicken QIF files. It also handles most international date and currency formats.

To install GnuCash, execute:

    # pkg install gnucash

Last modified on: March 9, 2024 by Danilo G. Baio

Prev
Home
Next