About window management on Linux
Tags: linux, workflow
Published: 2019-10-26 16:24:55

As I recently finally made the step to erase my dual boot and install Linux only on my main laptop (which I also use for gaming), I decided to try a more graphical experience and gave a chance to Gnome.
Luckily, one of my co-workers uses it on Arch and could share some protips.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/b9t8zgeto7z8hldk7dz3.png)

With the help of gnome-tweak-tools and dconf-editor, I think it turned out pretty well and I could get an environment almost as efficient as my all time favorite i3wm.

As a result, after several days of setup and use: it felt good! New tools to learn, themes to look for, satisfying workspace transitions.
While it was, for the most part, super fluid, it's heavier on the OS magic (I use Ubuntu), and some little things break from time to time, like keybindings.
It also gets slow on app startup (I suspected an HDD issue, but i3 is much faster, on Chromium for example). 

And of course... I usually took some time to resize and position my windows on screen.

All of it to get back to i3, and way waster than I left it. Why not talk a bit about it, while we're at it?

### i3wm - A tiling window manager

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/b3md7hj1jlvw0gtr484q.png)
###### Nerdy, right? And it tiles by itself!

Lightweight, simple and fast. This window manager is straight to the point and its setup, even for the ricing part, only consists in configuration files, which is super easy to automate. You can make it look super sleek and modern, or more 8bit-ish vintage like.
And I love those aesthetic terminal-based apps, which look particularly good on tiling window managers.

The dark side of it is that you actually have to customize it yourself if you want to use it daily, in particular for laptops (you'll have to configure your media keys yourself...). And let's be honest, it looks like shit by default.

Also, you might experience graphical glitches with some applications - Unity for example, while Steam works like a charm. Not very user friendly, but perfect for learning the hard way. You can never really get rid of it once used to it, and there's always something new to learn and add to the overall experience. I even found new apps and config tricks between the moment I wrote and the moment I posted this article! 

My own configuration is still a bit basic, so I suggest you have a look at the [unixporn subreddit](https://www.reddit.com/r/unixporn/) to get yourself motivated...

### Terminal-based apps to get started with i3wm

You don't have to go full terminal-mode while using i3wm; it even has a floating window mode (`Ctrl + Shift + Space`). But be sure that you will always be faster (with some training, of course) with your keyboard than with your mouse.


#### Vim - Text editor
What else? (I actually use NeoVim. 😇)
If you don't know Vim and have ambition about programming, then you need it. It's a bit harsh at the beginning and you might prefer a more "ready out of the box" experience on the long run, but you will gain a lot in productivity, and adding Vim keybindings to literally every keyboard related application will soon become an habit.
Use `vimtutor` inside the Vim editor to launch a builtin tutorial.

#### Ranger - File manager
Basically netrw —Vim default explorer— that handles file types, with previews. I don't use it much yet, too used to travel with `cd` and netrw. But pretty sure Ranger is faster!

#### Xrandr - Display manager
For brightness, screen orientation, monitors management.

#### Rofi - Application launcher
dmenu, but prettier. Doesn't that make it necessary?

#### Scrot - Screenshots
Because we need to post on dev.to.

Whatever idea goes through your mind about something you'd like your computer to do or look like, just google it; you will surely find something about it.

#### Next goals
I haven't customized the status bar yet. Yes, it shows.
On the long run, I might also get to Arch Linux, but— what about that HP wifi driver that Ubuntu finds for me by itself?

As a reward for reading this far a first-time article, you can find my dotfiles for all those tools on [my github](www.github.com/pypaut/linux-config)! I update them regularly.

What are your favorite OSs, window managers, general tools?
Is there a particular thing I mentioned here you want see more developed? Reformulated?

Feedback appreciated 🤗