X: try them all
Assumes FreeBSD 11.4-RELEASE or FreeBSD 12.1-RELEASE with ZFS.
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.
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)
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)
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 ...
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.
You can also apply BEs to make upgrades safer.