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",
}