------------------------------------------------- -- DemoMode button for Awesome Window Manager -- Turns off notifications and send a heartbeat to xscreensaver -- @author Raphaël Fournier-S'niehotta -- @copyright 2018 Raphaël Fournier-S'niehotta ------------------------------------------------- local wibox = require("wibox") local watch = require("awful.widget.watch") local awful = require("awful") local beautiful = require("beautiful") local naughty = require("naughty") local gears = require("gears") local XSCREENSAVER_DEACTIVATE_COMMAND = "xscreensaver-command -deactivate" local XSCREENSAVER_TIMER = 61 local iconpath = "/home/josiah/.config/awesome/demomode.png" local demoMode_widget = wibox.widget { wibox.widget { image = beautiful.demomode_icon or iconpath, resize = true, widget = wibox.widget.imagebox }, widget = wibox.container.background } watch(XSCREENSAVER_DEACTIVATE_COMMAND, XSCREENSAVER_TIMER, demoMode_widget) function blockXscreensaver() gears.timer { timeout = XSCREENSAVER_TIMER, autostart = true, callback = function() awful.util.spawn_with_shell(XSCREENSAVER_DEACTIVATE_COMMAND) --naughty.notify{ --title= "Notification status", --text = tostring(not naughty.is_suspended()), --ignore_suspend = true, --} end, single_shot = false, } end demoMode_widget:buttons(awful.util.table.join( awful.button({ }, 1, function () naughty.toggle() if naughty.is_suspended() then blockXscreensaver() demoMode_widget.bg = beautiful.fg_urgent else demoMode_widget.bg = beautiful.bg_normal end --naughty.notify{ --title= "Notification status", --text = tostring(not naughty.is_suspended()), --ignore_suspend = true, --} end) )) return demoMode_widget