summaryrefslogtreecommitdiff
path: root/awesome/util/dbus_example.lua
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2024-10-11 20:43:20 -0500
committerTim Keller <tjk@tjkeller.xyz>2024-10-11 20:43:20 -0500
commitce020ab718b0ea09224dd15fc9a5796b3acc7904 (patch)
tree5d1ab3fb93f85d6fbf1b9fe84dfcd3484ce6ef33 /awesome/util/dbus_example.lua
parent5e84a09eb67772b07a73102538d2445ecb403613 (diff)
downloaddotconfig-ce020ab718b0ea09224dd15fc9a5796b3acc7904.tar.xz
dotconfig-ce020ab718b0ea09224dd15fc9a5796b3acc7904.zip
overhaul awesome
Diffstat (limited to 'awesome/util/dbus_example.lua')
-rw-r--r--awesome/util/dbus_example.lua59
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)()
-