From a8f64c8f087ac92e1d12d63d5b1cfea3d1d9132a Mon Sep 17 00:00:00 2001 From: Lukas Geis Date: Tue, 27 May 2014 15:54:37 +0200 Subject: [PATCH] Redshift widget and icons added --- icons/redshift/redshift_off.png | Bin 0 -> 267 bytes icons/redshift/redshift_on.png | Bin 0 -> 253 bytes widgets/contrib/redshift.lua | 79 ++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 icons/redshift/redshift_off.png create mode 100644 icons/redshift/redshift_on.png create mode 100644 widgets/contrib/redshift.lua diff --git a/icons/redshift/redshift_off.png b/icons/redshift/redshift_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a92200fcde26a71dafbbc196264e9f3f7b720e93 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwQRhpNT%Pxsc5-22_84^+AoS&PUnpXnkGB7w7r6!i7 zrYMwWmSiZnd-?{X=%um)#q&K~978NlCnrd3YY>cGkaV(skxAK+1zD*Fm+#o(BzpA9 zyT02!JFXZBW^?En?$K+?bSQVsY<>0r64%xLH)7f@yWSAFd^FqV$gZ{tGM*dT_%}?* zGQP+uB)Mm5pkv|050kBXRHR$9TNf{Xaq#t`gX|1Z0mk~9wjY%NxyjSj&t;ucLK6TD C<>&kwQRhpMg;@LNqNkAdl%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dD4yu);uvCaIypgNTZ3Tif~1r6i%iOnEXYbdxO~SJC()x< z-u2z?*>S~4Fq=cqa1YzV%MIRrol%Xx(aj%Nwe&1k?d)g`nce9(;lzWrJzQQqoc22p ndu(#t5oA%-CAUXUs)m8#$W~?T*MDd7fn4F~>gTe~DWM4fyunhR literal 0 HcmV?d00001 diff --git a/widgets/contrib/redshift.lua b/widgets/contrib/redshift.lua new file mode 100644 index 0000000..38f1d83 --- /dev/null +++ b/widgets/contrib/redshift.lua @@ -0,0 +1,79 @@ + +--[[ + + Licensed under GNU General Public License v2 + * (c) 2014, blueluke + +--]] + +local os = os +local awful = require("awful") +local spawn = awful.util.spawn_with_shell + +local setmetatable = setmetatable + +-- 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 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") + -- (Re)start redshift + spawn("redshift") + running = true + active = true +end + +function redshift:toggle() + if running then + -- Sending -USR1 toggles redshift (See project website) + os.execute("pkill -USR1 redshift") + active = not active + else + init() + end + update_fnct() +end + +function redshift:off() + if running and active then + redshift:toggle() + end +end + +function redshift:on() + if not active then + redshift:toggle() + end +end + +function redshift:is_active() + return active +end + +-- 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. +function redshift:attach(widget, fnct) + update_fnct = fnct or function() end + if not attached then + init() + attached = true + update_fnct() + end + widget:buttons(awful.util.table.join( awful.button({}, 1, function () redshift:toggle() end) )) +end + +return setmetatable(redshift, { _call = function(_, ...) return create(...) end })