Sensible Application Names

Published:

I often struggle to work out what a particular application I’m trying to run is called. bc or dc? cal or calendar? What was the command to print the current firewall ruleset?

1
2
# nft list ruleset
nft: command not found

Now.

If I want to open IRC, I want to have to type irc into my terminal, not catgirl.

xdg-open on Linux and open on macOS allows programms to be executed with the corresponding stored standard application. Finally, a mime type is assigned to an application.

My idea on UNIX systems is rather to assign a specific application to a use case, for example the application type email-client to the specific application neomutt. So Firefox can still be named Firefox. Or Firefox ESR. Think of it like the internal project name. The end user doesn’t care what it’s called. And the developer uses the project name.

VyOS is doing it right with their operating system (CLI reference). I think that’s one of the things Gnome does right too. I don’t have to tell someone who has never touched Fedora where to find the contacts program. I don’t have to call my contacts application rogues-from-the-underdawn. It’s contacts, plain and simple.

Giving installation instructions would be so easy if we could just write Install emacs by writing install emacs please install emacs in your terminal. The same goes for command line flags and subcommands. A terminal-based workflow would be much more accessible to new users and power users.

I am aware that it is difficult to come up with elegant names for some POSIX commands. I am also aware that it is difficult when, for example, OpenBSD uses a different list (ls) than GNU list. But: It’s just a thought and an experiment for me.

Nowadays, programs are named as they are named. ls is ls and not list. So, instead I need to add a layer of abstraction and wrap the commands into an alias and use it instead.

Below is a living list of aliases I have created so far. Feel free to drop me a line if you want to add something to the list.

aliascommand
openxdg-open
edit$EDITOR
listls -1A
gotocd
helpman
print
tutorial
uniqueuniq
copycp -r
movemv
reloadexec $SHELL -l
pleasedoas, sudo
commands
countwc
installpkg_add
uninstallpkg_delete
installedpkg_info -f | grep '^@depend' | cut -f 3 -d :
updatesyspatch && pkg_add -u
weekdate +%V
mapxargs -n1
playamused
podcastpodboat
irccatgirl
rssnewsboat, sfeed,…
emailneomutt
encrypt/decryptage, gnupg,…
archive/extractfucking tar… god I hate tar for this…
removerm -fr
calendarcal
remindercalendar
calculatordc