Hi! I'm Maze! I heard you wanted to be super fast?

stick_mazie.png


It is a good idea!

"Okay, now I need to find that window, and I need to find where I put the files" ... 2 minutes of clicking ... "oh, here they are. these files really should have hyphens, though, not underscores. Now I have to rename each one"

Stuff like that. It's unnecessary. It slows you down while you're in the zone. It's a good idea to work towards being more efficient! It takes time to get into new habits, but if you use computers all the time, this is 100% worth it!

Now listen here: the most important thing about getting more efficient with computers, is your willingness to give new things a try. I bet you're already pretty fast! You know your way around every program you use, you have it in your muscle memory and you can execute those actions really quickly and flawlessly without thinking about it. You know that literally anything else would be slower. Well let me tell you, new things go slowly at the start, but eventually you will get used to the "new" way, and it'll be significantly faster!


Picking the right tools!

Since we can assume that you will eventually get used to anything you set your mind to, there are only a couple remaining questions for picking your tools:

Telling the computer what to do

Question: is the mouse fast?

It seems fast, right? You can move it around as fast as you can move your eyes, almost. And it has 2 buttons and a scrollwheel, you can do almost everything with it, if it doesn't include typing some text. Unfortunately, I'll have to burst that little bubble. I also thought the mouse was fast. But back then, I did not know just how fast the keyboard could be. Once you have programs that are designed specifically for the keyboard, your whole keyboard becomes the menus that you would normally click. All it takes is to move your finger to that key, and press it. Unlike with the mouse, there's little to no aim involved. The keyboard key is not a small thing on the screen, it's an actual physical thing under your fingertips, you'll be able to hit it super fast and super reliably! So the thing you should strive for is not "fewest number of clicks", it should be "zero clicks and fewest number of keypresses"!

Computer's response

Yes, I know you have an i7 processor and a fast disk and a boat load of ram! It doesn't matter. Really, hardware specs aren't the important thing here! A lightning fast program has no noticeable differences on the newest hardware or a 10 year old laptop. You don't know the real speed of your computer till you've tried some of these! Does your program take 0.2 seconds to load/slide/fade/transition from one view to the next? Pick one that takes 0.01 seconds instead!


Any suggestions?

Weapon 0: Linux

If you're using Windows or Mac, then I'm sorry. This guide is intended for people who are already using Linux and want to take it to the next level. Windows and Mac are not nearly as customizable as Linux. I encourage you to consider switching to Linux, but I do realize that this is quite a leap, and you'll need to leave some stuff behind. Props to you if you make it! Oh, and if you're switching to Linux, you really really should wait a couple months before thinking about the rest of the steps on this page. Overwhelming yourself is very easy, and not fun!

Weapon 1: Tiled Window Manager

Okay so the first thing we need to change is your desktop environment. You know, the thing with icons on it, the start menu, the bar at the bottom (or top, or side) with a list of open windows ... even if your desktop environment has a lot of keyboard shortcuts, it was not designed primarily for keyboard. You need a tiling window manager. I recommend i3 wm or awesome wm. If you pick awesome, be warned that awesome requires programming in order to be customized. And you will want to customize it eventually.

Weapon 2: Ranger

Second, and definitely the most important one, is ranger. This is a filesystem manager, the place where you view and manage your files and folders, and ranger is absolutely the most "efficient filesystem manager". It doesn't even compare to anything graphical. Once you got ranger down, you'll be able to manage your files at the speed of your typing. Those poor files won't know what happened to them. Remember the messy Downloads folder? Cleaned up in the blink of an eye! Yes I am exaggerating but you get the picture!

Weapon 3: VIM?

Once you've mastered one of the tiled window managers and ranger, you're already well-covered for all the most common tasks. However, if you are a heavy programmer (and this has nothing to do with your weight), you might want to consider Vim as well. I say this with a heavy heart, I spent years getting good at Vim, and while it is faster than the other programming editors I've tried (I've tried lots), it's not as much an advantage as you're going to get from i3, awesome or ranger. Multi-cursor editing in Atom, Code and Sublime already covers things pretty well. Vim also takes a considerably longer time to learn than the other tools I've mentioned. If you plan to stay a heavy programmer for the next 5 years, Vim may as well be worth it. Whatever you end up picking, at least try to avoid the mouse!

