This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature

Ion, the efficient window manager

By Michael Stutz on June 27, 2006 (8:00:00 AM)

Share    Print    Comments   

"So-called 'modern desktop environments' are totally unusable, and present-day mainstream graphical user interfaces in general are far less usable than they are praised to be." So begins the declaration of intent behind Ion, a tiny window manager with no icons, backgrounds, or themes. It does have tabs -- its author, Tuomo Valkonen, invented the concept -- and once you spend time with it you're struck by the efficiency of its design.

The philosophy behind Ion is that window managers aren't meant to be seen, but to manage windows; anything more is dross. A few window managers out there share this aesthetic, such as Ratpoison, but they're rare in today's world of photogenic desktop environments, which seem to always be looking for an opportunity to add more decoration and ornament.

In contrast, there isn't much to look at in your average Ion screenshot because there isn't much (visually) to the program itself. You generally view X clients in full-screen windows, switching between them with quick simple keystrokes. Ion does support the mouse, but it's built for speed -- which means the keyboard. If you're quick on the keys you'll adore it, because with Ion you can easily use the keyboard for everything.

Admittedly, this approach isn't for everyone. If you can't live without the idea of desktop decor, you probably won't care for it. And the documentation warns that those applications that don't comply with the Inter-Client Communication Conventions Manual (ICCCM) won't behave well with it. Also, those applications that use multiple windows and frequent pop-ups don't always work smoothly with it, either -- although, as shown in this screenshot of the GIMP, you can usually get it to work.

So what do you see when you start X with Ion as your window manager? Not much.

Ion keeps all client windows in frames. When you start, a default empty frame will appear. You'll see a small bar at the top of the screen above the empty window. Picture it as a horizontal line that can expand and contract to hold neatly connected windows. Only one window will be visible at any one time, since each takes up the entire screen. When new windows are created, their names will be written on that bar. Those are Ion's tabs; clicking on one brings its corresponding window in focus. When Ion needs to query you (such as when confirming exit or restart), it's written in a dialog bar that will appear on the bottom of the screen.

Ion command quick reference

Window navigation

Mod1-k num switches to window num in current frame

Mod1-k n switches to next window in current frame

Mod1-k p switches to previous window in current frame

Mod1-C closes the current window

Frame navigation

Mod1-s splits the current frame horizontally

Mod1-k s splits the current frame vertically

mod1-n moves vertically to the next frame

mod1-p moves vertically to the previous frame

Mod1-tab moves horizontally to the next frame

Mod1-k tab moves horizontally to the previous frame

Mod1-k x kills the current frame

Mod1-R resizes the current frame

Workspace navigation

Mod1-num switches to workspace num

Mod1-leftarrow moves to the previous workspace

Mod1-rightarrow moves to the next workspace

Mod1-t tags the current window

mod1-k a attaches tagged window to the current workspace

Mod1-a attaches named window to the current workspace

Functions

F1 displays specified man page

F2 opens an xterm

F3 runs specified command

F4 starts an ssh session

F5 edits specified file

F6 views specified file

F9 switches to specified workspace

F12 opens Ion menu (has exit option)

Windows, frames and workspaces

Ion comes pre-configured with a number of useful functions that you run by typing the function keys -- F2, for example, starts an xterm, and F3 queries (with tab completion) for the name of a program to run.

Ion's movement commands begin with the "Mod1" prefix, which is usually set to the Alt key. But like all of Ion's key bindings, you can configure it to whatever you like -- if you have applications that need Alt and take precedence, just bind it to something like the left Ctrl key.

When you start a new X client, it opens in a new window and the focus changes to that window. To move back to the last window, type Mod1-k k. When you exit a program, its window closes; to close any window immediately, type Mod1-k c.

You can switch to a particular window in the current frame by typing its number after Mod1-k, and you can cycle through all of the windows in the frame with the Mod1-k n and Mod1-k p commands, which move to the next and previous window respectively.

