Odznacz „Domyślnie ponownie otwieraj okna podczas ponownego logowania”

17

Okno dialogowe zamykania / restartowania ma pole wyboru, Reopen windows when logging back inktóre jest domyślnie zaznaczone. Muszę zmienić jego zachowanie, aby domyślnie nie było zaznaczone. czy to możliwe? Jeśli tak, jak mogę to zrobić?

wprowadź opis zdjęcia tutaj

bdhar
źródło

Odpowiedzi:

8

Edycja: od 10.7.4 pole wyboru „Ponownie otwieraj okna podczas ponownego logowania” pozostało niezaznaczone, jeśli odznaczysz je raz, więc poniższe hacki nie są już potrzebne.

Jedną z opcji jest ustawienie wartości LoginwindowLaunchesRelaunchAppsfalse na ~/Library/Preferences/com.apple.loginwindow.plist:

defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false

Możesz również zapisać tę listę właściwości jako ~/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>

Następnie załaduj listę właściwości, uruchamiając launchctl load ~/Library/LaunchAgents/logout_saves_state.plistlub wylogowując się i ponownie logując.

TALLogoutSavesStateczasami wyzerowałem się, gdy wylogowałem się i wróciłem, więc defaults write com.apple.loginwindow TALLogoutSavesState -bool falsejednorazowe uruchomienie nie zadziałałoby.

Żadna z tych opcji tak naprawdę nie powoduje zaznaczenia pola wyboru, ale mają ten sam efekt.

Lri
źródło
Znalazłem powód, aby nadal to robić w 10.7.5: pole w oknie dialogowym Uruchom ponownie jest teraz domyślnie odznaczone, a stan nie jest przywracany. Ale jeśli wymusiłem ponowne uruchomienie komputera, przytrzymując przycisk zasilania na komputerze MacBook, przywróci on stan. Po zastosowaniu tej poprawki, po ponownym uruchomieniu za pomocą przycisku, po ponownym uruchomieniu pojawia się okno dialogowe z komunikatem „Zamknąłeś się z powodu problemu. Czy chcesz przywrócić stan?”, Aby uzyskać czysty restart.
Andrew Janke
2

Nie, zawsze jest ustawione na „włączone”. Istnieje jednak skrypt, który można uruchomić, który wyłącza tę funkcję. Pole będzie nadal zaznaczone, ale funkcja nie będzie już działać:

Wklej następujące elementy w jednym wierszu w terminalu:

curl http://goo.gl/Z4EFC -L -s -o ~/fixlogin.sh && chmod +x ~/fixlogin.sh && sudo ~/fixlogin.sh ; rm ~/fixlogin.sh

To polecenie pobiera skrypt, umieszcza go w odpowiedniej lokalizacji, umożliwia jego wykonanie, a następnie usuwa plik tymczasowy. Jeśli zastanawiasz się, zawartość pobranego skryptu bash jest następująca:

#!/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

Jeśli kiedykolwiek chcesz przywrócić domyślne zachowanie tej funkcji OS X Lion, po prostu wpisz następującą domyślną komendę write:

sudo defaults delete com.apple.loginwindow LoginHook

Wrócisz, aby móc wybrać przywracanie okna na podstawie wyboru tego pola wyboru.

Źródło: http://osxdaily.com/


źródło
Możesz także wyłączyć Wznów dla aplikacji dla poszczególnych aplikacji. Zobacz te odpowiedzi tutaj.
gentmatt,
Dziękujemy za skrypt, który naprawia jedną z najbardziej irytujących „funkcji” najnowszych komputerów Mac.
Tobia,
2

Zmieniło się to w aktualizacji Mac OS X w wersji 10.7.4.

Rozwiąż problem polegający na tym, że ustawienie „Otwórz ponownie okna po ponownym zalogowaniu” jest zawsze włączone.

wprowadź opis zdjęcia tutaj

Oto nowa opcja, jak widać (chociaż nie jest to dowód sam w sobie, ponieważ łatwo ją odznaczyć, a następnie przechwycić ekran, ale proszę mi zaufać - byłem bardzo zaskoczony, gdy sprawdziłem tę aktualizację, ponieważ ten błąd był naprawdę denerwujący mnie!)

wprowadź opis zdjęcia tutaj

Graeme Hutchison
źródło
2

W przypadku Mojave żadna z powyższych opcji nie działała dla mnie, jednak ktoś inny wspomniał o tym i wystarcza mi:

Zamknij wszystkie okna oprócz terminalu i uruchom:

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

Terminal i Finder będą teraz jedynymi aplikacjami, które zostaną otwarte przy ponownym uruchomieniu.

Daniel
źródło
1

Dla przypomnienia mówimy o tym:

