The dark side of the mosaic (II): Choose yours!

Before proceeding with XMonad on Debian stable as promised in the previous post, I want to make a parenthesis so that we can make a good choice and save ourselves time and work in getting our desks to work as we want. So let's start with some general recommendations.

Before starting

  •  Read the manual. Many of the times we make a fatal mistake by not reading the manuals. Almost all tile managers will greet you with a warm blank screen the first time you run them. Do not panic. If you've already got here and don't know what to do, press and type man insert-your-window-manager here. All the ones I have tried bring a very useful description of how to use them basically. To return to the graphical environment, press and ready. Although this should have been done before running anything.
  •  Don't be afraid of the terminal. You are going to use it a lot, so much so that there is a shortcut for it from the beginning in almost every one. I recommend rxvt-unicode, I'll explain why later.
  •  Don't copy and paste configuration files without reviewing them. This is vital, because these settings are intended for the user, not for you. However, something interesting is to observe them carefully and see what is useful to you. I only recommend copy & paste when they are very small files, generalists or pieces of code.
  •  Do it calmly. The environment will hardly fit the first time. You will suffer errors with your window manager, that is for sure. Therefore, keep the graphical environment that you already have running safe and make sure you know how to return to it in case of emergency. Later I explain how.

What are we going to need?

  • Any Linux distribution. So far, whatever, so good.
  • A text editor, preferably one that can be run in a terminal.
  • A terminal emulator. The one that desktop environments bring is enough.
  • You win 😀

The alternatives

Now the good stuff begins, we are going to choose a window manager among the infinite cupboards in the universe. So answer this question, but only with one word: What are you doing on your computer?. Programs? Do you sail? You write? Do you read? Once this question has been answered, I make a recommendation: Look for a manager that is programmed in the programming language you are using. Also check if the manager is available in your distribution. Some are so new that they are not. We begin.


Configuration: Moon

In favor: Awesome evolved from DWM, a few years ago. Starting with branch 3, it started to configure itself from Lua, a very powerful extension language. It is innovative, as it is the first to use the new XCB libraries to the detriment of the Xlib. It has a strong community of users. By relying on Lua, you get a standard library and third-party libraries that extend its functionality, such as widgets. It has its own notification system, like notify-osd; equally configurable in Lua. Supports buttons. It has quite a few layouts for the default mosaic.

Against: Many users could not stand the switch to Lua. The configuration files are large and to reduce their size you have to know something about Lua. Sometimes you have problems with Xcompmgr. If you break the configuration you return to the one that was by default, it does not keep the previous one.

Notes: It does not use virtual desktops, if not labels. It can be configured so that an application runs on a certain tag.


Configuration: Haskell

In favor: Although it sounds pretentious, the fact that it is developed in Haskell makes it less prone to bugs and human errors and it is extremely stable. If the configuration (in this case, the environment is recompiled) fails, it keeps the previous one and sends you a message that it happened. The configuration files are minimal and easy to understand. He gets along with almost everything.

Against: Dependence on Haskell is its main problem. Downloading it implies having to download the haskell-platform package, or at least ghc, which is a bit big. Haskell can be (and is) somewhat cryptic if you are used to imperative and not functional programming (for fast: go and do this against this is this, go evaluate it). It doesn't support buttons, as far as I know. It has few layouts available by default.

Notes: It can be easily configured to fit into a full desktop environment. I think, but I don't assure you, that it goes directly to Gnome and Xfce. Many of its extensions can be installed directly from hackage, the Haskell repository, through a simple cabal-install, although it takes a while because it compiles them when downloading.

This is the one I'm going to use for examples of future articles.


Configuration: Ruby

In favor: It uses Ruby, so its configuration is less cumbersome. Ruby is nice and with a clear syntax. It has its own package manager, to install sublets, called sur. It is growing rapidly, that speaks of its quality. It has a strict tag system, like awesome, but more sophisticated, it may be useful to some. Its default terminal is rxvt-unicode, so point to Subtle; Well, most of them leave that to us, and it's good that it already has it if you're going to use it.

Against: It does not seem to have much information available in our language.

Notes: Apart from the strict tag system, it uses a different tiling system, based on grids. I haven't tested it extensively to fully explain it, but it seems to divide the workspace into default areas rather than leaving it to the application using it.


Configuration: Via a C header and an automake file
In favor: He is one of the legendary ones, father of Awesome and part of an evolutionary line created by the developers of the suckless tools, a set of tools that are designed to offer greater usability to advanced users. If you know dmenu, and you know what I'm talking about.

