Projects, Scripts, and Various Works

A simple console-based application for playing media files using known media players like SoX, VLC, MPlayer and FFplay as backend.

[ playing audio files ] [ playshell playing movie files ]

A framework for shell scripts that provides functions that can be used to load, include or call module shell scripts. It supports most shells based on Bourne shell including Bash, Ksh and Zsh. A compiler can also be used.

binfind, libfind, and manfind

These are the scripts that I commonly use for finding executable binaries, libraries, and manual page files.


A Ruby script that runs multiple instances of dnscrypt-proxy with many features.


Sends signals to process trees with style.

The script also contains reusable functions for working with process trees.


A script that copies files along with their dependencies to a virtual root directory. The resulting file’s path is reproduced based on its source. It is useful for preparing binaries in a chroot environment.


The script is a tcpdump service starter and manager. It can also automatically delete files older than C days, and reduce the size of the main log file if it’s already larger than N bytes.


A script that converts device paths in a fstab file to UUID forms.


My personal overlay for Gentoo Linux’s Portage. It includes the following packages:

The overlay can be installed locally through layman (layman -a konsolebox), or by adding a custom configuration file to /etc/portage/repos.conf/.

getabspath and getcleanpath

getabspath is a function for shell scripts that’s intended to get the strict absolute form of a path (strict in a sense that the resulting path would remain consistent even if another item is appended unto it), without relying on an external command if possible.

getcleanpath is similar to getabspath but it doesn’t rely on the format of its input path to produce the output path. The output path is like the output of of realpath. It would never end in / unless it’s the root directory itself.

The files in the repository contain functions that would work for many types of shells.

Back to top