Снимите флажок «Повторно открывать окна при входе в систему» ​​по умолчанию


17

Диалог выключения / перезапуска имеет флажок, Reopen windows when logging back inкоторый установлен по умолчанию. Мне нужно изменить его поведение, чтобы отключить по умолчанию. Это возможно? Если да, как я могу это сделать?

введите описание изображения здесь

Ответы:


8

Редактировать: начиная с 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не сработал бы.

Ни один из этих параметров на самом деле не делает флажок не отмеченным, но он имеет тот же эффект.


Я нашел причину все еще делать это на 10.7.5: поле в диалоговом окне «Перезагрузка» теперь по умолчанию снято и состояние не восстанавливается. Но если я принудительно перезагрузил компьютер, удерживая нажатой кнопку питания на моем MacBook, он восстановил состояние. После применения этого исправления при перезагрузке с помощью кнопки после перезагрузки у меня появляется диалоговое окно с сообщением «Вы закрылись из-за проблемы. Хотите восстановить состояние?», Чтобы я мог выполнить чистую перезагрузку.
Эндрю Янке

4

Эта ошибка была исправлена ​​с обновлением Lion 10.7.4 :

Обновление OS X Lion v10.7.4 включает исправления, которые:

Устраните проблему, из-за которой параметр «Открывать окна при повторном входе в систему» ​​всегда включен.

введите описание изображения здесь

( нажмите здесь для получения дополнительной информации )


2

Нет, он всегда включен. Однако существует сценарий, который можно запустить, который отключает эту функцию. Поле все еще будет отмечено, но функция больше не будет работать:

Вставьте следующее в одну строку в терминале:

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/


Вы также можете отключить Resume для приложений для каждого приложения. Смотрите эти ответы здесь.
Gentmatt

Спасибо за скрипт, он исправляет одну из самых раздражающих «особенностей» последних Mac.
Tobia

2

Это изменилось в Mac OS X Update версии 10.7.4.

Устранена проблема, при которой параметр «Открывать окна при входе в систему» ​​всегда включен.

введите описание изображения здесь

Вот новая опция, как вы можете видеть (хотя сама по себе она не является доказательством, поскольку ее легко снять, а затем захватить экран, но, пожалуйста, поверьте мне - я был весьма потрясен, когда проверил это обновление, поскольку эта ошибка действительно раздражала мне!)

введите описание изображения здесь


2

Для Мохаве ни один из вышеперечисленных вариантов для меня не сработал, однако кто-то еще упомянул следующее, и мне этого достаточно:

Закройте все окна, кроме терминала, и запустите:

chflags uimmutable $HOME/Library/Preferences/ByHost/com.apple.loginwindow.*

Terminal и Finder теперь будут единственными приложениями, которые будут открываться при перезагрузке.


1

Для записи, мы говорим об этом:

Скриншот

Проблема в том, что 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

(Взято из моего .osxфайла.)


TALLogoutSavesStateиногда сбрасывается до true после выхода из системы и обратно. defaults write com.apple.loginwindow TALLogoutSavesState -bool falseнужно будет запустить при входе в систему с помощью агента launchd или чего-то еще
Lri

@Lri Мне кажется, что он работает нормально даже после нескольких выходов из системы / перезагрузок в сочетании с LoginwindowLaunchesRelaunchAppsнастройкой. Я помню, как тестировал их по отдельности, и в этом случае я столкнулся с вопросами, которые вы описали в своем ответе. AFAICT, есть что-то в комбинации двух настроек, которая делает свое дело.
Матиас Биненс

Я просто побежал оба снова, дважды вышел из системы и вернулся и defaults read com.apple.loginwindow TALLogoutSavesStateвернулся 1.
Lri

TALLogoutSavesStateвсе еще устанавливается в истину сам по себе. Но LoginwindowLaunchesRelaunchApps -bool falseодного только, кажется, достаточно, чтобы отключить восстановление окон.
Lri

0

Снятие отметки «Открыть окна при входе в систему» ​​не решило проблему для меня. Приложения по-прежнему открывались после перезапуска из Apple Script или с помощью команды выключения в терминале.

Постоянно предотвращать повторное открытие приложений MacOS High Sierra после перезагрузки

Работает в macOS El Capitan, Yosemite, Sierra, High Sierra.

Решение: запретите OS X доступ к файлу, который он использует для хранения вашего состояния сеанса. Он предотвращает повторное открытие приложений даже после перезагрузки / выключения из терминала , из AppleScript и сбоя системы.

Метод GUI

  1. Открыть Finder
  2. Cmd+Shift+G (Перейти в папку)
  3. Копировать ~/Library/Preferences/ByHost/и подтвердить
  4. Найти файл, начинающийся с com.apple.loginwindow
  5. Двойной клик (открывается в TextEdit)
  6. Удалите весь контент и сохраните пустой файл. Может появиться дополнительное диалоговое окно подтверждения.
  7. Щелкните правой кнопкой мыши, получите информацию
  8. Блокировка файла (установите Lockedфлажок)

GUI метод (отменить)

Если вы хотите отменить это изменение позже и повторно включить функцию, просто удалите этот файл, и ОС создаст его заново.

  1. Открыть Finder
  2. Cmd+Shift+G (Перейти в папку)
  3. Копировать ~/Library/Preferences/ByHost/и подтвердить
  4. Найдите файл, начинающийся с com.apple.loginwindow
  5. Просто удали это

Метод CLI

  1. Откройте Terminal.app
  2. Сделайте файл владельцем root (иначе ОС просто заменит его)

    sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
  3. Удалите все разрешения, чтобы их нельзя было прочитать или записать

    sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
    

Метод CLI (отменить)

  1. Снова включите «открыть все приложения» после входа в систему

    sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*
    

     


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.