保存整个桌面状态?

发布于 2024-07-11 01:19:12 字数 790 浏览 9 评论 0原文

我希望有一个实用程序可以保存和恢复我当前的桌面状态,就像 Firefox 中的会话一样。 最好的情况是,它会冻结每个应用程序的状态、打开的窗口位置等,并提供一个可编写脚本的界面来随时恢复它们,就像您离开它们一样。

更现实的是,我可以列出打开的应用程序、隐藏/最小化它们、从扩展坞中隐藏它们等等,以便恢复它们(如果它们仍然打开)看起来会恢复它们 - 这样它就会很难意外地关闭它们。

最起码,我可以为每个保存的会话向 Leopard Spaces 添加一个新的桌面表面,并将所有内容移动到那里,使用 Spaces 本身作为一种堆栈。

用例是:

  1. 我开始做一些事情 - 比如说,这个问题 - 所以我在 Firefox 中打开 stackoverflow,启动 XCode 和 ScriptDebugger,我写了几行代码,然后意识到我被困住了,直到我找到一个回答
  2. 我向 iCal 添加“继续处理 SessionSaver”日历事件,或向 OmniFocus 添加任务
  3. 我保存当前会话
  4. 我将 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:

  1. 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
  2. I add a "Keep working on SessionSaver" calendar event to iCal, or a task to OmniFocus
  3. I save my current session
  4. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光是把杀猪刀 2024-07-18 01:19:12

如果你想冻结应用程序的状态,这是挂起/休眠的作用吗?

编辑:刚刚意识到你想要存档的内容。 我正在使用 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.

千秋岁 2024-07-18 01:19:12

您可以使用虚拟机执行类似的操作,但显然会有性能损失,而且我不确定您是否可以在虚拟机下运行 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.

罪#恶を代价 2024-07-18 01:19:12

我最近看到了一些尝试...

重新启动

工作集

I've seen a few attempts at this lately...

Relaunch

Worksets

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文