在 Mac OS X 上空闲时自动隐藏所有应用程序(“显示桌面”)

在 Mac OS X 上空闲时自动隐藏所有应用程序(“显示桌面”)

有人能推荐一款免费应用,或者甚至一个脚本,它可以监控我的系统,并在闲置时间超过一定时间时隐藏所有打开的应用程序吗?我的意思是 Finder 和所有东西。基本上是 showdesktop (http://www.everydaysoftware.net/showdesktop/),但带有空闲选项。

答案1

有人可以推荐一个免费软件应用程序,或者甚至是一个脚本,它可以监视我的系统,并且如果闲置时间超过一定时间则隐藏所有打开的应用程序?

系统偏好设置 > 桌面和屏幕保护程序 > 屏幕保护程序

答案2

我也在寻找这个问题,而其他发帖人的建议并不完整 - 但有一件事你可以做(​​这不是真正的解决方案,但对你来说可能不错)就是设置你的一个“热点角”来显示桌面 - 我使用左上角。这是通过屏幕保护程序系统偏好设置面板完成的。

另一种解决方案:使用类似 Keyboard Maestro 之类的程序,您可以为该操作分配一个宏快捷方式Hide all Applications,或者,如果您的宏程序没有该功能,您可以通过单击桌面然后键入键Command- Option-来模拟它H(这是 Mac OS 标准快捷方式,用于隐藏除前台应用程序之外的所有应用程序)。

我打算尝试的是千与千寻,声称可以在一定空闲时间后隐藏应用程序。这不是完整的解决方案,但也许随着时间的推移,会达到相同的效果。

如果我找到确切的用例解决器,我会在这里报告。

答案3

看起来 Sleepwatcher 就是你要找的东西。我刚刚找到它,正在试用。请访问http://www.bernhard-baehr.de/

答案4

我已经尝试这样做了几年了。大部分时间我都在使用千与千寻,无法自动隐藏活动窗口,这很烦人。因此,要隐藏全部窗口时,您需要确保没有活动窗口,最简单的方法是单击桌面。不过,这需要特定的操作,这很容易忘记,并且需要“培训”任何可能使用计算机的人。

我注意到 ericjay 的回答,当时我以为我终于找到了解决方案。不幸的是,这不是一个简单的过程,所以我想在这里分享我最终的解决方案。

  • 首先,您需要启用空格。(Exposé 在桌面周围留下了令人讨厌的黑色边框,而 Mac OS 没有提供隐藏活动窗口的便捷方式所有非活动窗口)。

    在 Mac OS 10.6 上,转到系统偏好设置中的“Exposé 和 Spaces”窗格,然后选中“启用 Spaces”框。启用 Spaces 后(或已经启用),请确保您有一个未使用的空间,您可以将其留空。从现在开始,我假设这是 2 号空间。

    另外,请确保在窗格底部,有与“直接切换到空间”绑定的内容。从现在开始,我假设这是控制键(^ 数字键)。

    在 Mac OS 10.7 上,空间是 Mission Control 的一部分。激活 Mission Control,将鼠标移到屏幕右上角,然后单击出现的“+”按钮。这将打开一个新的桌面空间(我同样假设它是 2 号,从现在开始),其中应该没有窗口。

    此外,创建可留空的桌面空间后,转到“系统偏好设置”的“键盘”窗格,转到“键盘快捷键”选项卡,从列表中选择“任务控制”,然后展开“任务控制”子列表项。确保将某些内容绑定到“切换到桌面 2”,其中“2”是您创建的桌面空间的编号。接下来,我假设这是控制。

  • 接下来,你需要安装睡眠观察者。基本上,您需要创建目录 /usr/local/sbin ( sudo mkdir -p /usr/local/sbin),并将 sleepwatcher 二进制可执行文件 (sleepwatcher_2.2/sleepwatcher) 移至此目录。如果您需要手册页,Readme 会详细说明其安装。不必担心安装任何 plist 文件。

  • 需要四个简短的脚本,并具有执行权限。你可以将它们放在主文件夹或 /etc 之类的某个位置,但我将使用主文件夹:

    touch ~/.{loginhook,logouthook,idle,idleresume}
    chmod +x ~/.{loginhook,logouthook,idle,idleresume}
    
  • 现在,因为 sleepwatcher 空闲命令似乎无法使用 launchctl 工作(为什么我们没有安装 launchctl plists),我们需要创建一个 loginhook 来在用户登录时运行 sleepwatcher,以及一个 logouthook 来在用户注销时终止它(相应地更改“your_username”):

    sudo defaults write com.apple.loginwindow LoginHook /Users/your_username/.loginhook
    sudo defaults write com.apple.loginwindow LogoutHook /Users/your_username/.logouthook
    

    将以下几行放入 ~/.loginhook 脚本中:

    #!/bin/sh
    /usr/local/sbin/sleepwatcher -d -t 150 -i /Users/your_username/.idle -R /Users/your_username/.idleresume
    

    将 150 更改为您想要的任何延迟,以十分之一秒为单位(因此 150 = 15 秒)。

    并将以下几行放入 ~/.logouthook 脚本中:

    #!/bin/sh
    kill -9 `ps ax | grep sleepwatcher | cut -d ' ' -f 3`
    
  • 编写简短的命令行 AppleScript,在空闲时切换到专用的空白处,并在用户恢复输入时返回。假设空格是数字 2,并且您使用它control作为直接转到空格的键,

    在 ~/.idle 脚本中,添加以下行:

      #!/bin/sh
      osascript -e 'tell application "System Events" to keystroke "2" using control down'
    

    类似地,在 ~/.idleresume 脚本中,添加以下几行

      #!/bin/sh
      osascript -e 'tell application "System Events" to keystroke "1" using control down'
    
  • 最后,注销并重新登录。完成!

相关内容