A Penguin tries out TrueOS, formerly PC-BSD, part I

TrueOS is a rolling-release, desktop-oriented operating system built upon the FreeBSD-CURRENT branch. Its aim is to add desktop-usability, speed and grace to an elephant. It is more a FreeBSD tuning than a fork of it, anyway.

TrueOS is formerly known as PC-BSD; project changed its name, became rolling and mostly dropped pbi’s in late 2016.

I tried out FreeBSD just a few days ago as a desktop environment and concluded:

I am pretty sure (and I know) that FreeBSD is an impressive operating system for servers and I like some of its default security features and of course its filesystem. As a desktop operating system, however, it seems a bit crude and sluggish. Some package dependency problems prevent a flawless installation of the software and it lacks (as far as I know) a proper graphical network manager.

Thus, honestly, my expectations (as a debianized Penguin) were low also for its derivative.


I used TrueOS 2017-02-22 on VirtualBox, because only a x64 image file is provided, and my very old PC (where I do the tests) is… very old (I told you, right?), so 32-bit.

Installation process was really easy and straightforward. The graphical installer asked me for just a couple of settings; leaving everything at default values led to an English operating system, with (Open)ZFS filesystem (GPT and MBR partitioning schemes are available) and a BSD bootloader (GRUB is in the list, but it does not support the boot environments). The installer also offered disk encryption with GELI, so the system would have required a passphrase before booting, and optional “expert” buttons were available to set up various operating system’s aspects as well.

TrueOS installer


During installation, TrueOS configures any connected Ethernet interfaces to use DHCP and provides a screen to Connect to a Wireless Network.


First run

Boot time was a little slower than what I experience with my Debian box.

On the first run, system popped up a configuration tool which allowed me to set language (again?), timezone, root password, user creation and some other system features. I absolutely do not understand why root user creation and optional services’ installation are performed in this stage instead of during the installation.

TrueOS first run

TrueOS first run

As a comparison, new GNOME-based Linux distributions already use or will soon use GNOME Initial Setup, a smart wizard which creates and sets up the user’s environment on the first boot, leaving root/system-wide settings decided install-time; of course to me this is the correct behaviour.

2017-12 update: I have just upgraded my Debianized macbook with Debian 9 Stretch and I see that, even if GNOME features the Initial Setup wizard, Debian doesn’t, because the installer always asks for a user setup. If GIS finds out a system user already exists, it does not popup. What a shame.
On the contrary, Secure-K OS, which I am using, is a live operating system which is based on Debian but features the aforementioned GIS wizard.


First login

The default login manager allowed me to change the desktop and login manager’s keymaps. I was able to set an Italian keyboard with an English-speaking operating system before actually doing the first login, which to me is nice for a single-user desktop environment, after all. On my Debian Jessie, on the contrary, the keymap of GDM is not modifiable by normal users (unless you set up Polkit accordingly) because of course a login manager is possibly multi-user.

TrueOS login manager

Once in, I was greeted by Lumina, the now-default desktop environment of TrueOS. According to the handbook:

The Lumina Desktop Environment is a lightweight, XDG-compliant, BSD-licensed desktop environment focused on streamlining work efficiency with minimal system overhead. It is based on the Qt graphical toolkit and the Fluxbox window manager, and uses a small number of X utilities for various tasks, such as numlockx and xscreensaver.


It does not require any of the desktop implementation frameworks such as DBUS, policykit, consolekit, systemd, or HALD.

I’m wondering if reinventing the wheel is a pro or con. Anyway, let’s move to GNOME Shell now 😉


The GNOME Shell desktop environment

I thus installed the GNOME Shell environment with ease: I opened a virtual terminal, did su -, which worked (my user was already in the wheel group), and only gave:

pkg search gnome3
pkg install gnome3-lite-3.18.0

The Lite edition only includes the minimal components to get a working GNOME 3
Desktop. The user then has to install prefered applications like editor,
web browser or e-mail client.

The GNOME 3 desktop Lite edition successfully installed; because VirtualBox Guest Additions were already there (I tried TrueOS in a VirtualBox environment, remember), I then just performed a logout and relogin selecting GNOME by using the built-in login manager, and nothing else.

While configuring GNOME Shell, I experienced the same issues as when I had tried out FreeBSD: Gnome Tweak Tool package does not list python as dependency, so I had to manually install it first (not a big problem of course). TaskBar extension, Flat Plat theme and Secure-K icons manual installation then followed.

As warned before, Gedit and GNOME Terminal were missing from the default GNOME installation, but anyway they were available in the repository, so their installation was really straightforward.

At the end of the day I managed to use a proper GNOME desktop relying on a BSD-ish operating system with ease. And guys, it was fast! Faster than the FreeBSD mule counterpart of course; I cannot compare it against my Debian box however, because a bare metal installation would be needed.

The result was glorious:

GNOME Shell on TrueOS


XFCE and others

I then tried out XFCE (just for fun) with its Thunar file manager; installation succeded and after a small set up I obtained another hit:

XFCE on TrueOS

Finally I installed Chromium 56 and a lot newer Libre Office release than what I find in my (non-rolling) Debian 8 system:

# pkg search libreoffice | grep ^libreoffice

libreoffice-5.2.5_5 Full integrated office productivity suite
libreoffice-i18n-5.2.5 Localized interface for libreoffice
libreoffice4-4.3.7_14 Full integrated office productivity suite



TrueOS init system

Unlike FreeBSD, which makes use of the traditional BSD-style init (Oh my gosh), TrueOS uses OpenRC, a dependency-based boot init with runlevels and /etc/init.d directory as the base system rc script location.

Nevertheless, the inordinate rc.conf is still full of mixed-meaning statements (judge for yourself and put against Systemd and polished Debian GNU/Linux system configuration files):

# cat /etc/rc.conf

# Auto-Enabled NICs from pc-sysinstall
# Auto-Enabled NICs from pc-sysinstall
ifconfig_em0_ipv6="inet6 accept_rtadv"


Part II

Continue reading: A Penguin tries out TrueOS, part II.


Looking for more BSD-ish road tests?