awful.remote: import with remote eval

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2009-04-08 17:08:26 +02:00
parent f7bca3271c
commit 36f4e6cb8a
2 changed files with 48 additions and 0 deletions

View File

@ -17,6 +17,7 @@ require("awful.util")
require("awful.widget")
require("awful.menu")
require("awful.mouse")
require("awful.remote")
--- AWesome Functions very UsefuL
module("awful")

47
lib/awful/remote.lua.in Normal file
View File

@ -0,0 +1,47 @@
---------------------------------------------------------------------------
-- @author Julien Danjou &lt;julien@danjou.info&gt;
-- @copyright 2009 Julien Danjou
-- @release @AWESOME_VERSION@
---------------------------------------------------------------------------
-- Grab environment we need
local hooks = require("awful.hooks")
local loadstring = loadstring
local tostring = tostring
local ipairs = ipairs
local table = table
local unpack = unpack
local type = type
--- Remote control module for awful
module("awful.remote")
if hooks.dbus then
hooks.dbus.register("org.awesome.Remote", function(data, code)
if data.member == "Eval" then
local f, e = loadstring(code)
if f then
results = { f() }
retvals = {}
for _, v in ipairs(results) do
local t = type(v)
if t == "boolean" then
table.insert(retvals, "b")
table.insert(retvals, v)
elseif t == "number" then
table.insert(retvals, "d")
table.insert(retvals, v)
else
table.insert(retvals, "s")
table.insert(retvals, tostring(v))
end
end
return unpack(retvals)
elseif e then
return "s", e
end
end
end)
end
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80