Решение, которое работает для меня, заключается в выполнении этой команды после запуска Календаря:
defaults write com.apple.iCal NSDontMakeMainWindowKey YES
Это было немного больно, так как вы должны помнить, чтобы делать это после запуска Календаря, что я всегда забуду сделать. Поэтому я написал небольшой скрипт launchctl, чтобы сделать это для меня.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd> <plist version="1.0"> <dict>
<key>Label</key>
<string>CalendarSquelch</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>tell application "System Events"
set p to name of processes
if p contains "Calendar" then
do shell script "defaults write com.apple.iCal NSDontMakeMainWindowKey YES"
end if
end tell</string>
</array>
<key>StartInterval</key>
<integer>300</integer> </dict> </plist>
Этот скрипт проверяет каждые 5 минут, чтобы увидеть, работает ли Календарь. Если это так, то он выполняет эту маленькую команду по умолчанию. Сохраните этот файл в ~/Library/LaunchAgents/CalendarSquelch.plist
Затем выполните следующую команду, чтобы активировать его:
launchctl load ~/Library/LaunchAgents/CalendarSquelch.plist
Все это было сделано на macOS Sierra.