Someone previously mentioned using multiple docks. I've just set it up and
it rocks, so I'm sharing it with the list. I recommend you try it :-)

I use:

gkrellm2 as a status monitor, which sits in the vertical middle on the
right-hand side of the screen. This position means that it normally doesn't
get in the way of scrollbars and other information which is often displayed
in the bottom right hand corner of the screen/window (e.g. the down arrow on
scrollbars). I use DEFAULT_MOD.."space" to toggle it, so I can get it out of
the way quickly.

xmms as a media player. xmms doesn't normally play well with ion, insisting
on its own size and not removing itself from the screen when you ask it to
hide all its windows. So, the lucky program gets a dock all to itself. This
second dock sits in the bottom middle of the screen and is toggled with
DEFAULT_MOD.."Control+space". Thus, it stays completely out of the way
unless I need it. xmms's playlist and equalizer also attach to the same dock
giving a very nice pop-up hi-fi.

I've attached my dock.lua, but it's not complicated.

The only disadvantage: Ion doesn't let docks take the keyboard focus, so you
have to use the mouse to drive xmms :-(

Other ideas:
- Why not put other apps you use regularly in a dock? If docks could take
  the keyboard focus then you could have your instant messenger client
  available in a kpress, or an xterm giving you an always-on command line...
- Put the control window for your movie playing software in a dock so when
  you're watching a movie full screen you can access the controls without
  having to quit full screen mode. Sadly gmplayer has the same
  class/instance for the movie window as the controls :-(

Scriptable window managers and multiple docks rule!

Sorry, going a bit l33t there. I'll take my pills and write the dock attach
function.

-- 
Tom
--
-- Ion-2 dock module configuration
--

dock0 = create_dock(0, {        -- create a new dock on screen 0
        name="dock0",   -- name for use in target="..." winprops
        hpos="right",   -- horizontal position left|center|right
        vpos="middle",  -- vertical position top|middle|bottom
        grow="down",    -- growth direction up|down|left|right
        is_auto=true})  -- whether new dockapps should be added automatically

dock1 = create_dock(0, {        -- create a new dock on screen 1
        name="dock1",   -- name for use in target="..." winprops
        hpos="center",  -- horizontal position left|center|right
        vpos="bottom",  -- vertical position top|middle|bottom
        grow="right",   -- growth direction up|down|left|right
        is_auto=false,  -- whether new dockapps should be added automatically
        is_mapped=false})

global_bindings{
        kpress(DEFAULT_MOD.."space",
                function()
                        WDock.toggle(dock0)     -- toggle map/unmapped state
                end),
        kpress(DEFAULT_MOD.."Control+space",
                function()
                        WDock.toggle(dock1)     -- toggle map/unmapped state
                end),
}

-- dockapp ordering

-- Use the dockposition winprop to enforce an ordering on dockapps. The value is
-- arbitrary and relative to other dockapps only. The default is 0.
-- Unfortunately, many dockapps do not set their class/instance/role so they
-- cannot be used with the winprop system.

-- dockapp borders

-- Use dockappborder=false to disable the drawing of a border around a dockapp.
-- This is only effective if outline_style="each" (see dock-draw.lua).

winprop{
        instance="gkrellm2",
        dockposition=-100,      -- place first
        dockborder=false,       -- do not draw border if outline_style="each"
}

winprop{
        class="xmms",
        instance="XMMS_Player",
        target="dock1",
}

-- kludges

winprop{
        instance="wmxmms",
        target="dock",
}

Reply via email to