software I use
this is not an extensive list of the software I prefer, but it includes projects that I think deserve a special note, and ones to which I anticipate contributing upstream (if I had not done so already).
additionally, I can keep track of support and development communication channels for the software listed.
desktop environment
- mpv
- upstream: git
- picom
- upstream: git
- st
- upstream: git
- discussion ML: dev@suckless.org [info]
- patch ML: hackers@suckless.org [info]
- sxiv
utilities
- abduco
- upstream: git
- execline
- upstream: git
- ML: skaware@list.skarnet.org [info]
I use
execlineb
for service run scripts, cron jobs, and other trivial miscellaneous scripts.- mkp224o
- upstream: git
- mksh
- ML: miros-mksh@mirbsd.org [info]
I use mksh everywhere I don't want to configure zsh: on servers, alternate user accounts, et cetera.
- Neovim
it
just works
withst
now, and I have no complaints compared to Vim.- pass
-
I was happy with KeePassXC but wanted something simpler, more modular, and easier on resource usage when I was not using it. I have had KPXC running in background idling a bit under 100mb memory usage. while not as big as some graphical (or even commandline) applications, it's still memory put to better use for other things. and besides, pass has just about everything KPXC has, thanks to third-party efforts.
I do want to cut the bash dependency out of
pass
, either switching to POSIX shell, or using a compiled language, or a combination of the two. - rsync
- ML: rsync@lists.samba.org [info]
- scdoc
- upstream: git
- ML: ~sircmpwn/public-inbox@lists.sr.ht [info]
- zsh
- ML: zsh-users@zsh.org [info]
my primary at-home interactive shell
I have finally made progress migrating away from claws-mail to a CLI setup. the rest of my effort involves converting over 500 thousand messages from mailing lists to maildir format and consider setting up notmuch again for searching and indexing mail. I'm also using mbsync but I want a daemon that supports IMAP IDLE and a persistent connection, rather than having to sync under a cron job. this would also allow for me to script instant new mail notifications if I wish.
as for the MTA/MDA, I still use Postfix and Dovecot for the time being.
- mblaze
- upstream: git
- ML: mblaze@googlegroups.com [archives]
- msmtp
- upstream: git
daemons & system components
- btpd
- upstream: git
I use this alongside deluge where I need DHT and HTTPS tracker support.
- pam_rundir
- upstream: git
implements XDG_RUNTIME_DIR support with pam module, eliminating the need for a session manager such as (e)logind
- Prosody
- upstream: hg
- user ML: prosody-users@googlegroups.com [info, archives]
- dev ML: prosody-dev@googlegroups.com [info, archives]
- XMPP: prosody@conference.prosody.im
- s6
- upstream: git
- ML: supervision@list.skarnet.org [info]
- tor
- upstream: git
- user ML: tor-talk@lists.torproject.org [info]
- dev ML: tor-dev@lists.torproject.org [info]
fun
- Dolphin Emulator
- upstream: git
- Mednafen
Android
- andOTP
- upstream: git
- Matrix #andOTP:privacytools.io
I use this for TOTP keys I do not store on my YubiKey.
- Conversations
- KISS Launcher
- OpenKeychain
- Android Password Store
- upstream: git
complements my
pass
usage on PC devices; database is synchronised over a private, self-hosted git repository.
planned
I'm planning to make various software switches in my setups, but switching takes time. my goal is to try switching all these out and hopefully add the replacement tools to the lists above.
- ssh: I plan to migrate from openssh to tinyssh but I need to add some (deliberately?) missing functionality to tinyssh first: namely support for multiple ssh channels (which is an RFC feature and not an openssh extension).
- httpd: I want to drop nginx in favour of solutions such as publicfile especially for static-served content. CGI is another thing I want to investigate.
- ActivityPub: I plan to write a server implementation to replace (and eventually be a near drop-in replacement for) Pleroma based around UNIX/djb principles of strictly-designed programs and IPC interfaces. the goal is to be simple yet flexible enough to meet unique, individual needs.
- OpenPGP: unfortunately, GnuPG for desktop is the de facto OpenPGP implementation. I am keeping my eye on sequoia OpenPGP library and will probably write a frontend utility for it. currently, the main caveat is that sequoia does not support smartcards—which is actually a serious usability concern for me, since I extensively use my YubiKey.
- logging: I switched three of my systems away from rsyslog to a combination of ucspilogd (for local syslog) and socklog (for remote syslog collection). both of these work together with s6 and s6-log to write to directories on disk as specified by line-matching rules; the architecture allows for most of the components to run as a non-root user, unlike rsyslog which essentially has to run as root. ultimately I want to remove syslog from the equation entirely, but some software seems to support only logging to syslog, so it will be a while before I can reach this ideal situation.
- cron: I want to switch away from conventional cronds such as cronie by writing my own daemon.
- clocksetting: I use OpenNTPD for client-server and chrony on client-only devices. I would like to experiment with replacing them with the time management utilities found in s6-networking.
- image organisation: I want to re-implement hydrus as a suite of commandline utilities. in addition, I'd like to have a companion app for Android so I can access my media library from my phone.