Код Python для определения темного режима в OS X El Capitan для изменения значка в строке состояния

1

У меня есть объектный код C для обнаружения темного режима для изменения строки состояния:

[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(darkModeChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil];

Аналогично, как мы можем сделать то же самое в python?

Теги:
macos
osx-elcapitan
pyobjc

3 ответа

1
Лучший ответ

Попробуйте выполнить следующие строки, где бы вы ни находили режим (темный или светлый режим).

center = NSDistributedNotificationCenter.defaultCenter()
center.addObserver_selector_name_object_(self,"enableDarkMode",'AppleInterfaceThemeChangedNotification',None)
1

Я не знаю, можете ли вы сделать это прямо изнутри python. Но по крайней мере вы можете вызвать команду терминала defaults read -g AppleInterfaceStyle.

В настоящее время его поведение выглядит так: если его код выхода равен 0, он сообщает "темный режим". Если это 1 (ошибка), вы можете принять режим освещения. На мой взгляд, это не очень чисто, но оно работает и успешно используется из Java-программы.

Как создать новый процесс из python - это другой вопрос, который уже был ответил.

0

В 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'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню