Here I'm republishing an old blog post of mine originally from December 2016. The article has been slightly improved.
Background: PC-BSD was one of the original desktop-oriented projects based on FreeBSD. iXsystems started sponsoring it and it grew many interesting and original features. At some point it was decided, that some of these features would be great to have on server systems, too. The variant without a graphical desktop was named TrueOS. Some time later, the team thought about supporting ARM-based devices, too, and the name PC-BSD was deemed not well fit for that. In the meantime, a new desktop environment focused on BSD and ZFS had been developed, too: Lumina. The people behind PC-BSD decided to start over, creating a new FreeBSD desktop spin focusing on Lumina and called it - TrueOS (which led to quite a bit of confusion).
The project was very ambitious and I was not alone in pointing out quite a few shortcommings. Eventually iX pulled the plug. There has been a short-lived successor that goes by the name of _Project Trident_ - but before too long, the team went on to convert that to a new Linux (!) distribution instead. While it's still "active" as of 03/21, it has never gained much traction and is basically rotting slowly. Another desktop spin, _GhostBSD_, has rebased everything from vanilla FreeBSD to TrueOS before the latter's demise. GhostBSD has been an active project for many years and still continues to maintain and improve what they inherited from TrueOS.
Still the turn of events described here basically meant the end of the PC-BSD line of systems, which kind of makes the following post mostly relevant for historical purposes only. I think that newer projects could probably learn something from it, though.
My journey into the *nix world has not been a completely straight-forward one. I've used Linux (various distributions) exclusively for quite some time before I felt that more and more things were heading in the wrong direction. Sure, it's all open source and I could do things my own way. In fact I did roll my own distribution for a short period of time but this was more because I wanted to experiment with things. And while there are examples (like Void Linux) that prove that a single person can keep a serious distro running for a while, I'm far from having the knowledge nor the time (or even the urge) to do so. But even if I had all that there's something wrong with parts of the Linux ecosystem and community that I don't feel is fixable at the moment.
For those reasons I was pretty open to new things when I encountered actual FreeBSD servers at work. I came to love the *BSD way of doing things and used FreeBSD and OpenBSD systems on laptops and in VMs to play around with. In January I decided to put PC-BSD on my main machine but had to leave it for Linux again pretty soon, for various reasons. Over the time I really wanted my BSD back and get rid of the Linux trouble (that used not to bug me so much as I knew nothing better). I've written about my experience with PC-BSD and Linux again in my previous post in some detail. The time to give a FreeBSD-based desktop another try came when TrueOS was released. So that's what this article is about: Using TrueOS as my daily driver for some months!
Back and forth: Linux and *BSD
When I heard out about TrueOS sometime in July, I was very curious how different it would be from PC-BSD. So I downloaded the ISO and installed the OS on my primary machine (no risk no fun, right?). The installation went as smooth as it did with PC-BSD. My hardware was supported. It seemed like a good start and I thought that I'd probably only need a few weeks to adapt to Lumina and be a happy TrueOS user. That was a bit too optimistic. My experience with this system really is a mixed bag. It's not all bad nor is it all great. There's light and shadow. And to be honest: While it's pretty much ok as a daily driver (it's mostly stable and most features are there), I think it feels quite "beta" currently.
TrueOS installation: Simple but shiny (PNG)
I tried to post problems that I had with it on the PC-BSD forums but didn't have too much luck with that. One post has not had a single answer (after several month now). Another was hijacked by somebody else and then closed by a moderator even though my issues (being the thread starter!) had not been resolved. While I originally wanted to open bug reports after getting into the community on the forums, that experience didn't really help holding up my motivation. Yes, I know: I should just have reported things in the proper place. But I'm a person who wants to have a deeper relationship with his OS of choice. I don't just want to use it. I want to be part of it! For that reason it's important to me to get into the community around an OS early on. For me this did not work out on TrueOS. I didn't feel like I was getting anywhere on the forums and I didn't succeed in feeling at home on the OS level, either.
But that's personal stuff. Let's start with going into a bit of detail on some areas of the system, shall we?
Most of the bad points that I mentioned for PC-BSD (see the previous post linked to above) were still valid: Startup time was a bit long, the system is rather heavy on the battery, I didn't find a way to log in multiple users graphically, etc. But there's more. I think that the single most important problem that TrueOS suffers from is the fact that _graphics acceleration_ has been broken for quite some time now. It worked when I first installed the system. Up to the update on 9/11 things were fine, too, but the next one broke it and while I hoped that it'd be fixed soon, I've waited for that ever since.
A freshly installed Lumina desktop (PNG)
So if I wanted to watch a video I had to reboot and select the boot environment from 9/11. This also affected my work with VirtualBox. Probably thanks to that issue I could no longer switch my VMs to full-screen mode which was rather annoying. So I often had to reboot and use an old BE to be able to actually use my PC as intended. The fact that after a Lumina update the old BE would no longer be able to show the panel didn't help either... 😦 I've come to love BSD and want it to succeed. Only for that reason I've been tolerating things like that (which mean major inconvenience, honestly) for quite some time. But certainly you don't attract many new BSD users with a system that has such issues! I really, really hope that this one gets fixed soon...
Lumina comes with a monitor configuration utility which is an excellent program - at least in theory. What makes it great is that it not only allows you to set the resolution. It also offers a simple and elegant GUI solution to manage multiple monitors! Great stuff, I love that. My primary PC is a laptop that I mostly use at home with an external monitor instead of the laptop screen. The monitor configuration allows me to add the external monitor and deactivate the other one. I've played with this a bit and it all seems very nice and mature.
Adding a second screen in the 'Lumina Monitor Configuration' (PNG)
However... It simply won't keep the settings! That means it was always 8 clicks after each system start before my monitor setup was the way that I needed it and I could begin to do some work. I have no idea why it won't save the settings and remember them next time. This is completely unnecessary.
Screen resolution configuration (PNG)
I've also noticed a little consistency issue which is that most of the Lumina desktop is localized properly (for the screenshots here I've used an English system, though!). The monitor control for example isn't. I speak English and thus I have no problems using it but it makes the tool feel a bit out of place.
I've tried to become friends with Lumina's file manager, _Insight_. It didn't feel right at the beginning and sometimes it decided to dump core when I accessed a new directory. But I finally kind of got used to it after some time.
The old Insight file manager with the side bar (PNG)
Then another update happened... Yeah, the new git functionality may be nice. But guys, really... What did you do to that sidebar with the icons for copy, cut, paste, etc? The one thing that made me accept Insight was gone all of the sudden and I have been unable to get it back! I must admit that it's probably not _that_ bad of a loss as shortcuts were finally implemented. Still it didn't take that much space and for people who don't use shortcuts (I've seen a lot of such people!) it still was a very nice feature. No idea why it was dropped entirely instead of making it opt-in. Same thing about the "action buttons" and the "show thumbnails" option. Both are simply gone.
The new Insight with dual column mode (PNG)
Another update added a dual column mode. That's pretty useful IMO. But it happened after I stopped using TrueOS as my main operating system.
This is one aspect where TrueOS really shines. Initially it felt quite empty and unpopulated but some of the updates added more and more options to it. _SysAdm_ is a middleware that exposes an API to manage FreeBSD based machines locally or remotely.
The 'SysAdm' client for the local machine (PNG)
I'll be keeping an eye on this and look forward to install it on a FreeBSD server and try out remote management! But even the local client comes with a very nice GUI that has a lot of functionality now. Thanks and great work on that one TrueOS team!
TrueOS uses the _Fluxbox_ window manager with Lumina. Some people like it, some people don't. I'm on the side of those who don't but that's not my main problem. People who've used *nix systems for any period of time probably know more than one wm and simply switch over to one that they like. The trouble is: It looks like Fluxbox is not meant to be replaced when you run Lumina! There's no easy way to configure a different wm and in fact I didn't find anything at all.
Worse: There are standards (the _ICCCM_ in case of window managers). Following standards makes sense. Fluxbox doesn't follow them. Window managers are meant to let other WMs "take over" if you run _your-favorite-wm --replace_ on the console. Fluxbox won't cooperate which is very unfortunate. To replace it with sawfish (my current WM of choice) I need to kill fluxbox first and then start the other WM... That's not cool.
However I can fully understand that the small team that TrueOS to us concentrates on supporting only one WM. Using sawfish I've experienced repeatable crashes (especially with Insight) where the system proved to be stable otherwise. And there's another reason not to take this point too seriously: Fluxbox is not here to stay. Ken Moore has stated that he'll write his own window manager to work perfectly with Lumina. So at some point Fluxbox will be replaced. I'm looking forward to this and hope that it'll be a better replacement.
One of the core features of TrueOS is its native Lumina desktop. It was written from scratch, is BSD licensed and one of its design goals is being light-weight. Sounds excellent, doesn't it? You bet it does! But does it live up to the high expectations? Like the whole TrueOS project its a bit of a mixed bag... First: A permissively licensed "BSD first" desktop is a dream come true. And I'm all for it being light-weight! The only problem here is... it isn't.
It probably depends on what you compare it to. Sure thing: Compare it to KDE and you _will_ find Lumina pretty light-weight. Then again - good luck finding any *nix DE that's even more heavy-weight than KDE is! If you compare Lumina to other desktops that state that they're light-weight (be it Xfce, LXDE or even EDE), it clearly is quite a bit on the heavy side. In fact that's no surprise due to the choice of toolkit that was made. Qt is the fattest toolkit out there. It does have its good parts, but being light-weight is nowhere near its strong points. However KDE (which uses Qt, too) has been the default DE of PC-BSD before and so Qt is what the TrueOS team knows best and that makes this toolkit a sensible choice despite the downsides.
Lumina panel configuration: Nice and flexible! (PNG)
What Lumina does very well is being flexible. You can configure the menu, the panels and just about everything to your liking. And you can do so using the GUI instead of having to edit config files. Even better: It's pretty easy to do and after playing around with it a little you soon know how things work and where they are configured. Two thumbs up for that! I just miss the ability to right-click the panel to configure it. That's probably the first thing newcomers try as everybody expects it to work.
Lumina is a desktop environment with lots of potential that already works quite well. It isn't my favorite desktop and it does have some issues right now. However it works well and there are definitely people who prefer it over any other DE. And I'm pretty confident that it will continue to improve.
PC-BSD used a modified version of _GRUB 2_. While that program certainly works, it's not exactly my cup of tea. As stated above, I like light-weight software. And a bootloader that bears _Grand_ in its name (and rightfully so) is not really my first choice. It's alright if you need to dual-boot Linux or something but for just booting FreeBSD its more than I want.
TrueOS's Bootloader - it supports BEs! (PNG)
For TrueOS, the team has decided to migrate back to the default FreeBSD bootloader after years of using GRUB. An excellent choice! Especially since it can now also use Boot Environments.
When it comes to display managers, I've come to like LXDM on Linux. Unfortunately it uses some linuxisms in its code and for that reason could not be ported to *BSD easily. TrueOS offers another gem in this regard: _PCDM_. It's a program that lets you log in conveniently, providing all the features that you expect from a decent display manager - and more.
TrueOS's display manager: PCDM (PNG)
In PC-BSD I remember that I was initially unable to log in due to using a character that's on the German keyboard but not on the US one. With TrueOS I no longer experienced such problems. On the contrary: I learned an alternative keyboard layout a while ago that offers better ergonomics and lets me type lots of foreign characters, too (e.g. the whole Greek alphabet). With PCDM I can use it to log in (allowing for nice, strong passwords, yay!).
Keyboards, layouts and ergonomics pt. 2 (2015 post)
Changing the keyboard layout in PCDM (PNG)
I don't have a 4k monitor, but it's nice to see that PCDM is prepared for 4k already. The display manager lets you select various DPI options so that you don't have the feeling of sluggish mouse movement when you use high resolutions.
PCDM's DPI options: Ready for 4k (PNG)
The only thing that bugged me quite a bit: The display manager was only displayed on the first screen, forcing me to open my laptop again to log in. I suggest to just show the login manager on every screen; this would be much more convenient.
The update mechanism of TrueOS has some advantages over the common desktop update methods. If you begin an update, it only fetches all packages and lets you continue to work in your current session. When you are about to shut down the system, it then asks if it should install the updates. Accept that and the system will shutdown the desktop and graphical mode and start updating. While it is doing that it'll tell you not to turn off the computer and to change to the second TTY to see the details of the update process. When it's done, the machine is powered down (or restarted if you chose that) like normal.
But the really special thing is how the update is performed. A new Boot Environment is created, _all_ packages are deinstalled and then reinstalled in their latest version. This has two advantages: It is the cleanest possible approach and it means that you can go back to any previous state by just selecting the respective BE! If you plan to do that, be sure to configure how many BEs the TrueOS update system keeps. Otherwise it will trash old ones (which may be a sensible default for space reasons).
What's the downside? TrueOS is not a tiny operating system. Downloading all the packages with every update (can anybody say _Noto fonts_?) will require quite a few bits going over the wire. If you're in a place with a slow connection, or worse, you have a monthly limit of how much you can download, then TrueOS's way of doing things might not be for you.
Ah, the bliss of a new init system! I've waited quite a while for that to happen. And when does it happen? About a week after I replaced TrueOS on my computer with another BSD operating system, Kris Moore (founder of PC-BSD/TrueOS) announces that they're in the middle of switching over to OpenRC!
Truth be told: I didn't expect this. When I heard Kris talk about _nosh_ on the BSDNow show, I suspected that they might build that into PC-BSD. Then I had the impression that the team favored _relaunchd_ (now renamed to jobd). And now it looks like _OpenRC_ has actually landed!
Nosh homepage (Internet Archive)
I'm fine with that as I already know it from Gentoo Linux. While I think it would have been interesting to see one of the other options get some attention, it now looks like OpenRC becomes the most significant alternative for people who don't want to use _Systemd_! Maybe that's not a bad thing at all.
TrueOS starting using OpenRC! (PNG)
While I don't think that FreeBSD is going to adopt this change in the forseeable future (the BSD init system works well for servers after all) it totally makes sense to speed up the starting process for desktop machines. Thank you, TrueOS team! This takes care of another issue where FreeBSD just couldn't compete with Linux.
The applications that come with TrueOS are pretty standard now. Initially the team provided some Qt5 alternatives like a browser I had never heard of and such. It's a good decision to provide applications that people know but I also like the spirit of trying out new things and see if they work out. TrueOS in general is even more open to experiments than PC-BSD was - and even that was quite the opposite of a boring OS!
Obviously TrueOS has a new name. There are people who don't like it. Some claim that it can be mistaken for another OS. But let's be honest: Does "the average user" even know that there's (or was) _Tru64 UNIX_? Most likely not. And people who know that it exists probably have enough *nix knowledge to tell the two apart. Other people criticise that it's a bit of a big-mouthed name. Maybe it is but I don't really care so much about that. In times of PC-BSD the server variant was already called TrueOS and for their new system the team wanted to rebrand the project without using a completely unknown name and so TrueOS actually was a sensible choice.
The biggest difference between the two is that PC-BSD was built from FreeBSD releases originally and ultimately headed towards the -STABLE branch. TrueOS takes this one step further and builds upon -CURRENT! This means that you always get the latest drivers and newest stuff but you may have to live with problems like broken graphics acceleration...
Another difference is that while PC-BSD began its life supporting KDE and later leaving the user a choice between several desktop environments, TrueOS concentrates on the Lumina desktop. Some other DEs can be installed if you wish, but Lumina definitely is the standard.
And then there's the newest addition to the project, which is _TrueOS Pico_, a variant meant to build ARM based thin-clients as well as a "Pico Server". A very intriguing concept!
TrueOS Pico (Internet Archive)
Looking back on more than three months of daily TrueOS usage, I must say that I went through highs and lows. There's the painful moments where I had to grind my teeth and force myself to carry on. And then the opposite happened and I come across something that's just amazing. All of that makes it not too easy to draw a clear conclusion. TrueOS is evolving at a very fast pace and at the present time my conclusion is that it is a unique OS that *might* work for you. There are operating systems where that's more likely than with TrueOS but I'd bet that they are also far less innovative.
The TrueOS project is relatively young. I wouldn't bet on even the team leader to know exactly where it's heading. This is a good thing for us all, even for people who do not plan to use TrueOS. Why? Because it is not afraid to try new things and by doing so will continue to push FreeBSD forward in the desktop field!
PC-BSD's goal was to provide a FreeBSD-powered desktop that's both easy and convenient to use for seasoned and new users alike. The rolling release character of TrueOS may not fit the former audience completely. It will be very interesting to see where the project will eventually find its place. Long-time FreeBSD users who want the newest features on their desktop? BSD enthusiasts who want enjoy a permissively licensed desktop OS? Who knows! Time will tell (those who keep an eye on it). I may have switched to another OS for my daily work but TrueOS is far too exciting a project to just abandon completely. And if you love BSD you may want to give it a shot now and then. If you haven't already tried it, correct your ignorance and download an ISO now! [As the project ended this is of course no longer possible.]