Going low tech
I'm using more and more terminal-based apps when working on computer. I enjoy simplicity and like my tools to be distraction free. It is perhaps a reaction in front of all the popular tools that people seem to use de facto. Who knows?
Terminal: TMUX
I use a single terminal window with Tmux. Tmux makes it easy to create windows, organize them, create panes and copy and paste. I don't have a lot of customization (mostly vim binding and solarized colorscheme).
Terminal colorscheme is dark. I prefer having a dark shadowy environment rather than bright and use a bright colorscheme. Bright env with dark colorscheme is unreadable, so I keep config files to switch if necessary.
My shell is zsh because it is compatible with bash with an extended set of features. I do not use oh-my-zsh in spite of its quality. I prefer having more control on the configuration and keep everything simple.
I just went back to Alacritty as terminal emulator. I like its yaml plain text configuration and it's beautiful. I'm fine with the default colorscheme, so it's cool.
Text editor: VIM
I'm still using Vim from the terminal. My colleagues use PHPStorm for PHP code and VS Code for the rest (JS), but their cognitive load has become too high for me. I know they provide Vim mode, but it's worse: as it's obviously not Vim, my brain has difficulties associating the keystrokes I know to the editor. And I miss my vimrc.
What is so cool about vim in the term? First, I stay in the terminal and tmux, so I can switch contexts easily. I just have to do Ctrl-Z to put the editor in background and launch a command. Configuration is easy to edit and reload.
The user interface is very lean, so I can focus on the text buffers. The
command syntax is designed following a grammar that help the user to remember
them. Example d
for deletion can be suffixed by a context, like diw
for
delete inside word or dit
for delete inside (html) tag.
It is also easily extensible with plugins but I do not use a lot of them. Their quality varies. I have removed lately vim-python-pep8-indent as it was making the editor lag (I prefer using black for Python code, so it's not a great loss)
The main issue is code completion. I know I can configure stuff like completion servers, but seriously guys, it's too much for me. By experience, there are ways for them to fail (I had the issue with jedi python completion).
I usually type my import by hand or copy paste them from other files / documentation. Then the standard completion provided by Vim is often enough.
My regret is that I'm not a fast typer, so it takes me time to write imports correctly!
I also refer to the source code of the libraries I use from time to time to ensure that I have a good understanding of a feature. For some javascript libraries, it is just mandatory. Don't be afraid to look at the source (as I was until recently)!
Email client: mutt + mbsync and msmtp
I fell in love with mutt. Vim binding, use Vim to edit email, easy integration of gpg (with gpgme). It allows me to check email headers if needed.
Sometimes issues with attachment file name encodings, but not a big issue to me.
I use it only to read emails and trigger sendings. Imap synchronisation to local directories is performed by mbsync and sendings by msmtp.
Music player: CMUS
I've used mpg321 a lot to read mp3 files. Now I manage my music library from the terminal with Cmus. Bindings are easy, it allows to add files, handle queues and playlists. You can seek a timecode. I don't know if I can increase play back speed. I use it for podcast which I download when I can (curl) instead of using online players
Next web browser: w3m?
I think my next step is to browse the Internet with w3m. Frankly, though it definitely has a learning curve, the keystrokes are not so hard to remember. Images are not displayed until I decide to explicitly display them, there is no JavaScript. Awesome. I use it from time to time to read articles online.
In the same idea, I read about the Gemini protocol and its goal to go back to a more lean and simpler web. Very interesting.
Learn from the master
This post is inspired by Richard Stallman setup and way to use computers. I really like his approach and radicality.