X: try them all

/!\ Assumes FreeBSD 11.4-RELEASE or FreeBSD 12.1-RELEASE with ZFS.

Use ZFS Boot Environments and desktop-installer to test out all major DEs and WMs.

Choosing and installing an X environment - whether a simple WM or complete DE - is a major undertaking that can impact the usablility of your workstation. A simple mistake can break your environment. Getting back to a known good state can be difficult. You want a safety net; a clean way to undo any changes that you later found disastrous, unwanted or just not your preference.

ZFS Boot Environments or "BE"s can cover this. Obviously, you must have installed FreeBSD with ZFS as the boot partition to make use of BEs.

Update Base

For starters, update your base install.

$ su -
(enter root password)
# freebsd-update fetch
# freebsd-update install
# reboot

On a fresh install, your BE name is 'default'. We want to make minimal changes to this BE as this is our known good working state.

# bectl list
(verify you're using the default BE)

Install desktop-installer

Here is the only change we're going to make to the 'default' BE.

# pkg install desktop-installer

Create Namesake BEs

Use 'bectl' to create separate namesake BEs for each environment you wish to try:

# bectl create cinnamon
# bectl create fluxbox
# bectl create gnome
# bectl create icewm
# bectl create kde
# bectl create lxqt
# bectl create lumina
# bectl create Mate
# bectl create windowmaker
# bectl create xfce
# bectl list
(see all those boot environments you just created - check spelling)

Another Precaution

Now this next command is going to confuse you.

# pkg remove desktop-installer

Why do this? Simple. You cloned the namesake BEs while desktop-installer was present in the current BE. The namesake BEs also have desktop-installer. As a precaution to avoid accidentally running desktop-installer on your clean, pristine BE, we remove it. If you trash all your namesake BEs, you still have this one to return home.


All of the above BEs just created are clones of the current, default BE. Because you installed desktop-installer into the current BE, they too have desktop-installer ready to run. Decide which environment to try first, for example 'fluxbox'. Run these commands to activate the fluxbox BE - which takes effect after reboot.

# bectl activate fluxbox
# reboot

After reboot, log back as root and run ...

# desktop-installer

Follow the desktop-installer prompts and choose "Fluxbox". All changes made by desktop installer to your system occur in the 'fluxbox' BE.

To go back to your system as it existed before running desktop-installer ...

# bectl activate default
# reboot

To try out yet another environment - 'xfce' for example, activate the BE namespake and run desktop-installer again.

# bectl activate xfce
# reboot

Log back in as root and run desktop-installer yet again, this time choosing 'xfce'.

Repeat as many times as needed to find the environment that works for you.


When done experimenting, you can delete the unwanted BEs by using bectl destroy -o <be-name>. Any important data you wish to keep must be moved elsewhere before destroying the BE.

Once you've settled on one environment - you can make that your new 'default' BE. First, destroy the old default with 'bectl destroy default'. Use the 'bectl rename <old-be> <new-ne>' to rename the BE. You need not reboot right away. It will take effect the next time you boot.

See Also

You can also apply BEs to make upgrades safer.

Pain Free Base Upgrade


unitrunker/try-them-all (last edited 2020-08-18T04:04:55+0000 by unitrunker)