Building a development environment using the shell as a cornerstone provides several advantages. First, you can utilise tools that work well together. Second, you can configure everything to your specific needs, and, most importantly, you can manage your whole development environment with your keyboard. This switch can save a significant amount of cognitive resources while still providing a nice user experience.
Shifting between tasks is never a wise choice since your brain expends time and energy adapting to each shift. Likewise, moving between your mouse and keyboard consumes cognitive energy. The loss of mental energy happens because your brain must shift your hand and adjust to the mouse, then the keyboard, and then back to the mouse.
What about reserving your cognitive resources and energy for the work you’re doing? Here are the five useful tools you’ll need for a fully functional Mouseless Development Environment.
1. Arch Linux
Why should you choose Arch Linux for your new mouse-free world? Despite its negative reviews, this Linux version is the most stable operating system I’ve ever used. I experimented with various them, ranging from MS-DOS through Windows 7, macOS, and Ubuntu.
It also features a rolling distribution system, which means that all of your apps are constantly updated. So you don’t need to wait for the next big update or your operating system; you can always stay at the top of your game.
Installing Arch is an excellent method to get started with Linux-based computers. Nowadays, the whole Internet runs on Linux. Therefore knowing some Linux foundations is always a good idea if you want to be a well-rounded developer.
2. The Tiling Window Manager i3
Do you need to accurately drag and resize every single window open with your mouse? No, not at all.
The tiling window manager i3 enables you to move and resize your windows using just your keyboard effortlessly.
How does it function? When you open an application, its window will take up the whole screen. When you open a new one, it takes up half of the screen. When you open the third one, it will take up one-third of the screen.
Not only that, but you can modify the layout of your windows (for example, stacking them or utilising tabs) with easy keyboard shortcuts.
It significantly simplifies the management of your open apps, allowing you to focus on the most important tasks at the end.
3 – Zsh
The optimal development environment should not get in your way: it must be speedy for more demanding processes (such as docker or even your browser) to function properly.
The shell is a very mature tool that may save you a considerable amount of time:
You can automate any tedious job, which a GUI cannot perform (Graphical User Interface).
You have access to various tools that are useful for manipulating plain text, such as your code, documentation, or blog entries.
It is necessary to have a solid and durable shell to unleash the potential of automation. Of course, you could use Bash, but Zsh is more comprehensive. Its auto-completion, for example, is reliable and quite handy. You know how essential auto-completion is if you’re a developer.
4 – Neovim
Have you ever tried to memorise all of your preferred IDE’s shortcuts? That’s what We did, and it took considerably longer than learning Neovim. The issue is remembering all of these shortcuts. Most of the time, they don’t make much sense.
That’s where Neovim (and Vim in general) shines: to delete a word, for example, use the keystroke daw (delete a word). It makes sense, which makes it easier to remember.
When we use Neovim, we have the impression that We communicate with our editor through the keyboard.
Contrary to popular belief, Neovim is simple to learn but difficult to master. So, as a result, many people think that the learning curve is severe, yet it’s rather straightforward for day-to-day editing.
5 – tmux
The icing on the cake: tmux is a terminal multiplexer that enhances the power of your shell. You can even use tmuxp to automate the entire system further. For example, in a very basic YAML file, you can specify which shell you wish to open with which command-line tool.
For instance, when We work on our blog, We enter the command blog, and three shells open in various tabs: one with Neovim to write the article, one with Github to push everything, and another with access to the images We publish with the articles.
Are You Ready to Be a Mouseless Developer?
Because we believe that going mouseless is a terrific approach to increasing productivity, we may quickly switch tools because of the flexibility of our development environment. For instance, if We no longer wish to use tmux, We can replace it with another terminal multiplexer.
If You don’t like the status bar or your programme launcher on i3, I can change them. But, as you can expect, configuring this type of system takes time, motivation, and work.
I believe that the easiest approach to determine whether or not you would appreciate this type of method is to try it. We guarantee you that you’ll learn a lot along the road!