diff options
Diffstat (limited to 'awesome/lib/awful/startup_notification.lua')
-rw-r--r-- | awesome/lib/awful/startup_notification.lua | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/awesome/lib/awful/startup_notification.lua b/awesome/lib/awful/startup_notification.lua new file mode 100644 index 0000000..5f1c123 --- /dev/null +++ b/awesome/lib/awful/startup_notification.lua @@ -0,0 +1,53 @@ +--------------------------------------------------------------------------- +--- Startup notification module for awful +-- +-- @author Julien Danjou <julien@danjou.info> +-- @copyright 2009 Julien Danjou +-- @module awful.startup_notification +--------------------------------------------------------------------------- + +-- Grab environment we need +local ipairs = ipairs +local table = table +local capi = +{ + awesome = awesome, + root = root +} + +local app_starting = {} + +local cursor_waiting = "watch" + +local function update_cursor() + if #app_starting > 0 then + capi.root.cursor(cursor_waiting) + else + capi.root.cursor("left_ptr") + end +end + +local function unregister_event(event_id) + for k, v in ipairs(app_starting) do + if v == event_id then + table.remove(app_starting, k) + update_cursor() + break + end + end +end + +local function register_event(event_id) + table.insert(app_starting, event_id) + update_cursor() +end + +local function unregister_hook(event) unregister_event(event.id) end +local function register_hook(event) register_event(event.id) end + +capi.awesome.connect_signal("spawn::initiated", register_hook) +capi.awesome.connect_signal("spawn::canceled", unregister_hook) +capi.awesome.connect_signal("spawn::completed", unregister_hook) +capi.awesome.connect_signal("spawn::timeout", unregister_hook) + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 |