All of the movement commands have wraparound -- if you're at the last window in the frame and you run Mod1-k n, you'll wrap back to the first.

You're not limited to one main frame; you can have many of them, each in its own workspace. By default, you're in workspace number 1; to switch to a workspace, give its number with Mod1. For example, to move to workspace 3, type Mod1-3. The Mod1-leftarrow and Mod1-rightarrow commands loop through all the workspaces.

Once you start using more than one workspace, it will only be a matter of time before you decide that you should move a window between them. That's easy -- just tag the window by typing Mod1-t when it's the active window; then, move to the workspace you want to move it to, and type Mod1-k A.

You can also move windows by name: type Mod1-a when you're in the target workspace, then type the name of the window in the Ion dialog box, and window will be moved to that workspace.

Splitting the view

Just as the Vim and Emacs text editors let you split their windows to view multiple files at once, you can split Ion's frames, thus putting multiple clients on the screen at once. This comes in handy when you're working with applications that have multiple windows, such as the GIMP.

There are two ways to split: horizontally with Mod1-s and vertically with Mod1-k s. The Mod1-n and Mod1-p commands correspond to the motion commands for moving between windows in a frame -- they move vertically to the next and previous frames inside the current frame. To move horizontally between frames, use Mod1-tab and Mod1-k tab.

You're not limited to a single split frame -- you can split frames within frames both horizontally and vertically. To kill the current frame (provided that it's empty), type Mod1-k x. The other frames will become larger to fill the space.

