Hapus centang "Buka kembali jendela saat masuk kembali" secara default


17

Dialog shutdown / restart memiliki kotak centang Reopen windows when logging back inyang dicentang secara default. Saya perlu mengubah perilakunya agar tidak dicentang secara default. Apakah ini mungkin? Jika ya, bagaimana saya bisa melakukan itu?

masukkan deskripsi gambar di sini

Jawaban:


8

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 LoginwindowLaunchesRelaunchAppskunci 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.plistatau dengan keluar dan masuk sekali.

TALLogoutSavesStatekadang-kadang reset ke true ketika saya logout dan kembali, jadi hanya menjalankan defaults write com.apple.loginwindow TALLogoutSavesState -bool falsesatu 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.


Saya menemukan alasan untuk tetap melakukan ini pada 10.7.5: kotak di dialog Restart sekarang tidak dicentang secara default, dan status tidak dipulihkan. Tetapi jika saya memaksa reboot dengan menahan tombol power perangkat keras di MacBook saya, itu mengembalikan keadaan. Setelah menerapkan perbaikan ini, ketika me-reboot dengan tombol, saya sekarang mendapatkan dialog setelah reboot yang mengatakan "Anda mati karena masalah. Apakah Anda ingin mengembalikan keadaan?", Jadi saya bisa mendapatkan reboot bersih.
Andrew Janke


2

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/


Anda juga dapat menonaktifkan Lanjutkan untuk aplikasi pada basis per aplikasi. Lihat jawaban ini di sini.
gentmatt

Terima kasih atas skripnya, ia memperbaiki salah satu "fitur" paling mengganggu dari Mac terbaru.
Tobia

2

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.

masukkan deskripsi gambar di sini

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!)

masukkan deskripsi gambar di sini


2

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.


1

Sebagai catatan, kita sedang membicarakan ini:

Tangkapan layar

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 SistemUmum :

Tangkapan layar

Atau, Anda dapat menjalankan perintah ini di Terminal.app:

# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false

(Diambil dari .osxfile saya .)


TALLogoutSavesStateterkadang disetel ulang ke true setelah logout dan kembali. defaults write com.apple.loginwindow TALLogoutSavesState -bool falseperlu dijalankan saat login menggunakan agen launchd atau sesuatu.
Lri

@Lri sepertinya bekerja dengan baik untuk saya, bahkan setelah beberapa kali logout / reboot, dikombinasikan dengan LoginwindowLaunchesRelaunchAppspengaturan. 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.
Mathias Bynens

Saya hanya menjalankan keduanya lagi, keluar dan kembali dua kali, dan defaults read com.apple.loginwindow TALLogoutSavesStatekembali 1.
Lri

TALLogoutSavesStatemasih akan disetel menjadi kenyataan dengan sendirinya. Tapi LoginwindowLaunchesRelaunchApps -bool falsesendirian saja sudah cukup untuk menonaktifkan memulihkan windows.
Lri

0

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.

Secara permanen mencegah macOS High Sierra dari membuka kembali aplikasi setelah restart

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.

Metode GUI

  1. Buka Finder
  2. Cmd+Shift+G (Buka folder)
  3. Copypaste ~/Library/Preferences/ByHost/dan konfirmasi
  4. Temukan file yang dimulai dengan com.apple.loginwindow
  5. Klik dua kali (terbuka di TextEdit)
  6. Hapus semua konten dan simpan file yang kosong. Dialog konfirmasi tambahan mungkin muncul.
  7. Klik kanan, Dapatkan Info
  8. Kunci file (centang Lockedkotak)

Metode GUI (batalkan)

Jika Anda ingin membatalkan perubahan ini nanti dan mengaktifkan kembali fitur ini, cukup hapus file ini dan OS akan membuatnya kembali.

  1. Buka Finder
  2. Cmd+Shift+G (Buka folder)
  3. Copypaste ~/Library/Preferences/ByHost/dan konfirmasi
  4. Temukan file yang dimulai dengan com.apple.loginwindow
  5. Hapus saja

Metode CLI

  1. Buka Terminal.app
  2. Buat file milik root (jika tidak OS hanya akan menggantinya)

    sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
  3. Hapus semua izin, sehingga tidak dapat dibaca atau ditulis

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

Metode CLI (batalkan)

  1. Aktifkan kembali "buka kembali semua aplikasi" setelah login

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

     


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.