默认情况下,取消选中“重新登录时重新打开窗口”


17

关闭/重新启动对话框有一个复选框Reopen windows when logging back in,默认情况下处于选中状态。我需要将其行为更改为默认情况下未选中。这可能吗?如果是,我该怎么办?

在此处输入图片说明

Answers:


8

编辑:从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一次是行不通的。

这两个选项实际上都不会使复选框显示为未选中状态,但是它们具有相同的效果。


我发现仍然有理由在10.7.5上执行此操作:现在默认情况下未选中“重新启动”对话框中的框,并且状态未恢复。但是,如果我通过按住MacBook上的硬件电源按钮来强制重新启动,则它会恢复状态。应用此修复程序后,使用按钮重新启动时,我现在在重新启动时看到一个对话框,提示您“由于问题而关闭。是否要还原状态?”,因此我可以进行干净的重新启动。
安德鲁·扬克


2

不,它始终设置为“ 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/


您还可以基于每个应用禁用对应用的恢复。在这里查看这些答案。
gentmatt 2011年

谢谢您的脚本,它修复了最新Mac的最烦人的“功能”之一。
Tobia 2014年

2

这在Mac OS X更新版本10.7.4中已更改。

解决了始终启用“重新登录时重新打开窗口”设置的问题。

在此处输入图片说明

如您所见,这是新选项(尽管本身并不能证明,因为很容易取消选中然后抓屏,但请相信我-当我签出此更新时,我非常激动,因为此错误确实令人讨厌我!)

在此处输入图片说明


2

对于Mojave来说,以上所有选项对我都不起作用,但是,其他人提到了以下内容,对我来说足够了:

关闭除终端以外的所有窗口,然后运行:

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

终端和查找器现在将是唯一在重新启动后打开的应用程序。


1

作为记录,我们正在谈论以下内容:

屏幕截图

问题是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

(摘自我的.osx文件。)


TALLogoutSavesState有时在注销并重新登录后会重置为true。defaults write com.apple.loginwindow TALLogoutSavesState -bool false将需要使用已启动的代理程序或其他工具在登录时运行。
Lri 2012年

@Lri即使在多次注销/重新启动后,与LoginwindowLaunchesRelaunchApps设置结合使用,它对我来说似乎也很好用。我记得分别测试了两者,在这种情况下,我遇到了您在答案中描述的问题。AFAICT,这两种设置的结合可以解决问题。
Mathias Bynens 2012年

我只是再次跑了两次,注销并再次登录两次,然后defaults read com.apple.loginwindow TALLogoutSavesState返回1
Lri 2012年

TALLogoutSavesState仍然自行设置为true。但是,LoginwindowLaunchesRelaunchApps -bool false仅凭它似乎足以禁用还原窗口。
Lri 2012年

0

取消选中“重新登录时重新打开窗口”并不能解决我的问题。从Apple Script重新启动后,或在Terminal中使用shutdown命令,应用程序仍在重新打开。

重启后永久阻止macOS High Sierra重新打开应用

在macOS El Capitan,优胜美地,塞拉利昂,高塞拉利昂工作。

解决方案:拒绝OS X访问它用来存储会话状态的文件。即使从TerminalAppleScript重启/关闭以及系统崩溃,它也可以防止重新打开应用程序。

GUI方法

  1. 打开查找器
  2. Cmd+Shift+G (转到文件夹)
  3. 复制~/Library/Preferences/ByHost/并确认
  4. 查找文件开头 com.apple.loginwindow
  5. 双击(在TextEdit中打开)
  6. 删除所有内容并保存空文件。可能会出现一个附加的确认对话框。
  7. 右键单击,获取信息
  8. 锁定文件(选中Locked复选框)

GUI方法(撤消)

如果您希望以后撤消此更改并重新启用该功能,只需删除该文件,操作系统将重新创建它。

  1. 打开查找器
  2. Cmd+Shift+G (转到文件夹)
  3. 复制~/Library/Preferences/ByHost/并确认
  4. 找到文件开头 com.apple.loginwindow
  5. 只需删除它

CLI方法

  1. 打开Terminal.app
  2. 使文件归root拥有(否则操作系统将替换它)

    sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
  3. 删除所有权限,使其无法读取或写入

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

CLI方法(撤消)

  1. 登录后重新启用“重新打开所有应用”

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

     


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.