Monthly Archives: May 2021

Valuable News – 2021/05/31

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).


GnuPG Quickstart on OpenBSD.

less(1) Can Do more(1).

Inkscape 1.1 Released.

Recovering Personal Data from ZFS After FreeBSD Kernel Panic.

DragonflyBSD 6.0 Performs Very Well Against Ubuntu and FreeBSD 13.0.

autorandr – Automatically Select Display Configuration Based on Connected Devices.

Running Triton on Equinix Metal.

NomadBSD 13R-20210508 – Netflix and Chill.

BSD Weekly – Issue 70.

Krita – Some Artists Can Not Believe This Program is Free.

Using NetBSD pkgsrc Everywhere I Can.

Official FreeBSD IRC Channels on Libera Chat.

Just Got My Beastie Tattoo.

Example of Basic OSS Audio Application.

FreeBSD 13.0 – Virtualization – Part 2 – bhyve – AMD Ryzen 3950X – RTX 2060.

OPNsense 21.1.6 Released.

Updating GCC GNAT (Ada) in pkgsrc/NetBSD.

ZFS-Man. [2007]

Running GOG Baldurs Gate II: Enhanced Edition on FreeBSD 13.

BSD Now 404 – 404 BSD Now Hosts Not Found.

You Can Watch Netflix on FreeBSD.

I Quit My Job to Focus on SerenityOS Full Time.

Opening Garage Door Using OpenBSD on Raspberry Pi.;sid=20210527120047

In Other BSDs for 2021/05/29.

Freenode IRC Staff Resign After Takeover by Korea ‘Crown Prince’.

Why OpenBSD?

HardenedBSD 2021/05 Status Report.

Write Better Firewall Rules in OPNsense Using Aliases.

Configure WAN and NAT Port Forward Rules in OPNsense.

Airyx is Open Source OS that Aims to Provide macOS Experience and Compatibiilty.

Using dpb(1) on OpenBSD for Package Compilation Cluster.

Terminal Stopwatch sw(1).


Gigabyte M.2 SSD Promises 7GBps Speeds All Day Long.

PNY CS1030 1TB M.2 NVMe SSD Review.

We Destroyed 3 Laptops to See If Their SSDs Would Still Work.

ARM Announces Mobile ARMv9 Cortex-X2/Cortex-A710/Cortex-A510 CPU Microarchitectures.

ARM Announces New Mali G710/G610/G510/G310 Mobile GPU Families.

Phison PS5018-E18 Controller with Micron 176L TLC Preview – Unleashing the Beast.

Beyond Bootable Backups – Adapting Recovery Strategies for Evolving Platform.

Framework Laptop Review – Anti MacBook is Here.

Best SSDs 2021 – From Budget SATA to Blazing Fast NVMe.,3891.html

Western Digital WD_Black – Affordable PCIe 4.0 SSD.

QMicroPlus-210W – ARM Router (Qualcomm IPQ4019) and Intel NAS (Celeron J4125) in One Device.

Pinebook Pro Review.


Coronavirus Pandemic is Somewhat of Totalitarian Dream.

Bose Incredible Electromagnetic Lexus Car Suspension System in Action.

Immunity to Coronavirus May Persist for Years – Scientists Find.

Why Russians do Not Smile.

Drunk Post – Things I Have Learned as Senior Engineer.


Doom Captcha.

How Modern Advertising Works.

Quote(s) of the Week

Twitter is LinkedIn for people looking to lose their jobs

Mohanad Elshieky


FreeBSD Desktop – Part 26 – Configuration – Conferencing and Meetings

For years I thought that online video conferencing and/or meetings would not be possible on FreeBSD. One of the first things I done on each of my laptops was to disable Camera and Microphone (along with Bluetooth) to save some battery time. While the Microphone would probably work I did not even tried to use it – did not had such needs to record anything with my laptop.

As time passed by I thought that maybe I will try what is the state of using Camera on FreeBSD and also how it is doing in the video conferencing/meetings space.


I was really astonished by the results … at least on my ThinkPad W520.

The Table of Contents for the article:

  • Camera Setup
  • Microphone Setup
    • ThinkPad Microphone Easter Egg
  • Meetings
  • Closing Thoughts

You may want to check other articles in the FreeBSD Desktop series on the FreeBSD Desktop – Global Page where you will find links to all episodes of the series along with table of contents for each episode’s contents.

Camera Setup

I enabled Camera and Microphone in the BIOS (leaving Bluetooth disabled) and booted up my FreeBSD 13.0 as usual.

I then installed needed packages which are:

  • multimedia/v4l-utils – Video4Linux utilities
  • multimedia/v4l_compat – Video4Linux IOCTL header files
  • multimedia/pwcview – Video4Linux PWC webcam viewer
  • multimedia/webcamd – port of Linux USB webcam and DVB drivers

We will also need to load cuse.ko kernel module at each boot. We will use /etc/rc.conf for that.

# pkg install v4l-utils v4l_compat webcamd pwcview

# vi /etc/rc.conf

  kld_list="${kld_list} cuse"