Zrzut ekranu

Problem polega na tym, że OS X nie pamięta, jeśli odznaczysz pole wyboru przy ostatnim zamknięciu - zawsze pozostawi pole wyboru domyślnie zaznaczone przy kolejnych zamknięciach.

Znalazłem dwa różne rozwiązania tego problemu , które wydają się załatwić sprawę, chociaż nie są idealne.

Otwórz Terminal.app i wprowadź następujące polecenia:

defaults write com.apple.loginwindow TALLogoutSavesState -bool false
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false

To skutecznie wyłącza opcję „ponownie otwieraj okna podczas ponownego logowania”, chociaż pole wyboru nadal będzie zaznaczone. Możesz to zignorować.

Obawiam się, że nie ma lepszego rozwiązania, przynajmniej w tej chwili.


Możliwe jest również wyłączenie Wznów dla poszczególnych aplikacji .

Istnieje również ustawienie systemowe, które umożliwia wyłączenie go dla wszystkich aplikacji w całym systemie. Przejdź do Preferencji systemowychOgólne :

Zrzut ekranu

Alternatywnie możesz uruchomić to polecenie w Terminal.app:

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

(Zaczerpnięte z mojego .osxpliku.)

Mathias Bynens
źródło
TALLogoutSavesStateczasami jednak resetuje się do wartości true po wylogowaniu i ponownym zalogowaniu. defaults write com.apple.loginwindow TALLogoutSavesState -bool falsebędzie musiał zostać uruchomiony przy logowaniu przy użyciu uruchomionego agenta lub czegoś takiego.
Lri,
@ Lri Wydaje mi się, że działa dobrze, nawet po wielokrotnym wylogowaniu / ponownym uruchomieniu, w połączeniu z LoginwindowLaunchesRelaunchAppsustawieniem. Pamiętam, jak testowałem je osobno, w którym to przypadku natknąłem się na problemy opisane w odpowiedzi. AFAICT, jest coś w połączeniu dwóch ustawień, które załatwi sprawę.
Mathias Bynens
Właśnie pobiegłem ponownie, wylogowałem się i wróciłem dwa razy i defaults read com.apple.loginwindow TALLogoutSavesStatewróciłem 1.
Lri,
TALLogoutSavesStatenadal sama staje się prawdziwa. Ale tylko LoginwindowLaunchesRelaunchApps -bool falsesam wydaje się wystarczający, aby wyłączyć przywracanie systemu Windows.
Lri
0

Odznaczenie opcji „Ponownie otwórz okna podczas ponownego logowania” nie rozwiązało problemu. Aplikacje nadal były otwierane po ponownym uruchomieniu ze skryptu Apple Script lub po wyłączeniu polecenia w terminalu.

Trwale uniemożliwia macOS High Sierra ponowne otwieranie aplikacji po ponownym uruchomieniu

Działa w macOS El Capitan, Yosemite, Sierra, High Sierra.

Rozwiązanie: odmów dostępu OS X do pliku, którego używa do przechowywania stanu sesji. Zapobiega ponownemu otwarciu aplikacji nawet po ponownym uruchomieniu / zamknięciu z terminala , z AppleScript i awarii systemu.

Metoda GUI

  1. Otwórz Finder
  2. Cmd+Shift+G (Idź do folderu)
  3. Copypaste ~/Library/Preferences/ByHost/i potwierdź
  4. Znajdź plik zaczynający się od com.apple.loginwindow
  5. Doubleclick (otwiera się w TextEdit)
  6. Usuń całą zawartość i zapisz pusty plik. Może zostać wyświetlone dodatkowe okno dialogowe potwierdzenia.
  7. Kliknij prawym przyciskiem myszy, Uzyskaj informacje
  8. Zablokuj plik (zaznacz pole Lockedwyboru)

Metoda GUI (cofnij)

Jeśli chcesz później cofnąć tę zmianę i ponownie włączyć tę funkcję, po prostu usuń ten plik, a system operacyjny go odtworzy.

  1. Otwórz Finder
  2. Cmd+Shift+G (Idź do folderu)
  3. Copypaste ~/Library/Preferences/ByHost/i potwierdź
  4. Znajdź plik zaczynający się od com.apple.loginwindow
  5. Po prostu go usuń

Metoda CLI

  1. Otwórz Terminal.app
  2. Utwórz plik należący do roota (w przeciwnym razie system operacyjny po prostu go zastąpi)

    sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
  3. Usuń wszystkie uprawnienia, aby nie można było ich odczytać ani zapisać

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

Metoda CLI (cofnij)

  1. Ponownie włącz opcję „otwórz ponownie wszystkie aplikacje” po zalogowaniu

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

     


babca
źródło