En quelques lignes de Python, il est simple de savoir si le dark mode est activé par l'utilisateur.
Voici la fonction principale :
def current_theme() -> str:
"""Get the current OS theme."""
raise NotImplementedError
def dark_mode_in_use() -> bool:
"""Does the user has the Dark mode set?"""
return current_theme() == "dark"
Il y a plusieurs approches possibles pour la définition de current_them()
.
Rubicon-ObjC
from rubicon.objc import ObjCClass
def current_theme() -> str:
NSUserDefaults = ObjCClass("NSUserDefaults")
theme = NSUserDefaults.standardUserDefaults.stringForKey("AppleInterfaceStyle")
return theme.lower() if theme else ""
PyObjC
→ PyObjC
from Foundation import NSUserDefaults
def current_theme() -> str:
theme = NSUserDefaults.standardUserDefaults().stringForKey_("AppleInterfaceStyle")
return theme.lower() if theme else ""
Historique
- 2023-04-05 : refactorisation du code utilisant PyObjC, et ajout du code pour Rubicon-ObjC.