My Camera is listed at the end of the usbconfig(8) command.

% usbconfig 
ugen1.1: <0x1912 XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen2.1: <0x1033 XHCI root HUB> at usbus2, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen3.1: <intel ehci="" root="" hub=""> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <intel ehci="" root="" hub=""> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen3.2: <vendor 0x8087="" product="" 0x0024=""> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <vendor 0x8087="" product="" 0x0024=""> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.3: <vendor 0x0765="" product="" 0x5001=""> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
ugen0.4: <logitech usb="" receiver=""> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)
ugen0.5: <chicony electronics="" co.,="" ltd.="" integrated="" camera=""> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)

We can also use webcamd(8) to list available cameras in the system.

% webcamd -l
Available device(s):
webcamd [-d ugen1.1] -N 0x1912-XHCI-root-HUB -S unknown -M 0
webcamd [-d ugen2.1] -N 0x1033-XHCI-root-HUB -S unknown -M 0
webcamd [-d ugen3.1] -N Intel-EHCI-root-HUB -S unknown -M 0
webcamd [-d ugen0.1] -N Intel-EHCI-root-HUB -S unknown -M 1
webcamd [-d ugen3.2] -N vendor-0x8087-product-0x0024 -S unknown -M 0
webcamd [-d ugen0.2] -N vendor-0x8087-product-0x0024 -S unknown -M 1
webcamd [-d ugen0.3] -N vendor-0x0765-product-0x5001 -S unknown -M 0
webcamd [-d ugen0.4] -N Logitech-USB-Receiver -S unknown -M 0
webcamd [-d ugen0.5] -N Chicony-Electronics-Co---Ltd--Integrated-Camera -S unknown -M 0
Show webcamd usage:
webcamd -h

We will use above webcamd(8) output to add needed webcamd_0_flags in the /etc/rc.conf file.

# vi /etc/rc.conf

  webcamd_0_flags="-d ugen0.5"


We also need to add ourselves to the webcamd group.

# pw groupmod webcamd -m vermaden

# grep webcamd /etc/group 

We can now start the webcamd(8) daemon.

# service webcamd start
Starting webcamd.
webcamd 99884 - - Attached to ugen0.5[0]

# ls -l /dev/video*
crw-rw---- 1 webcamd operator 2, 5 2021-05-09 11:36 /dev/video0
crw-rw---- 1 webcamd operator 2, 6 2021-05-09 11:36 /dev/video1

We will now use pwcview(1) to check how the Camera works.

% pwcview
Webcam set to: 320x240 (sif) at 5 fps

Here is how it looks.


Works! I pixelised the output as I do not have an instagrammer soul …

You can start pwcview(1) with larger resolution when needed.

Camera at mine ThinkPad W520 tops at 1280×720 resolution (HD) and 30 fps for refresh rate.

% pwcview -d /dev/video0 -f 30 -s uxga
Webcam set to: 1280x720 (uxga) at 30 fps

Here is the list of most popular resolutions.

========= ========== ===============
CGA        320x200
SIF        352x240
CIF        352x288
EGA        640x350
VGA        640x480
4SIF/QSIF  704x480   (Quad SIC)
4CIF/QCIF  704x576   (Quad CIF)
SVGA       800x600
XGA       1024x768
720p      1280x720   (HD)
SXGA      1280x1024  (1.3 Megapixel)
WXGA      1366x768   (HD+)
SXGA+     1400x1050
16CIF 	  1408x1152 
WSXGA     1600x1024
UXGA      1600x1200  (2.0 Megapixel)
WSXGA+    1680x1050
1080p     1920x1080  (FullHD)
WUXGA     1920x1200
QXGA      2048x1536  (3.0 Megapixel)
QSXGA     2560x2048  (5.0 Megapixel)
WQSXGA    3200x2048
QUXGA     3200x2400
2160p     3840x2160  (4K)
WQUXGA	  3840x2400

You may also try multimedia/cheese which has more ‘desktop’ interface when plain and simple pwcview(1) tool.

# pkg install multimedia/cheese
% cheese


You may also test your camera online – – for example here.


Microphone Setup

You may test your microphone with audio/audacity or multimedia/ffmpeg for example.

You as well use the – – online test for your mic.


You can also use audio/sox to record your sound in the terminal.

# pkg install sox celluloid

% pkg which -o $( which rec )
/usr/local/bin/rec was installed by package audio/sox

% rec test.wav

Input File     : 'default' (ossdsp)
Channels       : 2
Sample Rate    : 48000
Precision      : 16-bit
Sample Encoding: 16-bit Signed Integer PCM

In:0.00% 00:00:06.66 [00:00:00.00] Out:315k  [ =====|===== ] Hd:1.9 Clip:0    ^C

% celluloid test.wav

You hear your recording for example in the celluloid(1) player.


ThinkPad Microphone Easter Egg

After I successfully tested the Camera on my ThinkPad W520 I then moved to Microphone testing … to just find out that my microphone is totally deaf. I could not record any sound with audacity(1) or ffmpeg(1).

At the beginning I first suspected it was a FreeBSD problem … unjustifiably fortunately.

