Awesome WM: My Configuration

My Dearest Mad-Readers,

As I told you in one of my recent videos, my war against bloat is over. This does not mean I intend to start using KDE Plasma again, since it would not match my workflow, or that will endorse web bloat, since it is a real problem that I tend to see as different from the one I am describing now. However I do intend to be more realistic with the programs I use. Let me give you a concrete example which I have already cited in previous videos.

​Another Attempt At Defining « Bloat »

First, I would like to attempt at defining the concept of bloat. Nowadays, we all use it too freely, when in reality it only means one simple thing: the program you have in your hand is too powerful, it has the potential to do more than is actually necessary. It does not mean that such a program is bad, just that they might need to be lighter. Thunderbird is an excellent example. An email client does not need to be a calendar or an RSS feed reader. There are other more-efficient programs to do those jobs, such as calcurse or newsboat, although they are terminal-based.

phil-waynes-qtile-configuration
My qtile configuration

To some of you, and even to me at a certain point of my learning curve, Qtile probably is bloat. This mostly is because it is written in Python, a programming language which is considered rather slow by more than one professional in the business. It might be an interesting argument. When you compare performance however, Qtile is not much bloater than a fully-configured – or fully-patched, if you prefer – dwm. Indeed, most people who install dwm will configure it to have a lot of bloated options which will unnecessarily consume their RAM, since they will not even use them most of the time. Plus, most of us will not even see a difference if a program takes one more millisecond to load or if it burns a few more megabytes of RAM.

In fact, most people who rice their desktop environments or window managers especially do it for the satisfaction of doing it. Of course, it can also be useful but it would not be my first reaction to associate the term ricing with usefulness. You can be more than efficient enough without a fully riced window manager. Take the default configuration of i3 and it will do the job if you are looking to be more efficient.

Satisfaction is one reason why I have chosen to try out Awesome Window Manager: A program which I have long considered too bloat. As we go on, you will see that it is an extremely powerful window manager. Certainly much more powerful out of the box than most window managers out there. It also is rather easy to configure it. I say « rather easy » because it still is more oriented toward power-users.

phil-waynes-awesome-configuration
My awesome configuration: moc, vifm, htop, st (fair layout)

The Default Configuration & Themes

If this awesome fork of dwm is written in C, its configuration file is in Lua. It makes Awesome fully scriptable. I have not had the opportunity to explore this feature yet, since I only tested awesome for about 2 weeks and I am also still going back and forth between awesome and dwm. I tend to live a few days in one and then go back to the other.

There are too many themes to discuss them all in one video. However, I would like to point out to all of you that, contrary to other window managers, you can simply pick a theme on GitHub among the many that are offered and be content with your configuration. The default key bindings are more than decent. They would not necessarily be the ones I would set up for myself (since I removed most of them already) but they are not bad at all. In fact, you might be perfectly happy with them if this is your first time using a window manager.

Regarding the theme I have chosen, it is called gtk. It is a light theme, which is pretty strange since I have a history with dark ones. I did not like the default configuration however and I found the gtk theme really well-designed. You will have to be content with that, because there is nothing rational behind this choice.

phil-waynes-awesome-config2
My awesome configuration: the brave browser & tabs in the bar (max layout)

Keybindings

The mod key already is “super”, which matches my personal preference, so I have already been bought out… As for my custom keybindings, they are pretty much the same as for Dwm and Qtile. The bindings which change a bit are the ones regarding the layouts.

Custom bindings:

  • Super + v: Vifm
  • Super + p: Alacritty -e mocp -T /usr/share/moc/themes/yellow_red_theme
  • Super + t: Thunderbird-bin
  • Super + b: Brave-bin
  • Super + d: Dmenu
  • Super + r: Awesome default prompt
  • Super + a: Anki
  • Super + n: St -e newsboat -r
  • Super + s: Pavucontrol
  • Super + o: Libreoffice
  • Super + c: Calcurse
  • Super + g: Game launcher script
  • Super + u: Usb mounter script
  • Super + z: Zeal

Brand new bindings:

  • Super + shift + d: Show keybindings
  • Super + shift + p: Show menu bar
  • Super + left/right arrow key: Switch workspace
  • Super + m: Maximize or unmaximize a window
  • Super + f: Toggle full screen
  • Super + tab: Go back

I also have a lot of tmux and screen bindings but I currently have no use of them. Am I wrong? Should I use tmux more? Tell me in the comments below!

System bindings:

  • Super + w: Close a window
  • Super + Enter: Open a window
  • Super + Control + q: Quit Awesome
  • Super + Control + r: Restart Awesome
  • Super + [number]: Switch workspace
  • Super + shift + [number]: Move a window to another workspace
  • Super h/j/k/l: Move from one window to another
  • Super + shift + h/j/k/l: Switch focus to another window
  • Super + space: Switch layout
  • Super + shift + space: Switch layout (backward)

Function Keys

The function keys work exactly like on dwm, qtile or any Windows system. I set them up to mute, decrease and increase the sound volume but also to decrease and increase my screen brightness.

The bar

The bar depends on your theme and personal configuration. It is important to specify that it relies first and foremost on your theme, because I expect that most of you will not rice Awesome WM and be content with the various default configurations which a man may enjoy. Even I have kept something rather default-looking, since I merely picked the gtk theme, changed some system bindings, added my custom ones, added a bunch of icons and… Voilà! That is pretty much it. The rest I had already configured when setting up dwm.

By the way, have you noticed that, unlike my qtile and dwm configurations, I have kept the bar at the top? This is another irrational decision of mine. I really like it there and cannot imagine what it would feel like if I moved it to the bottom of the screen… What about you? Do you keep the bar at the top or the bottom?

Questions To You

One task I do not expect my window manager to take care of is the setting of my wallpaper. I would rather leave this job to my .xprofile and a program called feh. So I removed the code which does it in my rc.lua configuration file. What do you believe? Does this feature make Awesome WM better than other window managers or is it useless?

It is your turn now. Tell me:

  • How do you like tabs in the bar?
  • What do you think about the menu bar?
  • Is it helpful to have a keybinding to print a reminder of your keybindings or is it just another piece of bloat to show off?

Regarding the layouts, I have only kept 3: fair, magnifier and max. They are the only ones worth using in my opinion. The others might be beautiful but neither do they match my workflow nor do I believe that you can be efficient with them. What about you? How many layouts do you use?

I removed several system bindings (regarding the layout) which I had no use of: super+n or super +t (to minimize a client or move to a screen). They were only annoying since they were also conflicting with my custom bindings. Would you have kept them?

Conclusion & Sign-Off

In case you did not know, I am a HUGE fan of How I Met Your Mother. Whether I feel down or happy, I always find comfort watching Ted, Barney, Marshall, Lily and Robin (and the mother). This is one of the reasons why this legendary window manager has not only technically conquered me… its awesomeness has taken my heart and soul.

You know what?!

Whenever I’m sick, I just stop being sick and [start using] Awesome instead!

Take care,

Phil.

P.S: Originally, I only installed Awesome as a back-up. I wanted to have an extra window manager in case my main one failed me. It seems like my plan B has become my plan A, however, and vice versa…