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.
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:
history-substring-search. And I have all shell config in single
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
d3w to delete 3 words) Helix follows
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.
At the moment I am using the Modus Vivendi. A accessible theme, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA) theme by Protesilaos Stavrou originally built for GNU Emacs.
After some back and forth on Firefox and Safari I lended on Arc which is currently my default browser for desktop.
Other features that I enjoy and that are slowly finding their way into other browsers as well are spaces (separating my personal and work-related browsing) and command line.
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.
Mela is a receipes management app. I don’t use it much but love the design, native iOS UI, and the ease of use. If I start cooking more one day, this will be my go-to app.
- ag for code search
- amber for search and replace
- jq for JSON
- yq for YAML
- fd for finding files
- git for version control obviously.
- HTTPie for HTTP
- exa modern alternative to
- 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 -
catalternative with colors and more
- trash to not shoot myself in the leg when running
- 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
- q to run SQL over csv files
- rsync for synchronization between machines
- teleport for access to clusters and machines
- 1Password for passwords management
- balenaEtcher for flashing OS images to SD crds & USB driver
- boop tool for text wrangling and small utilities
- devtoys various developer tools for converting formats, images, and much more. Currently testing as a replacement for
- IINA for videos
- Insomnia - API client
- Itsycal - tiny calendar for menu bar
- Amphetamine for preventing the MacOS from sleeping