--
-- ion/mod_statusbar/mod_statusbar.lua
--
--- Copyright (c) Tuomo Valkonen 2004-2007.
+-- Copyright (c) Tuomo Valkonen 2004-2008.
--
--- Ion is free software; you can redistribute it and/or modify it under
--- the terms of the GNU Lesser General Public License as published by
--- the Free Software Foundation; either version 2.1 of the License, or
--- (at your option) any later version.
+-- See the included file LICENSE for details.
--
-- This is a slight abuse of the package.loaded variable perhaps, but
end
-local function get_modules()
+function mod_statusbar.get_modules()
local mods={}
local specials={["filler"]=true, ["systray"]=true}
end
end
-
--DOC
--- Load modules and launch ion-statusd with configuration table \var{cfg}.
+-- Load modules and launch \file{ion-statusd} with configuration
+-- table \var{cfg}. The options for each \file{ion-statusd} monitor
+-- script should be contained in the corresponding sub-table of \var{cfg}.
function mod_statusbar.launch_statusd(cfg)
if statusd_pid>0 then
return
end
- local mods=get_modules()
+ -- Launch tried, don't do it automatically after reading
+ -- configuration.
+ mod_statusbar.no_autolaunch=true
+
+ local mods=mod_statusbar.get_modules()
-- Load modules
for m in pairs(mods) do
end
-- Lookup ion-statusd
- local statusd=ioncore.lookup_script("ion-statusd")
+ local statusd_script="ion-statusd"
+ local statusd=ioncore.lookup_script(statusd_script)
if not statusd then
- ioncore.warn(TR("Could not find %s", script))
+ ioncore.warn(TR("Could not find %s", statusd_script))
return
end
local cfg=mod_statusbar.cfg_statusd(cfg or {})
local params=""
table.foreach(mods, function(k) params=params.." -m "..k end)
- local cmd=statusd.." -q -c "..cfg..params
+ local cmd=statusd.." -c "..cfg..params
local rcv=coroutine.wrap(mod_statusbar.rcv_statusd)
local rcverr=mod_statusbar.rcv_statusd_err
-- Initialisation and default settings {{{
--DOC
--- Create a statusbar.
+-- Create a statusbar. The possible parameters in the
+-- table \var{param} are:
+--
+-- \begin{tabularx}{\linewidth}{llX}
+-- Variable & Type & Description \\
+-- \var{template} & string & The template; see
+-- Section \ref{sec:statusbar}. \\
+-- \var{pos} & string & Position: \codestr{tl}, \codestr{tr},
+-- \codestr{bl} or \codestr{br}
+-- (for the obvious combinations of
+-- top/left/bottom/right). \\
+-- \var{screen} & integer & Screen number to create the statusbar on. \\
+-- \var{fullsize} & boolean & If set, the statusbar will waste
+-- space instead of adapting to layout. \\
+-- \var{systray} & boolaen & Swallow (KDE protocol) systray icons. \\
+-- \end{tabularx}
+--
function mod_statusbar.create(param)
local scr=ioncore.find_screen_id(param.screen or 0)
if not scr then
dopath('cfg_statusbar', true)
-- Launch statusd if the user didn't launch it.
-if statusd_pid<=0 then
+if not mod_statusbar.no_autolaunch then
mod_statusbar.launch_statusd()
end