Right-clicking on any border line and dragging will resize the frame (except when it's full screen), but you can do it with the keyboard, too: type Mod1-R to resize the current frame, use the arrow keys to grow the outline to the new size (use Shift with the arrow keys to shrink it), and then press Enter.

Customization

If you want certain programs to run whenever you start an X session, just put them in your .xsession file, just as you would with any other window manager.

There's a lot more you can do with Ion. Beginning with its 2.0 release a few years back, Ion has used the object-oriented Lua language for scripting. You can use Lua to change the keybindings and write modules to extend Ion's functionality.

Look in /usr/local/etc/ion/ for the main configuration files; you can keep your own copies in ~/ion2/, which will override any of the main settings. The ion.lua file is the main configuration file, while ion-bindings.lua holds the key bindings. One user filled his numeric keypad with single-key commands. The file draw.lua contains definitions for the properties of the very minimal lines and text that Ion draws.

The future: Ion 3

The next major revision, Ion 3, has been in the works for some time. There are some new features -- there's a floating "scratchpad," for example -- but it basically sticks to the same winning formula it had before. While the configuration files and scripting has changed a bit with Ion 3, Valkonen told me that once it's finally stable and finished, he plans on taking a break from further Ion development.

Share    Print    Comments   

Comments

on Ion, the efficient window manager

Note: Comments are owned by the poster. We are not responsible for their content.

Get the facts?? Shame!

Posted by: Anonymous Coward on June 28, 2006 03:24 AM
My apologies to Mr. Stutz and his fine article, but it's just plain insulting and obnoxious to tune into "The Online Newspaper for Linux and Open Source" and see a great big ugly Microsoft Get the Facts ad smack in the middle.

Screw you, Newsforge.

#

Ummmm...

Posted by: Anonymous Coward on June 28, 2006 03:48 AM
That's why I use the Adblock extension in Firefox. Besides.... M$ is paying to keep this site up. Let them throw their money to a worthy cause, even if it's an indirect support of FOSS.

#

Unusable?

Posted by: Anonymous Coward on June 28, 2006 03:58 AM
So-called 'modern desktop environments' are totally unusable

Right. That's why our entire office staff, who use KDE exclusively, can never use their computers.


Ion was written as an experiment on a different kind of window management model. It tries to address the navigation problem by dividing the screen into mutually non-overlapping frames that take up the whole screen.

Oh, so Ion uses tabs instead of panel buttons, and frames instead of resized windows. How revolutionary!


Ion is a tiling tabbed window manager designed with keyboard users in mind.

Well, there you go. If you can't work effectively with a mouse, then this is the environment for you.


Blah blah blah.

#

Re:Unusable?

Posted by: Anonymous Coward on June 28, 2006 03:07 PM
Actually working with a mouse is quite efficient unless you need to use the keyboard at the same time. It is extremely awkward to switch all the time between the two. I can understand the itch the Ion developers are trying to scratch and even if I find their agressive language just as irritating as the simultaneous use of a keyboard and mouse, and I simply wish them to live up to their word.

#

Re:Unusable?

Posted by: Fletch on June 28, 2006 09:28 PM
I agree. The opening statement destroys any credibility to this article. You made a great point referencing KDE as it borrows from all sorts of "usable" environments...Mac, Windows, CDE. If one doesn't want a desktop, then don't use one...I think icons, menus, etc. actually make it usable.

#

Re:Unusable?

Posted by: Anonymous Coward on June 28, 2006 09:44 PM
Well, some people got more important things to do than go drooling over the latest and greatest XGL-FX^2-Desktop.

Don't knock it 'til you try it.

#

Desktop? No, thanks.

Posted by: Anonymous Coward on June 28, 2006 05:15 PM
I enjoy reading articles that introduce window managers. It looks like most people want a "desktop" like KDE, GNOME or XFCE but there are always exceptions to the rule, like me.

When I switched from Windows to Linux, I wanted something different. For me it was great to find out that you don't necessarily need a "desktop" -- a light-weight window manager will do just fine. I also enjoy Linux's powerful command line interface.

A keyboard-driven light-weight window manager like Ion is certainly not to everyone's taste but some of us simply love it. =8^)

#

...invented the concept...

Posted by: Anonymous Coward on June 29, 2006 06:27 AM
I´ve this book "Project Oberon, The Design of an Operating System and Compiler, by Niklaus Wirth and Jurg Gutknecht", where this concept of tiled viewers is clearly shown (fig 2.1 Oberon display with tiled viewers). The book is circa 1992. Since I could not find any date reference for Ion, I'm not quite sure if you can claim it did invent the concept.

#

Congratulations

Posted by: Anonymous Coward on June 27, 2006 10:11 PM
You are selling the lack of features as a "feature". That's pretty creative! I've got a pile of dirt over here I'll sell you too. I promise, it's maintenance-free and easy to use! If your lucky, it may be able to actually grow something, but I fully understand that creating something useful is against the point. Nice job!

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 02:52 AM
Lack of bloat *is* a feature.

"This a a race car, if you know what you are doing, you can make it go very very fast. If you're too clueless to handle it, or just can't live without
airconditioning, don't use it."

And like in the with window managers, the clueless will try to use it anyway, and return later to bitch about what is in essence their own incompetence.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 05:33 AM
Ion is _HARDLY_ usable. It's just the latest "in" thing. People want to look cool by being abstract and using things that nobody else does.

It used to be fluxbox, but then that became too popular, so now it is Ion, and next it'll be windowmaker again.

It has nothing to do with size, nothing to do with speed, and nothing to do with "efficiency", because tabbed window managers are hardly efficient, it is nothing but people want to look more "1337" than the other users.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 06:36 AM
I agree 100%, and did you check out the comments in the FAQ section of the web site? Basically they have a hard-on for dissing GNOME, so if you encounter a problem with Ion while using anything related to GNOME then you are SOL from their perspective. It is EXACTLY this kind of elitest attitude that keeps me away from projects like this.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 02:51 PM
It's not an elitist attitude, but the Gnome _implementation_ being a pain in the ass that breaks everything around it, by behaving in an annoyingly peculiar manner: not doing things by the ICCCM, GDM resetting keymap to the US keymap on login, fucking up font paths so that fonts can't be found, and other stuff that causes user settings to be fucked up when trying Ion etc., because they've been done/stored the Gnome Way(tm) instead of the standard *nix way.

I will have absolutely nothing to do with things that make my life more complicated than it has to be. Thus you won't find help from me if you use Gnome.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 08:06 AM
Apparently you haven't used Ion at all. Ion looks good and it's fast and easy to use. That's reason enough for me to use it.

If you're in love with your slow, bloated Microsoft-style "desktop", that's fine. Just don't try to tell other people that they don't have the right to choose something better.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 09:28 PM
"Just don't try to tell other people that they don't have the right to choose something better"

In which post was this stated?

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 08:27 AM
"Ion is _HARDLY_ usable. It's just the latest "in" thing. People want to look cool by being abstract and using things that nobody else does."

Thanks for reiterating my point:

"will try to use it anyway, and return later to bitch about what is in essence their own incompetence. "

But that's not the case here, right ?
So if it's not *you* (which ofcourse, can't be the case) all the other kids must just be doing it to be cool. Like all those freaks using vi or emacs just to show off.

