naughty: Move the boilerplate rc.lua error handling to naughty.
This removes the imperative "mutex" logic from rc.lua, where it doesn't belong. It also makes it closer to the "vision" of making `rc.lua` fully modular.
This commit is contained in:
parent
047245fd03
commit
efbc707279
|
@ -512,6 +512,12 @@ function naughty.set_expiration_paused(p)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Emitted when an error occurred and requires attention.
|
||||||
|
-- @signal request::display_error
|
||||||
|
-- @tparam string message The error message.
|
||||||
|
-- @tparam boolean startup If the error occurred during the initial loading of
|
||||||
|
-- rc.lua (and thus caused the fallback to kick in).
|
||||||
|
|
||||||
--- Emitted when a notification is created.
|
--- Emitted when a notification is created.
|
||||||
-- @signal added
|
-- @signal added
|
||||||
-- @tparam naughty.notification notification The notification object
|
-- @tparam naughty.notification notification The notification object
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
local naughty = require("naughty.core")
|
local naughty = require("naughty.core")
|
||||||
|
local capi = {awesome = awesome}
|
||||||
if dbus then
|
if dbus then
|
||||||
naughty.dbus = require("naughty.dbus")
|
naughty.dbus = require("naughty.dbus")
|
||||||
end
|
end
|
||||||
|
@ -17,6 +18,27 @@ naughty.container = require("naughty.container")
|
||||||
naughty.action = require("naughty.action")
|
naughty.action = require("naughty.action")
|
||||||
naughty.notification = require("naughty.notification")
|
naughty.notification = require("naughty.notification")
|
||||||
|
|
||||||
|
-- Handle runtime errors during startup
|
||||||
|
if capi.awesome.startup_errors then
|
||||||
|
naughty.emit_signal(
|
||||||
|
"request::display_error", capi.awesome.startup_errors, true
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Handle runtime errors after startup
|
||||||
|
do
|
||||||
|
local in_error = false
|
||||||
|
capi.awesome.connect_signal("debug::error", function (err)
|
||||||
|
-- Make sure we don't go into an endless error loop
|
||||||
|
if in_error then return end
|
||||||
|
in_error = true
|
||||||
|
|
||||||
|
naughty.emit_signal("request::display_error", tostring(err), false)
|
||||||
|
|
||||||
|
in_error = false
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
return naughty
|
return naughty
|
||||||
|
|
||||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
||||||
|
|
Loading…
Reference in New Issue