Against: I personally haven't tried it, so I have no complaints. People speak highly of him.
Notes: Take a tour of the barracks of Suckless so they can see what they are doing.

Window Manager From Scratch

Configuration: Own configuration file

In favor: It supports several of the features normally only programmable managers can offer, such as buttons, captions, and icons, and has a loyal, rapidly expanding community.

Against: Little documentation in our language.

Notes: Its name seems contradictory, because it does not suggest that we build our environment, but we only configure it. It is similar to how Awesome is defined, a framework for creating our own window managers, but this one does.

Spectrwm (formerly scrotwm)

Configuration: Own configuration file

In favor: It works fine out of the box and the config file is commented out enough to set it up. It has its own bar, which can show the output of a specific command. It's fast.

Against: Some may feel a bit empty, because some things are missed that in other managers can be achieved by programming something simple.

Notes: If you are still wondering why the name change, try reading the old name in full, as you see fit. Many people also figured the reference to a certain part of the southernmost male anatomy.


Configuration: Common Lisp

In favor: Another that uses functional language as configuration. Useful for those who are used to Emacs Lisp.

Against: I have not tried it. so I do not know. Partly because I don't know anything about Lisp.

Notes: Nothing to notice, other than the curious image of a happy StumpWM user, a very happy one apparently:

There's no more?

Of course I do, but I do not know them or they have passed me in this guide. It is quite likely that the programming language you are learning (I mean, if you are) has already been used as a configuration for one. But although they are all the product of design and not of nature, it does not mean that they are not subject to the race for survival, and therefore there are many abandoned or dead projects because they had no one to serve and have been lost in time. .

Other Considerations and Quick Answers

  1.  Why rxvt-unicode? urxvt (it is called like this, but the package is called rxvt-unicode) is a terminal emulator that supports 256 colors, Perl extensions, tabs and so on; very useful because terminal applications use color schemes, easily configurable in urxvt, to display on screen; making the task of having a beautiful and unified interface much easier.
  2. How do I do the wonders of If you know this page you will have already taken a tour of the configuration files of the altruistic people who put them there, even if it seems that they do it to show off. It's all a matter of reviewing them, learning from them, implementing that in your window manager and crossing your fingers to make it work, especially if you don't know what you're doing.
  3.  How did you switch between desks?Modify the file
    ~ / .xinitrc

    so that there is one and only one line that says

    exec insert-here-your-wm

    If you are in Arch maybe you have already done it, you just have to change the line, say,

    exec startxfce4


    exec xmonad

    This works with the startx command or with slim. If you already have an access screen like GDM or KDM they already bring something to change sessions.

  4.  Is the text editor necessary? But of course it is. If it runs in terminal better, because tiling gets along well with the terminal. If you don't know which one, you can start with nano. Others that run on top of the terminal are Vi, Vim, and Emacs, but you may need some training to handle them properly. They are all invoked by name, no problem with that.
  5.  And the settings? In time. Besides, I cannot provide you with the settings you are looking for for each manager, simply because I cannot use them all.


There is to choose from. Now yes, the next time we meet, I will do an exhaustive description of a file xmonad.hs basic, generalist and others, on a stable Debian. See you.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

