保存整个桌面状态?
我希望有一个实用程序可以保存和恢复我当前的桌面状态,就像 Firefox 中的会话一样。 最好的情况是,它会冻结每个应用程序的状态、打开的窗口位置等,并提供一个可编写脚本的界面来随时恢复它们,就像您离开它们一样。
更现实的是,我可以列出打开的应用程序、隐藏/最小化它们、从扩展坞中隐藏它们等等,以便恢复它们(如果它们仍然打开)看起来会恢复它们 - 这样它就会很难意外地关闭它们。
最起码,我可以为每个保存的会话向 Leopard Spaces 添加一个新的桌面表面,并将所有内容移动到那里,使用 Spaces 本身作为一种堆栈。
用例是:
- 我开始做一些事情 - 比如说,这个问题 - 所以我在 Firefox 中打开 stackoverflow,启动 XCode 和 ScriptDebugger,我写了几行代码,然后意识到我被困住了,直到我找到一个回答
- 我向 iCal 添加“继续处理 SessionSaver”日历事件,或向 OmniFocus 添加任务
- 我保存当前会话
- 我将 AppleScript 附加到 iCal 事件或 OmniFocus 任务,该任务将重新打开我在步骤 3 中保存的
会话 我在Carbon 关于归档窗口层次结构,但我希望它能在 Snow Leopard 的 64 位 Cocoa 中工作。 (我目前在 Mac Pro 上使用 10.5.6。)
FinderWindowManager 为 Finder 执行类似的操作视窗。
I'd love to have a utility that would save and restore my current desktop state, much like sessions in Firefox. At best, it would freeze every application's state, open window positions, etc. and provide a scriptable interface to restore them at any time, just as you'd left them.
More realistically, I could make a list of what applications were open, hide/minimize them, hide them from the dock, etc., so that restoring them (if they were still open) would appear to resume them - and so that it would be hard to accidentally close them.
Most minimally, I could add a new desktop surface to Leopard Spaces for each saved session, and move everything there, using Spaces itself as a sort of stack.
The use case is:
- I start working on something - say, this very question - and so I open up stackoverflow in Firefox, I launch XCode and ScriptDebugger, I write a few lines of code, and realize I'm stuck till I find an answer
- I add a "Keep working on SessionSaver" calendar event to iCal, or a task to OmniFocus
- I save my current session
- I attach an AppleScript to the iCal event or OmniFocus task that will reopen the session I saved in step 3
I see something in Carbon about archiving window hierarchies, but I'd want this to work in 64-bit Cocoa in Snow Leopard. (I'm currently using 10.5.6 on a Mac Pro.)
FinderWindowManager does something like this for Finder windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果你想冻结应用程序的状态,这是挂起/休眠的作用吗?
编辑:刚刚意识到你想要存档的内容。 我正在使用 Linux,如果我想要这样的东西,我会启动一个新的 X 会话。
If you want to freeze the applications' states, is it what suspend/hibernate does?
Edit: Just realized what you want to archive. I'm using Linux, I would start a new X session if I want something like this.
您可以使用虚拟机执行类似的操作,但显然会有性能损失,而且我不确定您是否可以在虚拟机下运行 Leopard 本身。 (您只需暂停虚拟机复制它,然后重新启动它)。
当然,为操作系统本地执行此操作将需要大量存储,因为您必须复制内存和整个硬盘驱动器(因为对硬盘驱动器的更改可能与保存的状态不兼容)。
我想在未来的某个时候可以使用 ZFS 来完成类似的事情。
You could do something like this with virtual machines, though obviously there would be a performance penalty and I'm not sure whether you can run Leopard itself under a virtual machine. (You just suspend the VM duplicate it and then restart it).
Certainly doing this natively for the OS would require a huge amount of storage as you have to duplicate the memory and the entire hard drive (as changes to the hard drive could be incompatible with the saved state).
I imagine that at somepoint in the future something like this could be done using ZFS.
我最近看到了一些尝试...
重新启动
工作集
I've seen a few attempts at this lately...
Relaunch
Worksets