Software
Terminal
Wezterm is my current terminal of choice. I went through Hyper, iTerm2, and Kitty before. Each time sacrificing a little bit of the features (that I mostly didn’t use anyway) in favor of speed. And when it comes to speed, wezterm is pefect. Instant boot time, GPU-accelerated, and it is written in Rust, so when I feel like learning a little bit more about Rust or contributing, I can do so.
Shell
I run Zsh and Oh My Zsh for as long as I can remember. Initially I used a lot of the provided plugins, full blown out Spacship ZSH prompt, and material theme.
Nowadays I use fairly minimal configuration of Starship prompt (basically only directory and git information). 20 or so oh-my-zsh plugins were reduced to 3: zsh-syntax-highlighting
, zsh-completions
, and history-substring-search
. And I have all shell config in single .zshrc
file.
Editor
Helix for almost everything, sometimes I still spin up one of the JetBrains IDEs for larger refactors or debugging.
In University we had free licenses for JetBrain products so I used those since I started programming. Whenever I needed to edit something in terminal I would use Nano as Vim was still far in the mystery land for me. As I needed to edit more and more configuration files and sometimes do so remotely I decided to learn Vim in February 2021. The learning curve is indeed steep but I enjoyed it a lot. Slowly my configuration grew like crazy I not long after I had almost full IDE experience, especially thanks to LSP support and Tree-Sitter.
As with other tools, I started to look around for how to minimize the setup. I ditched a few plugins, removed all unnecessary configuration, yet as it happens with nvim, my config was still hundreds of lines. That is, until I found Helix.
Helix feels very similar to Vim but works very differently. While in Vim you start with action
followed by motion
(e.g. d3w
to delete 3 words) Helix follows section
-> action
model. That means that whatever you are going to act on (words, function, line, etc.) is selected first and the action is second. It’s striking difference from Vim that takes some time to get used to but comes very naturally. Second large difference is first-class support for multicursor. Where in Vim you would substitue using the %s/SEARCH/REPLACE/g
pattern in Helix you select the text (e.g. %
for whole file), select the pattern in the selection (e.g. s
followed by the term you are searching for), by confirming the selection you create multiple individual selections and now you can edit all of them at once. Multiselection is super powerful thing with many usecases that is now crucial part of my editing toolkit.
Berkeley Mono Typeface is my font of choice for terminal and IDEs.
Software
Raycast launcher is one of my essentials. I started with Alfred but didn’t like it’s UI and way of writing extensions. Raycast is leaner, nicer, has plenty of up-to-date and maintained extensions for all that I need (1password, GitHub, Todoist, app switching, clipboard management, and more). It replaced a lot of other apps I previously depended on. Right now it’s free for personal use which I expect to change at one point in the future but I am willing to pay for it. May only hope is that their model won’t be subscription based.
Tools
- ag for code search
- sd for search and replace
- jq for JSON
- yq for YAML
- fd for finding files
- git for version control obviously.
- HTTPie for HTTP
- fzf
- exa modern alternative to
ls
- htop - interactive process viewer
- pandoc for documents and markdown, convert anything to anything
- Mackup for dotfiles backup
- ffsend to share files from terminal
- hugo for static websites
- dive for exploring docker images
- gist for uploading stuff to gist
- youtube-dl for downloading my favorite DJ sets from youtube
- bat -
cat
alternative with colors and more - trash to not shoot myself in the leg when running
rm
- k9s for managing kubernetes stuff
- kubectx to switch between kube contexts
- imagemagick to manipulate, resize, and convert images
- glow for markdown files
- loc to count lines of code in a codebase
- neofetch for fun
- pgcli as a better alternative to the default
psql
- q to run SQL over csv files
- rsync for synchronization between machines
- teleport for access to clusters and machines
Apps
- 1Password for passwords management
- balenaEtcher for flashing OS images to SD crds & USB driver
- boop tool for text wrangling and small utilities
- IINA for videos
- Insomnia - API client
- Itsycal - tiny calendar for menu bar
- Amphetamine for preventing the MacOS from sleeping
Other
- Wallpapers: OS9 Walppapers by Arun
- Screen Saver: Brooklyn or Fliqlo
- Font: JetBrains Mono