Ответы:
Редактировать: начиная с 10.7.4, флажок «Открывать окна при повторном входе в систему» оставался снятым, если вы снимите его один раз, поэтому приведенные ниже хаки больше не нужны.
Один из вариантов - установить LoginwindowLaunchesRelaunchApps
ключ в false ~/Library/Preferences/com.apple.loginwindow.plist
:
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
Вы также можете сохранить этот список свойств как ~/Library/LaunchAgents/logout_saves_state.plist
:
<?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>logout_saves_state</string>
<key>ProgramArguments</key>
<array>
<string>defaults</string>
<string>write</string>
<string>com.apple.loginwindow</string>
<string>TALLogoutSavesState</string>
<string>-bool</string>
<string>false</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Затем загрузите список свойств, запустив launchctl load ~/Library/LaunchAgents/logout_saves_state.plist
или выйдя из системы и вернувшись один раз.
TALLogoutSavesState
иногда я сбрасывался до true, когда я выходил из системы и возвращался обратно, так что простой запуск defaults write com.apple.loginwindow TALLogoutSavesState -bool false
не сработал бы.
Ни один из этих параметров на самом деле не делает флажок не отмеченным, но он имеет тот же эффект.
Эта ошибка была исправлена с обновлением Lion 10.7.4 :
Обновление OS X Lion v10.7.4 включает исправления, которые:
Устраните проблему, из-за которой параметр «Открывать окна при повторном входе в систему» всегда включен.
Нет, он всегда включен. Однако существует сценарий, который можно запустить, который отключает эту функцию. Поле все еще будет отмечено, но функция больше не будет работать:
Вставьте следующее в одну строку в терминале:
curl http://goo.gl/Z4EFC -L -s -o ~/fixlogin.sh && chmod +x ~/fixlogin.sh && sudo ~/fixlogin.sh ; rm ~/fixlogin.sh
Эта команда загружает скрипт, помещает его в соответствующее место, делает его исполняемым, а затем удаляет временный файл. Если вам интересно, содержимое скачанного bash-скрипта следующее:
#!/bin/bash
echo "#!/bin/bash" > /tmp/loginfix.sh
echo "rm /Users/*/Library/Preferences/ByHost/com.apple.loginwindow.*" >> /tmp/loginfix.sh
mv /tmp/loginfix.sh /usr/bin/loginfix.sh
chmod +x /usr/bin/loginfix.sh
defaults write com.apple.loginwindow LoginHook /usr/bin/loginfix.sh
Если вы когда-нибудь захотите вернуться к поведению по умолчанию этой функции OS X Lion, просто введите следующую команду записи по умолчанию:
sudo defaults delete com.apple.loginwindow LoginHook
И вы вернетесь, чтобы иметь возможность выбрать восстановление окна на основе выбора этого флажка.
Источник: http://osxdaily.com/
Это изменилось в Mac OS X Update версии 10.7.4.
Устранена проблема, при которой параметр «Открывать окна при входе в систему» всегда включен.
Вот новая опция, как вы можете видеть (хотя сама по себе она не является доказательством, поскольку ее легко снять, а затем захватить экран, но, пожалуйста, поверьте мне - я был весьма потрясен, когда проверил это обновление, поскольку эта ошибка действительно раздражала мне!)
Для Мохаве ни один из вышеперечисленных вариантов для меня не сработал, однако кто-то еще упомянул следующее, и мне этого достаточно:
Закройте все окна, кроме терминала, и запустите:
chflags uimmutable $HOME/Library/Preferences/ByHost/com.apple.loginwindow.*
Terminal и Finder теперь будут единственными приложениями, которые будут открываться при перезагрузке.
Для записи, мы говорим об этом:
Проблема в том, что OS X не запоминает, если вы снимите флажок при последнем выключении - он всегда будет сохранять флажок по умолчанию при последующих выключениях.
Я нашел два разных решения этой проблемы , которые, кажется, делают свое дело, хотя они не идеальны.
Откройте Terminal.app и введите следующие команды:
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
Это фактически отключает опцию «вновь открывать окна при повторном входе в систему», хотя флажок все равно будет установлен. Вы можете просто игнорировать это.
Боюсь, лучшего решения нет, по крайней мере, на данный момент.
Также возможно отключить Resume для каждого приложения .
Существует также системная настройка, которая позволяет отключить ее для всех приложений в масштабе всей системы. Перейдите в Системные настройки → Общие :
Кроме того, вы можете запустить эту команду в Terminal.app:
# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
TALLogoutSavesState
иногда сбрасывается до true после выхода из системы и обратно. defaults write com.apple.loginwindow TALLogoutSavesState -bool false
нужно будет запустить при входе в систему с помощью агента launchd или чего-то еще
LoginwindowLaunchesRelaunchApps
настройкой. Я помню, как тестировал их по отдельности, и в этом случае я столкнулся с вопросами, которые вы описали в своем ответе. AFAICT, есть что-то в комбинации двух настроек, которая делает свое дело.
defaults read com.apple.loginwindow TALLogoutSavesState
вернулся 1
.
TALLogoutSavesState
все еще устанавливается в истину сам по себе. Но LoginwindowLaunchesRelaunchApps -bool false
одного только, кажется, достаточно, чтобы отключить восстановление окон.
Снятие отметки «Открыть окна при входе в систему» не решило проблему для меня. Приложения по-прежнему открывались после перезапуска из Apple Script или с помощью команды выключения в терминале.
Работает в macOS El Capitan, Yosemite, Sierra, High Sierra.
Решение: запретите OS X доступ к файлу, который он использует для хранения вашего состояния сеанса. Он предотвращает повторное открытие приложений даже после перезагрузки / выключения из терминала , из AppleScript и сбоя системы.
Cmd+Shift+G
(Перейти в папку)~/Library/Preferences/ByHost/
и подтвердитьcom.apple.loginwindow
Locked
флажок)Если вы хотите отменить это изменение позже и повторно включить функцию, просто удалите этот файл, и ОС создаст его заново.
Cmd+Shift+G
(Перейти в папку)~/Library/Preferences/ByHost/
и подтвердитьcom.apple.loginwindow
Сделайте файл владельцем root (иначе ОС просто заменит его)
sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
Удалите все разрешения, чтобы их нельзя было прочитать или записать
sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
Снова включите «открыть все приложения» после входа в систему
sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*