30 Window Managers in 30 days

Many Window Managers are available in the Debian repos (or available to be built), and they can be easily installed to your #! machine. I have been WM hopping for a while now, and it occurred to me (with some encouragement) that others might find my experiences useful, or at least be able to build something useful from them.

So to that end, I present 30 Window Managers in 30 days. I will start with easy floating WMs we are probably all familiar with, and by necessity eventually progress to a few I have not even heard of yet.

I will be the first to admit that I am a relative noob, so if anyone has more experience with a WM I mention, or anything else to add, please feel free to add, correct, or admonish.

First off is the WM we all know and love, openbox. I'd like to combine this with a thread I have wanted to start concerning openbox config files and where they live.

Simple to use, simple to configure, openbox is (in my opinion) the ultimate floating window manager. "Everything you need, nothing you don't" -- it's why we all ended up here in #! land.

But we also want to be able to change, configure, and personalize it. There are gui tools like obconf and the tint2 config editor, but it's really much easier to tweak it by hand, and you learn a lot in the process.

The main right-click menu is controlled by ~/.config/openbox/menu.xml -- strangely enough, an XML file -- but don't let that scare you. It's super easy to add entries to the menu once you see how the existing entries are laid out in the file:

Want to change your terminal from terminator to sakura? just find this entry in menu.xml

Tint2 (the default panel) and conky have their own config files and web sites. They are both simple and easy to configure, or complex and feature-rich if you want or need them to be.

I won't say much more about openbox, as it's covered in detail on this forum and in the default menus provided with every #! install.

I will say though that I really mean what I say in my sig -- it's all in a config file somewhere, you just have to figure out where to look. And you can do it yourself if you just look at the existing file or the man pages... or ask for a little help from the forum. I can give you a fish, but you'd really rather I taught you how to fish for yourself; trust me. There's nothing like that first fish...

