Posts published by: Alejandro Liu

My git release script

I always had issues remembering how to create releases. So in order to standardise things, I wrote this script:

So whenever I am ready to release I would then just issue the command:

./ghrelease vX.Y.Z


You obviously need git. But also you would need github-cli.

Your …

Linux Icons

A quick note on how to add icons to menus in a Linux desktop.

  1. Create the icon image in: /usr/share/pixmaps.
    • png and svg (and maybe others) are supported.
    • 24x24 seems to be a good size for menus.
  2. You need to create a .desktop file in /usr/share/applications …


This is my lnbin script.

This is a program for managing symlink in a /usr/local/bin directory. It is similar to stow, lndir, cleanlinks and others.

The approach used by lnbin is based on Stow, and it is to install each into its own tree, then use symbolic links …

nas ops cmd

This is my op script.

This is stupidly simple script to elevate priviledges in order to manage NFS shares on my QNAP NAS.

The idea is that NFS shares do squash-root so admin access is disallowed through NFS. This gives a convenient way to issue root level commands without using …

Graphviz markdown extensions

I have enabled several extensions to my pelican website.

One that I wanted to include was graphviz. So, I searched for one and while I found a few, they somehow, did not work for me.

So I wrote my own: mdx_graphviz.

It is quite straight forward. You just need to …

Linux stuff


Since sudo v1.9, it is possible to use the following statements:

  • #includedir
  • @includedir

This is useful better for adding sudo rules rather than modifying the /etc/sudoers file.

Make sure that the includedir statement is the LAST entry in /etc/sudoers and the files in the directory:

  • names …


The other day I found dvtm. Looking at it, it looks very nice. It appeals to me because I am particularly fond of text user interfaces.


At the end I choose not to use it because:

  • terminal support was less than 100% useful.
  • At the end of the day using …

Migration to Pelican

Finally got fedup with github pages and its jekyll static site generator. Essentially things would break without any particular reason and there would be nearly no way to tell what went wrong. I addition, it was not easy to test changes before making them public.

So I switched to pelican …

Stupid SSL tricks

Some hints and tips foor doing SSL related things:

Netcat for SSL

This command lets you connect to a SSL server (a-la netcat):

cat request.txt | openssl s_client -connect server:443

Creating self-signed certificates

This is a single command to generate a self-signed certificate:

openssl req -new \
      -newkey rsa:4096 …

Enable syslog with void

In void Linux, the default is without logging. Most cases it is OK for desktop use.

If you want to enable syslog service in void, you need to install:


Also to let your user have access to the logs, use:

usermod -aG socklog <your-username>

Because I like to have …

Linux HDMI hotplug

The point of this article is to document I workaround that I came up with to handle a HDMI KVM switch.

What happens is that if my Linux PC is turned on while the KVM switch is selecting the other PC, it fails to initialize the display, so when you …

Alpine Boot switcher

I boot from a USB boot drive using UEFI. Because of the UEFI boot, it just a matter of copying the files from the alpine ISO to a USB thumbdrive VFAT32 partition. Partition may be set to EFI (but this doesn't seem to be required).

Since I would like to …

PulseAudio hints and tricks

PulseAudio is nowadays the default sound system in many Linux distributions. It lets you do a number of useful things.

PulseAudio comes with a handy command line utility pacmd to do a number of things.

pacmd commands

  • pacmd exit
  • pacmd help
  • pacmd list-(modules|sinks|sources|clients|cards|samples)
  • pacmd …

Getting the current proxy pac configuration

This is done using tcl for convenience. If you do not have it installed you can download freewrap executable and rename freewrap.exe to wish.exe or freewrapTCLSH.exe to tclsh.exe.

Registry Key : HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
REG_SZ AutoConfigURL = https://<your url>/proxy.pac
REG_DWORD ProxyEnable …