Switching Microphone to [Enabled] in the ThinkPad W520 BIOS requires special procedure as shown on the BIOS screenshot below πŸ™‚


1. Set the Microphone to [Enabled].
2. Select Save and Exit option in BIOS.
3. Power off laptop.
4. Disconnect AC power for at least 10 seconds (battery can be attached).
5. Power on laptop.
6. Boot FreeBSD as usual and now recording on Microphone works like a charm πŸ™‚

Why so strange enabling procedure? Some people suggested that it needs to be that complicated to make sure that any third party will not enable your Microphone without your knowledge. Security concerns. Makes sense.


I was able to successfully start/join Google Meet and Zoom and also Teams meetings with this setup. I have also tested and added Jitsi Meet.

Sometimes it just required to use www/chromium instead of my default www/firefox browser.

Here is the detailed list of what works where.

Closing Thoughts

Hope that will helps some of you to use join your meetings on FreeBSD system.


Valuable News – 2021/05/24

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).


NetBSD 9.2 Announced.

Quick Compare of FreeBSD and GhostBSD Service Management.

NomadBSD 130R-20210508 Desktop Tour.

FreeBSD 13.0 Install – AMD Ryzen 9 3950X – Nvidia RTX 2060 – XFCE – LightDM.

NomadBSD – Amazing OS for USB Drives.

FreeBSD on Pine H6.

FreeBSD 13.0 Virtualization – vm-bhyve – Ubuntu.

State of Toolchains in OpenBSD.

Illumos zcage Zone Manager Inspired by FreeBSD iocage.

How to Look at Stack with gdb.

ZFS recordsize – Holes in Files – Partial Blocks.

Fyne Simple Calculator in Fyne Toolkit with Compilation fixes for FreeBSD 13.

BSD Now 403 – Linuxulator Investment.

Update on FreeBSD Foundation Investment in Linuxulator.

Running Potluck Images with containerd.

Freeing ZFS Memory on Solaris 11.4.

Preventing FreeBSD to Kill PostgreSQL with OOM Protect Feature.

Glance at doas(1) and pg_ctl(1).

FreeBSD Adds libxo(3) Support to mount(8) and acpiconf(8) Commands.

Data Infrastructures – ZFS Survival Guide. [2019]

Guide to FreeBSD Desktop Distributions.

DragonFlyBSD 6.0 Performance is Looking Great – Initial Benchmarks.

Lessons Learned about TRIM on OpenBSD.

OpenConnect VPN rc(8) FreeBSD Daemon.

RealTek RTL8188CE Wi-Fi PCI Network Setup on FreeBSD/GhostBSD.

Edimax EW-7811UTN USB Dongle Wi-Fi Setup for FreeBSD/GhostBSD.

In Other BSDs for 2021/05/22.

Run OPNsense in Proxmox Virtual Machine.

Gaming on NomadBSD – Based on FreeBSD 13.

Updating My FreeBSD 12.2 Host to FreeBSD 13.0.

Getting Started with OpenZFS 2.0.

Interview with Brian Kernighan. [2003]

Backup Software: borg vs restic.

Standalone Opera VPN Client – Younger Brother of hola-proxy.

Standalone Hola Proxy Client.

FreeBSD Port misc/g810-led – Led Controller for Logitech G Keyboards Available.

NetBSD/macppc on PowerPC G4 Mac Mini.


AMD Ryzen Threadripper Pro 3975WX 32 Core Review.

Beelink GKmini Windows/Linux Review – Celeron J4125 Mini PC.

ARM Ampere Roadmap Update – Switch to In House CPU Designs – 128+ 5nm Cores in 2022.

TSMC and Partners Develop Key Feature for Sub 1nm Process Technology.

Pinebook Pro First Impressions.

Low Cost Raspberry Pi Alternative RISC-V Board Starts Crowdfunding.

Seagate Lists Mach.2 – World Fastest HDD with Up to 520 MB/s of Sequential Throughput.×14

Seagate Exos 2×14 Mach.2 500MBps Hard Drive Launched.×14-mach-2-500mbps-hard-drive-launched/

New Raspberry Pi PoE+ HAT Handles Up to 25.5 Watts.

ASRock Rack B550D4-4L Motherboard Review: B550 Goes Professional with BMC

Huawei HiSilicon Develops First RISC-V Design to Overcome ARM Restrictions.

TOPTON D3 Mini Desktop Features AMD Ryzen 5 4500U Mobile CPU.


Data of 100+ Million Android Users Exposed via Misconfigured Cloud Services.

One Man Fight for Right to Repair Broken MacBooks.


Infinite Stack of Books.

Google Project Starline – Feel Like You Are There Together.

Introducing Site Isolation in Firefox.

Introducing Firefox New Site Isolation Security Architecture.


FreeBSD Desktop – Part 25 – Configuration – Random Terminal Theme

Some time ago when I was mostly writing about Openbox setup I also showed how to setup xterm(1) so it will start with new random theme with each start. Since then I reworked that feature a little and also added random theme and background selection for urxvt(1) terminal. This post will guide you through the needed steps to make that setup working.


