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.
Table of Contents
- 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 😀
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.
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.
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.
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
- 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.
- How do I do the wonders of DotShare.it? 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.
- How did you switch between desks?Modify the file
~ / .xinitrc
so that there is one and only one line that says
If you are in Arch maybe you have already done it, you just have to change the line, say,
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.
- 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.
- 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.