У меня есть объектный код C для обнаружения темного режима для изменения строки состояния:
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(darkModeChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil];
Аналогично, как мы можем сделать то же самое в python?
Попробуйте выполнить следующие строки, где бы вы ни находили режим (темный или светлый режим).
center = NSDistributedNotificationCenter.defaultCenter()
center.addObserver_selector_name_object_(self,"enableDarkMode",'AppleInterfaceThemeChangedNotification',None)
Я не знаю, можете ли вы сделать это прямо изнутри python. Но по крайней мере вы можете вызвать команду терминала defaults read -g AppleInterfaceStyle
.
В настоящее время его поведение выглядит так: если его код выхода равен 0, он сообщает "темный режим". Если это 1 (ошибка), вы можете принять режим освещения. На мой взгляд, это не очень чисто, но оно работает и успешно используется из Java-программы.
Как создать новый процесс из python - это другой вопрос, который уже был ответил.
В Python os
модуль может пригодиться для определения режима.
По сути, мы используем python для доступа и запускаем команду терминала, чтобы найти свойство AppleInterfaceStyle
в настройках по умолчанию.
import os
has_interface = os.popen("defaults find AppleInterfaceStyle").read()
if not has_interface:
print("Use a light Style")
else:
interface_system = os.popen("defaults read -g AppleInterfaceStyle").read()
print("Interface Style:" + interface_system) # interface_system = 'Dark\n'