(ps: that's actually true for vi users)

#

Re:Congratulations

Posted by: Administrator on June 28, 2006 11:23 AM
Ease of use and usability are not always the same thing. Ion optimizes resources, both the system resources, and the user resources. It is not the kind of thing that a novice would use, for there are many things to remember to use it effectively, and it does not babysit you.

Vi has long been lauded for it's fast, effective use, but like so many other things, it is either greatly appreciated or deeply hated. Vi, and it's freely available Vim and Gvim portable, free alternatives, provide a lot of functions in a small number of keystrokes, all beneath the hands in the common typing position. Is it easy to learn? Not at all, though you can certainly learn the very basic functions in a single day.

Same idea with Ion. It does not coddle you with a real obvious interface, especially to those familiar with File, Edit, View, and Help menus. What it does is put power at your fingertips, if you are willing to type in keystrokes without a lot of babysitting or prodding. Easy to learn? Not really, especially compared to visually based interfaces. Easy to master? Not necessarily, though learning the basics is not that difficult.

Easy to use, though, once you learn how to use it? Absolutely! That is the point. Put stuff at your fingertips. Make it fast, efficient, and right at your fingertips. You have to learn how to use it right, just like you have to practice to type well, and you have to practice to master the piano, you have to master to program well. You have to practice and learn to master Ion.

It is definitely not for everyone. It is not for over 99% of the population. It is, however, for former command line users who want a fast, graphically capable interface, but they want many of the same characteristics that they have in their command interfaces. Ion delivers that, and does it very well.

#

Re(1):Congratulations

Posted by: Anonymous [ip: 213.23.2.130] on August 13, 2007 12:45 PM
Have you ever tried to use fluxbox, openbox, fvwm, metacity etc. p.p. on a multi-screen setup?
Have you ever cursed about being forced to break your workflow to fetch your bloody rodent just to do something as simple as to focus a window in another screen?
Well, stupid question, I admit. Cause if you ever did, you wouldn't bitch about brilliant tools like Ion.

You would use them, instead.

#

Re:Congratulations

Posted by: Anonymous Coward on June 28, 2006 09:42 PM
Race cars are fast because they have powerful engines, not because they are completely devoid of features. If you want fast, get a better computer.

Please show me a bloated "window manager". FYI, KDE and GNOME are not window managers.

#

Window Manager Improved

Posted by: Anonymous Coward on June 27, 2006 10:33 PM
People interested in this style of WM should also take a peek at WMII:

<a href="http://wmii.de/" title="wmii.de">http://wmii.de/</a wmii.de>

It is being actively developed, and it builds off of the insights of ION, LarsWM, Ratpoison, Plan9, and the like to make a WIMP-free interface.

#

Re:Window Manager Improved

Posted by: Anonymous Coward on July 01, 2006 02:38 AM
No Weakly Interacting Massive Particles?
How can anyone be sure? They haven't even been proved to exist.

#

Ion Author

Posted by: Anonymous Coward on June 27, 2006 10:55 PM
The Ion author has completely gone off his rocker. For example, he has no clue what he's talking about in a number of tyrades on his blog including this gem: <a href="http://modeemi.cs.tut.fi/~tuomov/b/archives/2006/03/17/T20_15_31/" title="cs.tut.fi">http://modeemi.cs.tut.fi/~tuomov/b/archives/2006/<nobr>0<wbr></nobr> 3/17/T20_15_31/</a cs.tut.fi><nobr> <wbr></nobr>... yea, a complete lack of understanding of the fundamental technology at work.

#

Re:Ion Author

Posted by: Anonymous Coward on June 28, 2006 02:29 AM
Personal assault will do you no good.

I personally HATE anti-aliased fonts. And I hate that in Linux you have to dig lots of documentation just to disable it. I can hardly imaging more obscure *non-optional* feature. (*)

Thou I doubt I would try Ion - am huge fan of IceWM.

(*) In KDE one can change fonts. IOW, KDE can be made Okay with normal non-anti-alised fonts. GNOME is magnitude more complicated case - since obviously you can NOT change fonts in it.

P.S. wmii screenshots looks damm good!

#

Re:Ion Author

Posted by: Anonymous Coward on June 28, 2006 04:36 AM
Agreed - antialiasing = blurry and they give me eye strain. The required stages are:

0)Option: use only the old 100dpi, bitmap fonts. Else...

