Software list

2025-06-26

Utilities

  • bc - arbitrary precision numeric processing language
  • ripgrep - fast search tool inspired by ag and grep
    comparison of alternatives: https://beyondgrep.com/feature-comparison/
  • xxd - make a hexdump or do the reverse
  • psmisc - small set of utilities that use the linux proc filesystem
  • xtools-minimal - opinionated helpers for working with XBPS - minimal subset
  • rsync - remote fast incremental file transfer tool
  • magic-wormhole - get things from one computer to another, safely
  • remmina - remote desktop client written in GTK+
  • ufetch - tiny system info for Unix-like operating systems
  • opendoas - execute commands as another user

System information

  • htop - interactive process viewer
  • nethogs - small net top tool grouping bandwidth by process
  • powertop - tool to diagnose issues with power consumption and power management
  • lm_sensors - utilities to read temperature/voltage/fan sensors
  • acpi - informations about ACPI devices (battery, thermal sensors and power)
  • lsof - LiSt Open Files
  • strace - System Call Tracer
  • lshw - hardware lister application
  • dmidecode - desktop Management Interface table related utilities

Graphical frontends and visualization

  • xdu - display the output of du in an X window
  • xdiskusage - based on xdu, more user-friendly, but unmaintained
  • gparted - Gnome Partition Editor for graphically managing your disk partitions
  • gitk - Git repository browser
  • meld - visual diff and merge tool
  • colordiff - colorizes output of diff
  • arandr - graphical XRandR frontend
  • wpa-cute - graphical wpa_supplicant frontend
  • gnuplot - command-line driven graphing utility

Managing fonts

  • fontmanager - a simple font management tool for GTK+
  • fontforge - create and modify PostScript, TrueType and SVG fonts
  • CellWriter - grid-entry natural handwriting input panel

Java

  • openjdk-jre, openjdk - java runtime environment and development kit In /etc/profile:
  • set and export variable $JAVA_HOME containing /usr/lib/jvm/default-jre for only running java applications or /usr/lib/jvm/default-jdk also for development
  • add /usr/lib/jvm/default-jdk/bin and /usr/lib/jvm/default-jre/bin to $PATH

On void linux, upon install /etc/profile.d/jdk.sh is created:

# only modify the environment if an openjdk*-jre package is installed
if [ -d "/usr/lib/jvm/default-jre" ]; then
	# if an openjdk* package is installed, prefer it to the selected jre
	if [ -d "/usr/lib/jvm/default-jdk" ]; then
		export JAVA_HOME="/usr/lib/jvm/default-jdk"
	else
		export JAVA_HOME="/usr/lib/jvm/default-jre"
	fi
	# append the selected jdk and jre bin and man dirs to the relevant PATHs
	export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
	export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
fi

Development

  • git - distributed version control system
  • make - GNU Make build tool
  • gcc - GNU Compiler Collection
  • hugo - fast & Modern Static Website Engine
  • nodejs - Evented I/O for V8 javascript

in ~/.profile:

export NPM_CONFIG_PREFIX=~/bin/npm-global
  • charles - web debugging proxy, non-free but very good

Read here about running charles on musl

Password managers

  • KeePassXC - modern, secure, and open-source password manager
  • pass - very simple password store that keeps passwords inside gpg2 encrypted files

VPN

  • pptpclient - client for the proprietary Microsoft Point-to-Point Tunneling Protocol
    set connections in /etc/ppp/peers/, for example /etc/ppp/peers/examplevpn:
pty "/usr/sbin/pptp ip-address --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name username
remotename exampleserver
ipparam examplevpn
require-mppe-128
  • pty: start a tunnel to ip-address
  • lock: create lock file
  • noauth: do not require authentication of the server
  • nobsdcomp: disable BSD compression, usually disabled
  • nodeflate: disable deflate compression, usually disabled
  • name: username for authentication
  • remotename: server name used when setting the password
  • ipparam: name that you will use to refer to the connection
  • require-mppe-128: require Microsoft Point-to-Point Encryption (MPPE) with 128-bit encryption

