--[[
-
- Licensed under GNU General Public License v2
- * (c) 2014, blueluke <http://github.com/blueluke>
-
+
+ Licensed under GNU General Public License v2
+ * (c) 2014, blueluke <http://github.com/blueluke>
+
--]]
-local os = os
-local awful = require("awful")
-local spawn = awful.util.spawn_with_shell
+local awful = require("awful")
+local os = os
local setmetatable = setmetatable
--- redshift
+-- Redshift
-- lain.widgets.contrib.redshift
local redshift = {}
-local attached = false -- true if attached to a widget
-local active = false -- true if redshift is active
-local running = false -- true if redshift was initialized
-local update_fnct = function() end -- function that is run each time redshift is toggled. See redshift:attach().
-
+local attached = false -- true if attached to a widget
+local active = false -- true if redshift is active
+local running = false -- true if redshift was initialized
+local update_fnct = function() end -- Function that is run each time redshift is toggled. See redshift:attach().
local function init()
-- As there is no way to determine if redshift was previously
-- toggled off (i.e Awesome on-the-fly restart), kill redshift to make sure
os.execute("pkill redshift")
-- Remove existing color adjustment
- spawn("redshift -x")
+ awful.spawn.with_shell("redshift -x")
-- (Re)start redshift
- spawn("redshift")
+ awful.spawn.with_shell("redshift")
running = true
active = true
end
function redshift:toggle()
- if running then
+ if running then
-- Sending -USR1 toggles redshift (See project website)
os.execute("pkill -USR1 redshift")
active = not active
- else
+ else
init()
end
update_fnct()
-- Attach to a widget
-- Provides a button which toggles redshift on/off on click
--- @ param widget: widget to attach to
--- @ param fnct: function to be run each time redshift is toggled (optional).
--- Use it to update widget text or icons on status change.
+-- @param widget: Widget to attach to.
+-- @param fnct: Function to be run each time redshift is toggled (optional).
+-- Use it to update widget text or icons on status change.
function redshift:attach(widget, fnct)
update_fnct = fnct or function() end
if not attached then