百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

仅花一天时间,开发者重制 32 年前经典 Mac 应用!

qiyuwang 2024-10-11 18:21 9 浏览 0 评论

【CSDN 编者按】在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情。今天要介绍的是一款仅用一天时间重制的经典 Macintosh 应用——Stapler。这款应用最初发布于1992年,现在由一位充满激情的开发者重新打造,不仅保留了原汁原味的功能,还加入了现代化的改进和特性,使其更适合现代 macOS 用户的需求。

原文链接:https://blog.gingerbeardman.com/2024/08/10/stapler-i-remade-a-32-year-old-classic-macintosh-app/

作者 | Matt Sephton 翻译 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

几天前,我在 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 > 退出应用程序时关闭窗口。

然后在退出应用时保留应用的窗口打开状态。这样下次启动应用时,其窗口将恢复到之前的大小和位置。如果你先关闭窗口,那么应用将恢复到没有窗口打开的状态。

相关推荐

# 安装打开 ubuntu-22.04.3-LTS 报错 解决方案

#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...

利用阿里云镜像在ubuntu上安装Docker

简介:...

如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本

UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...

Ubuntu 16.10内部代号确认为Yakkety Yak

在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...

如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)

在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

如何查看Linux的IP地址(如何查看Linux的ip地址)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...

怎么看电脑系统?(怎么看电脑系统配置)

要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...

如何查询 Linux 内核版本?这些命令一定要会!

Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...

深度剖析:Linux下查看系统版本与CPU架构

在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...

504 错误代码解析与应对策略(504错误咋解决)

在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...

猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录

10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...

域名解析的原理是什么?域名解析的流程是怎样的?

域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...

Linux无法解析域名的解决办法(linux 不能解析域名)

如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。  此时,需要手动修改配置文件:  /etc/resolv.conf  将域名解析服务器手动添加到配置文件中  该文件是DNS域名解...

域名劫持是什么?(域名劫持是什么)

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...

取消回复欢迎 发表评论: