aboutsummaryrefslogtreecommitdiffstats
path: root/catalina_brightness_bullshit.lua
diff options
context:
space:
mode:
authorTeddy Wing2019-10-16 20:37:31 +0200
committerTeddy Wing2019-10-16 20:37:31 +0200
commit72c660e74a8d32e547c07ff2190b81263b0ab78f (patch)
tree87bef7b1521bc38b93ab39e7f1ce04ada0de3554 /catalina_brightness_bullshit.lua
parenta3cb685eb03c256221e8412640fd8ab5a044df9c (diff)
downloaddothammerspoon-72c660e74a8d32e547c07ff2190b81263b0ab78f.tar.bz2
Add brightness correction for OS X 10.15 Catalina
Since upgrading to 10.15 Catalina, when my external monitor is plugged in and I wake up my machine, for some unexplained reason the internal display resets to maximum brightness. Fix Catalina's nonsense on wake by resetting to the brightness from before sleep.
Diffstat (limited to 'catalina_brightness_bullshit.lua')
-rw-r--r--catalina_brightness_bullshit.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/catalina_brightness_bullshit.lua b/catalina_brightness_bullshit.lua
new file mode 100644
index 0000000..17d5bde
--- /dev/null
+++ b/catalina_brightness_bullshit.lua
@@ -0,0 +1,47 @@
+-- When an external monitor is connected, saves internal screen brightness when
+-- locking the screen or sleeping. Restores the saved brightness level on
+-- unlock or wake. Fixes OS X 10.15 Catalina's bullshit where unlocking my
+-- machine caused the internal screen's brightness to be reset to the maximum.
+
+-- Copyright (c) 2019 Teddy Wing
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+-- Default brightness to 50%.
+cbb_brightness = 50
+
+cbb_logger = hs.logger.new('catalina_brightness_bullshit', 'debug')
+
+cbb_wake_watcher = hs.caffeinate.watcher.new(function(event_type)
+ -- Only run if the external monitor is connected.
+ if hs.screen.primaryScreen():name() ~= 'G247HL' then
+ cbb_logger:d('no external monitor')
+
+ return
+ end
+
+ if event_type == hs.caffeinate.watcher.screensDidLock
+ or event_type == hs.caffeinate.watcher.screensDidSleep then
+ cbb_brightness = hs.brightness.get()
+
+ cbb_logger:d('saved brightness: ', cbb_brightness)
+ elseif event_type == hs.caffeinate.watcher.screensDidUnlock
+ or event_type == hs.caffeinate.watcher.screensDidWake then
+ hs.brightness.set(cbb_brightness)
+
+ cbb_logger:d('restored brightness: ', cbb_brightness)
+ end
+end)
+cbb_wake_watcher:start()