You may want to check other articles in the FreeBSD Desktop series on the FreeBSD Desktop – Global Page where you will find links to all episodes of the series along with table of contents for each episode’s contents.

I already once wrote about random xterm(1) themes in the FreeBSD Desktop – Part 12 – Configuration – Openbox part – but I really wanted to expand that topic and also include other terminals.

After trying many terminal emulators – some more bulky like Konsole/GNOME Terminal/XFCE Terminal/MATE Terminal – some more lightweight like st(1)/rox-term(1)/eterm(1)/… – I always went back to the most old-school and basic one – good old xterm(1) terminal. Mostly because of its good compatibility with all UNIX systems – especially the older ones like IBM AIX or HP-UX. I do not remember last time when I had to manage these archaic systems but the respect for xterm(1) remains.


The other one that always got my attention was urxvt(1) terminal. Unfortunately it has some issues with fonts rendering – making larger spaces between the lines and making fonts bigger for example – but as I also like bitmap fonts like CLEAN or FIXED – so I use bitmap fonts for urxvt(1).

Recently also sakura(1) got my attention – but it’s theming possibilities are even more limited then xterm(1) with themes/colors hardcoded directly into the source code. That is why I will omit it in this article – but I mention it since its also nice terminal.

This is the Table of Contents for this article.

  • xterm(1)
    • Proper Font Selection
    • Selecting Text for Copy/Paste
    • Selection Buffers and Keyboard Shortcuts
    • Increase/Decrease Font Size on the Fly
    • Copy/Paste with [CTRL]+[SHIFT]+[C/V]
    • Interactive Menus
    • Random xterm(1) Theme
  • urxvt(1)
    • Tabbed Interface
    • Daemon and Client Mode
    • Random urxvt(1) Theme and Background
  • sakura(1)
    • Different sakura(1) Themes
  • RAM Usage Comparison
  • CPU Time Usage Comparison


First lest start with some reasonable configuration in the ~/.Xdefaults file. Alternatively some people use ~/.Xresources file. You can use any of them. Just pick one and stick to it.

! -----------------------------------------------------------------------------
  xterm*allowBoldFonts:     true
  xterm*allowWindowOps:     true
  xterm*boldMode:           false
  xterm*charClass:          33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48,35:48,58:48,63:48,61:48,44:48,38:48,59:48
  xterm*cursorBlink:        false
  xterm*cutNewline:         true
  xterm*faceName:           consolas
  xterm*faceSize:           11
  xterm*fastScroll:         true
  xterm*fullscreen:         false
  xterm*iconHint:           /home/vermaden/.icons/vermaden/xterm.xpm
  xterm*internalBorder:     1
  xterm*jumpScroll:         true
  xterm*keepSelection:      true
  xterm*loginShell:         true
  xterm*metaSendsEscape:    true
  xterm*multiScroll:        true
  xterm*omitTranslation:    fullscreen
  xterm*on4Clicks:          group
  xterm*on5Clicks:          page
  xterm*saveLines:          1024000
  xterm*scaleHeight:        1.0
  xterm*scrollKey:          true
  xterm*scrollTtyOutput:    false
  xterm*selectToClipboard:  true
  xterm*SimpleMenu*font:    -*-clean-*-*-*-*-*-*-*-*-*-*-iso8859-2
  xterm*termName:           xterm-256color
  xterm*title:              xterm
  xterm*veryBoldColors:     14
  xterm*VT100*geometry:     150x40
  xterm*VT100*translations: #override                                             \n\
                            <btn1up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0) \n\
                            Ctrl <key> minus: smaller-vt-font()                   \n\
                            Ctrl <key> plus: larger-vt-font()                     \n\
                            Ctrl Shift <key> C: copy-selection(CLIPBOARD)         \n\
                            Ctrl Shift <key> V: insert-selection(CLIPBOARD)

I will not discuss all possible settings as they are well described in the xterm(1) man page but I will comment some more useful and interesting ones.

Proper Font Selection

This advice is not limited to xterm(1) but its worth to mention it. Many times after adding fonts to my system – and renaming them to my ‘standard’ which looks like that one below I was asking myself how to properly specify the variant I need.

% ls -1 ~/.fonts/ubuntu-mono*

The answer to that question comes with fc-match(1) from fontconfig package. Check my ‘queries’ below.

% fc-match consolas:bold
consolas-bold.ttf: "Consolas" "Bold"

% fc-match consolas     
consolas.ttf: "Consolas" "Regular"

% fc-match consolas:bold:italic
consolas-bold-italic.ttf: "Consolas" "Bold Italic"

Selecting Text for Copy/Paste

The xterm*charClass defines which sets of characters should be treated the same when doing cut and paste. Especially with double-clicking the text. The setting above I use is based on 15 years of experience and seems to work best. You are of course encouraged to investigate the CHARACTER CLASSES section of the xterm(1) man page to read more on this topic.

