ไดอะล็อกการปิด / รีสตาร์ทมีกล่องกาเครื่องหมายReopen windows when logging back in
ซึ่งตรวจสอบโดยค่าเริ่มต้น ฉันต้องเปลี่ยนพฤติกรรมของมันเพื่อไม่ให้ถูกเลือกโดยค่าเริ่มต้น เป็นไปได้ไหม ถ้าใช่ฉันจะทำอย่างไร
ไดอะล็อกการปิด / รีสตาร์ทมีกล่องกาเครื่องหมายReopen windows when logging back in
ซึ่งตรวจสอบโดยค่าเริ่มต้น ฉันต้องเปลี่ยนพฤติกรรมของมันเพื่อไม่ให้ถูกเลือกโดยค่าเริ่มต้น เป็นไปได้ไหม ถ้าใช่ฉันจะทำอย่างไร
คำตอบ:
แก้ไข: ตั้งแต่ 10.7.4 ช่องทำเครื่องหมาย "เปิดหน้าต่างใหม่เมื่อลงชื่อเข้าใช้อีกครั้ง" ยังคงไม่ถูกตรวจสอบหากคุณยกเลิกการเลือกหนึ่งครั้งดังนั้นการแฮ็กด้านล่างไม่จำเป็นอีกต่อไป
ทางเลือกหนึ่งคือการตั้งค่าLoginwindowLaunchesRelaunchApps
คีย์เป็นเท็จใน~/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
คำสั่งนั้นจะดาวน์โหลดสคริปต์วางไว้ในตำแหน่งที่เหมาะสมทำให้สามารถเรียกใช้งานได้จากนั้นจึงลบไฟล์ชั่วคราว หากคุณสงสัยว่าเนื้อหาของสคริปต์ทุบตีที่ดาวน์โหลดมีดังต่อไปนี้:
#!/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 นี้เพียงพิมพ์คำสั่งเริ่มต้นการเขียนต่อไปนี้:
sudo defaults delete com.apple.loginwindow LoginHook
และคุณจะกลับมาเพื่อเลือกการคืนค่าหน้าต่างตามตัวเลือกของช่องทำเครื่องหมายนั้น
ที่มา: http://osxdaily.com/
สิ่งนี้มีการเปลี่ยนแปลงในเวอร์ชั่นอัปเดตของ Mac OS X 10.7.4
แก้ไขปัญหาเมื่อเปิดใช้งานการตั้งค่า "เปิดหน้าต่างใหม่เมื่อลงชื่อเข้าใช้อีกครั้ง"
นี่คือตัวเลือกใหม่อย่างที่คุณเห็น (แม้ว่ามันจะไม่ได้พิสูจน์ในตัวเองเพราะมันง่ายต่อการยกเลิกการเลือกและคว้าหน้าจอ แต่โปรดเชื่อฉัน - ฉันถูก stoked สวยเมื่อฉันตรวจสอบการปรับปรุงนี้เพราะข้อผิดพลาดนี้น่ารำคาญจริงๆ ฉัน!)
สำหรับโมฮาวีไม่มีตัวเลือกใดทำงานได้สำหรับฉัน แต่มีคนอื่นพูดถึงสิ่งต่อไปนี้และมันก็เพียงพอแล้วสำหรับฉัน:
ปิดหน้าต่างทั้งหมดยกเว้นเทอร์มินัลและเรียกใช้:
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 (ไม่เช่นนั้น OS จะทำการแทนที่)
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*