Jorisvandijk.com

Future full-stack developer

Why I think my way of computing is the best way

So the title is a bit... high horse, but let me explain. I've said before, I use Linux and my personal favorite way to interact with windows and programs is i3wm. This window manager makes the way I use my computer awesome (in my opinion). I've written before on my configuration of i3, but I never tried to explain why exactly I love this way of using my computer.

The way i3wm is set up means a lot of moving things with keybindings. Personally, I don't do that. I rarely feel the need to move anything at all. I really like to use one workspace for one thing. This means one program per desktop... mostly. i3wm is a tiling window manager, meaning when you open a program when another is already there, it'll just split the screen and put the second program next to the other in a 50-5o sort of way. I usually only use the tiling when I need several terminals next to each other, or if I need a terminal next to an application. Apart from that, I don't really need tiling.

So as I said, I try to keep every program on its own workspace and make sure that there's a binding to go and either visit that workspace, or launch the program that's supposed to be on that workspace if it wasn't already running and then go there. For this I use a simple script that checks if a program is running or not. (The current version of which can be found in my dotfiles.) If it's running it switches to it. If not, it launches it and then switches to it.

This might not sound all that awesome, but trust me - it is. So say I am on a freshly booted system with nothing running yet. I press MOD+W (MOD is the Windows key and "W" stands for for web browser) and I am flown to the Firefox workspace and Firefox is started.

I type a website I want to go to in the URL bar and it goes there, but wait... I realized I may have new emails I'd like to check out. So I press MOD+E to switch to my email workspace and, as it's not running, it launches my email program there. Now it's fetching the latest emails, but I don't feel like waiting for those to trickle in. I kinda feel like checking Discord, so I press MOD+D, which brings me to the Discord workspace and as it is not running yet, it will load Discord.

Right now I am getting a Dunst notification stating I have three unread emails. I'm wondering what's been sent to me, so I press MOD+E again to switch to the email client workspace. Nothing is getting launched this time, as the program is already running. I am presented with my latest emails. I start reading a few when I get another notification. Someone on Discord saw me getting online and decided to say "hey", so I press MOD+D to switch to the Discord workspace, so I can read the new message there. Discord didn't re-launch as it was already running.

So to boil it down to the basics. I know my key bindings. I know which one to press to get to a certain program. It doesn't even need to be running, just pressing the keybinding will get me to it, running or not. So I have a total of 14 programs I use regularly which all have their own keybinding and thus workspace. I know all of them by heart. MOD+G to go to Gimp, MOD+B to go to my Bluetooth program (Blueberry). I press MOD+D to visit my Discord workspace. (I use Ferdium, but it doesn't matter. I know MOD+D gets me there.)

In case I want to run a program that I do not have a binding set for, Like say LXAppearance to change some styling, I use Rofi to launch it. I do have three workspaces which are not tied to any program. I get to them by using MOD+1, 2 or 3. So I make sure I switch to one of the three numbered workspaces and with MOD+Space I launch Rofi. I then type part of the name of the application I want to launch, followed by ENTER when it's the selected.

Rofi

In my opinion this makes for the perfect way of using my computer. Switch with ease, launch with ease and always know how to get to any program I need. I never lose an application, I am never lost on my system. I can recommend this workflow to anyone!

Addendum:

I forgot to mention another keybinding that's very helpful and one I use more than any other. It's MOD+Tab, which I have set to toggle between the workspace I am on, and the one I was on before. It is very very useful in moving around my system and should be noted as well.