This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ned.deily
Recipients Jacin Ferreira, erlendaasland, ned.deily, ronaldoussoren, terry.reedy
Date 2020-03-07.20:31:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1583613117.45.0.314367384069.issue39844@roundup.psfhosted.org>
In-reply-to
Content
Thanks for the pythoninfo output. I didn't see anything unusual there. So I remain perplexed. The thing is the macOS Tk 8.6.8 we supply with current python.org installers doesn't support Dark Mode at all, AFAIK.  That was added in 8.6.9.  I normally have macOS Dark Mode enabled on all of macOS systems, both real and virtual and, with the python.org Tk 8.6.8, Tk windows are always in Light mode, including on 10.15.3, regardless of the settings in System Preferences -> General.  I do have at hand a MacPorts Python 3.8.2 that uses a MacPorts-supplied Tk 8.6.10; in that case, the Tk windows do follow the System Preferences Dark Mode preference and IDLE's Preference windows looks fine as one would expect it to in Dark mode. (Unfortunately, there are other problems with IDLE using Tk 8.6.10 that need to be resolved before we can move to it.)

There is this relevant discussion in the Apple Developer documentation:

https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app?language=objc

Since the python.org macOS Pythons are built with a pre-10.14 SDK, they should be automatically opted out of Dark mode unless you add the NSRequiresAquaSystemAppearance key to the app bundle plist of IDLE.app or Python.app. And that is consistent with the behavior I observe. I verified that, by modifying the python.org IDLE.app plist to include a key NSRequiresAquaSystemAppearance with value NO, IDLE's Tk windows are displayed in Dark mode with the text windows completely dark as in your screen shots.  So ... assuming we aren't missing something somewhere and you are not really executing the python.org supplied Python / IDLE when you see this behavior, my only guess at this point is that you have some extension or some system variable set that overrides this automatic opt-out of dark mode for older apps.

There is also some discussion in various forums of a system-wide preference, NSRequiresAquaSystemAppearance, that could be used in macOS Mojave to force dark mode.  I tried playing with it on both 10.14 and 10.15 and saw no change in (unmodified) IDLE.app Tk behavior but perhaps I'm missing something.

Maybe all this rings a bell or two for you about customizations you might have made on your system?  Otherwise, I don't know what else to suggest at this point.  I guess you *could* try tweaking the IDLE.app plist to explicitly disable the dark mode opt-in and see if that makes a difference but, of course, that wouldn't find the root cause.  And the other thing would be to try running the python.org in a vanilla 10.15 environment, perhaps in a Fusion VM.

I'm going to close this bug report since it seems unlikely to be a Python or even Tk 8.6.8 issue.  But feel free to update or re-open if you find more information.  Good luck!
History
Date User Action Args
2020-03-07 20:31:57ned.deilysetrecipients: + ned.deily, terry.reedy, ronaldoussoren, erlendaasland, Jacin Ferreira
2020-03-07 20:31:57ned.deilysetmessageid: <1583613117.45.0.314367384069.issue39844@roundup.psfhosted.org>
2020-03-07 20:31:57ned.deilylinkissue39844 messages
2020-03-07 20:31:56ned.deilycreate