My FreeBSD setup
Update in 2025: After using FreeBSD for a few years, the little netbook gave up the ghost. I no longer use FreeBSD as a daily driver. I’m leaving the information below in case I ever pick FreeBSD up again.
Over the past few years, I’ve been feeling more and more ill at ease with my Linux systems. The main reason for this is systemd. I won’t go into a full-on anti-systemd rant in this post; there has been enough ink spilled on that topic.
Initially, I tried out OpenBSD, but had a bit of trouble getting going started (mainly, I couldn’t get neovim to build), and the system performance on my netbook was pretty bad. I switched to FreeBSD, assuming that some of these things would be better, and indeed, they were. Neovim is just a pkg
command away (even though it’s version 0.1.2), and the whole system feels incredibly responsive.
I also decided to drop KDE and switch to i3, the window manager. I never used KDE on my netbook, on that one I always kept OpenBox. I’m absolutely in love with i3. It’s very lightweight, though requires a pretty fair amount of configuration in order to be usable (or at the very minimum, fit my needs).
After a few days of mucking about, this is what my setup looks like:
And this is what my lock screen looks like:
I’ll keep this article updated with my configuration, mostly as a way to help myself set up new systems. Some of this stuff might end up in my dotfiles repository, though.
Base system
/etc/sysctl.conf
:
.ipc.shmmax=67108864
.ipc.shmall=32768
.sched.preempt_thresh=224
.maxfiles=200000
.syscons.bell=0
.ipc.shm_allow_removed=1
.usermount=1
.psm.synaptics.min_pressure=40
.acpi.lid_switch_state=S3
/boot/loader.conf
:
"YES"
.i915.enable_rc6=7
.realtek.license_ack=1
.vty=vt
"beastie"
.ipc.shmseg=1024
.ipc.shmmni=1024
.maxproc=10000
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
"YES"
.psm.synaptics_support=1
/etc/rc.conf
:
"somemachine.home.wedrop.it"
"YES"
"DHCP"
"wlan0"
"WPA SYNCDHCP"
"uk.iso.kdb"
"YES"
"AUTO"
"YES"
"YES"
"-a hiadaptive -b adaptive"
"Cmax"
"Cmax"
"YES"
"YES"
"YES"
"-g"
"YES"
"YES"
User configuration
I haven’t documented or stored all of this to my dotfiles repositories yet. Come back later? :)
Installed ports
Following is a list of packages that I usually install pretty quickly after setting up a new system:
Terminal and shell stuff
- pv (pipe viewer)
- rxvt-unicode (terminal)
- scrot (screen capture)
- sudo
- the_silver_searcher (grep replacement for vim)
- zsh (shell)
Development
- neovim (from source)
- autotools
- clang38
- cmake
- git
- gmake (BSD-make is sadly not very supported)
Desktop environment
- dmenu (app launcher for i3)
- feh (background manager)
- firefox
- git-gui
- i3-gaps (from source)
- keepass (password manager)
- slim (graphical login)
I’m an absolute FreeBSD noob, so some of the stuff listed here is probably suboptimal. Feel free to tell me on Twitter or drop me an email if there’s anything I should change.