-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Invert hue option.. Can it be brought back? #9
Comments
Please bring this option back - Hue inversion was the reason I'd used this application extensively. |
A big +1 here as well. That is exceptionally necessary for this app as I prefer to see colors as they originally were -- or as close to them as possible vs what we presently have. |
I hope I'm not hijacking this thread to a different area, but I as well have been in pursuit to bring back the invert hue option. If anybody has any ideas please share! |
Yes, I think I'd seen that. That feature was very important to me, so now I On Oct 22, 2014, at 5:43, ejwessel notifications@github.com wrote: I hope I'm not hijacking this thread to a different area, but I as well If anybody has any ideas please share! — |
I've done some research and I believe we might be able to achieve a similar effect with a highly customized ICC display profile. One that inverts the white point and black point and messes with the gamma levels. I have no idea as to how to actually create this profile, and have not found any "ICC profile editing" tool that specialized yet. |
Interesting, never thought about that direction. I think I encountered |
Perhaps one can attempt to edit their default/retina display profile at /Library/ColorSync/Profiles/Displays with the builtin property editor. |
👍 Very good suggestion. It would be an enormous asset for this to have such a feature. |
+:100: Hue inversion is the |
I just set a Hurry, Obi Wan Kenobi. You're my only hope. My computer now feels horribly unfamiliar and hostile. |
I spent some time looking into this for Nocturne. I agree with @jccr that one solution would be a custom ICC profile, though, like him, I don't know how to do that. It's also possible that there's a filter we could use. |
That is a very interesting find there @jbenet. Any luck playing around with these two options? |
@ylluminate not yet :( -- i dont have the bandwdith to sink into and figure out how to edit / make ICC profiles. |
A filter which does inversion and hue inversion is easy to do, but it cannot be applied to a color profile I think. |
I've been watching videos and reading a bit about how ICC profiles work and can be edited. I do have to say they aren't trivial(like the link above this mentions). Given that I'm no color expert and I'm assuming nobody else here is, I was entertaining the idea of purchasing, or better yet using, an ICC profile generator. Though that wouldn't solve the problem of how to get what we want it might be a step closer. |
@ejwessel have you found a good ICC generator? We should find someone who knows ICC profiles well. Anyone have any leads? |
I haven't tried any of the open source ones yet. |
I have managed to edit the standard Color LCD profile's tristimulus values with a hex editor. I think we need to understand how to rotate the projective coordinates values so that either lightness is inverted or the hue values are rotated so that inversion inverts it back. |
I almost got it right. I altered the Color LCD profile as I described here https://dl.dropboxusercontent.com/u/6674137/ICC%20Modification.pdf. |
@amitmarkel Thanks for looking into the color profiles. This is great stuff |
I edited the document. The colors' hue values are accurately inverted, but something is wrong with the grays. I suspect that the "Apple display native information > Phosphor values" section might be related somehow. I use the Skype icon for observation. |
Oh that's cool. Looking at your screenshot, wow looks like you are getting close. |
Here is the profile https://dl.dropboxusercontent.com/u/6674137/Invert%20Hue.icc. Hopefully someone can resolve the remaining little problem with lightness (I assume). Although the problem doesn't seem to be great, it does affect user experience; it makes the OS look like Yosemite. |
I think I forgot to invert the white point. Will do that tomorrow! |
I have been working on this for three days now. Tomorrow I will have limited time to do this. I hope that this will resolve the issue I mentioned. |
@amitmarkel this is a great step forward! thank you (for others, install profile in I'm getting these.
just huewith nocturne |
I suppose so. Will fix it tomorrow. |
@amitmarkel |
The details are correct; cool. I'm currently in a computer science exam period so I can't quite assist with the actual digging at this time. If this approach works then there will be no need for manipulating ICC profiles, which is a plus due to the different per application behavior. |
I spent some time looking at this issue. I'm not sure why TLDR:
|
Yes, There is a pretty clear (looking) way to handle applying a
"Now," you're probably asking yourself, "doesn't Apple do this with color inversion and color profiles anyway? Shouldn't it all be nicely documented?" It should, but the internal team doesn't always document like they should. If anyone is going to WWDC this year -- and yes, I know tickets aren't being sold quiet yet -- this is an excellent question for the CoreGraphics / CoreImage developers. At WWDC, the engineers always say a whole lot more than they should, because no one is watching over their shoulders. They also give you way more tools and way more hands-on time. So, if anyone wants to send me to WWDC, I will get any answers we can't. ;) |
(Whoops. Didn't mean to close it.) |
🙏 Hoping somebody figures this out! |
@dmitrym0 any luck? |
I punted on this for the time being. I'd love some ancillary assistance On Sat, Jun 13, 2015 at 1:54 PM, Dmitry notifications@github.com wrote:
|
Looks like https://hazeover.com/ is doing something similar, maybe the author would be open to sharing his approach. Hazeover darkens everything but your front most window. |
Interesting; but it may be possible they're creating a transparent window behind the foremost window all the time, which would require no implementation for being interactive... They direct one to press fn once to hide the shade temporarily to drag files etc, on the page... Haven't tried the software though. |
@dmitrym0 @amitmarkel HazeOver is a translucent black window that is reordered behind the front window |
I managed to get a display screenshot and invert its hues in a clone of Nocturne: Lots of commented out code and possibly non-needed code as I was throwing everything at the wall to see what stuck. It's a promising line of research if nothing else. I plan to look into CGDisplayStream next as it appears to be the way to get a constantly updating view of the screen. Pair that with the click-through window I have working now and we may have a version of this which minimally works. Apologies for any bad code, I'm not familiar with Apple's display frameworks and most of this was copied from example code and StackOverflow. Also found https://github.com/reversefold/PresenterMirror which looks like a good reference for the constantly updating screen capture. It's using OpenGL, though, so it may require more work to get that working. |
Great news; looking forward to seeing your approach working! |
Just put in another $10 on Bountysource. |
:( really wish this worked. just added $50 more to Bountysource. |
@reversefold wonder if your approach will be super fast or introduce display latency? any further luck getting it working? |
Hi folks. |
@vn971 nice work! I didn't know about mlaily/NegativeScreen |
I managed to make it for 1 window, but there seems to be no way to get all NSWindow instances. As you can imagine this will be security issue to add CALayer to other process NSWindow. Maybe with the Accessibility API, but again not possible. You can get CGWindowId, but I don't think this can be transformed to NSWindow and NSView. The screenshot approach seems to be the best option which I will try next. I was trying to do this for 2 months so it's really not so easy. I also wrote to one guy who is expert in ICC profiles and I wait for response. If ICC profile would work this will be best, but from my understanding this is not possible. Is there some other way to hook to the graphics pipeline and apply color matrix before the image goes to the screen? CGSAddWindowFilter seemed so nice solution. I really want it back :D |
Update: You can find working example here: Basically once upon a time Apple has this awesome private API Then I tried making filter to The only working approach for OSX Sierra and newer versions seems to be the screenshot approach. The best way was to try with the streaming API Based on the Apple example here: I took a screenshot made a transparent window and put the screenshot to it. This thing updates every 20 ms for relatively good framerate and uses OpenGL rendering, to perform a little faster. After all the optimization it still uses 20% CPU on my Mac which is bad, but this seems to be the only approach. Even if you perform even more optimizations to drop 5% CPU it's still high. You need to calculate the Smart inversion every frame and take a picture. Taking the picture alone tooks 10% and can't be optimized. I would welcome any other approaches, but it seems to me like you just can't do this faster on OSX anymore. |
@danielng01 |
Maybe it's the drivers. I just tested on Sierra and Yosemite both real Mac and Virtual machine and it works. The black thing is the overlay. Maybe the screenshot function fails on your machine. It's from the SonOfGrab demo see if you can get it working on your machine Yes the temperature thing is normal ignore it. |
@danielng01 |
@danielng01 same problem here. Flux like effect (perhaps triggering Fl.ux) and then black main screen (5 monitors). I'm using the native ATI drivers on 10.12.5ß5. |
How much CPU it uses. Is this usefull for me it's unusable on my old Mac. @ylluminate I really don't know, I write Carbon and Cocoa for the first time. The function is You get f.lux effect, because I added the window to my software Iris (https://iristech.co/). I can't make working demo from scratch. |
@danielng01 |
I get a black screen as well. Sierra, on an early 2013 Macbook Pro. Fans start as well, as soon as I start Iris. |
@danielng01 It's somewhat usable, not sure how fast it's actually updating but it looks like 10-15 FPS to me. |
Nocturne used to have this feature that not only inverted the screen, but it also let you invert the color hues. For those that didn't know about this: Blue colors became orange colors when the screen was inverted, but with the invert hue option everything stayed dark but orange became blue again for example.
Can this feature be implemented again for 10.9?
The text was updated successfully, but these errors were encountered: