首页 > 其他分享 >仅花一天时间,开发者重制 32 年前经典 Mac 应用!

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

时间:2024-08-19 12:16:21浏览次数:5  
标签:文件 macOS 窗口 32 应用程序 Mac 文档 Stapler 仅花

导读:在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情。今天要介绍的是一款仅用一天时间重制的经典 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

image

图: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 提供的应用程序。

其他

标签:文件,macOS,窗口,32,应用程序,Mac,文档,Stapler,仅花
From: https://www.cnblogs.com/jssst/p/18367055

相关文章

  • YC323C [ 20240724 CQYC NOIP 模拟赛 T3 ] 手环(ring)
    题意给定两个长为\(n\)的\(0/1\)串\(A,B\)。每次操作:对\(A\)向左或向右循环移位。选择\(0\lep<n\landB_i=1\),则将\(A_i\)取反。求将\(A\)变为\(B\)的最小操作次数。无解输出-1。\(n\le2000\)Sol显然无解当且仅当\(A\)和\(B\)不相同且\(B......
  • Unity 中 Color 与 Color32 的区别
    1.存储方式Color用四个浮点数(float)来表示RGBA,取值范围均是0到1举例:varorange=newColor(1f,0.5f,0f,1f);而Color32使用四个字节(byte)表示RGBA,取值范围是0到255举例:varorange=newColor32(255,128,0,255);2.区别由存储方式可以看出,Color32采用字节存储,占......
  • JetBrains DataSpell 2024.2 (macOS, Linux, Windows) - 专业数据科学家的 IDE
    JetBrainsDataSpell2024.2(macOS,Linux,Windows)-专业数据科学家的IDEJetBrains跨平台开发者工具请访问原文链接:https://sysin.org/blog/jetbrains-dataspell/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsDataSpell-专业数据科学家的IDE......
  • ESP32(WiFi&BLE)+4G摄像头视频语音模块-二次开发环境搭建
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/product/audioCamera.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  安装串口......
  • 【代码随想录训练营第42期 Day32打卡 - 从零开始动态规划 - LeetCode 509. 斐波那契数
    目录一、做题心得二、动规五步走三、题目与题解题目一:509.斐波那契数题目链接题解1:记忆性递归 题解2:动态规划题目二:70.爬楼梯 题目链接题解:动态规划题目三:746.使用最小花费爬楼梯题目链接题解:动态规划三、小结一、做题心得今天开始动态规划章节的第一......
  • 基于STM32的寄存器实现点亮LED--基于RUST实现
    main.rs#![no_std]#![no_main]usecore::ptr;usecortex_m_rt::entry;usepanic_haltas_;//当发生panic时停止执行//定义寄存器地址constRCC_BASE:u32=0x40021000;constGPIOB_BASE:u32=0x40010C00;constRCC_APB2ENR_OFFSET:u32=0x18;constGPIOB......
  • 专业图像处理与编辑软件Adobe Photoshop PS2024 win/mac软件安装下载
    一、软件概述1.1Photoshop简介AdobePhotoshop,简称PS,是全球领先的专业图像处理与编辑软件,由AdobeSystems开发和发行。自1990年问世以来,Photoshop凭借其强大的图像编辑、修复、合成及色彩管理能力,成为了图形设计师、摄影师、艺术家及数字内容创作者不可或缺的工具。1.2应......
  • PAT乙级1032 || 挖掘机技术哪家强(C示例)
    挖掘机技术哪家强为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开......
  • 基于STM32的寄存器实现点亮LED
    1.启动文件startup_stm32f103xe.s;********************(C)COPYRIGHT2017STMicroelectronics********************;*FileName:startup_stm32f103xe.s;*Author:MCDApplicationTeam;*Description:STM32F103xEDevicesvectort......
  • 正点原子领航者ZYNQ7020开发板 GMAC1 EMIO调试记录
    ZYNQ7020GMAC1EMIO裸机功能调试ZYNQ嵌入式系统开发流程1:创建Vivado工程2:创建ProcessSystem3:生成顶层HDL添加EMIO引脚约束4:生成Bitstream并导出到SDK启动SDK5:创建LWIPEcho测试工程6:编译工程并在开发板上进行测试LinuxKernel中GMIITORGMIIIP的......