Redshift: No support for multiple monitors on OS X

Created on 4 May 2016  路  15Comments  路  Source: jonls/redshift

When using Redshift on OS X, only the primary display is affected - the second display does not change at all.

It looks like multimonitor support for quartz was in #69 but not in #140. I've taken a look through #69 but can't find the multimonitor code (it's quite a large PR).

enhancement

Most helpful comment

Should be fixed in https://github.com/jonls/redshift/issues/385, whenever maintainer merges it

All 15 comments

Hey @danielcotton did you find a fix ? I'm using Mac OS X El Capitan and and installed Redshift through brew mainly for the external display ^^"

I don't know if it's related, but when running redshift I have lots of

Sep 20 17:58:59  redshift[12371] <Error>: CGSGetSizeOfDisplayTransfer: Invalid display 0x00000001
Color temperature: 6470K

Seeing the same thing as @Startouf.

Would love to use this on my hackintosh machine, but sadly I need it to work on all 3 of my monitors.

Should be fixed in https://github.com/jonls/redshift/issues/385, whenever maintainer merges it

Any updates on that issue? Redshift works perfectly fine for me in Ubuntu but in OSX it only works on the primary monitor.

Can you try applying the second patch from #385 manually?

Wished this would get pushed into the official version. Still awaiting this to work on OSX.

Here is a build that corresponds to the second patch in #385:
redshift.zip

Thanks @07151129 for providing the build. I will test it this weekend.

@07151129 Works like a charm!

I noticed one issue with the custom provided build. If the number of monitors changes, while it is running various problems can occur (crash, or some monitors do not change temperature).

@fasmat this is due to the fact that redshift does not handle display change notifications from CoreGraphics at all. Adding notification handler seems to require redesign of redshift's main loop, so I'd like to hear what the maintainer thinks about this first.

I get a seg fault when i try to run this binary @07151129

~/Downloads
./redshift
[1]    97786 segmentation fault  ./redshift

Is this binary still the only way to use redshift on multiple monitors with OSX?

Is there any chance this is going to get merged into the main branch soon? seems like kind of a waste to leave someone's commit sit there idly for over a year when people would really love to have this working.. without it redshift is basically useless on Mac with multiple monitors. :disappointed: The manually patched/compiled version mentioned above segfaults on the latest OS X though, so I can't test if the commit actually works as advertised.

As @07151129 stated this does require redesigning the main loop of Redshift to handle updates from the adjustment method. I've looked into handling it the same way as CoreLocation is able to run a CFRunLoop in a separate thread but for whatever reason Apple decided not to support that scheme in CoreGraphics so the main thread has to run a CFRunLoop for it to work (as far as I can tell). This is of course really annoying because now I have to rip out the whole main loop of Redshift and create a separate implementation for macOS. It might still happen but it requires a bunch more refactoring of the core of Redshift.

Can we implement a display ID check, so that multiple redshift instance can be run, just like randr:crtc?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

freedomd1v3 picture freedomd1v3  路  4Comments

Powersource picture Powersource  路  4Comments

hjweide picture hjweide  路  4Comments

entrity picture entrity  路  5Comments

ForsakenHarmony picture ForsakenHarmony  路  4Comments