šŸ’¾ 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

View Raw

More Information

ā¬…ļø Previous capture (2024-05-10)

-=-=-=-=-=-=-

ā†© go back to index

software i use daily

january 10, 2021

Iā€™ve had this post in my drafts folder for >3 months, but it was horridly written and not in any state to post. I was inspired to rewrite it by Ɓvalosā€™ post.

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.

browsing the webnetįµƒ

[a]

qutebrowser

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.

lagrange

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?

youtube and other video sites

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.

rss

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.

reading articles

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.

in my telephone typewriter

zsh

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.

my .zshrc

[c]: oh my zsh is a framework for managing your zsh configuration.

tmux

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.

my .tmux.conf

[d]: a pack of various tmux themes.

[e]: manage complex tmux sessions easily

zoxide

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

neovim and friends

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.

[h]: vimwiki is a personal wiki for vim ā€“ interlinked, plain text files written in a markup language

[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

[p]: a vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks.

[r]: a command-line fuzzy finder

[s]: fzf heart vim

[t]: distraction-free writing in vim

ed

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.

[u]: ed manual

neomutt & associates

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 neomutt muttrc

a sample configuration for each of my mail accounts (see the folder hooks at the bottom of my muttrc)

my neomutt keybindings

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.

[w]: neomutt has brought together lots of mutt patches, many of which were useful, but had been abandoned.

[x]: free imap and maildir mailbox synchronizer

[y]: msmtp is an SMTP client.

[z]: vdirsyncer is a command-line tool for synchronizing calendars and addressbooks between a variety of servers and the local filesystem.

[Ī±]: console carddav client

[Ī²]: mail delivery agent with filtering abilities

weechat and company

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):

necessary to get the pid directory and sockets set up, otherwise youā€™ll have to manually fix permissions every time it starts up.

the calico daemon, not much to it other than putting in your domain name

the actual pounce daemon. all of my different networks iā€™m in use carbon copied services like this, just changing the subdomain and configuration file

the optional litterbox logger, not a whole lot to it other than providing it a client key so it can log into the pounce server.

my configuration for pounce. all of my pounce configs are like this, with some obvious changes like autojoining channels, different sasl certs, etc.

[Ī“]: the extensible chat client.

[Īµ]: pounce(1) is a multi-client, tls-only irc bouncer. also includes the calico(1) dispatcher for running multiple pounce instances on one server.

[Ļ†]: litterbox(1) is a tls-only irc logger. it is intended for use with the irc bouncer pounce.

mpd + ncmpcpp

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

arch wiki: ncmpcpp

pass

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

hledger

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

ripgrep

!!!!!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

fd

!!!!!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ā€™

other utilities i shouldnā€™t need to elaborate on

miscellaneous

syncthing

syncthing is a continuous file synchronization program.

I use it for syncing a variety of files between my devices.

okteta

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).

okteta is a simple editor for the raw data of files. this type of program is also called hex editor or binary editor.

zoom

I unwillingly use it for school. Absolute non-recommendation.

See also:

2020-08-26

2020-11-11

end?

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

ā‚

ā†© go back to index

also available on the web

contact via email: alex [at] nytpu.com

or through anywhere else I'm at

backlinks

-- Copyright Ā© 2021 nytpu - CC BY-SA 4.0