8 months with TrueOS
Purpose of this review - what it is and what it is not.
I vowed to write down what I felt about TrueOS if I ever got to the six month mark of usage. This is just that. This is neither a tutorial, nor a piece of evangelism dedicated towards it.
This is also not a review of specific parts of TrueOS such as Lumina or AppCafe, since I don't use them at all.
In the spirit of presenting a screen shot, here is my i3wm displaying 4 windows in one screen - a configuration that I never use.
The primary tasks I get done with my computer.
I need a tiling wm with multi-desktop capability. As regards what I do with a computer, it is fairly straightforward to describe if I just list down my most frequently used applications.
- xterm (CLI)
- Emacs (General editing and org mode)
- Intellij IDEA (Java, Kotlin, SQL)
- Firefox (Main web browser, with Multi-Account Containers)
- Thunderbird (Work e-mail)
- Notmuchmail (Personal e-mail)
- Chromium/Iridium (Dumb web browers)
- Telegram Desktop
- weechat (with wee-slack)
- cmus (Music player)
- mpv (Video player)
- mps-youtube (Youtube client)
- Postgresql10 (daemon)
- Rabbitmq (daemon)
- Seafile (file sync)
- Shotwell (manage pictures)
- GIMP (Edit pictures)
- Calibre (Manage e-books)
All of these are available as binary packages from the repository. Since I use Intellij Ultimate edition, I decided to download the no-jdk linux version from the website rather than install it. This would make sure that it gets updated regularly.
Why did I pick TrueOS ?
Over the last few years, I started feeling like no matter which Linux distribution I touched, they all just stopped making a lot of sense. Generally in the way things were organised, and particularly in terms of software like systemd, which just got pushed down my throat. I couldn't wrap my head around half the things going on in my computer.
Mostly I found that Linux distributions stopped becoming a collection of applications that got developed together to something more coupled by software mechanisms like systemd - and that process was more and more opaque. I don't want to talk about the merits and de-merits of systemd, lets just say that I found it of no use and an unnecessary hassle.
In February, I found myself in charge of the entire technology stack of a company, and I was free to make choices. A friend who was a long time FreeBSD user convinced me to try it on the servers. My requirement then was to run Postgres, Rabbitmq, Nginx and a couple of JVM processes. The setup was zero hassle and it hasn't changed much in a year.
About three months of running FreeBSD-11.x on servers was enough for me to consider it for my laptop. I was very apprehensive of hardware support, but luckily my computer is a Thinkpad, and Thinkpads sort of work out of the box with various BSDs.
My general requirements were
- Must run Intellij IDEA.
- Must have proper graphics and sound driver support.
- Must be able to run VirtualBox.
I had to pick from FreeBSD, NetBSD and OpenBSD, since these were the major BSDs that I was familiar with. One of my requirements was that I needed to be able to run VMs just in case I needed to test something on Windows/Linux. This ruled out OpenBSD. Then I was left with NetBSD and FreeBSD. NetBSD's driver support for newer Intel chip-sets were questionable, and FreeBSD was the only choice then.
When I was digging through FreeBSD forums, I found out that running the 11.x RELEASE on my laptop was out of the question since it didn't have proper drivers for my chip-set either.
A few more hours of digging led me to GhostBSD and TrueOS. I picked TrueOS straightaway because - well because TrueOS came from the old PC-BSD and it was built off FreeBSD-12-CURRENT with the latest drivers integrated.
I downloaded the UNSTABLE version available in June 2017, backed up ALL my data and home directory, and then installed it. There were no glitches during installation - I simply followed the installation as described in the handbook and everything was fine.
My entire switch from Arch/Void to TrueOS took about an hour, discounting the time it took to backup my data to an external hard disk. It was that easy. Everything I wanted to work just worked, everything was available in the repo.
Tweaks from cooltrainer.org
I discovered this excellent tutorial that describes setting up a FreeBSD 11 desktop. It documents several useful tweaks, some of which I applied. A few examples - Fonts, VirtualBox, Firewall, UTF-8 sections.
TrueOS (and FreeBSD) specific things I liked
The open-rc init system is familiar and is well documented.
TrueOS specific parts are described here.
When I installed postgresql10-server, there was no open-rc script for it, but I could cobble one together in two hours with zero prior experience writing init scripts. Later on I figured out that the init script for postgresql9 would work for 10 as well, and used that.
This was an alien concept to me, but the first time I did an update without waiting for a CDN sync to finish, my computer booted into the shell and remained there. The friendly people at TrueOS discourse asked me to roll back to an older BE and wait for sync to finish.
I dug through the forums and found "ZFS / Snapshots basics & How-To’s for those new to TrueOS". This describes ZFS and BEs, and is well worth reading.
My experience with boot environments was enough to convince me about the utility of ZFS. I am still reading about it and trying things out, and whatever I read just convinces me more about why it is good.
Coming from the Linux world, how the FreeBSD file-system is laid out seemed odd at first.
Then I realised that it was the Linux distros that were doing the odd thing.
e.g : The whole OS is split into base system and applications. All the non base system configurations and apps go into /usr/local. That made a lot of sense.
The entire OS is developed along with its applications as a single coherent entity, and that shows.
The handbooks for both TrueOS and FreeBSD are really really good. For e.g, I kept some files in an LUKS encrypted drive (when I used Arch Linux). To find an equivalent, all I had to do was read the handbook and look at the GELI section.
It is actually nice being able to go to a source like Handbook and things from there just work.
Arch Linux and Gentoo has excellent documentation as well, if anyone is wondering about Linux distros.
The TrueOS community on both Telegram as well as on Discourse are very friendly and patient. They help out a lot and do not get upset when I pose really stupid questions. TrueOS core developers hangout in the Telegram chat-room too, and it is nice being able to talk to them directly about things.
What did not work in TrueOS ?
The following things that worked during my Linux tenure doesn't work in TrueOS.
- Google Hangouts
- Electron based applications (Slack, Skype)
These are not major concerns for the kind of work I do, so it doesn't bother me much. I run a WinXP VM to play some old games, and a Bunsenlabs installation for Linux things like Hangouts/Netflix.
I don't have a video calling system setup in TrueOS because I use my phone for both voice and video calls exclusively.
Why am I staying on TrueOS ?
Great community - whether on Discourse or on the telegram channel, the people make you feel welcome. If things go unanswered, someone will promise to work on it/file a bug/suggest work-arounds.
Switching to TrueOS was philosophical as well - I thought a lot more about licenses, and I have arrived at the conclusion that I like BSD more than GPL. I believe it is a more practical license.
I believe TrueOS is improving continuously, and is a great desktop UNIX if you put some time into it.