wowana.me
website source
commit a506a049b716e24f8c5093de74385a3b44aff9a9 parent 959fb638a4672f71d9cc3ef052764bd73c712cc9 Author: opal hart <opal@wowana.me> Date: Tue, 13 Apr 2021 23:58:34 +0000 add pages/software.md Diffstat:
A | src/pages/software.md | | | 287 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 287 insertions(+), 0 deletions(-)
diff --git a/src/pages/software.md b/src/pages/software.md @@ -0,0 +1,287 @@ +# 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 + +<dl> + +<dt>bspwm</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/baskerville/bspwm">git</a></li> + <li>IRC: <a href="ircs://chat.freenode.net/bspwm">freenode #bspwm</a></li> +</ul></dd> + +<dt><a href="https://tools.suckless.org/dmenu/">dmenu</a></dt> +<dd><ul> + <li>upstream: <a href="git://git.suckless.org/dmenu">git</a></li> + <li>discussion ML: <a href="mailto:dev@suckless.org">dev@suckless.org</a> [<a href="https://suckless.org/community/">info</a>]</li> + <li>patch ML: <a href="mailto:hackers@suckless.org">hackers@suckless.org</a> [<a href="https://suckless.org/community/">info</a>]</li> + <li>IRC: <a href="ircs://irc.oftc.net/suckless">OFTC #suckless</a></li> +</ul> +<p>useful for running programs and for various other tools/scripts I write</p> +</dd> + +<dt>lemonbar-xft</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/drscream/lemonbar-xft">git</a></li> +</ul> +<p>more performant than original <a href="https://github.com/LemonBoy/bar">lemonbar</a> and supports truetype fonts with Xft.</p> +<p>I feed status info to it using <a href="git://wowana.me/sprite.git">sprite</a> (C alternative to <a href="https://github.com/Snowlabs/bartender">bartender</a>) and <a href="git://wowana.me/bspws.git">bspws</a> (C utility I wrote to process bspwm state information).</p> +</dd> + +<dt><a href="https://mpv.io/">mpv</a></dt> +<dd><ul> + <li>upstream: <a href="https://github.com/mpv-player/mpv">git</a></li> + <li>IRC: <a href="ircs://chat.freenode.net/mpv">freenode #mpv</a></li> +</ul></dd> + +<dt>picom</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/yshui/picom">git</a></li> +</ul> +<p>essentially using it for drop shadows and not much else</p> +</dd> + +<dt><a href="https://st.suckless.org/">st</a></dt> +<dd><ul> + <li>upstream: <a href="git://git.suckless.org/st">git</a></li> + <li>discussion ML: <a href="mailto:dev@suckless.org">dev@suckless.org</a> [<a href="https://suckless.org/community/">info</a>]</li> + <li>patch ML: <a href="mailto:hackers@suckless.org">hackers@suckless.org</a> [<a href="https://suckless.org/community/">info</a>]</li> +</ul></dd> + +<dt>sxiv</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/muennich/sxiv">git</a></li> + <li>my fork: <a href="git://wowana.me/forks/sxiv.git">git</a></li> +</ul></dd> + +</dl> + +## utilities + +<dl> + +<dt><a href="https://www.brain-dump.org/projects/abduco/">abduco</a></dt> +<dd><ul> + <li>upstream: <a href="https://git.sr.ht/~martanne/abduco">git</a></li> +</ul> +</dd> + +<dt><a href="https://hledger.org/">hledger</a></dt> +<dd><ul> + <li>ML: <a href="mailto:hledger@googlegroups.com">hledger@googlegroups.com</a> [<a href="http://list.hledger.org/">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/hledger">freenode #hledger</a></li> +</ul> +<p>I track ledger changes using a private, self-hosted git repository.</p> +</dd> + +<dt>mkp224o</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/cathugger/mkp224o">git</a></li> +</ul></dd> + +<dt><a href="http://www.mirbsd.org/mksh.htm">mksh</a></dt> +<dd><ul> + <li>ML: <a href="mailto:miros-mksh@mirbsd.org">miros-mksh@mirbsd.org</a> [<a href="http://www.mirbsd.org/rss.htm#lists">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/!%2fbin%2fmksh">freenode #!/bin/mksh</a></li> +</ul> +<p>I use mksh everywhere I don't want to configure zsh: on servers, alternate user accounts, &c.</p> +</dd> + +<dt><a href="https://neovim.io/">Neovim</a></dt> +<dd><ul> + <li>IRC: <a href="ircs://chat.freenode.net/neovim">freenode #neovim</a></li> +</ul> +<p>it <q>just works</q> with <code>st</code> now, and I have no complaints compared to Vim.</p> +</dd> + +<dt><a href="https://www.passwordstore.org/">pass</a></dt> +<dd><ul> + <li>ML: <a href="mailto:password-store@lists.zx2c4.com">password-store@lists.zx2c4.com</a> [<a href="https://lists.zx2c4.com/mailman/listinfo/password-store">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/pass">freenode #pass</a></li> +</ul> +<p>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.</p> +<p>I do want to cut the bash dependency out of <code>pass</code>, either switching to POSIX shell, or using a compiled language, or a combination of the two.</p> +</dd> + +<dt><a href="https://rsync.samba.org/">rsync</a></dt> +<dd><ul> + <li>ML: <a href="mailto:rsync@lists.samba.org">rsync@lists.samba.org</a> [<a href="https://lists.samba.org/mailman/listinfo/rsync">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/rsync">freenode #rsync</a></li> +</ul></dd> + +<dt>scdoc</dt> +<dd><ul> + <li>upstream: <a href="https://git.sr.ht/~sircmpwn/scdoc">git</a></li> + <li>ML: <a href="mailto:~sircmpwn/public-inbox@lists.sr.ht">~sircmpwn/public-inbox@lists.sr.ht</a> [<a href="https://lists.sr.ht/~sircmpwn/public-inbox">info</a>]</li> +</ul></dd> + +<dt><a href="https://www.zsh.org/">zsh</a></dt> +<dd><ul> + <li>ML: <a href="mailto:zsh-users@zsh.org">zsh-users@zsh.org</a> [<a href="https://www.zsh.org/mla/">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/zsh">freenode #zsh</a></li> +</ul> +<p>my primary at-home interactive shell</p> +</dd> + +</dl> + +## daemons & system components + +<dl> + +<dt><a href="https://jjacky.com/pam_rundir">pam_rundir</a></dt> +<dd><ul> + <li>upstream: <a href="https://github.com/jjk-jacky/pam_rundir">git</a></li> +</ul> +<p>implements XDG_RUNTIME_DIR support with pam module, eliminating the need for a session manager such as (e)logind</p> +</dd> + +<dt><a href="https://prosody.im/">Prosody</a></dt> +<dd><ul> + <li>upstream: <a href="https://hg.prosody.im/trunk/">hg</a></li> + <li>user ML: <a href="mailto:prosody-users@googlegroups.com">prosody-users@googlegroups.com</a> [<a href="https://prosody.im/discuss#support">info</a>, <a href="https://groups.google.com/group/prosody-users">archive</a>]</li> + <li>dev ML: <a href="mailto:prosody-dev@googlegroups.com">prosody-dev@googlegroups.com</a> [<a href="https://prosody.im/discuss#development">info</a>, <a href="https://groups.google.com/group/prosody-dev">archive</a>]</li> + <li>XMPP: <a href="xmpp:prosody@conference.prosody.im?join">prosody@conference.prosody.im</a></li> +</ul></dd> + +<dt><a href="https://skarnet.org/software/s6/">s6</a></dt> +<dd><ul> + <li>upstream: <a href="git://git.skarnet.org/s6">git</a></li> + <li>ML: <a href="mailto:supervision@list.skarnet.org">supervision@list.skarnet.org</a> [<a href="https://skarnet.org/lists.html">info</a>]</li> + <li>IRC: <a href="ircs://chat.freenode.net/s6">freenode #s6</a></li> +</ul></dd> + +<dt><a href="https://www.torproject.org/">tor</a></dt> +<dd><ul> + <li>upstream: <a href="https://git.torproject.org/tor.git">git</a></li> + <li>user ML: <a href="mailto:tor-talk@lists.torproject.org">tor-talk@lists.torproject.org</a> [<a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk">info</a>]</li> + <li>dev ML: <a href="mailto:tor-dev@lists.torproject.org">tor-dev@lists.torproject.org</a> [<a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev">info</a>]</li> + <li>IRC: <a href="ircs://irc.oftc.net/tor">OFTC #tor</a></li> +</ul></dd> + +</dl> + +## fun + +<dl> + +<dt><a href="https://dolphin-emu.org/">Dolphin Emulator</a></dt> +<dd><ul> + <li>upstream: <a href="https://github.com/dolphin-emu/dolphin">git</a></li> +</ul></dd> + +<dt><a href="https://mednafen.github.io/">Mednafen</a></dt> +<dd><ul> + <li>IRC: <a href="ircs://chat.freenode.net/mednafen">freenode #mednafen</a></li> +</ul></dd> + +</dl> + +## Android + +<dl> + +<dt>andOTP</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/andOTP/andOTP">git</a></li> + <li><a href="https://matrix.to/#/#andOTP:privacytools.io">Matrix #andOTP:privacytools.io</a></li> +</ul> +<p>I use this for TOTP keys I do not store on my YubiKey.</p> +</dd> + +<dt><a href="https://conversations.im/">Conversations</a></dt> +<dd><ul> + <li>XMPP: <a href="xmpp:conversations@conference.siacs.eu?join">conversations@conference.siacs.eu</a></li> +</ul></dd> + +<dt><a href="https://kisslauncher.com/">KISS Launcher</a></dt> + +<dt><a href="https://www.openkeychain.org/">OpenKeychain</a></dt> +<dd><ul> + <li><a href="ircs://chat.freenode.net/openkeychain">freenode #openkeychain</a></li> +</ul></dd> + +<dt>Android Password Store</dt> +<dd><ul> + <li>upstream: <a href="https://github.com/android-password-store/Android-Password-Store">git</a></li> +</ul> +<p>complements my <code>pass</code> usage on PC devices; database is synchronised over a private, self-hosted git repository.</p> +</dd> + +</dl> + +## 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. + +* **torrenting**: currently I use [transmission][] for BitTorrent, but + I'd like to switch most or all of my torrents over to [btpd][] due to + its headless and scriptable nature. btpd is entirely CLI-driven with a + supervised daemon (much like transmission-daemon) so it should be + easier than even rtorrent in terms of scripting and extensibility. the + two issues with switching right away are: not all private trackers + seem to allow btpd yet, and btpd seems to be a relatively-dormant + project. so, I expect to do a bit of maintenance and heavy lifting + with this one before I'm able to switch. +* **E-mail**: I want to move from [claws-mail][] to a CLI setup. again, + my main concern is ease of automation and configuration. but also, + claws seems to use a lot more memory than it used to; probably + attributed to my current mailbox sizes. my other major complaint with + claws is the blocking UI, which makes it feel incredibly sluggish to + perform actions such as checking and viewing mail. hopefully I can + find a comfortable setup incorporating [notmuch][] for tagging mail, + [mbsync][] for fetch, [msmtp][] for sending, and of course nvim for + editing mail. +* **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 + <i lang="la">de facto</i> 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. + +[transmission]: <https://transmissionbt.com/> +[btpd]: <https://github.com/btpd/btpd> +[claws-mail]: <https://www.claws-mail.org/> +[notmuch]: <https://notmuchmail.org/> +[mbsync]: <https://isync.sourceforge.io/> +[msmtp]: <https://marlam.de/msmtp/> +[openssh]: <https://www.openssh.com/> +[tinyssh]: <https://tinyssh.org/> +[nginx]: <https://nginx.org/> +[publicfile]: <https://cr.yp.to/publicfile.html> +[Pleroma]: <https://pleroma.social/> +[GnuPG]: <https://www.gnupg.org/> +[sequoia]: <https://gitlab.com/sequoia-pgp/sequoia> +[rsyslog]: <https://www.rsyslog.com/> +[ucspilogd]: <https://skarnet.org/software/s6/ucspilogd.html> +[socklog]: <http://smarden.org/socklog/>