Listen to resurrect events
mainThe plugin emits various events that you can hook into using wezterm.on(event_name, callback). This is useful for triggering UI notifications or logging.
Commonly used events:
resurrect.error(err)resurrect.state_manager.load_state.start(name, type)/.finished(name, type)resurrect.state_manager.save_state.start(file_path, event_type)/.finished(file_path, event_type)resurrect.periodic_save.start(opts)/.finished(opts)resurrect.window_state.restore_window.start/.finished
Example: Toast notification on error or save completion:
local resurrect_event_listeners = {
"resurrect.error",
"resurrect.state_manager.save_state.finished",
}
local is_periodic_save = false
-- Detect if the next save is a periodic one to suppress notifications
wezterm.on("resurrect.periodic_save", function()
is_periodic_save = true
end)
for _, event in ipairs(resurrect_event_listeners) do
wezterm.on(event, function(...)
if event == "resurrect.state_manager.save_state.finished" and is_periodic_save then
is_periodic_save = false
return
end
local args = { ... }
local msg = event
for _, v in ipairs(args) do
msg = msg .. " " .. tostring(v)
end
wezterm.gui.gui_windows()[1]:toast_notification("Wezterm - resurrect", msg, nil, 4000)
end)
endlocal resurrect_event_listeners = {
"resurrect.error",
"resurrect.state_manager.save_state.finished",
}
local is_periodic_save = false
wezterm.on("resurrect.periodic_save", function()
is_periodic_save = true
end)
for _, event in ipairs(resurrect_event_listeners) do
wezterm.on(event, function(...)
if event == "resurrect.state_manager.save_state.finished" and is_periodic_save then
is_periodic_save = false
return
end
local args = { ... }
local msg = event
for _, v in ipairs(args) do
msg = msg .. " " .. tostring(v)
end
wezterm.gui.gui_windows()[1]:toast_notification("Wezterm - resurrect", msg, nil, 4000)
end)
end