Set password in /etc/ppp/chap-secrets:

username exampleserver "password" *

Start the connection:

# pon examplevpn

Route traffic through the connection:

# ip route add 192.168.1.162 dev ppp0

Text

Images

  • mypaint - graphics application for digital painters
  • gimp - GNU image manipulation program
  • inkscape - vector-based drawing program
  • synfig - open-source 2D Animation Software
  • GraphicsMagick - image Processing System

Image viewer

  • nsxiv - Neo (or New or Not) Simple (or Small or Suckless) X Image Viewer
  • qimgv is good alternative if you need more functionality like image editing and moving/copying.

Using nsxiv and integration with ranger

Music

Playing

  • cmus - small, fast and powerful console music player for Unix-like operating systems
  • mpd - flexible, powerful, server-side application for playing music
  • ncmpcpp - featureful ncurses based MPD client
    configuration in ~/.ncmpcpp/config:
# ~/.ncmpcpp/config

progressbar_look = "•○·"
statusbar_visibility = "yes"
header_visibility = "no"
titles_visibility = "yes"
enable_window_title = "yes"
ignore_leading_the = "yes"
jump_to_now_playing_song_at_start = "yes"
autocenter_mode = "yes"
cyclic_scrolling = "no"
use_console_editor = "yes"
external_editor    = "vim"
selected_item_prefix = "$4"
selected_item_suffix = "$9"
playlist_display_mode = "classic" #(classic/columns)
browser_display_mode = "classic" #(classic/columns)
user_interface = "classic" #(classic/alternative)
mpd_music_dir = "/home/user/data/music"

# song list
song_list_format = "{$3%a: $9}{$8%t$9}|{$9%f$9}$5$R{%b }{$6│%l$9}"
song_status_format ="{$8%a: $9}{$8%t$9}|{$8%f$9}"
song_window_title_format = "{%a: }{%t}|{%f} {[%l]}"

# color definitions
colors_enabled = "yes"
header_window_color = "blue"
volume_color = "blue"
state_flags_color = "red"
main_window_color = "default"
color1 = "red"
color2 = "green"
progressbar_color = "black"
progressbar_elapsed_color = "cyan"
statusbar_color = "blue"
state_line_color = "blue"
alternative_ui_separator_color = "green"

Making

  • lmms - cross-platform music production software
  • portmidi - real-time input and output of MIDI data
  • timidity - MIDI to WAVE converter and player

Video

  • mpv - Video player based on MPlayer/mplayer2
  • vlc - cross-platform multimedia player
  • ffmpeg - decoding, encoding and streaming software
  • cheese - GNOME tool to take pictures and videos from your webcam

Internet

  • amfora - fancy terminal browser for the Gemini protocol
  • kristall - Small-Internet Browser
  • firefox - Mozilla Firefox web browser

Read about customizing firefox.

Fun

  • xaos - fast interactive real-time fractal zoomer/morpher

Stars

  • stellarium - open Source Planetarium
  • kstars - open source, cross-platform Astronomy Software by KDE

Games

  • openmw - open Implementation of Morrowind’s Engine
  • The-Powder-Toy - falling sand physics sandbox, simulates air press

Flatpak

  • flatpak - Application sandboxing and distribution framework

To use it you need working dbus and polkit.

Add flathub repository:

$ flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo

I use it for:

Install them from flathub:

$ flatpak install flathub com.valvesoftware.Steam
$ flatpak install flathub com.usebottles.bottles

Run steam:

$ flatpak run com.valvesoftware.Steam

If the output contains dbus error, you have a dbus problem:

Can't find bus: Failed to execute child process “dbus-launch” (No such file or directory)

Applications use $DBUS_SESSION_BUS_ADDRESS variable to connect to running dbus, check yours:

$ echo $DBUS_SESSION_BUS_ADDRESS

If it is empty check if you are starting dbus and exporting the variable where you are starting your session, for example in ~/.xinitrc:

eval "$(dbus-launch --sh-syntax)"
dbus-update-activation-environment --all