FreeBSD Desktop

The FreeBSD Desktop series are about creating efficient desktop environment on the FreeBSD system.

freebsd-desktop-2019-04.jpg

vermaden-tint2

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.

Articles directly related to (but not limited to) FreeBSD Desktop series.

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 – cpu_Lcpu_Mcpu_H – to set various CPU frequencies (from left Low/Medium/High).
  • Provide button – wallpaper – 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 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.

Other/external resources for the FreeBSD on laptops/desktops:

EOF