jordan it has a effect like the text is jumping at me it kills me, more problem some in dark lighting

yeah this is true on so many other screens for me, especially other MacBooks — but is SO MUCH BETTER for me on specifically the m1air with Stillcolor, i can generally read very smoothly!

for example, reading black text on white background on m1air feels great! no "glowing" text, and it does NOT feel like everything "bounces" after i refocus.

so you definitely may have some luck with m1air too 🙂

    Dropping a an updated version of my ioreg diff stream to watch what changes happens in real-time. Somewhat useful to see what is reset after sleep and similar. Some sensible excludes are done here to avoid spam. Feel free to edit them if you want all the metrics that changes frequently, or want to exclude IOKitDiagnostics. Note that this captures all of ioreg, and can be slow so the delay is set to 10s. It is also possible to only capture AppleCLCD2 and run it without delay.

    npm install -g jsondiffpatch
    brew install jq
    brew install xmlstarlet

    #!/bin/sh
    
    CMD="ioreg -latf -d0 -w0 |
    xmlstarlet fo --omit-decl |
    xmlstarlet ed -u '//data' -x \"concat('_data:', .)\" |
    xmlstarlet ed -r '//data' -v \"string\" |
    plutil -convert json -r - -o - |
    jq 'walk(if type == \"object\" then with_entries(select(.key | test(\"Time|time|Calls|Count|Read|Usage|Hist|TS|bytes|Stat|Sum|Report|ID|Duration|Metric\") | not)) else . end)'"
    
    SLEEP_TIME=10
    
    OLD_FILE="/private/tmp/io_old.json"
    NEW_FILE="/private/tmp/io_new.json"
    
    # Initialize both files before starting the loop
    eval "$CMD" > "$OLD_FILE"
    cp "$OLD_FILE" "$NEW_FILE"
    
    print_heading() {
      echo "\033[1m$1\033[0m"
    }
    
    while true; do
      eval "$CMD" > "$NEW_FILE"
      OUTPUT=$(jsondiffpatch "$OLD_FILE" "$NEW_FILE")
      if [ ! -z "$OUTPUT" ]; then
        print_heading "$(date +"%Y-%m-%d %H:%M:%S")"
        jsondiffpatch "$OLD_FILE" "$NEW_FILE"
      fi
      mv "$NEW_FILE" "$OLD_FILE"
    
      sleep "$SLEEP_TIME"
    done

    Also a quick command that takes all the packed dictionary data like ioreg analytics and formats it properly, as well as adds colors, for easier output of most things discussed in this thread.

    ioreg -l -d0 -w0 -r -c AppleCLCD2 -a \
    | sed -e '/^\t*<data>/,/^\t*<\/data>/ { /^\(\t*\)<data>\(.*\)/ { s//\1<string>_data:\2/; h; d; }; /^\t*<\/data>\(.*\)/! { s/^\t\(.*\)/\1/; H; d; }; /^\t*<\/data>\(.*\)/ { s//\1:data_<\/string>/; H; g; s/\n//g; }; }' \
    | plutil -convert json -r - -o - | jq

    For those still hacking away there is also these tools that serve a different but similar use cases:
    catilac/plistwatch (github.com)
    FSMonitor
    hot3eed/xpcspy: Bidirectional XPC message interception and more. Powered by Frida (github.com)
    Fun with macOS dtruss - Deepan Seeralan

    Not sure what IdleCachingMethod is, and how it is related to NormalMode, but as you can see with the io diff stream IdleState changes back and forth between 5 and 2 when moving the cursor. Settings to NSNumber(1) instead of 2 will stop it. IdleCachingMethod.

      async IdleState changes back and forth between 5 and 2 when moving the cursor

      yeah this happens even on m1air. probably related to power saving in general, but not sure what it actually affects though

      Hi all,

      I’m using the stillcolor app and noticed an improvement in my migraines.

      Now, I have a little eye strain from external screen and built in screen(same pain in both, the external screen is ok with other os so external screen is ok).

      I noticed when I increased the brightness I have less eye strain and if I change the profile color I have more eye strain and pain.

      What is this problem? I want to categorise it and understand how to solve it(just trying to understand what the subject/expression that doing me that). I’m sure it’s not PWM, I’m not sensitive to it until now.

      Edit: I have MacBook Pro 16 M2 Pro model with latest software

        karut I’m using MacBook Pro 16 M2 Pro, but it’s not related to the built in screen, it’s something in the software IMO(the color profile is what caused me to believe it’s a software)

        Hunter20 Did you also try F.lux?

        I did a small test, and my first impression was that F.lux was prettier for my eyes compared to NightShift.

        i did, but now i've actually found something that feels even better than either night shift OR flux:

        flux doesn't really work for me because it makes colors oversaturated

        but now, instead of that or night shift, what i instead am doing is i started expert mode calibration (hold ALT key when clicking plus on the color profiles customize menu. IPS LCD Macs only.) on the default Color LCD profile, then skip all the way to "White Point" step, uncheck the box and slide the slider all the way to the left

        this will make the screen yellowish but in a way that feels way better than flux and doesn't oversaturate things IMO.

        for the record, i am now using this "customized color profile" instead of night shift.

          Not sure what to make of this, but I kept experimenting on my M1 Max.

          1. In some configurations I got intense color flicker of the cursor while using the accessibility option on my external monitor. Enabling any metal changes in BetterDisplay instantly stopped it. It seems to have a profound effect on how colors are handled.
          2. On my built in screen I started getting pretty intense flicker near the edges of the screen. This seemed to persist both with BetterDisplay off, and after a reboot (that in theory should reset all ioreg flags). This got more intense every time the ProMotion framerate got reduced, and it disapeared completely upon switching to 60 hz. So Whenever ProMotion got below 60 it was flickering, but not when actually setting it at 60.
            Seems like others noticed it as well Screen Flicker when ProMotion is enabled : r/macbookpro (reddit.com)

          Interested in thoughts on what these effects could be.

          Some more.

          1. "IOMFBContrastEnhancerStrength": NSNumber(100000000) has a pretty significant effect. Setting it to 0 mostly disables it. However ambient light changes or something resets it to a sensible value, so it can't really be reset. It seems to be affected by the position of the backlight leds.
          2. This is useful for debugging flicker
            "APTLimitRefreshRate" : true,
            "APTFixedRR" : NSNumber(8), // 30hz

          And another. This mini-led laptop is cursed.

          1. Changing around things in BetterDisplay sometimes makes the red and yellow arrow in Quartz Debugger start flicker intensely. Almost like it starts with one color profile and switches to another one on each draw. It persists when quitting BetterDisplay and while using the default color profile. However when switching between a bunch of profiles it sometimes stops entirely. I have yet to figure out what is causing this. This happens in 60 hz mode as well. This looks similar to the effect I got on the cursor on the external screen. It can happen randomly while switching between Color LCD and ACES CG Linear for example. Seems almost like something is stuck in a cache. The issue persists upon restarting the app if it is there.

          2. I tried a ton of IOReg flags, and have not found anything apart from switching to 60hz that kills the intense flickering near the edges.

          3. When using some more extreme ICC profiles like Artifex Software esRGB there will be multiple rounds of darkening of different windows. They keep getting brighter when hovering, and there are random black blinks of the screen. Not sure if this is simply a side effect of using color profiles on the M1 Max. But like everything else, it seems like a mess.

            Edit: It seemed like enabling Autoflush Drawing fixed it the flickering, as well as prevented the color profiles from affecting the same apps multiple times, but then it suddenly started again while toggling it on and off. No idea what is happening tbh.

            async there will be multiple rounds of darkening of different windows. They keep getting brighter when hovering, and there are random black blinks of the screen

            yeah this happened on my mini-LED too, only happens on mini-LED though and not LCD Macs or external monitor

            async This mini-led laptop is cursed

            yeah mine was too, all of them are

            New discovery:

            At least on LCD Macs, IOMFBContrastEnhancerStrength is tied to "animated blotches" around grays and the cursor (which are extremely visible with dithering disabled). Setting this to 0 removes them.

            So far, m1air has had a very clean screen image to me with the least amount of color management quirks / HDR weirdness / post-processing tricks on any Apple Silicon Mac (for example, uniformity2D does nothing here)………

            So I was puzzled that after arriving home today I opened my m1air and instead saw huge "animated" bands of gray everywhere in Dark Mode windows. All of them were constantly shifting in response to moving my mouse cursor with a little "blob trail" following the cursor too.

            Was really shocked for a sec because it felt like my IPS LCD suddenly decided to transform into a mini-LED… LOL.

            Nope, turns out that since I had last been using the laptop outdoors — despite having auto-brightness disabled — something in the OS still managed to activate the "light gray brighter and lower contrast color filter" that's typically associated with using auto-brightness in direct sunlight.

            This then got "stuck", probably due to some bug even after heading back indoors, making it really obvious that this "contrast enhancement" causes some really significant "dynamic" color alterations that are not uniform at all.

            These blotches would usually be """invisible""" with temporal dithering (but would instead be causing "really intense subliminal flicker that is also constantly changing between arbitrary locations depending on where the cursor is"… ughhh) but is totally obvious with dithering disabled.

            Eventually traced this back to IOMFBContrastEnhancerStrength — it got stuck on 9063.

            I ran this to set it back to 0:

            /Applications/BetterDisplay.app/Contents/MacOS/BetterDisplay set -namelike=built -framebufferNumericProperty=0x0 -specifier=IOMFBContrastEnhancerStrength

            Success, contrast immediately changed back to normal after running this command, the "animated blotches" are totally gone, my m1air has a very clean image again.

            (It works the other way too… you can force the contrast mode to activate — and thus these blotches to reappear — even if you aren't in direct sunlight by instead setting framebufferNumberProperty=9063 or something similar.)

            In conclusion, IOMFBContrastEnhancerStrength is yet another postprocessing layer that messes with color management and should be set to 0 if it isn't already.

              DisplaysShouldNotBeTVs Awesome. Yeah, I thought I was starting to get paranoid when I attempted to cover the light sensor to see if things changed, as it can seem like an entirely different screen at times. No idea what the temperature sensors change so far.

              Do note that something is setting that value at times, so it either needs to be watched or we need to figure out how to disable it. I would guess it's the core brightness. There's a script in this thread that constantly kills it if you want to test

              DisplaysShouldNotBeTVs

              Thank you for sharing this! I am going to try this option too. Do you know if it's possible to automatically switch color profiles when its night time? I know MacOs has Automator, but I never used it.

              Hunter20 I think that's unlikely. The grey flicker is at 60Hz (at least on M2/M3 Airs), but the auto gamma adjustment ("contrast enhancer") generally has some kind of slow hysteresis.

              The strange thing is that I thought auto gamma was supposed to be disabled when auto brightness was disabled, but maybe that's changed in recent versions of macOS.

              dev