The xterm*on4Clicks and xterm*on5Clicks are not used by default while xterm*on2Clicks are predefined as word and xterm*on3Clicks as line values. This is why I added them so you can select entire group with xterm*on4Clicks and entire page with xterm*on5Clicks option. Alternatively you can also use some fancy regex for some of these ‘CLICKS’ but I never thought about a REGEX that would be useful here – maybe you will come with something sensible.

Here are these ‘CLICKS’ in action.

First the xterm*on2Clicks with word selection. This is when the xterm*charClass is taken into account – what is word and that is not πŸ™‚


Then xterm*on3Clicks with line selection.


Now xterm*on4Clicks with group selection.


Finally the xterm*on5Clicks entire page selection.


Selection Buffers and Keyboard Shortcuts

The last interesting option is xterm.VT100.translations which is used for keyboard shortcuts.

The first one select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0) is better described in the page from 2005. I will try to short the meritum here. The X11 applications have two different selection buffers:

CLIPBOARD – selection buffer used for cut/paste functions – you select/highlight text and then select Copy from context menu or use [CTRL]+[C] shortcut. Then you use Paste or [CTRL]+[C] shortcut.

PRIMARY – this one receives data when user selects/highlights text with mouse. None other operations such as Copy or Paste are needed. You end selecting the text and its already in PRIMARY buffer. You then paste it with MIDDLE mouse button.

Using the option above selecting/highlighting the text in xterm(1) copies the text into both selection buffers simultaneously. You can now either Paste it info Firefox or hit MIDDLE mouse button to paste it in other xterm(1) terminal. Best of both worlds.

If that setting does not suit you then use the xterm*selectToClipboard instead. When set to true it copies selected text to CLIPBOARD buffer and when set to false it copies selection to the PRIMARY one.

Increase/Decrease Font Size on the Fly

I always missed the shortcuts to decrease or increase font size on the fly in xterm(1) and for many years I believed that its just not possible and then I found some blog post (do not remember which one now of course) in which I found these settings and started to use them.

They are smaller-vt-font() and larger-vt-font() for decrease and increase respectively with [CTRL]+[-] and [CTRL]+[+] shortcuts – keep in mind that [SHIFT] is not used here.

Copy/Paste with [CTRL]+[SHIFT]+[C/V]

If by some reason you prefer to copy and paste by using [CTRL]+[SHIFT]+[C] and [CTRL]+[SHIFT]+[V] shortcuts then copy-selection(CLIPBOARD) and insert-selection(CLIPBOARD) will do the needed job here. As you probably guessed you can use PRIMARY instead of CLIPBOARD here if that is what you desire.

Interactive Menus

The xterm(1) comes with three different interactive menus. I will now show all three of them here with screenshots.

Menu displayed with clicking [CTRL]+[LEFT-MOUSE-BUTTON] in the terminal area.

Menu displayed with clicking [CTRL]+[MIDDLE-MOUSE-BUTTON] in the terminal area.

Menu displayed with clicking [CTRL]+[RIGHT-MOUSE-BUTTON] in the terminal area.

Random xterm(1) Theme

To have random xterm(1) theme on every startup you need four things:

I gathered all these themes all over the Internet, only the VERMADEN and VERMADEN-OLD themes are created by me.

Little preview of some of the included xterm(1) themes.


From now on to have random xterm(1) theme at each start always start it with ~/scripts/ script. The script itself is not very complicated. It just draws random theme from the ~/.config/Xdefaults/themes dir – then loads the ~/.Xdefaults config – then merges the colors from chosen random theme – and finally starts new xterm(1) instance.


I use urxvt(1) less often but still sometimes I want to use bitmap fonts instead.


For a start here is the urxvt(1) configuration in the ~/.Xdefaults file.

! -----------------------------------------------------------------------------
  urxvt.letterSpace:    0.0
! urxvt.font:           xft:monaco:pixelsize=9,style=regular,minspace=True
  urxvt.font:           -*-clean-*-*-*-*-*-*-*-*-*-*-iso8859-2
  urxvt.boldFont:       -*-clean-*-*-*-*-*-*-*-*-*-*-iso8859-2
  urxvt.iconFile:       /home/vermaden/.icons/vermaden/xterm.xpm
  urxvt.geometry:       150x40
  urxvt.cutchars:       ,;
  urxvt.scrollBar:      false
  urxvt.imLocale:       en_US.UTF-8
  urxvt.loginShell:     true
  urxvt.saveLines:      1024000
  urxvt.inheritPixmap:  false
  urxvt.shading:        20
  urxvt.xftAntialias:   true
  urxvt.jumpScroll:     true
  urxvt.tintColor:      black
  urxvt.internalBorder: 2
  urxvt.cursorBlink:    false
  urxvt.cursorColor:    #dd9900
  urxvt.cursorColor2:   #000000
  urxvt.colorBD:        #dddddd
  urxvt.colorIT:        #bbbbbb
  urxvt.colorUL:        #999999
  urxvt.underlineColor: #999999

Tabbed Interface

To get tabs in urxvt(1) add the following option to the ~/.Xdefaults configuration file.

  urxvt.perl-ext-common:   default,tabbed

With this option you will open new tab with [SHIFT]+[DOWN] shortcut.

To switch between the tabs left and right use [CTRL]+[SHIFT]+[LEFT] and [CTRL]+[SHIFT]+[RIGHT] shortcut respectively.

You can also use [CTRL]+[LEFT] and [CTRL]+[RIGHT] to move current tab left and right.

The timeless [CTRL]+[D] – which of course is not a strictly urxvt(1) shortcut but a general shortcut for closing all terminals.


Daemon and Client Mode

The urxvt(1) can be run in special daemon mode where you start one urxvtd(1) server and many urxvtc(1) clients.

% urxvtd
rxvt-unicode daemon listening on /home/vermaden/.urxvt/urxvtd-w520.local.

Now you will start each new urxvt(1) terminal with urxvtc(1) command.

The drawback of that approach is that when urxvtd(1) dies or crashes then also all your urxvtc(1) client terminals disappear πŸ™‚

Random urxvt(1) Theme and Background

To have random urxvt(1) theme and background on every startup you need four things:

Little preview of some of the included urxvt(1) themes and backgrounds.


From now on to have random urxvt(1) theme at each start always start it with ~/scripts/ script. The script for urxvt(1) is little more advanced. First it draws random theme from the ~/.config/Xdefaults/themes dir – then checks if its DARK or LIGHT theme – then draws either random LIGHT or DARK background from the ~/.config/Xdefaults/urxvt dir – finally loads the ~/.Xdefaults config and then merges the colors from chosen LIGHT or DARK theme. Of course then it finally starts new urxvt(1) instance.


The more modern and GTK based sakura(1) also supports tabs. To open new tab use [CTRL]+[SHIFT]+[T] shortcut. To switch between the tabs use [CTRL]+[ALT]+[LEFT] and [CTRL]+[ALT]+[RIGHT] shortcuts. You can also move tab between left and right with [CTRL]+[SHIFT]+[LEFT] and [CTRL]+[SHIFT]+[RIGHT].


One things that sakura(1) impresses me is that you can scale down its window and then scale that window up and the contents that did not fit in the window after downscalling are back again in the terminal. Doing the same operation in xterm(1) or urxvt(1) terminals will result in these characters being lost. The output is also dynamically ‘fit’ into the new larger window while maintaining the new lines etc. Besides that nice feature it is small and fast and uses relatively small amount of RAM.


Different sakura(1) Themes

If you would also like to start sakura(1) with different theme everytime the options are quite limited here. The palettes and color sets are hardcoded into the sakura(1) source code.

I will not show you how to modify them using the FreeBSD Ports system.

The sakura(1) port is located at /usr/ports/x11/sakura directory. For the record – I use WRKDIRPREFIX option in the /etc/make.conf file. This means that when I type make extract in the /usr/ports/x11/sakura dir the work directory will not be created at /usr/ports/x11/sakura/work directory but at /usr/ports/obj/usr/ports/x11/sakura/work instead. That way I can clean my Ports tree fast by removing the /usr/ports/obj directory.

We will now extract and patch the sakura(1) port on FreeBSD.

% grep WRKDIRPREFIX /etc/make.conf

# cd /usr/ports/x11/sakura

# make patch

# cd /usr/ports/obj/$( pwd )/work/*/src || cd work/*/src

# pwd

# grep -m 1 DEFAULT_PALETTE sakura.c
#define DEFAULT_PALETTE "tango"

# grep -o -E '[a-z]+_palette\[PALETTE_SIZE\]' sakura.c

As you can see the default sakura(1) palette is Tango. Fortunately you can use palette=solarized_dark option in the ~/.config/sakura/sakura.conf config file to change it into Solarized Dark for example.

Besides hardcoded palettes sakura(1) also has several Color Sets.

If you would like to make random theme (from the hardcoded ones) for each start you would have to use this syntax with prepared dedicated config files for each palette.

% sakura --config-file ~/.config/sakura/sakura.solarized_dark.conf --colorset 1 
% sakura --config-file ~/.config/sakura/sakura.tango.conf          --colorset 3

I do not use sakura(1) that much so I was too lazy to write random startup theme script also for it πŸ™‚

Changing sakura(1) palette or color set manually is shown below.



RAM Usage Comparison

Just started xterm(1) terminal takes about 16 MB or RAM as you have seen on the urxvt(1) screenshots. The urxvt(1) started without tabs uses more then 2 TIMES of xterm(1) terminal RAM usage. The urxvt(1) started in tabbed mode uses more then 3 TIMES of xterm(1) terminal RAM usage. The sakura(1) also uses more then 3 TIMES of xterm(1) terminal RAM usage.

Table below shows RAM usage comparison. I have added more feature packed mate-terminal(1) to the list and also added the st(1) minimalistic terminal from Suckless project for compassion.

    64  mate-terminal
    53  sakura
    52  urxvt (tabbed)
    38  urxvt
    16  xterm
    12  st

CPU Time Usage Comparison

I also made simple benchmark of the CPU used. The ‘benchmark’ was to check how much time each terminal would take to print output ofΒ  dmesg | lolcat -b -r command. Here xterm(1) does not shine that much.

