Answers:
编辑:从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
有时在我注销并重新登录时会重置为true,因此仅运行defaults write com.apple.loginwindow TALLogoutSavesState -bool false
一次是行不通的。
这两个选项实际上都不会使复选框显示为未选中状态,但是它们具有相同的效果。
不,它始终设置为“ on”。但是,确实存在可以运行的脚本,该脚本禁用了该功能。该框仍将被选中,但该功能将不再起作用:
将以下内容粘贴到终端中的一行中:
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/
作为记录,我们正在谈论以下内容:
问题是OS X不会记住您是否在上次关闭时取消选中该复选框-默认情况下,它将在后续关闭时始终保持选中该复选框。
我找到了解决此问题的两种不同方法,尽管它们并不理想,但似乎可以解决问题。
打开Terminal.app并输入以下命令:
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
这将有效地禁用“重新登录时重新打开窗口”选项,尽管该复选框似乎仍处于选中状态。您可以忽略它。
恐怕没有更好的解决方案,至少目前没有。
也可以按应用禁用恢复。
还有一个系统设置,可让您在系统范围内的所有应用程序中将其禁用。进入系统偏好设置 → 常规:
或者,您可以在Terminal.app中运行以下命令:
# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
TALLogoutSavesState
有时在注销并重新登录后会重置为true。defaults write com.apple.loginwindow TALLogoutSavesState -bool false
将需要使用已启动的代理程序或其他工具在登录时运行。
LoginwindowLaunchesRelaunchApps
设置结合使用,它对我来说似乎也很好用。我记得分别测试了两者,在这种情况下,我遇到了您在答案中描述的问题。AFAICT,这两种设置的结合可以解决问题。
defaults read com.apple.loginwindow TALLogoutSavesState
返回1
。
TALLogoutSavesState
仍然自行设置为true。但是,LoginwindowLaunchesRelaunchApps -bool false
仅凭它似乎足以禁用还原窗口。
取消选中“重新登录时重新打开窗口”并不能解决我的问题。从Apple Script重新启动后,或在Terminal中使用shutdown命令,应用程序仍在重新打开。
在macOS El Capitan,优胜美地,塞拉利昂,高塞拉利昂工作。
解决方案:拒绝OS X访问它用来存储会话状态的文件。即使从Terminal,AppleScript重启/关闭以及系统崩溃,它也可以防止重新打开应用程序。
Cmd+Shift+G
(转到文件夹)~/Library/Preferences/ByHost/
并确认com.apple.loginwindow
Locked
复选框)如果您希望以后撤消此更改并重新启用该功能,只需删除该文件,操作系统将重新创建它。
Cmd+Shift+G
(转到文件夹)~/Library/Preferences/ByHost/
并确认com.apple.loginwindow
使文件归root拥有(否则操作系统将替换它)
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*