The FreeBSD Desktop series are about creating efficient desktop environment on the FreeBSD system.
It is applicable to all supported FreeBSD versions – you can check which FreeBSD versions are currently supported on this page – Release Information: Currently Supported – from official FreeBSD website. If something gets out of date or works differently on newer versions – I add a needed UPDATE to a post to make it up to date.
Why such series?
Because telling someone who wants FreeBSD desktop to buy Mac instead is like telling someone who wants Linux desktop to buy Windows because it has WSL (Windows Subsystem for Linux) inside π
I made a separate FreeBSD Desktop series dedicated βglobalβ page that links to all episodes of the series along with table of contents for each episodeβs contents.
Hope that will make it more useful and readable as a whole.
List of the episodes in the FreeBSD Desktop series.
- Part 01 --- Simplified Boot
- Part 02 --- Install FreeBSD 11
- Part 02.1 - Install FreeBSD 12
- Part 03 --- X11 Window System
- Part 04 --- Key Components - Window Manager
- Part 05 --- Key Components - Status Bar
- Part 06 --- Key Components - Task Bar
- Part 07 --- Key Components - Wallpaper Handling
- Part 08 --- Key Components - Application Launcher
- Part 09 --- Key Components - Keyboard/Mouse Shortcuts
- Part 10 --- Key Components - Locking Solution
- Part 11 --- Key Components - Blue Light Spectrum Suppress
- Part 12 --- Configuration - Openbox
- Part 13 --- Configuration - Dzen2
- Part 14 --- Configuration - Tint2
- Part 15 --- Configuration - Fonts & Frameworks
- Part 16 --- Configuration - Pause Any Application
- Part 17 --- Configuration - Automount Removable Media
- Part 18 --- Configuration - Global Dashboard
- Part 19 --- Configuration - Plank - Skippy-XD
- Part 20 --- Configuration - Unlock Your Laptop with Phone
- Part 21 --- Configuration - Compton
- Part 22 --- Configuration - Aero Snap Extended
- Part 23 --- Configuration - Herbe Notifications
- Part 24 --- Configuration - Universal File Opener
- Part 25 --- Configuration - Random Terminal Theme
- Part 26 --- Configuration - Conferencing and Meetings
- Part 27 --- Configuration - Netflix Signal Telegram
- Part 28 --- Configuration - Corner Actions
- Part 29 --- Configuration - Audio Improvements
Articles directly related to (but not limited to) FreeBSD Desktop series.
- FreeBSD Network Management with network.sh
- The Power to Serve β FreeBSD Power Management
- FreeBSD 13.1 on ThinkPad W520
- FreeBSD 13.2 on ThinkPad T14
- Read HFS filesystem on FreeBSD
- Wallpapers from Tech Pron
- Run broot on FreeBSD
- Classic ThinkPad Thermal Paste Change
- Oldschool Gaming on FreeBSD
- FreeBSD GNOME 3 Fast Track
- XFCE Cupertino Way
- Realtek RTL8188CUS β USB 802.11n WiFi Review
- UNIX Mouse Shootout
- Secure Containerized Browser
- Epitaph to Laptops
- Desktop Environments Resource Usage Comparison
Below are the contents of each episode.
~
FreeBSD Desktop – Part 1 – Simplified Boot
Silence the FreeBSD boot process by:
- Modifying /etc/rc.d/* scripts.
- Adding rc_startmsgs=NO to the /etc/rc.conf file.
~
FreeBSD Desktop – Part 2 – Install
Install FreeBSD 11.2 on Lenovo ThinkPad X220 along with BIOS settings.
- Setup wireless WiFi networking.
- GPT fix needed for T420/T420s/X220/T520/W520 Lenovo ThinkPad laptops.
~
FreeBSD Desktop – Part 2.1 – Install FreeBSD 12
Install FreeBSD 12.0 on Lenovo ThinkPad X220.
- Use GELI encrypted root on ZFS.
- Get new bectl tool.
~
FreeBSD Desktop – Part 3 – X11 Window System
Setup X11 on FreeBSD system.
- Add user to video group.
- Add user to needed login class.
- New drm-next kernel modules related to graphics drivers.
- X11 server configuration.
- XDM Black and Grey theme.
~
FreeBSD Desktop – Part 4 – Key Components – Window Manager
Description of window manager – one of the key components of FreeBSD Desktop.
Differences between Openbox and Fluxbox … and PekWM as a bonus.
~
FreeBSD Desktop – Part 5 – Key Components – Status Bar
Description of status bar – one of the key components of FreeBSD Desktop.
~
FreeBSD Desktop – Part 6 – Key Components – Task Bar
Description of task bar – one of the key components of FreeBSD Desktop.
- Tint2
- Plank
~
FreeBSD Desktop – Part 7 – Key Components – Wallpaper Handling
Description of wallpaper handling – one of the key components of FreeBSD Desktop.
~
FreeBSD Desktop – Part 8 – Key Components – Application Launcher
Description of application launcher – one of the key components of FreeBSD Desktop.
- dmenu
- rofi
~
FreeBSD Desktop – Part 9 – Key Components – Keyboard/Mouse Shortcuts
Description of keyboard/mouse shortcuts – one of the key components of FreeBSD Desktop.
- xmodmap
- xbindkeys
- xdotool
~
FreeBSD Desktop – Part 10 – Key Components – Locking Solution
Description of locking solution – one of the key components of FreeBSD Desktop.
- mate-screensaver
- xlock
- xautolock
After messing little more with xlock(1) I found way nicer looking configuration (or should I say ‘theme’ here) for it. It looks like that.
~
FreeBSD Desktop – Part 11 – Key Components – Blue Light Spectrum Suppress
Description of blue light spectrum suppress – one of the key components of FreeBSD Desktop.
- F.lux (closed source)
- Redshift (open source)
~
FreeBSD Desktop – Part 12 – Configuration – Openbox
Configuration of the Openbox window manager along with adhering topics.
- Openbox configuration.
- Nice looking Openbox theme.
- Openbox Menu (static) with nice looking icons.
- Openbox Menu for FreeBSD top(1)/ps(1) commands and config files/logs.
- Openbox Menu for FreeBSD default sound output.
- Openbox Menu and shortcuts for FreeBSD sound volume increase/decrease.
- Openbox Menu for FreeBSD for CPU frequency scaling.
- Openbox Menu for FreeBSD network management with network.sh script.
- Openbox Menu for screenshots/wallpapers management.
- Openbox Menu for Recent files.
- Random wallpaper handling.
- Random xterm(1) theme at every terminal start with lost of great themes.
- Openbox shortcuts and script for Aero Snap like behavior.
- Openbox Dmenu shortcuts and integration.
- Openbox configured with nice fonts.
- Openbox shortcuts for most important tasks.
- Warning for low battery on laptop.
- The doas(1) integration.
- Scripts needed to glue all these solutions.
- The crontab(1) entries.
- Keyboard Shortcuts.
- Mouse Shortcuts.
~
FreeBSD Desktop – Part 13 – Configuration – Dzen2
The provided status bar backed by Dzen2 will be providing the following information.
- date: Date in ISO 8601 format along with current time.
- sys: CPU frequency, CPU temperature, system load and free RAM.
- ip: List of current IP addresses and its interfaces.
- gw: System default network gateway.
- dns: System default DNS.
- ping: Current Internet access state.
- vol/pcm: Volume level for vol and pcm backends.
- fs: ZFS pools free space.
- bat: Battery and AC status.
- top: Top 3 processes with highest CPU usage along with their RAM usage.
~
FreeBSD Desktop – Part 14 – Configuration – Tint2
The task bar role served by the Tint2 will be providing the following features.
- Launcher for the most used applications.
- Show opened/minimized windows on each of four virtual desktops.
- Indicate current used virtual desktop.
- Provide system tray area for applications that depend on it.
- Maximize selected window with [Right Mouse Button].
- Close selected window with [Middle Mouse Button].
- Focus selected window along with switching to the virtual desktop with that window using [Left Mouse Button].
- Pass [Left/Middle/Right Mouse Button] events to Openbox window manager when not clicked on objects.
- Provide buttons – – to set various CPU frequencies (from left Low/Medium/High).
- Provide button – – to set new random wallpaper.
~
FreeBSD Desktop – Part 15 – Configuration – Fonts & Frameworks
Proper fonts rendering on a FreeBSD system.
~
FreeBSD Desktop – Part 16 – Configuration – Pause Any Application
Freeze any X11 application with single keyboard shortcut or mouse gesture.
~
FreeBSD Desktop – Part 17 – Configuration – Automount Removable Media
Various methods of automatically (or not) mount external/removable devices such as USB or eSATA disks/pendrives or SD/microSD flash cards.
~
FreeBSD Desktop – Part 18 – Configuration – Global Dashboard
A thing called Global Dashboard with all information you would ever need for debugging on the laptop/desktop system.
~
FreeBSD Desktop – Part 19 – Configuration – Plank – Skippy-XD
Adding Plank dock and Skippy-XD expose-like tool.
~
FreeBSD Desktop – Part 20 – Configuration – Unlock Your Laptop with Phone
Configure devd(8) to lock/unlock your laptop with phone attach/detach event.
~
FreeBSD Desktop – Part 21 – Configuration – Compton
Configure Compton to display everything properly and do not consume 100% of your CPU time.
~
FreeBSD Desktop – Part 22 – Configuration – Aero Snap Extended
Manage windows on X11 desktop using Aero Snap Extended script.
~
FreeBSD Desktop – Part 23 – Configuration – Herbe Notifications
Minimal and light X11 notifications without D-Bus daemon using herbe.
~
FreeBSD Desktop – Part 24 – Configuration – Universal File Opener
Universal file openerΒ see.sh and XDG handlers headaches.
~
FreeBSD Desktop – Part 25 – Configuration – Random Terminal Theme
Configure xterm(1) and urxvt(1)to have random theme at startup.
~
FreeBSD Desktop – Part 26 – Configuration – Conferencing and Meetings
Online video conferencing and/or meetings with webcamd(8) daemon.
FreeBSD Desktop – Part 27 – Configuration – Netflix Signal Telegram
Install and use Netflix/Signal/Telegram on FreeBSD desktop.
FreeBSD Desktop – Part 28 – Configuration – Corner Actions
Adds Corner Actions with xidle(1) similar to the ones known from macOS system.
FreeBSD Desktop – Part 29 – Configuration – Audio Improvements
Additional audio/sound related improvements.
FreeBSD Network Management with network.sh Script
The network.sh script allows for easy management for all laptop/desktop connections on:
- WiFi
- LAN
- WWAN
~
The Power to Serve – FreeBSD Power Management
FreeBSD offers many mechanisms in the power management department:
- power off devices without attached driver
- scale CPU frequency and power
- supports CPU sleep states (C1/C1E/C2/C3/β¦)
- enabling/disabling Turbo Mode available in most CPUs
- per USB device power management options
- SATA/AHCI channels/controllers power management
- limit of wakeups/interrupts to increase idle time
- suspend/resume support (along with using laptop lid for it)
- support for vendor specific tools that help to measure power management
- tools and ACPI support for fan speed control
- tools and ACPI support for setting screen brightness
- battery capacity status and running time estimation
- network interfaces power saving options
One word about different files for the settings in the FreeBSD system:
- /etc/rc.conf – does not require reboot just daemons reloading
- /etc/sysctl.conf – does not require reboot – you can set them at runtime
- /boot/loader.conf – these settings REQUIRE reboot
~
Less Known pkg(8) Features
An article about pkg(8) – the current FreeBSD modern package manager sometimes also called PKGng.
~
Fix Broken Dependency on FreeBSD
Various methods of fixing broken dependencies on FreeBSD.
~
Read HFS filesystem on FreeBSD
For those ones that still use Mac OS X on their desktops/laptops instead of FreeBSD there is now possibility to mount HFS+ filesystem volumes under FreeBSD in read only thanks to FUSE subsystem.
~
List Block Devices on FreeBSD lsblk(8) Style
If you got used to lsblk(1) you can now have it on FreeBSD.
~
Run broot on FreeBSD
The broot file manager.
~
Wallpapers from Tech Pron
Wallpapers I made from the images of computers posted by Tech Pron account on Twitter.
Β
FreeBSD UNIX Wallpapers
Various FreeBSD wallpapers (90+) I gathered along the years.
Other/external resources for the FreeBSD on laptops/desktops:
- FreeBSD 11 Desktop Howto
- Laptops Running FreeBSD
- Using FreeBSD as Desktop OS
- Synaptics Touchpad on FreeBSD
- FreeBSD Common Desktop Environment (CDE) Installation Notes
- FreeBSD on Laptop
- FreeBSD on ThinkPad X240
- Mac-like FreeBSD Laptop