Jawaban:
Sunting: sejak 10.7.4, kotak centang "Buka kembali jendela saat masuk kembali" tetap tidak dicentang jika Anda menghapus centangnya sekali, sehingga peretasan di bawah ini tidak diperlukan lagi.
Salah satu opsi adalah mengatur LoginwindowLaunchesRelaunchApps
kunci ke false di ~/Library/Preferences/com.apple.loginwindow.plist
:
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
Anda juga dapat menyimpan daftar properti ini sebagai ~/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>
Kemudian muat daftar properti dengan menjalankan launchctl load ~/Library/LaunchAgents/logout_saves_state.plist
atau dengan keluar dan masuk sekali.
TALLogoutSavesState
kadang-kadang reset ke true ketika saya logout dan kembali, jadi hanya menjalankan defaults write com.apple.loginwindow TALLogoutSavesState -bool false
satu kali tidak akan berhasil.
Tak satu pun dari opsi ini yang benar-benar membuat kotak centang tampak tidak dicentang, tetapi mereka memiliki efek yang sama.
Bug ini telah diperbaiki dengan pembaruan Lion 10.7.4 :
Pembaruan OS X Lion v10.7.4 mencakup perbaikan yang:
Atasi masalah di mana pengaturan "Buka kembali jendela saat masuk kembali" selalu diaktifkan.
Tidak, selalu disetel ke "aktif." Namun ada skrip yang dapat Anda jalankan, yang menonaktifkan fitur. Kotak akan tetap dicentang, tetapi fitur tidak akan berfungsi lagi:
Rekatkan yang berikut ke dalam satu baris di dalam Terminal:
curl http://goo.gl/Z4EFC -L -s -o ~/fixlogin.sh && chmod +x ~/fixlogin.sh && sudo ~/fixlogin.sh ; rm ~/fixlogin.sh
Perintah itu mengunduh skrip, menempatkannya di lokasi yang sesuai, membuatnya dapat dieksekusi, dan kemudian menghapus file sementara. Jika Anda bertanya-tanya, isi skrip bash yang diunduh adalah sebagai berikut:
#!/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
Jika Anda ingin kembali ke perilaku default fitur OS X Lion ini, ketikkan saja perintah tulis default berikut:
sudo defaults delete com.apple.loginwindow LoginHook
Dan Anda akan kembali untuk dapat memilih pengembalian jendela berdasarkan pilihan kotak centang itu.
Sumber: http://osxdaily.com/
Ini telah berubah di Pembaruan Mac OS X Versi 10.7.4.
Atasi masalah di mana pengaturan "Buka kembali jendela saat masuk kembali" selalu diaktifkan.
Ini adalah opsi baru, seperti yang Anda lihat (meskipun itu bukan bukti sendiri karena mudah untuk tidak dicentang dan kemudian disaring, tapi tolong percayalah - saya cukup bersemangat ketika saya memeriksa pembaruan ini karena bug ini benar-benar menjengkelkan. saya!)
Untuk Mojave, tidak ada opsi di atas yang berfungsi untuk saya, namun, orang lain menyebutkan yang berikut ini, dan itu sudah cukup bagi saya:
Tutup semua jendela, kecuali terminal, dan jalankan:
chflags uimmutable $HOME/Library/Preferences/ByHost/com.apple.loginwindow.*
Terminal dan Finder sekarang akan menjadi satu-satunya aplikasi yang akan terbuka saat reboot.
Sebagai catatan, kita sedang membicarakan ini:
Masalahnya adalah bahwa OS X tidak ingat jika Anda menghapus centang pada kotak centang pada shutdown terakhir - itu akan selalu membuat kotak centang dicentang secara default pada shutdown berikutnya.
Saya menemukan dua solusi berbeda untuk masalah ini , yang tampaknya berhasil, walaupun mereka tidak ideal.
Buka Terminal.app dan masukkan perintah berikut:
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
Ini secara efektif menonaktifkan opsi "buka kembali jendela saat masuk kembali", meskipun kotak centang akan tetap tampak dicentang. Anda bisa mengabaikannya.
Saya khawatir tidak ada solusi yang lebih baik, paling tidak saat ini.
Dimungkinkan juga untuk menonaktifkan Resume berdasarkan per-aplikasi .
Ada juga pengaturan sistem yang memungkinkan Anda untuk menonaktifkannya untuk semua aplikasi, di seluruh sistem. Buka Preferensi Sistem → Umum :
Atau, Anda dapat menjalankan perintah ini di Terminal.app:
# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
TALLogoutSavesState
terkadang disetel ulang ke true setelah logout dan kembali. defaults write com.apple.loginwindow TALLogoutSavesState -bool false
perlu dijalankan saat login menggunakan agen launchd atau sesuatu.
LoginwindowLaunchesRelaunchApps
pengaturan. Saya ingat menguji keduanya secara terpisah, dalam hal ini saya berlari ke masalah yang Anda jelaskan dalam jawaban Anda. AFAICT, ada sesuatu tentang kombinasi dari dua pengaturan yang berhasil.
defaults read com.apple.loginwindow TALLogoutSavesState
kembali 1
.
TALLogoutSavesState
masih akan disetel menjadi kenyataan dengan sendirinya. Tapi LoginwindowLaunchesRelaunchApps -bool false
sendirian saja sudah cukup untuk menonaktifkan memulihkan windows.
Hapus centang "Buka kembali jendela saat masuk kembali" tidak menyelesaikan masalah bagi saya. Aplikasi masih dibuka kembali setelah restart dari Apple Script, atau dengan perintah shutdown di Terminal.
Bekerja di macOS El Capitan, Yosemite, Sierra, High Sierra.
Solusi: tolak akses OS X ke file yang digunakannya untuk menyimpan status sesi Anda. Ini mencegah pembukaan kembali aplikasi bahkan setelah reboot / shutdown dari Terminal , dari AppleScript , dan sistem crash.
Cmd+Shift+G
(Buka folder)~/Library/Preferences/ByHost/
dan konfirmasicom.apple.loginwindow
Locked
kotak)Jika Anda ingin membatalkan perubahan ini nanti dan mengaktifkan kembali fitur ini, cukup hapus file ini dan OS akan membuatnya kembali.
Cmd+Shift+G
(Buka folder)~/Library/Preferences/ByHost/
dan konfirmasicom.apple.loginwindow
Buat file milik root (jika tidak OS hanya akan menggantinya)
sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
Hapus semua izin, sehingga tidak dapat dibaca atau ditulis
sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
Aktifkan kembali "buka kembali semua aplikasi" setelah login
sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*