20 comments, leave yours

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Oscar Silva said

    my good, waiting for sgte. post 😉

  2.   auroszx said

    Hmm, interesting. I know some Lua so maybe try Awesome 🙂

    1.    anti said

      The good thing is that Awesome you find it in almost all distributions, even Debian stable

      1.    auroszx said

        Well, I already tried it. It doesn't look difficult, but it's not what I'm looking for 😛

  3.   msx said

    Soyez premier !!

    Great item man, +1. Most Google hackers -and in general- use Xmonad but as you say it is an alien language, I have to sit quietly to review it, there is a good tutorial here:; Also the Glasgow compiler theme is no less, if you don't use Haskell on a daily basis or are a fan of Xmonad, you have to download that 700mb beast just to have a minimalist environment, haha!

    As an interesting and easy-to-use WM I would add to your list i3wm (, a very complete environment, with an integrated status bar (a plus for not wasting time configuring anything), a hyper simple and very easy configuration file to customize the Windows .ini style and it is also in full development.
    Like WM curious: DSWM (Deep Space WM), based on StumpWM and focused on Emacs fans ... I'm an Emacs fan, but there was no wave with DSWM xD

    For now and after trying all the ones you name on the list I have been staying with Awesome 3 since as I did not suffer the sudden configuration change until now I never had problems with this WM (always using the latest version) and I find it powerful and versatile , almost perfect to replace a full desktop like KDE SC.
    I like dwm and I used it for a long time, but being super minimalist I find that it lacks many things that I use; Another WM that I was a fan of is Musca, currently abandoned, although they have forged it while maintaining a lot of its essence, however the handling that Awesome and i3 do of the status bar is clearly superior.

    The one that I liked is also Subtle - and although I do not program in Ruby it is a plus because I love this language, as soon as I have time I will test it in depth, it seems to me that it is lighter than Awesome and from what they say in the project they claim to give it the same functionality.

    A tip: if you use WM or * box managers, try Compton -X composer fork of xcompmgr-dana already commented on this blog-, it is at least _excellent_ (I don't remember who posted the original article but thanks!)

    1.    elav said

      almost perfect to replace a full desktop like KDE SC.

      ¬¬ Really?

      1.    anti said

        Maybe not to * all * KDE, but yes to Kwin. Integrating it into KDE has to be great

      2.    msx said

        "¬¬ Really?"
        Haha! Not textual, of course!
        But Awesome is very complete and works very well.

        Look, KDE SC 4.9.1 on Arch Linux x86_64, using the Liquorix 3.5.4 kernel and the CPU access optimizer -based on cgroups- Ulatencyd + some extra little tweaks (in /etc/sysctl.conf and some other places ) It works so well but SO, SO SO SO SOOOO GOOD that it seems a crime not to use it, it is a silk, it impresses me! XD
        In addition, the power management of KDE SC 4.9.1 deserves its own section: the use of resources by the environment is so well optimized that the energy saving - always talking about using the machine on the road with battery - that can give you using a WM like Awesome or dwm (the two I used the most) is negligible, WOW! KDE SC 4.9.1 has ultra-low battery consumption! And we are talking about a FULL / FULL desktop with PREMIUM features against a window manager with built-in traybar o_O

        There is also a question very little known by the general public: while GNOME always had a more social side oriented to the usability and integration of its users, emphasizing support for languages ​​and input devices of all kinds, KDE was the territory of users. They were looking for something more from a graphical environment and why not from many hackers and that is reflected in several almost hidden 'details', for example:
        1. Let's go to the desktop overview. In my case I have it configured in two ways:
        1st. within System Settings we go to Workspace Behviour (I suppose that in Spanish it will be Behavior of the Workspace or something similar), there we choose Screen Edges (Screen Edges?) and then in any of the screen edges we select the Destkop Grid effect (I I have it in the lower right edge)
        1 B. on the System Sets general screen. we go to Shortcuts and Managers (I guess something like Gestures and keyboard shortcuts) then Global Keyboard Shortcuts (Global keyboard shortcuts) and finally in the KDE Component combo we look for KWin. Now the only thing left is to bind the Show Desktop Grid effect (I think in Spanish they translate it as Show desktop grid or something like that) to a shortcut that is comfortable for us (in my case Meta + s).
        Where I was going: there is a very interesting detail for when we work with multiple desks.
        When activating the Desktop Grid view we not only see all the virtual desktops that we have enabled but also all the applications that are in each one, being able to drag them between desktops.
        Now, if we right-click on any of these applications we will see that the same mirrored window automatically appears on each of the virtual desktops, so that we work on the desktop we work with, we will always have that window (that is, application) ... but this does not end here! If we right-click again on the application that we previously mirrored, but on another desktop, the application automatically despairs, leaving only the instance of it on the desktop where we right-clicked it.

        Like this example, there are lots of undocumented that we discover over time as we use KDE SC.

    2.    xykyz said

      Your Haskell link leads to a page about .NET. Will not be the link you were referring to?

      Who would give XMonad a try, as I know something about Haskell and it may be a good way to apply it. Of the rest I have only tried i3 and Awesome. i3 was complicated for me, or at least more complicated than Awesome ..

      1.    msx said

        Exactly thanks, I wrote it from memory. One question: when you say "Who would try XMonad, as I know something about Haskell and it may be a good way to apply it. Of the rest I have only tried i3 and Awesome. i3 was complicated, or at least more complicated than Awesome. » Are you serious or are you trolling? Or do you just come from another planet and that's why you use Haskell, so as not to miss your homeland !?
        i3 is HYPER simple, in fact I suppose that it may well be the entry level WM for all those who want something easy and ready to go. It is configured with a single file, ~ / .i3 / config where the configuration is of the type:
        [variable] = [value]
        and where you have all the configuration possibilities in the i3 wiki to change the font, choose the end of the screen where to anchor the status bar, etc. In fact, the status bar is already configured to show information of all kinds: battery, input and output network connections of all associated NICs, date and time, a system tray where the tray icons that open other applications appear (for example KWallet), etc.

        But of course, if you program Haskell I suppose it is logical that something simple seems complicated to you, haha!

        1.    msx said

          Hah, what a bolú, I sent him a HYPER gringo with and 😛
          Do not do this at home children, in Spanish we use the i for HIPER =)

        2.    xykyz said

          i3's simplicity made me complex xD I didn't use it enough to accommodate myself because I discovered awesome soon after.
          And I'm not trolling, I know Haskell and functional programming 😛

    3.    anti said

      There is a version in Spanish and in fact it is the one I use, it is in
      I hope I am improving as a writer, in the previous post I had fatal errors, as I said, some I did not put them because I do not know them. Regards.

    4.    anti said

      This is a very long comment, my friend.
      Some I did not put because I do not know them, so putting them would only be nonsense because I can not report anything about them.
      In relation to composition, there are people who believe that it is unnatural to combine tiling and transparencies. I do not know the reason, but I suppose it is due to stylistic and consumer reasons, because these managers deal more often with more or less old hardware.
      Anyway, thanks for commenting. 😀

      1.    msx said

        "In relation to composition, there are people who believe that it is unnatural to combine tiling and transparencies."
        Of course, my answer in these cases is always the same: FUCK OFF.
        It's like when you explain a workaround for a particular situation that involves a dirty hack, a ugly, really awful hack and then all the hysterical whores jump like boiled milk saying no, that's wrong, that's wrong ... my answer: that suck it.

        While it is true that a neat and tidy code makes it much easier to maintain it and that the more vanilla a system is and the fewer hacks you did to it, the easier it is than someone who does not know your hacks does not make shit, the reality is that if you are a n00b surely you will feel panic to touch something that «you should not touch» (WTF with that apocalyptic concept man, touch, break, learn and then hack), when you are r00t or at least _you know your system_ (KNOW YOUR FUCKING SYSTEM) you can do and you should do virtually what you want, what you like and how you like to do it.
        With the composer it is the same: anyone who goes crazy and is scandalized for using a WM with a composer who goes to the psychiatrist because it is not right in the head.

        There are few things I despise more than "purists" (who generally know the least about it) who are rule-makers and are less creative than a hollow brick and can never get out of the mold they fell into.

        Know your system => do whatever you like _your way_.

        1.    anti said

          It is not so bad. These managers are supposed to be minimal, so composing them would be reloading them. Also, terminals without transparency look pretty good.
          Anyway, I don't care; although normally in tiling I don't keep composition.

  4.   socrates_xD said

    I use Awesome, and the truth is that it is simply "awesome". But from the list you put it seems that the best is Subtle (if you know English), mainly because Ruby is a simple language to learn as well as Python. In fact, it is understandable what an .rb file puts in just a glance. I wanted to try it 🙂

    A wm that is configured with Python is qtile ->
    What I didn't like is that it seems like your config file isn't as customizable as it should be. You would have to touch the source code of the program to customize it to your own liking to put, for example, a color scheme.

    1.    msx said

      I use Awesome, and the truth is that it is simply “awesome”.

      Totally! Awesome is awesome, as is.

  5.   conandoel said

    Excellent post, I am using subtle and awesome and the truth is that I love them both, but subtle is easier to configure if you have no idea of ​​ruby, in my case I do not program in anything and I do not know a language I find it easier edit and configure to my liking subtle than awesome. Salutes !!!

  6.   ivanovich said

    I am a Linux lover - I am NOT a programmer - I am a Simple Learner - currently I am learning to handle i3_wm and with a stroke of luck (learning to navigate with uzbl-browser-in its status bar I discovered the name of the keyboard useful to modify the pre-installed in i3_wm (Mod5 + intro)) I managed to configure »~ / .i3 / config» to activate a friendly keyboard sequence, and thus activate the terminal ..., what greater joy I had ..., it was like taking a step on the moon, good blog friend - 🙂 (11 - 04 - 2013 / Chile - Penco - VIII Region)