š¾ Archived View for nytpu.com āŗ gemlog āŗ 2021-01-10.gmi captured on 2024-08-18 at 18:08:31. Gemini links have been rewritten to link to archived content
ā¬ ļø Previous capture (2024-05-10)
-=-=-=-=-=-=-
Iāll be going over software that I use daily (or at least often), most good, some not so good. Recommendations are libre, or at least open source.
A decent browser, as good as a web browser can be at least. I like the vim bindings (the main selling point) and the high depth of customization, far exceeding any other browser now that antitrust-shield (a.k.a. āfirefoxā) killed classic extensions. With the advent of Manifest V3, the mainstream browsers now give users and extensions the same power that the Judenrat held in Nazi Germanyįµ, so Iāll never be using them any time soon. Qutebrowser /is/ based on qtwebengine, which is based off of chromium, so in the end I still am supporting the google monopoly, but at least not as much as if I actually used chrome/chromium. Itās not like it would ever be possible to write your own browser engine anyways, so might as well use the de facto reference implementation (not that itās meant to be used as reference for anybody to make their own) and have anti-google features built on top. Iād recommend, better than other browsers at least.
[b]: not that google is necessarily on the same level of the nazis, but letās admit it, they would wipe out the jews if it gave them $1,000 more profit and they could get away with it.
A beautiful browser for gemini and gopher, replete with a feed reader and lots of awesome features. What I use every day to browse gemini and gopherspace.
Iāve written about my feed setup on lagrange before, why not check it out?
I use mpv with some key bindings in qutebrowser to watch any videos I like thanks to mpvās integration with youtube-dl. I usually find videos via youtubeās rss feeds or by looking on a youtube proxy like invidious.
I use a self-hosted miniflux instance as my rss reader. Itās dead simple to set up.
miniflux is a minimalist and opinionated feed reader.
Miniflux has a good minimalist reader so I read all my rss feeds in that, but for other articles I just stumble across or am sent, I use wallabag. A bit of a pain to set up, but nothing difficult.
save and classify articles. read them later. freely.
I use zsh and oh-my-zshį¶ because I want pretty themes and good completion without having to do much setup work. I use the agnoster theme, and I love the git/fossil integration. I generally want something that works, looks decent, and doesnāt require a lot of setup, configuration, or babysitting, so a near-default omz install works fine for me. I obviously add my own aliases, functions, envvar definitions, etc, but the main shell config I donāt want to deal with.
[c]: oh my zsh is a framework for managing your zsh configuration.
Like my shell configuration, I just donāt want to do a whole lot configuring my multiplexer. I use the Powerline Cyan Block theme from tmux-themepackįµ and thatās it. I do use tmuxinatorįµ scripts to be able to quickly open up common session setups. My usual setup is to have a āmessagingā session that has neomutt, weechat, and ncmcpp, and a āmainā session that I do stuff in. If Iām working on multiple projects and want clean workspaces then Iāll open up an āeditingā session, which has one neovim pane, another in the working directory for testing, compilation, etc, and a third pane for man pages, documentation, running unrelated commands, etc.
[d]: a pack of various tmux themes.
[e]: manage complex tmux sessions easily
Not much to say about this other than the fact that I use it. I love it because it lets me jump to my most commonly used directories without having to type out the full path or define an alias. Thatās about it, my entire one line of setup and configuration for it is on line 165 of my .zshrc. Itās written in rust, but as long as I donāt have to compile it Iām okay (until I migrate to an architecture not supported by rust).
a faster way to navigate your filesystem
I love neovimį¶ , I just canāt bring myself to leave it. Iāve tried emacs, including evil mode and doom emacs, but I just canāt part with my beautiful, beautiful neovim. My vim config is so unorganized and confusing that I canāt in good conscience post it, but itās not a whole lot other than lots of keys configured for CoC and a few defaults that everyone has set up. I am a heathen that uses plugins, but I donāt think Iām /that bad/ compared to some bloated abominations Iāve seen.
Firstly, I use lots of syntax highlighting plugins, because I like my languages to be beautiful.
First up for the āreal plugins,ā I use CoCįµ because I love having autocomplete & fancy lsp and wasnāt too happy with neovimās built-in lsp support, I donāt think thatās too much despite the fact that CoC is rather heavyweight, but itās really useful and I use most of its features.
I also use vimwikiŹ° as a poor manās org mode (which is exactly the way I want it, what I use vimwiki for is all Iād use org mode for anyways) that I take notes, plan in, etc. Itās not even a big plugin really, itās just a convenience for jumping between hyperlinked wiki files. I like that you can export to html, I have a āquick linkā on my startpageā± to my html-compiled vimwiki, and have it configured to automatically render to html on write so itās always up to date.
Finally, I use a few more plugins for convenience: vim-plugŹ² for managing my plugins, auto pairsĖ” for ease of writingįµ, vim-airlineįµ for a nice status bar (surprisingly doesnāt require any configuration, pretty plug-ānā-play), gitgutterįµ to show git changes, fzfŹ³/fzf.vimĖ¢ for switching between buffers and files, and goyoįµ for better writing. I almost always have goyo enabled when writing prose, and almost never use it when writing code. It really is pretty though.
my normal vim view (this screenshot was taken before the previously mentioned rewrite of this post)
with goyo enabled. can you see how itās great for prose and not so great for code?
A PSA about Vim & Co and the Editor Wars:
While I love it and use it incessantly, I .never/ recommend it to someone unless theyāre already interested in learning vim. If people ask me what editor I recommend, I first always ask what theyāre looking for. Small edits on the command line? nano (I canāt bring myself to recommend ed for a ācasual userā even though I use it for small edits myself). Want a graphical editor? VS Code OSS or Atom. If, and only if, do I know that 1) theyāre willing to put up with the hassle of being really slow for *months* before getting proficient at vim; and 2) they already know about it and were interested in learning it before asking me; would I recommend vim for somebody. I also donāt hold a grudge just because somebody uses a different editor, or tried vim and decided to use something else. Iāve tried a lot and only vim has been right for me, why couldnāt it be the inverse for somebody else? I recommended vim to somebody and they didnāt like it but loved emacs instead, and I was just happy that theyād found something they like, and they have very valid reasons for liking one over the other. Stuff thatās important to me is relatively unimportant to them, and stuff thatās important to them is relatively unimportant to me, so of course weāre going to use different things.
[f]: hyperextensible vim-based text editor
[g]: make your vim/neovim as smart as vscode.
[i]: a lightweight gruvbox-themed startpage
[j]: minimalist vim plugin manager
[l]: vim plugin, insert or delete brackets, parens, quotes in pair
[m]: i have to disable it a lot because it can get annoying when iām editing something rather than writing new stuff. luckily <M-p> is a global shortcut for disabling/enabling the plugin so it doesnāt get in my way.
[o]: lean & mean status/tabline for vim thatās light as air
[r]: a command-line fuzzy finder
[t]: distraction-free writing in vim
While I love me a beautiful visual editor, when making quick edits it feels likeā¦almost too much. I use ed for stuff like changing a few lines in a file, writing commit messages, etc. I also use ed scripts a lot, which are a lot like a simple sed or awk script, but I like ed scripts because if you know vi/ed commands you can convert something you already know how to manually do into an ed script really quickly.
If you thought my vim config was bloated, wait until you see my ed configuration, which is almost incomprehensibly complex and large. Here it is (if you missed it in my .zshrc earlier):
alias ed="ed -vlp'* '"
I know, a true user will immediately know what they do wrong and would never need those error messages wasting their ttyās ink ribbon, but I use -v so I know what errors actually are instead of the all-helpful ā?ā. I also use -l because otherwise ed will exit nonzero if a single editor command has an error, which gets annoying when using it to write commit messages or something, ācause git will discard the message if the editor exits nonzero. Finally, I use -p'* ' because I like to know when Iām at the prompt vs. when Iām in insert mode, because Iām not clever enough to innately know, like a true user would.
Now, I know that people might think Iām crazy for using ed, but it really is fast and nice to use for small things once you get to know it. Iād never write code or anything long in it, but it still has its uses. The ed manualįµ (not the man page, itās GNU, remember?) goes through everything about it, but it really isnāt that different from viās basic command set, it doesnāt take a whole lot to learn it if you use vim.
Yes, I love everything neo-, neovim, neomuttįµ, both have wonderful features compared to their non-neo predecessors. Neomutt has manyŹ· additional patches and features that I canāt live without, while still integrating all of mainline muttās changes and features. Of all the features that are included in neomutt, only one (the sidebar patch) was merged into mainline mutt, and that was after the sidebar was maintained as an independent patch for 5 years and as a part of neomutt for 2 years, so it seems like the mutt developers arenāt interested in integrating many community patches or requestsānot that I blame them or expect them to, it just means I prefer the fork that does include those patches. On top of neomutt I use isync/mbsyncĖ£ to sync my email with my server and msmtpŹø for sending email. I also use vdirsyncerį¶» to sync contacts with my phone using nextcloudās carddav features, and khardįµ for searching through them when sending.
my mailcap for mutt (only used for proper rendering of html email)
For syncing and sending mail, my mbsync, msmtp, vdirsyncer, and khard configs are so bog-standard that Iām not bothering to post them. However, I do have a weird method of filtering email. I was using maildropįµ for filtering and sorting email, but I realized that my configuration was so simple that it wasnāt worth the annoyance of using it, so I migrated my configuration to just use grep.
see my mail sync script that does basic filtering without needing special mail utilities.
[v]: neomutt is a command line mail reader (or mua). itās a fork of mutt with added features.
[x]: free imap and maildir mailbox synchronizer
[Ī²]: mail delivery agent with filtering abilities
I use a pretty basic weechatįµ configuration, all the big stuff goes on in my pounceįµ, calico, and litterboxįµ configuration on my server. Iāve actually had people ask me how to set up pounce before, so maybe this will be illustrative for people.
systemd services (yes, I still use systemd on my web server despite ridding all my personal computers of it):
the calico daemon, not much to it other than putting in your domain name
[Ī“]: the extensible chat client.
[Ļ]: litterbox(1) is a tls-only irc logger. it is intended for use with the irc bouncer pounce.
You have to get your muzak somehow, why not also do it in the terminal? I just have it set up to hook into pulseaudio and thatās it. I literally just followed the arch wiki to set them both up:
arch wiki: music player daemon
I use pass to store all my passwords and logins. I use qute-passįµ for entering logins in qutebrowser, and āPassword Storeāį¶„ on my phone.
pass: the standard unix password manager
[Ī³]: insert login information using pass and a dmenu-compatible application
[Ī¹]: simple password manager that is compatible with pass
I use it for all my accounting and finances, just keep the journals encrypted somehow. Itās wonderful for keeping track of all your finances, I wholeheartedly recommend.
hledger: plain text accounting, made easy
!!!!!RUST ALERT!!!!!
Other than that though, I do like it for simple searches.
ripgrep recursively searches directories for a regex pattern while respecting your gitignore
!!!!!RUST ALERT!!!!!
I do prefer it when Iām just searching quickly for files, but I still use find for more complex queries.
a simple, fast and user-friendly alternative to 'findā
syncthing is a continuous file synchronization program.
I use it for syncing a variety of files between my devices.
A KDE utility. The only hex editor that Iāve actually liked, although Iād love to find a decent TUI one (or write my own).
I unwillingly use it for school. Absolute non-recommendation.
See also:
Well, thatās longer than I originally anticipated, but I do use a lot of things regularly. Iāll probably end up making a second (shorter) post when I come up with more. Iām getting into fossilį¶æ but donāt have enough use with it to give a recommendation, but itās very promising. I have a few more things, and Iām sure Iāll remember something I forgot to include on here.
[Īø]: fossil is a simple, high-reliability, distributed software configuration management system
ā
contact via email: alex [at] nytpu.com