1)Install the freetype library *with* the (patented) bytecode interpreter.

2)Install some well-hinted (=not designed for A-A) fonts; the MS corefonts are the best

3)KDE - set everything to be the MS core fonts (eg Tahoma), antialiasing on but only above 15pt.

4)GTK: start gnome-font-properties, do the same.

5)If running KDE, GTK apps will look horrid. Start gnome-settings-daemon in the background to fix it.

HTH - Richard

#

Re:Ion Author

Posted by: Anonymous Coward on June 28, 2006 06:45 AM
No, the correct answer is to get a better monitor and increase your DPI. This isn't 1988 guys, high resolution displays are pretty cheap now.

#

Re:Ion Author

Posted by: Anonymous Coward on June 28, 2006 02:56 PM
... and the arrogant consumerist and planet-killing techno-toy fetist rises its head.

Buying new stuff all the time isn't the answer, it is a problem, especially when the new stuff is still shit compared to what is needed.

#

Re:Ion Author

Posted by: Anonymous Coward on June 30, 2006 07:17 AM
Where do I get higher resolution displays than the ~100dpi CRT manufactured in 1994 that I'm staring at right now?

#

Ion has a cool dock

Posted by: Anonymous Coward on June 28, 2006 12:44 AM
I like Ion's dock that one can hide/unhide with a keyboard shortcut. I wish Fluxbox had a similar keyboard shortcut for the slit.

Ion & Fluxbox are my favourite window managers.<nobr> <wbr></nobr>:-)

#

Ion is for keyboard huggers

Posted by: Anonymous Coward on June 28, 2006 12:59 PM
There's something to be said for a window manager that actually manages to stay out of your way. Sure it might take a day to get used to it's key bindings (or customize them to what you like), but the payoff in increased efficiency is easily worth more than the time it takes to learn them. Good key bindings have been key (no pun intended) for quick productivity in any serious computer program, such as freehand, photoshop, illustrator, quarkxpress, even vi and emacs. The same is true for window managers such as Ion. If you can type the keyboard is the speed king!

#

just wanted to say...

Posted by: Anonymous Coward on June 28, 2006 10:53 PM
That I use ion3 and haven't even bothered to learn the key commands(just use the mouse) and it's hands-down the most effective wm i've ever used.

although, and I think this is the most important thing with ANY OS OR WM: YOU NEED MORE THAN ONE MONITOR.

that is all. thank you.

#

Re:just wanted to say...

Posted by: Anonymous Coward on June 29, 2006 09:30 PM
We have Linux workstations here with four monitors! I never thought I would use or need a second monitor until I tried it. Now my laptop feels handicapped with one one screen.

