Відповіді:
Редагувати: з 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
Іноді я повертався до істинного, коли я входив і знову входив, тому просто запущений 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, просто введіть наступну команду write за замовчуванням:
sudo defaults delete com.apple.loginwindow LoginHook
І ви повернетесь, щоб мати можливість вибрати відновлення вікна на основі вибору цього прапорця.
Джерело: http://osxdaily.com/
Це змінилось у версії 10.7.4 оновлення Mac OS X.
Вирішіть проблему, коли налаштування "Повторно відкрити вікна під час входу в систему" завжди ввімкнено.
Ось новий варіант, як ви бачите (хоча це не є доказом саме по собі, оскільки його легко зняти, а потім захопити екран, але, будь ласка, повірте мені - я був дуже приголомшений, коли перевірив це оновлення, оскільки ця помилка насправді дратувала я!)
Для Мохаве жоден із наведених вище варіантів не працював для мене, однак, хтось інший згадував таке, і мені це достатньо:
Закрийте всі вікна, крім терміналу, і запустіть:
chflags uimmutable $HOME/Library/Preferences/ByHost/com.apple.loginwindow.*
Термінал і 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
іноді стає скиданням до істинного після виходу та повернення, хоча. defaults write com.apple.loginwindow TALLogoutSavesState -bool false
потрібно було запустити при вході за допомогою агента запуску чи чогось іншого.
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*