1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-09-19 20:02:10 +00:00
seirdy.one/content/about/uses.gmi
2024-08-01 23:31:07 -04:00

103 lines
5.2 KiB
Text

Here's the software I use. I've recently started to reduce my use of TUIs in favor of CLIs, for a variety of reasons. When possible, I try to use lightweight programs that can run on any machine, from a single-board computer to a giant desktop. I don't ever want to feel like I need to upgrade my hardware to do the same tasks as before: hardware upgrades should only be justified by my use-cases significantly changing, existing hardware being broken beyond repair, or upstream abandonment of security patches.
## Hardware
My main computer is a 2013 HP Elitebook 840 G1. It has a dual-core Intel i5-4300U CPU (Haswell), with simultaneous multithreading disabled.
## Environment
I don't currently use a prebuilt desktop environment. I assemble mine out of the following components:
* Fedora: Primary OS, latest stable version. Uses Linux, Systemd, GNU libc, GNU coreutils, dnf, firewalld, and SELinux.
* Sway: Dynamic Wayland compositor that focuses on tiling window management but also supports tabbed and stacking layouts.
* Zsh: Login shell. POSIX-compatible and mostly Bash-compatible. Custom static build to skip checking system files and improve startup performance.
* DASH: Minimal POSIX-compatible shell that I use for non-interactive purposes (e.g. shell scripts). When statically-linked, its startup time is negligible even on the most underpowered hardware. This is really important to me, since many of my most-used commands are shell-script wrappers that I expect to run in a few milliseconds.
* Foot: Primary terminal emulator. Sometimes I use gnome-terminal when I'm using a screen reader.
* i3status-rust: Status bar. It's more efficient to use this single program than to shell out to a dozen utilities. Given the widgets I cram into it, it's more lightweight than most alternatives.
## Basic utilities:
* `$EDITOR`: Neovim
* Browser: Firefox for most pages, Chromium for apps, NetSurf when I'm low on battery.
* Coreutils alternatives: ripgrep, sd (better multiline regexes than sed), fd
* Session manager: tmux (I don't use it for tiling, Sway handles that)
* IRC client: WeeChat. Might use senpai eventually, if I can get it to play well with espeak-ng.
* News: Newsboat. I'm thinking of switching to a feed-to-IMAP or Maildir setup eventually so I can get sync and use mblaze, and replace a TUI with a CLI. Ideally something that supports WebSub.
* Containers: Toolbox: Creates quick mutable environments for me to mess around as root. I use Fedora Rawhide for more bleeding-edge packages in these environments. Quick mutable environments to mess around in or use different toolchains are pretty much my only use of containers.
* Screen reader: Orca
=> https://sr.ht/~seirdy/mpd-scripts/ mpd-scripts page
=> https://github.com/po5/mpv_sponsorblock mpv_sponsorblock
=> https://sr.ht/~taiite/senpai/ senpai
## Multimedia
* Music player: mpd, along with my mpd scripts
* Video player: three builds of mpv, two with a PGO run on different types of video (anime and live-action-with-filmgrain). Often paired with yt-dlp and mpv_sponsorblock
* Image viewer: mpv (one less program to keep track of), swayimg. Both support AVIF and JPEG-XL now.
## Mail:
* Mail fetcher: mbsync
* SMTP client: msmtp
* routine tasks, viewing/filtering latest messages: mblaze
* MUA: mostly neomutt
* Viewing HTML mail: w3m-sandbox or edbrowse.
=> https://github.com/leahneukirchen/mblaze mblaze
=> https://git.sr.ht/~seirdy/bwrap-scripts/tree/trunk/item/w3m-sandbox w3m-sandbox
## Networking and pentesting:
* RustScan (don't use it on max settings without permission)
* q, a DNS client that supports DoH, DoH3, DoQ, and ODoH.
* rnp, a ping tool that supports TCP and QUIC "pings" to estimate handshake latency.
* subfinder, Project Discovery's subdomain enumeration tool
* both curl and xh for HTTP testing.
* kinvolk's wrk2 fork and bombardier for HTTP load-testing
* ssh-auditor
## Other tools:
* jq (I love writing jq programs)
* fzf
* z.lua
* msync
* wormhole-william
* rdrview
* Efficient Compression Tool (better than Zopfli/ZopfliPNG)
* usvg and resvg
* zpaqfranz
* scc
* Pandoc
* ghq, a VCS repository manager in the style of $GOPATH
=> https://github.com/psanford/wormhole-william wormhole-william
=> https://github.com/eafer/rdrview rdrview
=> https://github.com/fhanau/Efficient-Compression-Tool Efficient Compression Tool
=> https://github.com/boyter/scc scc
## Server-side stuff
* Custom build of nginx-quic with some patches. Statically l inked against zlib-ng, BoringSSL, PCRE2, musl, headers_more, and ngx_brotli. Patched for dynamic TLS record sizing, using externally-managed OCSP stapling files, static HPACK dictionaries, removing server signatures, adding dark-mode on in-binary error pages.
* certbot-ocsp-fetcher
* webmentiond Webmention receiver
* Agate Gemini server
* searchmysite-go
* Conduit matrix server
## Services
* Migadu: email provider
* deSEC: managed DNS name servers
* Namecheap: domain registrar (not endorsed)
* Digital Ocean: VPS (not endorsed)
* Search My Site: search API
## What I don't use
These are tools that I don't use, or avoid using.
* system monitoring TUIs: I usually just run the command to view the resource I need to know about
* File managers: I prefer using the shell with fzf-based tab-completion that also features preview windows