aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 })