#

...invented the concept...

Posted by: Anonymous Coward on June 29, 2006 07:03 AM
I´ve this book "Project Oberon, The Design of an Operating System and Compiler, by Niklaus Wirth and Jurg Gutknecht", where this concept of tiled viewers is clearly shown (fig 2.1 Oberon display with tiled viewers). The book is circa 1992 but the project is earlier than that (a pdf of the book is available online).
Since I could not find any date reference for Ion, I'm not quite sure if you can claim it did invent the concept.

#

Re:...invented the concept...

Posted by: Anonymous Coward on June 29, 2006 07:17 AM
He's talking about window manager supported tabbing there. As far as I know, PWM was the first WM to support tabbing in the sense of a tab-bar from which to choose the window to be displayed in the frame, akin to tabbed browsing, tabbed dialog boxes, and so on, but supported by the WM. BeOS did already have a "tabbed style", and some variants of TWM supported configuring a "squeezed title bar" also called "tab" in various positions but this was entirely a manual act, and the tabs and the window would in no way be automatically kept organised; it was all about wasting a bit less space, and allowing one to organise the tabs in convenient positions with lots of tedious manual positioning.

Tiling itself is, of course, nothing new. Even early versions of M$ Windows had variants of it. A bit surprisingly, tabbing+tiling seems to be a new feature in Ion even when compared to editors like ACME (and not just WMs and the like), for tiling, I think, is quite useless without tabbing or somesuch way to switch the contents of individual frames/panes.

#

Re:Congratulations

Posted by: Anonymous Coward on June 29, 2006 12:13 PM
for it's fast, effective use
Vi, and it's freely available Vim and Gvim portable, free alternatives

"its".

#

I remember this

Posted by: Anonymous Coward on June 29, 2006 08:13 PM
Wasn't it called DOS?

#

Re:I remember this

Posted by: Anonymous Coward on June 30, 2006 11:23 AM
no, it is more like 'screen' under X, I guess...

#

Keep reinventing the wheel

Posted by: Anonymous [ip: 76.187.205.34] on August 19, 2007 07:43 PM
Seems someone gets an itch to reinvent the wheel again after there's already so many WM's out there. Granted, he's using tabs in this WM, but that's not exactly novel. There hasn't been anything really innovative done with WM's in a long time. Much like Linux distro's, it's just an author picking out features he likes in WM's and tossing them into his own. In this case, he picked out minimalist features, sluffed off all the bloat of icons and stuff, and added tabs. It's a twist. But, at this point, it's just splitting hairs. It's like trying to re-paint the Mona Lisa, because you think she should have a slightly more reddish lip color; you're taking something that's already ironed out (WM's), and just making slight tweaks to it which don't really change it for the better for everyone, just teeter it this way or that way for the small amounts of folks that actually stay up at night worrying that their WM is too bloated. I know I'm sounding a bit snarky here, and my point isn't to dis the guy for creating his WM (we have to learn something before we can break it and make it better). But it's just getting ridiculous how many folks keep thinking there's this huge void that needs filling by them reinventing a wheel that will only still be "a wheel" when they get done with it. Now, if they reinvented "the wheel" and ended up with "a scramjet" that was totally innovative and forged the future of computers...now THAT'D be something worth talking about.

#

I'm trying Ion3

Posted by: Anonymous [ip: 79.7.197.156] on October 11, 2007 06:07 PM
Ion, like other window-managers based on keyboard, can prevents RSI( http://en.wikipedia.org/wiki/Repetitive_strain_injury ). Health first of all !

I also suggest to use Firefox shortcuts + Mouseless Browsing extension ( https://addons.mozilla.org/en-US/firefox/addon/879 ).

Mouse needs speeds + accuracy, Keyboard needs speeds + memory.
I'm pretty lazy so I prefer the second one :P

Wmii also works well www.suckless.org/wiki/

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya