aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg T. (Mic92) <jthalheim@gmail.com>2011-05-10 00:47:58 +0200
committerAdrian C. (anrxc) <anrxc@sysphere.org>2011-05-10 00:50:41 +0200
commitdcc2b60cd85dabd716e2bb8c49d9703f050eaff5 (patch)
tree6c353bda6f107ba0445a420097eeffe20d1d9116
parent06e8f7c68ae8f880203911b2991c6103803227f9 (diff)
downloadvicious-legacy-dcc2b60cd85dabd716e2bb8c49d9703f050eaff5.tar.xz
vicious: load widget modules only when needed
There's no more need to edit init files and manually disable widgets. Signed-off-by: Joerg T. (Mic92) <jthalheim@gmail.com> Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
-rw-r--r--README6
-rw-r--r--contrib/init.lua21
-rw-r--r--helpers.lua9
-rw-r--r--widgets/init.lua33
4 files changed, 26 insertions, 43 deletions
diff --git a/README b/README
index 8f3b877..d136546 100644
--- a/README
+++ b/README
@@ -29,9 +29,9 @@ $XDG_CONFIG_HOME (usually ~/.config):
$ mv vicious $XDG_CONFIG_HOME/awesome/
-If you want you can disable widgets you will not use, to avoid having
-useless modules sitting in your memory. You can comment out any widget
-type from the "Configure widgets" list in the widgets/init.lua file.
+Vicious will only load modules for widget types you intend to use in
+your awesome configuration, to avoid having useless modules sitting in
+your memory.
Then add the following to the top of your rc.lua:
diff --git a/contrib/init.lua b/contrib/init.lua
index a8c5ee6..7fee3b3 100644
--- a/contrib/init.lua
+++ b/contrib/init.lua
@@ -5,20 +5,13 @@
-- * (c) 2010, Adrian C. <anrxc@sysphere.org>
---------------------------------------------------
--- {{{ Configure widgets
-require("vicious.contrib.batacpi")
-require("vicious.contrib.batpmu")
-require("vicious.contrib.batproc")
-require("vicious.contrib.dio")
-require("vicious.contrib.mpc")
-require("vicious.contrib.netcfg")
-require("vicious.contrib.net")
-require("vicious.contrib.ossvol")
-require("vicious.contrib.pop")
-require("vicious.contrib.pulse")
-require("vicious.contrib.rss")
-require("vicious.contrib.sensors")
--- }}}
+-- {{{ Setup environment
+local setmetatable = setmetatable
+local wrequire = require("vicious.helpers").wrequire
-- Vicious: widgets for the awesome window manager
module("vicious.contrib")
+-- }}}
+
+-- Load modules at runtime as needed
+setmetatable(_M, { __index = wrequire })
diff --git a/helpers.lua b/helpers.lua
index ef92bfa..223c5f1 100644
--- a/helpers.lua
+++ b/helpers.lua
@@ -9,6 +9,8 @@
-- {{{ Grab environment
local pairs = pairs
+local rawget = rawget
+local require = require
local tonumber = tonumber
local io = { open = io.open }
local setmetatable = setmetatable
@@ -29,6 +31,13 @@ local scroller = {}
-- }}}
-- {{{ Helper functions
+-- {{{ Loader of vicious modules
+function wrequire(table, key)
+ local module = rawget(table, key)
+ return module or require(table._NAME .. "." .. key)
+end
+-- }}}
+
-- {{{ Expose path as a Lua table
function pathtotable(dir)
return setmetatable({ _path = dir },
diff --git a/widgets/init.lua b/widgets/init.lua
index c8af255..6ec6360 100644
--- a/widgets/init.lua
+++ b/widgets/init.lua
@@ -5,32 +5,13 @@
-- * (c) 2010, Adrian C. <anrxc@sysphere.org>
---------------------------------------------------
--- {{{ Configure widgets
-require("vicious.widgets.cpu")
-require("vicious.widgets.cpuinf")
-require("vicious.widgets.cpufreq")
-require("vicious.widgets.thermal")
-require("vicious.widgets.uptime")
-require("vicious.widgets.bat")
-require("vicious.widgets.mem")
-require("vicious.widgets.os")
-require("vicious.widgets.fs")
-require("vicious.widgets.dio")
-require("vicious.widgets.raid")
-require("vicious.widgets.hddtemp")
-require("vicious.widgets.net")
-require("vicious.widgets.wifi")
-require("vicious.widgets.mbox")
-require("vicious.widgets.mboxc")
-require("vicious.widgets.mdir")
-require("vicious.widgets.gmail")
-require("vicious.widgets.org")
-require("vicious.widgets.pkg")
-require("vicious.widgets.mpd")
-require("vicious.widgets.volume")
-require("vicious.widgets.weather")
-require("vicious.widgets.date")
--- }}}
+-- {{{ Setup environment
+local setmetatable = setmetatable
+local wrequire = require("vicious.helpers").wrequire
-- Vicious: widgets for the awesome window manager
module("vicious.widgets")
+-- }}}
+
+-- Load modules at runtime as needed
+setmetatable(_M, { __index = wrequire })