0:00.93  xterm
0:00.82  mate-terminal
0:00.52  sakura
0:00.43  urxvt
0:00.23  st

The above ‘benchmark’ was was quite ‘hard’ because of all the colors generated by lolcat(1) command. Lets try something more practical now. We will measure CPU time used to display out of the find find /usr/local/share/doc command.

0:01.34  xterm
0:01.18  mate-terminal
0:00.85  sakura
0:00.32  urxvt
0:00.28  st

Seems that lolcat(1) was not that ‘hard’. The st(1) minimalistic terminal really seems to suck less here πŸ™‚


Valuable News – 2021/05/17

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).


DragonflyBSD 6.0 Stable Build Available to Download.

OpenBSD 6.9 Exploring DHCP Part One.

Susbscriber Request: FreeBSD Desktop Installer Revisted.

Bastille Template for Running PostgreSQL Server in FreeBSD Jail.

Vector Packet Processing (VPP) Portability on FreeBSD.

KDE Plasma Wayland – Week in FreeBSD.

NomadBSD 130R-20210508 Available.

Meet mold – Modern High Performance Replacement for Existing Unix Linkers.

FragAttacks – Fragmentation and Aggregation Attacks on All Wi-Fi Wireless Protocols.

Basics of ZFS Snapshot Management.

Docker Can Slow Down Your Code and Distort Your Benchmarks.

FreeBSD Network Perfs vs XSA-332.

GhostBSD 21.05.11 ISO Available.

BSD Now 402 – Goodbye GPL.

Running Potluck Images with runj.

MinIO is Now Licensed Under GNU AGPLv3.

Zulip 4.0 – Threaded Open Source Team Chat.

Using FreeBSD Jails with ZFS and PF on DigitalOcean.

Debugging Random Slow Writes in PostgreSQL

FreeBSD Can – Running AppImages via Linux ABI.

AmigaOS 3.2 for All Classic AMIGAs Released and Available.

Unix Philosophy with Example.

Native www/chromium Now Works with Microsoft Teams on FreeBSD.

KDE on FreeBSD 2021 O3.

Native (OpenHL) Half-Life on FreeBSD with4 Easy Steps.

Potabi – Next Generation Computing Built on FreeBSD.


TinyPilot Will Turn Raspberry Pi into Browser Based KVM.

AMD 4700S Kit Shows in Photographs and Retail Listings.

Best Internal Hard Drives 2021/05.

Framework Laptop is Modular/Upgradeable 13.5 Inch Notebook.

ASUS PN51 Early Review.

Best SSDs 2021/05.

Intel Wants to Standardize More Power Efficient ATX12VO Power Connector.


Why Bad CEOs Fear Remote Work.

True Size of Africa.


Game Developers Break Silence Around Salaries.

Uber Named ‘Champions League of Tax Avoidance’ – Used 50 Dutch Shell Companies to Dodge Taxes on Nearly $6 Billion Revenue.

Exploiting Custom Protocol Handlers for Cross Browser Tracking in Tor/Safari/Chrome/Firefox.

Quote(s) of the Week

Docker is basically iframes for computers.

Paul Campbell


Valuable News – 2021/05/10

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).


OmniOS Community Edition r151038 Stable and LTS.

First containerd Release with Runtime Support on FreeBSD.

Running FreeBSD Jails with containerd 1.5.

TrueNAS 12.0-U3.1 Available.

Deep Diving into Strengths of FreeBSD.

Sudo on FreeBSD.

Simple Progress Bar for Shell Script.

XigmaNAS Available.

XigmaNAS Available.

FreeBSD 2021 Q1 Status Report.

GhostBSD 21.05.01 Upgrade/Install/Overview.

Upgrade ZFS Storage Pools Version on FreeBSD.

Linux Largely Abandoned Still Useful Near Vintage Computers.

Routing and Firewalling VLANS with FreeBSD.

FreeBSD Userland Debugging – LLDB Core Dump Support Improvements.

BSD Now 401 – OpenBSD Dog Garage.

pfSense – WireGuard Returns as Experimental Package.

Migrating Gitea to OmniOS. [2020]

Bacula Data Encryption. [2020]

FreeBSD 13 and /etc/motd – It is Gone.

Illumos Ends SPARC Support – IPD 19 Sunset SPARC.

The htop(1) Now Supports ARC Stats on FreeBSD.

FreeBSD is Off to Good 2021 Start with FreeBSD 13.0 – PIE By Default – helloSystem.

FreeBSD Journal – 2021/03-04 – FreeBSD 13.0.

Using Virtualization with QEMU and NVMM on NetBSD.

In Other BSDs for 2021/05/08.

FreeBSD Router – Part 2 – Excursion – FreeBSD and Security.

FreeBSD 13 Install.


Haiku Activity Report – 2021/03-04.

Linus Torvalds on Why Desktop Linux Sucks.

Landlock on Linux Takes Inspiration from XNU Sandbox/FreeBSD Capsicum/OpenBSD Pledge/Unveil.

Update Your Bootloader on FreeBSD 13 when You Upgrade Your zroot Pool.