Let's see where this goes. Tomorrow we'll look at another simple floating WM; JWM, (also know as Joe's Window Manager). A little lighter, still easy to configure. Stay tuned. I won't give you an openbox screen shot, but starting tomorrow I'll add scrots if there's any interest.

And if you think this is a good idea or you think I'm insane, let me know! It will be a lot easier to do this if I know I have an audience of some sort..

(edit) already got feedback from gensym, who suggested a list of links to the WMs covered. Since I hope others will add their insights as well, I'll just link to the first post for each WM, and let it flow from there...

Re: 30 Window Managers in 30 days

Re: 30 Window Managers in 30 days

/subscribed

I'm signed up..This would also make a great Blog/Review outside the #! forums.. As an Xfce guy I was surprised to find myself configuring OpenBox on Wheezy this Weekend..it is very addictive.OpenBox is all about how inventive you are...When ever I installed it on past Distros I found my self faced upon boot with that Blank Desktop...I thought..Well, good for a Server. Once I saw #! I finally could see the potentials of OpenBox...

Re: 30 Window Managers in 30 days

2Dogs, I really think you ought to have a screenshot or two of each of the window managers you profile, sort of like a teaser or, if I may make the analogy, an image of the dish that accompanies a recipe. It give the consumer more of an idea of what they'll be getting by doing things the way you present them.

Re: 30 Window Managers in 30 days

Window Manager project day two. Thanks everyone for the encouraging words. To anyone who is concerned about me giving up work for 30 days, don't worry. I am semi-retired and work one or two days a week, so I have plenty of time for this project. To anyone who thinks I don't have a life, be assured that I have not had a life for some time, so I did not give up anything to do this project. Plus, how much of a life can you have if you have time to read all this?

Now, an interlude and a little preparation. Installing a new window manager from the repo is easy; just apt-get and you're done. But now what? How do you start your new toy, and then what?

Well-behaved window managers will create a .desktop file in /usr/share/xsessions. Once this is done, the new WM will show up in the "sessions" in GDM or LightDM. You'll still have to do a little more work to get it to show up in SLiM. Some window managers don't provide their own .desktop file. If you want the WM in the sessions list you will need to create one. (Hold your questions until the end of the talk please, I'll provide a list of links.)

Another way is to simply ditch your login manager entirely, and start the appropriate window manager manually by placing the call to the WM in ~/.xinitrc and running "startx" from the console. I used the GDM method for months, but now I have no login manager on my test machine and I start X when I'm ready. This gives me time to edit .xinitrc and prepare any startup files that might be necessary -- some window managers don't have a built-in "autostart" feature, so you'll need to create a script if you want to start conky or nitrogen along with the WM. (I'll cover this when I get to the WMs where you need to do this).

So -- your choice -- use one of the already GDM-enabled versions of #!, install GDM or LightDM if you have SLiM, figure out how to use SLiM, or use the "startx" method.

Once you have your new WM started, then what? Faced with a black screen and no-right click menu, what do you do? I mentioned in another thread that I found it useful to know two things before I started a new WM: how to start a terminal, and how to log out. If you know at least these two things you can start any app from the terminal and/or bail if you know how to log out. I will try to provide links to a wiki or home page for each WM I talk about; do a little research before you startx!

Re: 30 Window Managers in 30 days

Day Two -- JWM

Today we are installing JWM; Joe's Window Manager. It's another floating window manager, a little lighter on resources (uses less memory) and slightly faster on old hardware (in my opinion and experience) than openbox. Not so much different that it's instantly obvious, but if you watch conky like a hawk (and I do at times) you may notice a difference, and I think it starts from the login manager much more quickly.

Installing

JWM is in the repos, so just

sudo apt-get install jwm

JWM creates a .desktop file, so just log out of openbox, and select "jwm" from the list of sessions in GDM. The default JWM config is a little ugly (in my opinion) but perfectly usable.

It's got a built-in menu and a built-in panel with a menu, a pager, a taskbar and a clock. You can either right-click the desktop to get a menu, or left click the JWM at the lower left corner of the screen. You get the full Debian menu, with all kinds of stuff you may or may not want.

Configuring

JWM is even easier to configure than openbox. It uses a single config file called jwmrc. When you first install jwm, it uses its default config file, /etc/jwm/jwmrc. To modify it, you just copy that file to your home folder and tweak it from there:

cp /etc/jwm/jwmrc .jwmrc
geany .jwmrc

.jwmrc is xml like openbox, but it's an even simpler format, and all the config is in just the one file. There is an awesome web site here and a bunch of people on this board who have created some really nice looking jwm themes and menus.

jwm also has one really nice feature for WM hoppers and config junkies. After you edit .jwmrc, you can run

jwm -p

and it will parse .jwmrc and tell you if it finds errors. This can save you a lot of grief if you make a mistake, but if you do make a mistake in .jwmrc, it's not usually fatal; you'll just end up with a really ugly theme with big red borders around everything.

The same conky config that works with openbox will work well with jwm. Just add it to the top of .jwmrc in the <startupcommand> section:

If you don't like the built-in bar, you can disable it and run tint2 (or any other panel) from the startupcommand section.

And when you make changes to .jwmrc, it's simple to run "restart" from the menu to cause the changes to take effect. Some changes require a logout/login (like adding things to StartupCommand) but restart will usually work.

Here is a scrot of how I have jwm set up on my main machine now. When I'm not using spectrwm I use jwm with this config.

What I Like

I like jwm a lot; I didn't at first (I thought it was really ugly) but it's now my favorite floating window manager (sorry openbox). It's especially useful for old slow machines with crummy graphics, especially if you change the window move mode from opaque to outline:

<MoveMode>outline</MoveMode>

Then jwm doesn't redraw the window until you're done moving it.

I also like the built-in config file parser (jwm -p) and how it defaults to a really ugly theme if you make a mistake in jwmrc.

What I Don't Like

Not much really. The default config is ugly, in my opinion. It takes some time (or borrowing the work of other people) to make it look nice.