Зніміть прапорець "Повторно відкрити вікно під час входу" за замовчуванням


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Іноді я повертався до істинного, коли я входив і знову входив, тому просто запущений 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, просто введіть наступну команду write за замовчуванням:

sudo defaults delete com.apple.loginwindow LoginHook

І ви повернетесь, щоб мати можливість вибрати відновлення вікна на основі вибору цього прапорця.

Джерело: http://osxdaily.com/


Ви також можете відключити Resume для програм на основі програми. Дивіться ці відповіді тут.
gentmatt

Дякую за сценарій, він фіксує одну з найприємніших "особливостей" останніх Macs.
Тобія

2

Це змінилось у версії 10.7.4 оновлення Mac OS X.

Вирішіть проблему, коли налаштування "Повторно відкрити вікна під час входу в систему" завжди ввімкнено.

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

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

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


2

Для Мохаве жоден із наведених вище варіантів не працював для мене, однак, хтось інший згадував таке, і мені це достатньо:

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

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

Термінал і 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іноді стає скиданням до істинного після виходу та повернення, хоча. defaults write com.apple.loginwindow TALLogoutSavesState -bool falseпотрібно було запустити при вході за допомогою агента запуску чи чогось іншого.
Лрі

@Lri Здається, це працює добре для мене, навіть після декількох виходів / перезавантажень у поєднанні з LoginwindowLaunchesRelaunchAppsналаштуваннями. Я пам’ятаю тестування обох окремо, і в цьому випадку я зіткнувся з питаннями, які ви описали у своїй відповіді. AFAICT, є щось про поєднання двох налаштувань, що робить трюк.
Mathias Bynens

Я просто побіг обох знову, двічі вийшов і повернувся назад, і defaults read com.apple.loginwindow TALLogoutSavesStateповернувся 1.
Лрі

TALLogoutSavesStateяк і раніше налаштовується на істинний сам по собі. Але лише LoginwindowLaunchesRelaunchApps -bool falseодного видається достатньо, щоб відключити відновлення вікон.
Лрі

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.