Managing windows
Thursday, 3. May 2007, 21:09:19
When managing Windows, there's not too many options, but Unix/Linux has quite modular structure. In most cases window manager can ge changed from graphical login screen, in other cases by editing one row in config file. Quite convenient for kiosk setup too, as whole screen is taken by the only running application and there's no minimize buttons, task bars and things like that. Exiting the application exits X too, so it's not secure setup on it's own. But using such setups would mean less funny blue screens and anti-virus notifications for public information displays.
Some features are provided by Xorg itself. Keyboard and mouse work, but with one terminal open, mouse is not that useful yet as there's no buttons to click on and windows can't be dragged around. Resolution can be also changed with keyboard shortcuts. In addition it's possible to launch programs from remote computers and display them on this screen. No need to install additional programs for that as X is designed to be networked. Though it's also security risk, so X doesn't usually listen for network connections by default, just connections from local computer. That can be circumvented securely with SSH, but that's another topic for some another time.
Window manager in this screenshot is Fluxbox. Quite lightweight, though some themes are slightly heavier than others. Menus can have transparency and windows can be grouped together.
Theme is not the default one, Fluxbox includes just some more simple themes by default. I think the project is still alive, so some new features might be expected. Fluxbox supports also small applications that Window Maker calls dockapps. Configuration is done by editing configurations files by hand as almost everything else too. And of course, virtual desktops are supported.
Afterstep takes some time to get used to as all three mouse buttons seem to have different function with every button. Dockapps are also supported and some of them are launched by default. Again, configurations is done by editing configuration files by hand. I think there was some graphical configuration tool for older Afterstep, but I have never used it. By default there's few virtual desktops that are divided in four parts.
Nice thing about Window Maker is that there's really no need to edit configuration files by hand, there's graphical utilities for configuring most of the things. If the default configuration tool is not good enough, another alternative configuration tool can be installed.
Window Maker does things differently, or at least differently than Windows does things, so there's slight learning curve, but reading the manual is not mandatory to get things done.
Another nice thing is that things can be dragged around. Rearranging dock (that's where dockapps live, on the right side of the screen in this screenshot) can be done by dragging dockapps around. It's also possible to enable dragging of windows from one virtual desktop to another.
Development seems to be slow, so new features can't really be expected.
Usual problem with window managers like these is that some programs don't behave well when stuffed in small tiles. WMII supports floating windows too, so those misbehaving applications can be used normally too. Though I would like to see window manager that's not so strict with tiling princibles. For example giving requested window size for application is not that bad with some applications. Dockapps like to have 64x64 pixel space usually for reason. Though there should be dock for Ion, but I haven't been able to enable it.
Another thing that could be said about E17 is that it's artistic window manager, even bit too much in some places with the default theme. Theme in this screenshot is not the default one, but default one doesn't look bad either. All kinds of desktop effects are supported. For example animated backgrounds, rain and snow. 3D acceleration is not supported, so no 3D effects like in Beryl or Compiz.
If these window managers are not enough for you, there's more of them. Impartial, but still good list of them can be found from http://xwinman.org/
Enlightenment looks quite interesting. I have to try it when I get the chance.
Great blog post!
By drlaunch, # 4. May 2007, 13:46:35
However, you forgot to mention the best window manager available
Ion! -- http://modeemi.fi/~tuomov/ion/
Ion was one of the first "tiling" "frame-based" windowmanagers, and ion3 is the development release which is also the only one that most people use. All of the low-level X functions are written in C, but most of the windowmanager features and behaviors (including drawing) are done in Lua. Ion has an embedded Lua interpreter built right in which allows for nearly limitless customization and extensions.
I use many different windowmanagers, but I always end up going back to ion3 just because it really lets me get a lot of work done, and it really makes me feel POWERFUL. I have bindings that let me swap window positions, ssh to all my shells, upload testing files to servers, pull branches in bzr and perforce, etc. etc. And I'm even using it in some internal tools for my company (hardware testing and monitoring stuff).
By omie, # 15. May 2007, 13:19:55
My intention wasn't to review all availabe window managers, so I left Ion out among some others. Though if I get the dock working, I might try it again. Ion just takes some time to get used to.
By anzah, # 15. May 2007, 20:32:52
Oh well, I guess I just jumped on a chance to plug ion =).
Might be able to help with the dock, though.
Find out where your ion3 config files are. They may be in /usr/X11R6/etc/ion3, /usr/share/ion3, etc.
cp those to ~/.ion3
edit cfg_defaults.lua
uncomment the line that says --dopath("mod_dock")
edit cfg_dock.lua to your liking.
start/restart ion3. Start up a dock program. It should get swallowed.
By omie, # 18. May 2007, 19:29:01
I'll have to check if ion2 works better. And edit the menus, so I can go back to Window Maker without quitting X.
By anzah, # 19. May 2007, 21:32:58
ion has become like emacs for me, though =). For example, I'm running windowmaker on this NetBSD box right now because I don't have my ion3 scripts copied over! Just like the problem I have using emacs on "stranger" machines because I lack my .emacsrc
For a long time I switched to vim just because of this reason. Now, I'm more or less flexible on the two, and when I have my own emacs install with all the nice setup that I'm used to, I use that, when I'm on a "stranger" machine I use vim. I also do most of my development work on a familiar emacs install, and edit files remotely or setup my own version control for pushing changes from that "familiar" machine.
vim and windowmaker are always pretty much the same or just a quick config quip away from "familiar"; I guess they're my rocks.
By omie, # 20. May 2007, 16:20:56
At least Ion is not that much in the way anymore. Configuring keyboard shortcuts takes some time to change them so that they don't conflict with program shortcuts, but otherwise I remember enough them to actually use Ion properly.
By anzah, # 20. May 2007, 16:41:38
I'm not sure if you have heard about the Xmonad - a minimalist tiling window manager. The code consists of ~400 lines of haskell and includes support for xinerama. If you like tools that just get the job done then you can check it out at www.xmonad.org
By anonymous user, # 28. May 2007, 00:36:18
Tiling is handy feature and that's why I have been playing with Ion for a while. But Xmonad has automatic and customizable tiling. Could be worth trying out.
By anzah, # 28. May 2007, 20:20:28