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

作者 | Matt Sephton

翻译 | Jonathan Ssst

几天前,我在 Hacker News 上读到一些 Linux 窗口管理器的一项功能,它们允许从不同的应用程序中收集标签页。

这让我想起了 BeOS,但同时也让我想起了 1992 年的一款经典 Macintosh 应用程序——Stapler,以及我过去是如何谈论过它和它的精神继承者 LaunchList 的。它们都是类似的应用程序,允许你收集并启动与特定任务相关的所有应用程序、文件、文件夹和文档,从而节省时间。正如阿里·兰塔卡里(Ali Rantakari)在 2009 年所说的那样,“在 Mac 上同时打开一堆东西”。

因此,在过去的一天多时间里,我为现代 macOS 构建了自己的这一概念!

虽然我的应用受到了 Stapler(连名字都是)和 LaunchList 的启发,但我的应用增加了自己的改进和功能,更像是两者的混合体。例如,Stapler 没有拖放功能,LaunchList 没有零点击自动启动功能。我的目标是尽可能简单,但不能更简单。

详情、下载和使用方法请参阅 GitHub 软件仓库:https://github.com/gingerbeardman/stapler

图:Stapler,适用于现代 macOS(12.0 或更新版本)

告诉我更多

其原理是为每个项目设置一个 Stapler 文档,其中包含相关的应用程序、文件、文件夹等。然后,你就可以通过启动单个文档一次性打开它们。每个文档都包含一个别名列表,可以使用该应用程序进行管理、检查和启动。省时的关键在于,如果直接启动订书机文档,其列表中的所有项目都会自动启动。酷毙了!

  • 工作:文本编辑器、运行当前游戏、像素艺术编辑器、位图字体应用程序、待办事项列表
  • 播放:音乐应用程序、Hacker News 应用程序、Twitter 应用程序、定位窗口的脚本
  • 电影:运行 Caffeine 以保持计算机开机状态、让显示器进入休眠状态的快捷方式

在电脑上工作,这是一种奇怪的思维方式——它以任务为基础,而不是以应用程序或文档为基础。的确,有人可能会说这是一种过时的工作方式。但我一直在鼓吹,有很多好东西都随着 System 7(虽然我还在用它)、BeOS、OS/2、Amiga Workbench、GEM 和雅达利 ST 等众多替代桌面的记忆被过早地抛在了脑后。因此,我想看看我是否能说到做到。

详细信息

它是用 Swift 和 SwiftUI 编写的,大小为 640KB,其中约三分之一是许多不同大小和分辨率的图标文件。通过创建基于文档的应用程序,您可以免费获得大量功能,例如文档/标签/窗口管理、撤销/重做(不过我还是需要注意并刷新应用程序窗口)等等。

编辑器是一个本地 macOS 窗口,有点像文件管理器中的列表视图、电子表格或小文件夹......这取决于你的观点。此外还有一些菜单命令和键盘对应功能。您可以同时打开多个窗口,例如为所有常用任务各打开一个窗口,这样就能以最小的代价启动全部或部分任务。

每个列表中的项目都是 macOS 书签(有时也称为安全范围书签),是一种经过授权/验证/安全的别名(事实上,它们在代码中仍被称为别名),已经存在了大约 10-15 年。它们包含路径和更多信息。随着 macOS 的封锁程度越来越高,建议访问文件的方式是通过正常的系统权限和安全层检索这些书签。如果没有书签,例如只使用纯文本路径,我就无法在快速查看中显示完整图像,也无法轻松启动列表项。这样做的一个主要好处是,即使文件被移动到同一磁盘的其他地方,甚至是不同的卷中,书签仍然可以解析!

我在保存的文件中将项目存储为 JSON 格式,只是因为比起 XML(这是主要/默认选项),我更喜欢 JSON 格式。我希望文件在一定程度上仍然是可读和可编辑的。

文件使用该文件指定的默认应用程序启动,因此可以根据每个文件进行更改。单个图像可能会在图像编辑器、图像查看器、运行 OCR 的应用程序、运行 OCR 的脚本等中打开。

处理文件既酷又烦,酷的是你可以如此轻松地将书签指向文件,烦的是你必须跳过这么多圈才能绕过安全和沙盒保护,最终不得不以一种啰嗦的方式进行文件请求,然后还必须调整 plist 条目,以便为应用提供正确的权限。我正在使用 SwiftUI 的某些功能,这意味着应用程序无法在 macOS 14 Sonoma 之前的版本上运行。总而言之,我认为现代 macOS 开发有点喜忧参半。要么接受,要么放弃。

图标

