I just completed a BSD install and I feel the need to do this as you can find answers to this over and over on the internet but most of it is wrong or goes absolutely nowhere, it's maddening.
WiFi
This is the FreeBSD poster-child for lack of clarity, googling this will result in thousands of results that go absolutely nowhere. It's that common and that bad. In reality it's relatively simple if you have an intel card. If you don't have an intel card though, suffering may follow.
All you have to do is first list your PCI devices and find your wireless card with the following command:
# pciconf -lv
My interface was 'iwn0' . With this you have to add these configuration lines to your /etc/rc.conf file as below where the line after wlans is the name of your interface.
Then, reboot and chances are the interface will just work now, to check just knock it down and back up again.
# ifconfig iwn0 down # ifconfig iwn0 up
If all looks good then the next step is to get something to easily manage it, the best tool I know of is networkmgr
# pkg install networkmgr
That embeds itself into most window managers and from there you just have to select the network you like.
Important: Networkmgr has a dependency that's not installed by default and a requirement for additional users to be added to the wheel group if they want to use the tool. To resolve both issues do:
# pkg install gtk3 # pw groupmod wheel -m batlog
Networkmgr also installs sudo which is not great for server security but chances are if you're using a wireless card you're using a desktop for personal use and not running a server facing the internet so it's not that big of a deal.
Mounting disks
Unlike Linux whenever you insert a usb the system doesn't pick it up immediately, making this a bit of a PITA.
First you must find if the device you inserted is getting picked up.
# geom disk list
Then, after you find the disk, you have to mount the partition, the easiest way to find which partitions the drive has is by going to cd /dev and taking a look. Once you have identified the partition you can load it in the /media or /mnt points (Mounting it on /media will make it appear on the desktop, mounting it on /mnt will not) Please note Fat systems and ext4 systems use a different command. Examples:
There probably is an easier way to go about this, particularly with desktop environments but with window managers? This is as good as it gets.
Allowing non-root users to shutdown
I find this one stupid to be brutally honest and one of those left-overs from yester-year where shutting down a unix server caused all terminals in the office to lose connection and cease working. The reason why I find it stupid is because in order to solve it you must add the user to the operators group.
# pw groupmod operator -m batlog
I find this to be an oversight as doing so gives a user a lot of power over the computer just for the privilage of using /sbin/shutdown. Whatever, I can't do anything about it as far as I know.
How to get Nvida 340 drivers to work
Unlike Linux where getting old Nvidia drivers is a PITA, most drivers seem to work fine on BSD and work right out of the box (Haven't tested 304 though).
In order to get the drivers working you need to first install the package and run the command to load it on the kernel.
Driver version and command to install it
Command to use to add to load the drivers in the kernel
pkg install nvidia-drm-kmod
(Main driver, version 515 at the time of writing)
sysrc kld_list+=nvidia-drm
pkg install nvidia-driver-470
sysrc kld_list+=nvidia-modeset
pkg install nvidia-driver-390
sysrc kld_list+=nvidia-modeset
pkg install nvidia-driver-340
sysrc kld_list+=nvidia
Once this is done xorg needs a couple of alterations, here is my configuration in /usr/local/etc/X11/xorg.conf.d/20-nvidia.conf as of June 2026 for the 340 driver.
/usr/local/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
Identifier "Card0"
Driver "nvidia"
EndSection
Section “ServerFlags”
Option “IgnoreABI” “true”
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
Option "ForceFullCompositionPipeline" "on"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"
EndSection
The first paragraph tells xorg to use an nvidia card, the second bypasses some bullshit that I'm 90% sure redhat added after kicking the maintainer for xorg to the curb in order to stop people from filling reports with old cards and the third one is just to stop screen tearing but can be safely be skipped.
Programs that I use
Lumina Desktop: Designed for a now defunct BSD system and based on Fluxbox, I love Lumina and it's lightweight but it's certainly not a desktop, it's closer to a window manager with some utilities.
Sakura and Terminator: My favorite terminal emulators, I especially like Sakura in BSD as unlike linux it doesn't brick the whole system when installing it over certain window managers (Fluxbox in particular has a very hard time with it) my only complaint is that both have a lot of dependencies, may look into another terminal later, they may get removed as they currently don't have maintainers anyways.
VLC: It's just a good video player, I use it everywhere.
Librewolf: Ditto VLC but for browsers, there's a package with it so there's no need to compile it
volumeicon: Self-explanatory. it's a simple volume icon for window managers it does everything and it's very easy to configure (Sadly not the color but I'm certain the icons can be swaped). It uses alsa-mixer for the default audio mixer, which requires the installation of alsa-utils.
viewnior: A simple and dependency-light image viewer, I like it because FreeBSD's file system has a peculiar idiosyncrasy where it numbers files by the first number instead of the next in the numeration (e.g. 1, 10, 100, 1000, 2 instead of 8, 9, 10). This viewer gets rid of that, making it the best choice in my opinion for photos and comics.
Programs to avoid
Steam: As of May 2026 Steam requires you to do a few moves that venerates several security layers (You have to give any user the ability to use chroot) and it's honestly not worth it, gaming is terrible in FreeBSD anyways and using steam on BSD will knock down the performance of whatever you're running by about 20-30%.