Alternative weapon: Emacs

An "alternative path" is to skip all these Linux tools and learn Emacs instead. Emacs is a much bigger piece of software and has the features of others I've mentioned in one big "package". Emacs also did a lot of things well that Unix (and Linux) didn't. That's as much as I'm going to say here, I have not yet learned or used Emacs and I don't want to say much without having experience.


Baby steps!

Golden rule: learn only 1 thing at the same time!

The worst thing you can do is to try all of this at once. You'll be overwhelmed, you'll be very slow for a long time, most likely you'll just give up. I've been there. More than 1 thing at once is too much. It's very important to stagger this across multiple months.

Here is what I would suggest, after having gone through it myself:

Step 1: Go watch some videos about the tiling window manager you want to try, for example i3wm or awesomewm. There are some good channels on YouTube, you'll find stuff easily! The videos will give you a good idea of how it works, especially the introductory tutorials.

Step 2: Install the tiled window manager and use it. Try to do everything in it. Don't customize it yet! If you start customizing it, you'll end up with something as-similar-as-possible to your previous setup, which is kind of against what we are trying to do here! You're supposed to first learn what you're dealing with, and then build on top of it!

Step 3: Once you've been using your shiny new window manager for a month, now it's time to start customizing it! Look at some guides, and look at your default configuration file. In most cases, the default configuration already makes it clear how to add your own stuff! The most important thing here is going to be custom keybindings. You should make bindings for things you do very often, such as:

Then it'll all be just a keypress away!

Step 4: After a few months, you should get the feeling that now you really are very good at the window manager, it feels like home and it's not a challenge any more. Great! Now you can move on to the next tool! If you trust me, you can just pick up ranger without thinking much of it. I promise it'll be worth the learning process! Look up some videos of people showing off what ranger can do! This will give you a feeling of what you're getting into. It can be intimidating at first, it has some Vim keybindings and you might not even want to use Vim ... but don't worry, ranger alone is still very powerful, and these key bindings are perfect! You'll love them once you get used to it! Ranger is also customizable, but you should wait a little bit before diving into that. For now, try to do as much as possible in Ranger, without using your GUI filesystem manager or your shell (terminal).

Step 5: Okay, now you're feeling comfy with ranger? It's time to make it your own! Look at the Arch wiki to get started, and really, by reading through rc.conf it should already be clear how to customize most features! What you will want, again, is custom keybindings. Keybindings for jumping to specific directories! They look like this: map gd cd ~/Downloads and trust me when I say, these are a crucial part of your efficient workflow! You really need the keys for jumping to your favorite directories, it is absolutely worth the time it takes to write them down! Bindings you might also want are things like setting current picture as wallpaper, opening terminal in current directory, opening another ranger instance in current directory, copying current file's content to clipboard ... the sky is the limit!

Step 6: Do you want to learn Vim? If you do, you definitely should give yourself time to get comfortable with all the tools you are currently using, and then start learning Vim. Videos are a nice way to start! There are some tutorial series on YouTube, but I wouldn't really recommend any of them. I know some specific videos which do the job really well, though! I made a playlist for you, here it is! The order of videos is important! The intended way to use the playlist is to watch one video at a time, then go and do the things that were mentioned in the video, preferrably with at least 1 day inbetween the videos. Of course I can't stop you if you want to watch them all at once, but you'll probably get overwhelmed and discouraged!

Step 7: So you've learned a tiled wm, ranger and Vim? And you still want to go on? Well a big one is Emacs, you might want to pick that one up. It's always good to know more great software! It gives you more options. Besides, ranger and Vim both use Emacs key-bindings in some places, so that's already a reason to learn them! Another thing you should try if you haven't yet, is installing and using Arch Linux, it is a great and detailed tutorial to how Linux works, you'll learn a lot! If you're having fun learning software, you may as well learn Emacs, Arch, Gentoo etc. ... as long as you're sticking to the golden rule of learning only 1 thing at the same time!


back