General FreeBSD desktop pointers

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.

rc.conf

wlans_iwn0="wlan0"
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
ifconfig_wlan0="WPA DHCP"

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:

# mount_msdosfs /dev/da0s1 /meda
 # mount /dev/da1p1 /mnt
 # ext4fuse /dev/da0s1 /mnt

From there I just copy whatever I need and give ownership to the user

# cp -Rv /media/file /home/batlog/usb
 # chown -Rv batlog /home/batlog/usb

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 itCommand 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-470sysrc kld_list+=nvidia-modeset
pkg install nvidia-driver-390sysrc kld_list+=nvidia-modeset
pkg install nvidia-driver-340sysrc 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%.

 

 

 -Batlog

 

 


If you enjoyed this article or if it was of any use to you, please consider donating some crypto. All funds go towards paying for the hosting.

Monero/XMR:
88MC6ksaVyLbtH9fT4owLSPX16vYD9cf6YELmXjaNWWd71R6iwfFV6DJtp7BXR5c6vWnxLEEGyu1tfwXwTqDM1CUCqDGeRY

Bitcoin/BTC: 
bc1qzw9g97ffhllwukhagkvn5g0u9d8rhjv86xhf8h

Ethereum/ETH:
0xf948ab59E492865Fb5200A97F0F4F2f31F7b443f

Litecoin/LTC:
ltc1qqfv05jpyh8yvzyetmf7n5ve500jl656yxpc8y4

Doge:
DT5iG6GxoyZtHSSmaZHHV63NpEoH5yuixg
This article was updated on