由于这是一个周末的快速项目,我在设计图标时有点力不从心。我希望能有一个更好的应用程序图标,以及一个特定的文档图标,所以任何图标设计师都可以加入进来(https://github.com/gingerbeardman/stapler/issues/1)。

额外提示

确保取消选中: System Settings > Desktop & Dock > Windows > Close windows when quitting an application

然后,在退出应用程序时让其窗口保持打开状态。 当您下次启动应用程序时,其窗口将恢复到以前的大小和位置。 如果您先关闭窗口,那么应用程序将恢复到未打开窗口的状态。

感谢:

我的好朋友戴夫-罗伯茨(Serendipity App Company)的集思广益,让我明白了为什么让应用程序在从 Finder 打开文档时做出不同的反应会如此困难。 撕掉它,重新开始! 感谢 Dustin Mierau 为现代 macOS 重塑已被遗忘的旧版应用程序,开启了这一潮流。 永远感谢 Chris Patterson 和 Ali Rantakari 提供的应用程序。

其他

仅花一天时间,开发者重制 32 年前经典 Mac 应用!的更多相关文章

  1. [Unity3D]自己动手重制坦克舰队ArmadaTank

    [Unity3D]自己动手重制坦克舰队ArmadaTank 我玩过一款坦克游戏ArmadaTank(坦克舰队),如下图所示 几个月前我尝试用Unity3D重制这款游戏,已经可以玩起来了.下面是在PC上 ...

  2. 使用AndEngine重制《是男人就上一百层》

    1.为什么还要做<是男人就上一百层> 一是在用Android原生API开发完<是男人就上一百层>以后,一直想体验一下用引擎开发游戏是个什么感觉,顺便也让游戏听上去高大上一些(使 ...

  3. [Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起

    [Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起 在上一篇里我给出了重制的坦克舰队效果图和试玩程序.本篇介绍一下玩家坦克和敌方坦克碰撞问题. +BIT祝威+悄悄在此留下版了个 ...

  4. Xamarin.Forms之UserDialogs 重制版本

    在 forms 里面,目前使用比较多的弹出组件是 Acr.UserDialogs ,但是这个组件有些小问题,比如 loading .hide 会同时把 toast 给一起关掉,android 下的 t ...

  5. WINDOWS 2003系统时间24小时制与12小时显示格式不一致问题与解决

    WINDOWS 2003 SERVER系统时间24小时制与12小时格式不一致问题,而导致论坛或BLOG不能正常显示更新日期的问题及解决方法问题的方法. 在WIN2003上出现这种情况的原因是在程序中使 ...

  6. 花一天时间试玩vsphere6.7(EXSI)服务器版的vmware

    花一天时间试玩vsphere6.7(EXSI)服务器版的vmware 要注册账号(2019年11月14注册): 登陆网址:https://my.vmware.com/cn/group/vmware/h ...

  7. 12小时制时间&&24小时制时间

    今天在获取时间的时候发现,插入到数据库中的时间,其中下午的时间直接显示01,02的样子...查了下资料发现了端倪, java.text.SimpleDateFormat f=new java.text ...

  8. Linux系统硬件时间12小时制和24小时制表示设置

    目前的服务器status是下面这样的 服务器系统    centos7 Linux系统时间      Fri Mar 20 15:26:27 CST 2020 Linux系统硬件时间  Fri 20 ...

  9. 重制AdvanceWars第一步 -- 搞定地图

    首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏.初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高 ...

  10. 16进制 32进制 base64之间的区别

    Base64: 包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/; Base32: 而Base32中只有大写字母(A-Z)和数字234567: Base16: 而Base16就是16 ...

随机推荐

  1. CF1320D Reachable Strings

    110和011互相转化,相当于就是0在连续两个1的情况下,移动两个位置 能够发现,0的位置的奇偶不会改变,且很多个0之间的相对位置不会改变 猜想考虑这个答案只跟0的奇偶性有关,下面小证一下:(注意下面 ...

  2. CodeFormer一款既能图像修复、还能视频增强去码的AI软件(下载介绍)

    CodeFormer是一款强大的人工智能工具,主要用于图像和视频的修复和增强.它基于深度学习技术,特别是人脸复原模型,可以轻松修复和增强面部图像,提升照片和视频的质量和视觉效果 工作原理 1.通过自动 ...

  3. C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

    DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法.算法.技巧.中间件.类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.N ...

  4. 逻辑回归求解二分类问题以及SPSS的实现

    分类问题就是给出物质的属性,判断其属于什么成分,本文将讲述逻辑回归求解二分类问题 本文着重于模型的实现,对于推导只是概括性的叙述 目录 一.问题提出 二.逻辑回归函数logistic 1.线性线性概率 ...

  5. VulnHub - breach系列:breach-2.1

    VulnHub - breach系列:breach-2.1 靶机描述 Breach 2.0 是多部分系列中的第二部分,是一项 boot2root/CTF 挑战,旨在展示真实场景,沿途充满了曲折和恶作剧 ...

  6. 阿里云服务器安装Docker Compose

    官网地址:https://docs.docker.com/compose/install/ 1. sudo curl -L "https://github.com/docker/compos ...

  7. Microsoft Compatibility telemetry占cpu资源高

    1.在Windows10系统卡的时候,打开任务管理器,发现Microsoft Compatibility telemetry占用了大量的系统资源,特别是CPU占用率非常高. 位置:控制面板->管 ...

  8. @Autowired和@Resource有哪些区别

    一.注解的作用 @Autowired和@Resource都是用来实现Bean的自动注入功能. 二.@Autowired和@Resource的区别 1.所属的包不同 @Autowired是Spring的 ...

  9. 算法金 | 来了,pandas 2.0

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今日 210+/10000,内含 Pandas 是一个强大的数据分析库,广泛应用于科学 ...

  10. 10分钟快速掌握分布式版本控制系统GIT命令集【形成知识体系篇】

    任务要求 要求全部使用git命令实现 1.创建本地仓库,项目名称为hniu_site 2.在仓库下创建多级(目录)文件夹cn/hniu/班级名称(例如软件2108,cn/hniu/rj2108) 3. ...