parasurv's webspace

What is DWM?

June 6th 2020

I am not new to tiling window managers. Those are the ones that dominate r/unixporn nowadays with mostly transparent terminal windows and other useless shit.

I used i3 for years, before I left it because of distrohopping. Lately however with Slackware on my machine I wanted to go back again. For some reason I couldn't make i3 work with my old config, and I didn't have the patience to build up everything from a default config file.

So I started to look at dwm, aka dynamic window manager. Just as with i3, Luke Smith made me do it! Frak you man!

This is the video that I started with, before compiling the thing.

It has a different way to handling windows than i3, and so I need to get used to the shortcuts and new ways. I looked at the tutorial for learning stuff.

One of the most interesting stuff with dwm, that you don't have a config file, to setup and tweak, but rather you patch the source itself. In this way, you start with a bare minimal system, and then you add the stuff you need. It may sound to complicated, and probably it is. The starting system doesn't even have a clock on the panel! And as I said the window management is a little different.

Also, I need to use version 6.1, because I have some dependencies that not up to date in Slackware 14.2. But that's OK for me. Who knows, it's a matter of days now for Slackware 15 to come out, or years probably. xd

Start DWM

I realized that I don't really need a display manager, so I just went back to runlevel 3. What this means, that my machine starts at terminal level, you log in and basically you start your system with startx. Just make sure you have exec dwm in your ~/.xinitrc file.

If you are using different keyboard layout than the one on the keyboard. You can change it with setxkbmap layout, where you change layout to your language you want to use. You can use multiple layout and then assign shortcuts to changing it. I don't do that though. I also assign Caps Lock to Ctrl, with -option 'ctrl:nocaps' with the same command.

I also did 2 starting script thingies, where I set the date in my panel and a loop for restarting dwm, by using the alt+shift+q shortcut (which is the default for exiting, but in this case it's also restarts it).

Adding keyboard shortcuts

Honestly this part can be confusing, and while Luke Smith said that dwm is better than i3, I think adding shortcuts is way easier in i3, than in dwm. Probably at the beginning only.

Just look at the config.h file and figure it out! First you need to add a command for running a specific command, then add that command to a key.

But honestly we computer users are so lazy, just look at other people's config and copy what you like. That's how a built my i3 config, and that's how I will get into dwm too…

What I like?

I thing that the window managing part is unique, that you have more focused master window(s) and others are the slave. It's obviously doesn't suit any social justice people, so we don't have to worry about them. xD

I like that the window title is in the panel itself, and not on the windows, very visible.

Patching

Since DWM is very minimal in nature, you need to add things by patching the source code itself. That's why you shouldn't use binaries for DWM at all, since sooner or later you want to add something.

I have added some things so far, I am using DWM 6.1, because Slackware has older fontconfig stuff, which is not compatible with DWM 6.2.

  • added fullgaps, so now I have visible spaces between windows
  • added shiftview, which you can change tags (workspaces), going to the next or previous one.
  • added pertag, which you can use different window configurations on different tags. Default when you switch to let's say monocle on any tag, if you switch to another tag it will use monocle too.

Patching is not a complicated process, but sometimes you have to dig in. It's fun though. I watched this video about it, helped a lot: Patching Suckless Programs Made Easy.

I am still at the beginning, but I think I will stich with DWM for a while, and not just because so I can say that I am elitist douche, like that Luke Smith guy (just kidding).

Of course as with lot of things, I will try to document what I did, what I have learned.

This was day 25 of #100DaysToOffload, where we write about anything we like on our personal blog. Check it out even if you don't like to write, but just read. We have an RSS feed!