diff options
Diffstat (limited to 'awesome/util/dbus_example.lua')
-rw-r--r-- | awesome/util/dbus_example.lua | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/awesome/util/dbus_example.lua b/awesome/util/dbus_example.lua deleted file mode 100644 index 1e4d756..0000000 --- a/awesome/util/dbus_example.lua +++ /dev/null @@ -1,59 +0,0 @@ -local lgi = require("lgi") -local Gio = lgi.require("Gio") -local GLib = lgi.require("GLib") - --- Workaround for https://github.com/pavouk/lgi/issues/142 -local function bus_get_async(type) - Gio.bus_get(type, nil, coroutine.running()) - local a, b = coroutine.yield() - return Gio.bus_get_finish(b) -end - -local function inhibit(bus, what, who, why, mode) - local name = "org.freedesktop.login1" - local object = "/org/freedesktop/login1" - local interface = "org.freedesktop.login1.Manager" - local message = Gio.DBusMessage.new_method_call(name, object, interface, "Inhibit") - message:set_body(GLib.Variant("(ssss)", - { what, who, why, mode })) - - local timeout = -1 -- Just use the default - local result, err = bus:async_send_message_with_reply(message, Gio.DBusSendMessageFlags.NONE, - timeout, nil) - - if err then - print("error: " .. tostring(err)) - return - end - - if result:get_message_type() == "ERROR" then - local _, err = result:to_gerror() - print("error: " .. tostring(err)) - return - end - - local fd_list = result:get_unix_fd_list() - local fd, err = fd_list:get(0) - if err then - print("error: " .. tostring(err)) - return - end - - -- Now... somehow turn this fd into something we can close - return Gio.UnixInputStream.new(fd, true) -end - -Gio.Async.call(function() - local bus = bus_get_async(Gio.BusType.SYSTEM) - local a = inhibit(bus, "shutdown:sleep", "hi, it's me!", "Just because", "delay") - print("got lock") - io.popen("sleep 10"):read("*a") - a:async_close() - -- Speed up deletion of the GDBusMessage that still references the FD - collectgarbage("collect") - collectgarbage("collect") - - print("released lock") - io.popen("sleep 10"):read("*a") -end)() - |