"Small differences in performance can lead to very unequal distributions when repeated over time" - James Clear on The 1 Percent Rule.I love dotfiles... dotfiles are plain text configuration files, little pieces of 1% improvement for your daily work.
It is said that some programmers are lazy, what that actually means (except for those who are actually lazy), is that programmers like to write tools (scripts, programs) to avoid repeated work.
Why write `ls -l` when you can write `ll` and save 3 keys?
Every programmer is different. Some like to be on the shell mixing different small tools and write code in VIM (like me), others like big tools like IntelliJ that make a lot of those same things inside one piece of software.
You can find my dotfiles on GitHub. Some of the tools I love to use (most configured to use VIM keybindins) are:
- i3 for a tiling window manager
- VIM for coding, taking notes, keeping tasks lists and of course updating my dotfiles.
- Powerline for VIM, ZSH, TMUX and sometimes i3
- FZF for zsh history, going into directories, finding files.
- Ubuntu as my Linux distro, I used Arch before, but this time didn't want to focus too much time getting my Linux machine running, so Ubuntu was a faster setup.
- TMUX for terminal multiplexer
- Firefox for browsing and web development. After using Chrome/Chromium for some years, I tested Firefox to see if there were improvements on memory usage, etc. and I was amazed.
- PyWal for changing my color scheme on VIM, Tmux, ZSH, etc... all based on an image
- Feh to set my desktop wallpaper (with PyWal so that colors change matching the wallpaper)
- And many more... including Compton, Neofetch and many many more.
So how much of that is a 1% improvement? For example, I use the keyboard with i3 to switch windows, avoiding having to reach for my mouse, that way I only use the mouse for browsing with Firefox. I don't use IntelliJ IDEA because it takes too much time indexing on my computer and I don't know the keybindings so with VIM I don't have to wait to have my code opened and I have configured a lot of things to adjust to my way of coding. There is always something that you can automate, reduce or eliminate with another tool. That way you can focus on the actually important tasks.
This is how my current setup looks like:
You can find some of my dotfiles on GitHub, I have a lot more, but some are too personal for my setup and some private (like ssh configurations, etc).