Caronade is Small and Light Tool to Help with FreeBSD Ports CI.

Audacity will Add Basic Telemetry.

DragonflyBSD 6.0 Released.

Install Gnome on OpenBSD.


I See Dead Micro Ops – Leaking Secrets via Intel/AMD Micro Ops Caches.

TRENDnet TEG-S350 5-Port 2.5GbE Switch Review.

HP EliteDesk 800 G6 Mini 35W 1L PC Review.

Supermicro AS-1024US-TRT Review 1U Ultra AMD EPYC 7003 Server.

Branch Predictor – How Many if Are Too Many – Including X86 and M1 Benchmarks.

ARM vs RISC-V Vector Extensions.

RISC-V Vector Instructions vs ARM and x86 SIMD.

ARMv9 – What is the Big Deal?

Report – AMIGA at NASA. [1999]

JingPad A1 – World FIRST Consumer Level ARM Based Linux Tablet.

Jasper Lake BRIX – GIGABYTE GB-BMCE-4500C Powered by Celeron N4500.

AMD EPYC Server CPUs Capture Highest Market Share Gains from Intel in 15 Years.

Unboxing New IBM ThinkPad 380ED – $4000 Laptop from 1997.

OpenPOWER Foundation Announces LibreBMC – POWER Based Fully Open Source BMC.


COVID-19 is Vascular Disease – Coronavirus Spike Protein Attacks Vascular System on Cellular Level.

Wuhan Laboratory Origin of SARS-CoV-2.


Ultimate Guide to Inflation.


Valuable News – 2021/05/03

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).


Gemini Capsule in FreeBSD Jail.

Samba with macOS Spotlight on FreeBSD with Elasticsearch.

Intel 8265 Bluetooth on FreeBSD.

IBM PowerVM VIOS Maintenance Validation and Backup/Restore.

BSD Weekly – Issue 66.

The cd(1) is Not a Program.

FreeBSD arm64 Performance – Getting More Out of Your FreeBSD Deployment.

Ghost in the Shell – Part 5.

Registration Open for FreeBSD Developer Summit at 2021/06.

BSD Now 400 – FreeBSD Became 13.

The open-vm-tools on FreeBSD Under VMware ESXi ARM Fling.

GhostBSD 21.05.01 Now Available.

GhostBSD Updated Based on FreeBSD 13.0 Stable.

GhostBSD Shifts Base to FreeBSD 13.0 – Improvements for OpenZFS 2.0.

QEMU 6.0 Changelog.

CGI with awk(1) on OpenBSD httpd(8).

KDE Plasma Wayland on FreeBSD.

FreeBSD Meetings on the Desktop.

It is Time to Say Goodbye to GPL.

In Other BSDs for 2021/05/01.

OpenBSD 6.9 Released.

Install Firefox under FreeBSD and Set it Up with Privacy.

Contributing to FreeBSD as Programmer.

Contributing FreeBSD Documentation.

HardenedBSD 2021/04 Status Report.

OpenBSD 6.9 Packages Using IPFS.

OpenIndiana Hipster 2021.04 is Here.

Improved for OpenBSD.

On Updating QEMU bsd-user Fork.

As Longtime BSD User I Have My Doubts About Our Future.

What is FreeBSD? What is It Used For?

Wayland on FreeBSD with AMDGPU.


Two Undocumented X86 Instructions in Intel CPUs Which Control Microarchitectural State – Can Modify Microcode.

AMD Ryzen Threadripper Pro 3955WX Review.

Gemini Capsule in FreeBSD Jail.

Mele Quieter2 – Small Fanless PC with Intel J4125 and 8 GB RAM and M.2 NVMe Slot.

SiFive Intelligence X280 64bit RISC-V Processor Integrates AI Extensions.

ARM Announces Neoverse V1 and N2 Platforms/CPUs – More Performance/Cores/Flexibility.

ARM Neoverse N2 and V1 at ARM Tech Day 2021.

AC8 Mini PC with Celeron N6000/N6005/N5095 Processor.

BeagleV – First Affordable RISC-V SBC.

3U Rack Mount that Support 16 Front Removable Raspberry Pi SBC.

Indiegogo – Station P2 – Powerful Open Source Geek Computer.

Antmicro ARVSOM Offers StarFive JH71x0 RISC-V CPU and Has Raspberry Pi CM4 Compatibility.×0-risc-v-processor-raspberry-pi-cm4-compatibility/

UVA Engineering Computer Scientists Discover New Vulnerability Affecting Computers Globally.

RISC-V Core in Racket.

TSMC Uses AMD EPYC Chips to Make Chips.

RISC-V International to Give Away 1000 RISC-V Development Boards.


Brittany Kaiser – Big Tech Executives Should be Held Criminally Liable for Their Companies Mischiefs.

Cryptocurrency is Abject Disaster.

Grand Jury Subpoena for Signal User Data – Central District of California.

Better Air is Easiest Way Not to Die.

How to Run without All the Pesky Agonizing Pain.


Network of Local Resellers Helps Funnel Oracle Technology to Police and Military in China.