mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-12-26 18:32:10 +00:00
105 lines
5.3 KiB
Text
105 lines
5.3 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
|
|
* yt-dlp
|
|
* rush, a faster alternative to GNU Parallel for when xargs isn't enough (e.g. for non-interleaved output)
|
|
|
|
=> 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
|
|
|