This solution requires F.lux to be installed (I assume it's at /Applications/Flux.app
).
Create a text file (let's call it flux-day-color
) and put it in /usr/local/bin
(usr
is under "Macintosh HD" and may be hidden).
#!/bin/bash
if [[ ! -z "$1" && "$1" -ge 2700 && "$1" -le 6500 ]]; then
defaults write org.herf.Flux dayColorTemp -int "$1"
killall Flux
open /Applications/Flux.app
else
echo "provide a temperature between 2700 and 6500 (rounded to nearest 100)"
fi
In Terminal, run chmod 755 /usr/local/bin/flux-day-color
Now you can run flux-day-color 2700
in Terminal (or in another script) to change the day temperature. Note that the script restarts F.lux so you may see the display jump to 6500 K for a split second before applying your requested temperature.
It's also possible to schedule this to run at predefined intervals, but that's beyond the scope of this answer (and the question).
If you'd rather have a launchable app that can toggle between 2 temperatures,
Open Terminal and run these commands:
bash
cd /Applications/
mkdir -p flux-day-toggle.app/Contents/MacOS
cd flux-day-toggle.app/Contents/MacOS
cat <<END > flux-day-toggle
Now you'll see a greater than sign. Paste this:
#!/bin/bash
DOMAIN=org.herf.Flux
KEY_NAME=dayColorTemp
LOW=2700
HIGH=6500
cur_val=`defaults read $DOMAIN $KEY_NAME 2>/dev/null`
if [[ -z "$cur_val" || "$cur_val" -eq "$HIGH" ]]; then
new_val=$LOW
else
new_val=$HIGH
fi
defaults write $DOMAIN $KEY_NAME -int $new_val
killall Flux
open /Applications/Flux.app
END
Wait for the prompt to appear, meaning the file was written.
Now the finishing touch:
chmod 755 flux-day-toggle
Now you can launch the new app. You can customize the LOW and HIGH settings to your liking.
The color changes indicates the possibility of a loose, flat-band cable connection between the LCD display and the mainboard.
That DIY does not cost anything (but it is not easy to do) and might help in your case to make sure the cable connection is firm on both sides.
Go to ifixit and find your Macs instructions (or similar model) if not available.
If it is not the cable, you have 2 choices:
Replace the screen your self to save money.
Use the ColorSync app in the Utility folder and modify the colors profiles there.
Best Answer
Check out displayplacer: https://github.com/jakehilborn/displayplacer
It's a command line utility, but it works great and is quite simple to use. Example:
And as a CLI utility you can easily script it. For example: When I switch off of AC power, I have a script which automatically calls displayplacer to switch my resolution to the default retina resolution giving me very slightly improved performance/battery life)