Skip navigation.
Home

Using ROX with Ion

Spending too much time organising your windows instead of getting things done? Tiling window managers aim to handle the layout for you. In this article, I'll show how to configure Ion 3 to work with ROX.

The basic idea of a tiling window manager is to use all of the screen space for windows, without gaps or overlapping. So, if you have two windows side-by-side and you make one of them a bit bigger, the other one shrinks to make room. I often have several source files open, plus a couple of terminals and maybe a log viewer, so I started looking for something to make things a bit slicker.

Ion supports multiple workspaces, multiple screens and tabbed windows, as well as more traditional floating windows. Like all the tiling window managers, it has a very retro look, with blocky old-style fonts and very plain menus. However, most of the others are worse!

Here's a screenshot showing my desktop now, with a ROX panel along the bottom, and four windows visible in the main area (including the floating Gimp toolbox). There are also two other xterms in the tabbed area at the bottom:

Ion with ROX

The 2007-07-08 release has just arrived, but there's no Zero Install feed and I didn't feed like compiling from source, so I installed the current Ubuntu package (2006-10-29) instead:

$ sudo apt-get install ion3

The first major change to make for Ion is to say goodbye to the pinboard. Since Ion's goal is to cover the whole screen with windows, you're not going to be able to see it much anyway! Assuming you're running ROX with the "-S" option, go to the filer's options box and in the Desktop section select Panel only.

The other thing we need to do is to make Ion treat the panel specially, rather than trying to manage it like any other window. Ion doesn't support panel windows directly, but it does have a special 'dock' area which we can use:

  1. Create a ~/.ion3 directory.
  2. Copy in the cfg_ion.lua and cfg_dock.lua files from /etc/X11/ion3 so that we can modify them.
  3. Comment out the cfg_modules line (so that we can specify the modules we want manually) and the cfg_statusbar line (you can't have a status bar and a dock at the same time).
  4. Select the modules you want manually by uncommenting the mod_query, mod_menu, mod_tiling and mod_dock lines.
  5. In cfg_dock, set the mode to embedded (we don't want a floating panel) and add this at the end, which tells Ion to place the filer's panel inside the dock:
    defwinprop{
        class = "ROX-Filer",
        instance = "ROX-Panel",
        target = "*dock*",
    }

Then quit your current window manager and start Ion. If it fails with a key grab error then it's trying to set a short-cut key that another application is using. Try changing the META and ALTMETA keys in cfg_ion. When it starts, you should get a two column layout by default, though for some reason this didn't work for me at first (I got a very minimal full-screen setup with no titles).

I don't know if I'll stick with it, but I've been using it for a few hours now and it seems pretty good, and it's always fun to experiment with new window managers!

I also made a few other changes to suit myself:

  • I changed the default modifier from Alt to the Windows key, to avoid conflicts with other applications.
  • I changed the close key from C to Q, because that's easier to reach when using the Windows key.
  • I disabled all the Debian bits.
  • I changed the keyboard controls for moving the focus between windows to use WindowKey+ArrowKeys so I can remember them.
  • I changed the default layout to be a single frame, because I normally start with a single Firefox window.
  • I also moved the main menu to F11, because I use F12 as a generic "Open a ROX-Filer window showing this file" key.

More Ion hints

To make saveboxes into floating windows:

defwinprop{
    class = "Savebox",
    instance = "savebox",
    float = true,
}

However, it's better to mark them as transient if you can; do this after creating your Savebox, and before showing it:

savebox.set_transient_for(main_window)

I've updated Edit.

To make the panel sensitive all the way up to the edge of the screen (so you can just whack the pointer against the edge and click), edit look_newviolet.lua and set padding_pixels = 0.

configs

Any change you can share your configfiles with us ?

Ion + Xinerama

If you've got more than one screen, you'll want to get mod_xinerama too:

http://www.mail-archive.com/ion-general@lists.berlios.de/msg01900.html

Without this, you can't move windows between screens or drag-and-drop files between them.

Syndicate content