【CSDN 编者按】在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情。今天要介绍的是一款仅用一天时间重制的经典 Macintosh 应用——Stapler。这款应用最初发布于1992年,现在由一位充满激情的开发者重新打造,不仅保留了原汁原味的功能,还加入了现代化的改进和特性,使其更适合现代 macOS 用户的需求。
原文链接:https://blog.gingerbeardman.com/2024/08/10/stapler-i-remade-a-32-year-old-classic-macintosh-app/
几天前,我在 Hacker News 上看到了某些 Linux 窗口管理器中的一个功能,它们允许用户收集来自不同应用的标签页。
这让我想起了 BeOS,同时也让我想起了 1992 年经典 Macintosh 上的一款应用 Stapler,以及我过去曾讨论过的它的“精神继任者”LaunchList。这两个应用都类似,都允许用户收集并启动与特定任务相关的所有应用、文件、文件夹、文档,从而节省时间。
在这种灵感下,我花了大概一天的时间,在现代 macOS 上重现了 32 年前的这一应用概念!
虽然我的应用受到了 Stapler(连名字都一样)和 LaunchList 的启发,但我在应用里添加了自己的改进和功能,更像是两者的混合体。例如,Stapler 没有拖放功能,而 LaunchList 没有零点击自动启动功能。我的目标是让应用尽可能简单,但不过度简化。为此,应用中没有任何偏好设置或选项。
感兴趣的开发者,可前往我的 GitHub 查看完整详情和下载链接:https://github.com/gingerbeardman/stapler。
许多好东西总是过早地被遗忘了
这个应用的基本设想是,为每个项目创建一个 Stapler 文档,里面包含相关的应用、文件、文件夹等,然后你可以通过启动单个文档一次性打开它们。每个文档包含一个别名列表,这些别名可通过应用进行管理、检查和启动。最关键的时间节省点在于,如果你直接启动一个 Stapler 文档,它列表中的所有项目都会自动启动。
例如:
工作:文本编辑器、运行当前游戏、像素艺术编辑器、位图字体应用、待办事项列表
娱乐:音乐应用、Hacker News 应用、Twitter 应用、用于定位窗口的脚本
电影:运行 Caffeine 保持计算机不断电,快捷方式让显示器进入休眠模式
这种工作方式与在计算机上常见的思维方式有所不同——它是基于任务的,而不是基于应用或文档的。确实,有些人可能会说这是一种过时的工作方式。但我一直坚持认为,许多好东西总是过早地被遗忘了,就像 System 7(我还在用它)、BeOS、OS/2、Amiga Workbench、GEM 以及 Atari ST 等平台上的许多替代桌面环境。
因此,我想看看我是否能在实践中验证这个想法,而不仅仅是空谈。Stapler
关于 Stapler 的详细信息
这个应用是用 Swift 和 SwiftUI 编写的,体积大小只有 640KB,其中大约三分之一是各种不同大小和分辨率的图标文件。通过创建一个基于文档的应用程序,你可以免费获得大量功能,比如文档/标签/窗口管理、撤销/重做(尽管我仍需要监控并刷新应用程序窗口)等更多功能。
编辑器是一个原生的 macOS 窗口,有点像文件管理器中的列表视图、电子表格或一个小文件夹……这主要取决于你的看法。此外,还有一些菜单命令和键盘快捷键。你可以同时打开多个窗口,例如每个常见任务都有一个窗口,这样你就可以轻松启动完整任务或部分任务。
每个列表中的项目都是 macOS 书签(有时称为安全范围内的书签),这是一种经过授权/验证/安全的别名类型,已经存在大约 10 到 15 年了。它们不仅包含文件路径,还包括许多其他信息。随着 macOS 的安全性不断提高,访问文件的推荐方式是通过正常的系统权限和安全层来检索这些书签。如果没有这些书签,仅使用纯文本路径,我将无法在 Quick Look 中显示完整的图像或轻松启动列表项。有一个关键好处是,即使文件被移动到同一个磁盘的其他地方,甚至是不同的卷上,书签仍然可以解析到正确的路径!
我将这些项目存储为 JSON 格式的文件,主要是因为我更喜欢 JSON 而不是 XML(XML 是主要/默认的选择)。我希望文件仍能在人类可读的范围内,并且可以在一定程度上进行编辑。
文件是使用该文件指定的默认应用来启动的,因此可以根据每个文件单独更改。比如,个别图像可能会在图像编辑器、图像查看器、运行 OCR 的应用、运行 OCR 的脚本等中打开。
处理文件既有趣又烦人,有趣的是你可以轻松获取文件的书签,烦人的是你必须跳过很多安全和沙盒保护的障碍,最终不得不以冗长的方式处理文件请求,还需要调整 plist 文件中的条目以赋予应用适当的权限。我使用了一些 SwiftUI 的特性,这意味着应用无法在 macOS 14 Sonoma 之前的操作系统上运行。我认为现代 macOS 的开发有些参差不齐,不过取舍由人吧。
图标 & 小贴士
由于这个项目是我在周末快速完成的,所以进行到设计图标时,我就有点动力不足了。我很希望能有一个更好的应用图标,以及一个专门的文档图标,欢迎任何图标设计师都可以参与进来(https://github.com/gingerbeardman/stapler/issues/1)。
最后,确保取消勾选:系统设置 > Desktop & Dock > Windows > 退出应用程序时关闭窗口。
然后在退出应用时保留应用的窗口打开状态。这样下次启动应用时,其窗口将恢复到之前的大小和位置。如果你先关闭窗口,那么应用将恢复到没有窗口打开的状态。