Software list
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
- vim, vis, neovim - text editors
- mupdf - lightweight PDF and XPS viewer
mupdf vs poppler: https://hzqtc.github.io/2012/04/poppler-vs-mupdf.htm - zathura - highly customizable and functional document viewer
- zathura-pdf-mupdf - PDF support for zathura (using mupdf)
- zathura-cb - Comic book support for zathura
- foliate - simple and modern GTK eBook reader
- mcomix - GTK+ comic book viewer
- libreoffice-calc and libreoffice-writer - spreadsheet editor and word processor
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