Using Ion, a Tiling Window Manager

When working in Linux, I usually have multiple windows open. I always need at least one terminal to compile and execute commands. I would usually use Vim to edit my files too. Most likely, I would also have Firefox open with some information. During my work cycle, I constantly need to use these three windows.This means I need to be able to see the contents of these windows. The default Gnome and KDE window managers are rather inefficient at this because they can stack windows on top of one another. To make them non-overlapping, I have to individually resize the windows.

Ion is a tiling window manager. Unlike the stacking window managers, a tiling window manager can arrange your windows, such that they are non-overlapping (note I said can, because some they can still let you put a window on top of another).

Ion window manager with three non-overlapping frames.

Ion window manager with three non-overlapping frames.

To install, visit the Ion website. If you are using Ubuntu, you can install the Ion3 package instead. Once installed and running, you are likely to be presented with a window containing two frames.

Starting Applications in Frames

To open an application in the frame, press F3 and type in the command to start it (such as “firefox”). If you want to open up a terminal, you can press just F2 instead and F1 for man page. There are even short cuts to use SSH (F4), edit files (F5) and view text files (F6).

If you have tried starting multiple applications, you’ll notice that they will all open up to the frame that is in focus. Moving applications to the other frame can be done using the keyboard. For a number of the keyboard shortcuts, Ion uses the mod key. By default, the mod key is set to the alt key. If you do not like this, you can configure Ion to use a different key.

Moving Between Windows

Switching between the windows in the same frame is done by pressing mod + k  n (That is, press mod and k keys simultaneously. Let go of the k key, but keep holding the mod key. Then press n while still holding the mod key).

Moving Windows to Other Frames

Using a single frame is not a good utilisation of the available screen space. In Ion, moving an application to another frame requires you to “tag” it first. To tag an application, bring the application to focus and pressing mod + t. A mark is placed at the top corner of the title bar to show that it has been tagged.

A tagged title bar.

A title bar with a "tagged" mark in the top right corner.

Pressing mod + t again will remove the tagging. It is possible to have multiple windows tagged simultaneously. This is particularly helpful when you want to move multiple windows

Attaching Windows

Once the window the window is tagged, move horizontally to the adjacent frame with mod + tab. To move vertically, use mod + n or mod + p. Pressing mod + a will prompt you for the name of the window to attach to the frame. If you want to place all of the tagged windows to the frame, you can simply use mod + k a (like before, press mod + k then mod + a, without letting go with the mod key).

Reorganising Your Frames

Ion allows you to reorganise your frames, however you want. First, to resize a frame, press mod + r and then use arrow keys to make the frame grow. Windows can be maximised horizontally (mod + k h) and vertically (mod + k v). To further split the current frame, use mod + k s for horizontal splits. To delete the current frame, use mod + k x.


Finally, Ion support for multiple workspaces (similar to having multiple desktops). Workspaces are created using the F9 key. Before one is created, it will prompt you for a name for the workspace. If you enter the name of an existing workspace, it will go to that one instead. You can also switch between workspaces by holding the mod key and pressing a numeric key.


13 Responses to Using Ion, a Tiling Window Manager

  1. Great article and great wm, thanks for info. Started to use ion3 about 5-6 hours ago, but already get used to it, and writing confs. Very powerful, convinient, configurable and easy at the same time tiling window manager, advising to everybody : “Give it a try”.
    PS::.. If you will need some info -> read official docs at

  2. sumeet inani says:

    Hi I have installed ion3 in ubuntu 8.04.How do I start it I tried running ion3 in terminal when logged in but it says

    >> Unable to redirect root window events for screen 0.
    >> Refusing to start due to encountered errors.

    I have GNOME.
    i will wait for your reply.Thank You.

    • kahgoh says:

      Your are probably getting the error, probably because there is already another window manager up and running before you start Ion. Its been ages since I last used Ubuntu (I’ve moved to OpenSUSE), but if you installed it via the Ubuntu repository, then I think from the logon screen where you enter your user name and password, you can change the session type to Ion instead of Gnome or KDE.

      If that does not work, you could try looking up the Ubuntu forums or this page.

      Hope this helps.

      • sumeet inani says:

        thank You kahgoh.i will try as told by you.

      • kahgoh says:

        Might be a bit late for this, but I’ve just tried this after getting Ubuntu 9.04 back on my Virtual Box with Ion3 installed from the Ubuntu repository. To use the Ion window manager, on the logon screen, select Options -> Select Session … -> Ion3 and then login as normal.

  3. sumeet inani says:

    Your advise worked.
    Thank You.
    GDM login manager gives option to start session in ion3 window manager.
    I have noticed ion3 that
    alt+tab-takes you to next frame
    alt+n or p–has no effect
    I think ion3 takes up the highest resolution your monitor offers.
    This made letters so small
    I added following line to ~/.xinit
    xrandr –output VGA –mode 800×600
    This tip is for benefit of other readers.
    Your web page looks smooth,rounded corners,light colours i.e fantastic.

  4. sumeet inani says:

    Seems you are an expert in computer programs.
    I actually had an idea
    To write in local language I want to create a html file in which there will be some buttons each associated with unicode character (that is &#number;)
    whenever user presses a button corresponding unicode should be added to an html file(created by source html page)
    A backspace(key press if possible otherwise click button on source page) means last added character will be deleted.
    The html page source creates can be updated every second(using meta tag) & shown in frame in source page so that usr can see what he has written so far.
    An html page will allow people to write in local language.No need for changing keyboard layout or software & independent of OS.Wouldn’t that be great ?
    i know basicsof html but not scripting.
    Can you suggest a way ?Please mail me.
    I will wait for your reply .
    Thank You.

    • kahgoh says:

      I assume you want to provide buttons to allow users to input special characters that are not normally on the keyboard. Instead of using a separate frame and timing to update the contents of the frame every so often, I would use a single page with a text field that with buttons for the special characters just above. If you need to display the contents that have been entered into the text field too, you do that on the same page too. This is all possible with Javascript. This tutorial will probably give you an idea of how to go about doing this.

  5. sumeet inani says:

    thank you kahgoh.
    i will read it & fulfill my idea.
    Actually in india people speak hindi language over english so it would be great to provide simplest locale input tool for public.
    If i get stuck or succeed then i will reply here.

  6. sumeet inani says:

    So I added the buttons for all unicode characters
    I also added

    button 	{
        font-size:    18pt;

    in head section to get big buttons.
    I wanted to ask
    (1)How can we Provide for backspace
    (2)the button we press not only updates text field (desirable) but also writes the character at beginning of page.
    i am using firefox 3.5.2 in windows vista.

    • kahgoh says:


      Since this related more to the other tutorial, I’ve chosen to quote and reply to on the other tutorial. To access my reply to this, click on this link.

  7. patchwerkadams says:

    Hello, I was wondering if there was anyway to autostart applications in Ion3, such as the volume control, network manager, etc. Any help would be appreciated. I’ve tried google but I can’t seem to find much help on the subject.

    • kahgoh says:


      I don’t know how to configure Ion3 to autostart either. The closest script I found was this app script, but this script is for binding a key to start an application, rather than autostarting.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: