僅花一天時間,開發者重製 32 年前經典 Mac 應用!

来源:https://www.cnblogs.com/jssst/p/18367055
-Advertisement-
Play Games

導讀:在這個快節奏的技術世界里,重溫過去並從中汲取靈感總是一件有趣的事情。今天要介紹的是一款僅用一天時間重製的經典 Macintosh 應用——Stapler。這款應用最初發佈於1992年,現在由一位充滿激情的開發者重新打造,不僅保留了原汁原味的功能,還加入了現代化的改進和特性,使其更適合現代 ma ...


導讀:在這個快節奏的技術世界里,重溫過去並從中汲取靈感總是一件有趣的事情。今天要介紹的是一款僅用一天時間重製的經典 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 提供的應用程式。

其他


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • WPFUI報錯 page does not have a parameterless constructor. If you are using Wpf.Ui.IPageService do not navigate initially and don't use Cache or Precache ...
  • 邁信達音視頻字幕軟體(MaixindaSubtitle)是一款專註於自動化視頻轉錄文本、字幕製作、字幕翻譯的AI自動化字幕軟體。通過AI一鍵生成本地音頻與視頻的字幕文件,及翻譯字幕內容。使用AI提取音視頻對話內容後翻譯、生成字幕文件,可以低成本並高效地將任意語言的視頻、音頻轉錄並翻譯為目標語言,適用 ...
  • 前言 在Web應用項目中許可權認證是個繞不開的話題,傳統方法複雜又耗時。MiniAuth推出專為.NET開發者設計的簡單、實用的許可權認證項目。 MiniAuth,作為ASP.NET Core的插件,讓我們快速輕鬆實現用戶登錄、許可權檢查等功能。它支持多種認證方式,如JWT、Cookie,且易於集成到現有 ...
  • 案例 案例一 server.c #include <stdio.h> // 標準輸入輸出 #include <stdlib.h> //提供通用的工具函數,例如記憶體分配和程式退出。 #include <string.h> //提供字元串處理函數。 #include <unistd.h> //提供對 P ...
  • @目錄1.前期準備1.1 製作啟動盤1.2關閉快速啟動、安全啟動、bitlocker1.2.1 原因1.2.2 進入BIOSshell命令行進入BIOSwindows設置中高級啟動在開機時狂按某個鍵進入BIOS1.2.3 關閉Fast boot和Secure boot1.3 劃分磁碟空間1.3.1 ...
  • 環境ubuntu20.04 Arm官網有源碼和編譯鏈。但是沒有編譯手冊。 從安裝版本中拿到10.3-2021.07-x86_64-aarch64-none-linux-gnu-manifest.txt 根據裡面的記錄,去進行配置和編譯。 官網下載: https://developer.arm.com ...
  • 本方式使用docker Swarm集群的方式創建overlay 網路進行打通 背景 因java微服務使用nacos做配置中心,為瞭解決Nacos服務註冊使用Docker容器內網ip問題,使用此方案 前置條件 1、宿主機之間需要開通埠 管理埠: 2377/tcp: 用於管理 Swarm 模式集群。 ...
  • 用了好幾年Xfce桌面了,但是從來沒有仔細研究過Xfce底下相關的運行邏輯,最近才對相關的底層概念感興趣並去嘗試瞭解了一下,但是它的體系架構以及複雜的依賴關係令初來乍到者望而卻步。沒辦法,寫點什麼方便理解吧。 這一系列文章主要是探討Xfce底層實現的,不會過多聚焦於美化之類的話題。我的環境是Arch ...
一周排行
    -Advertisement-
    Play Games
  • 前言 推薦一款基於.NET 8、WPF、Prism.DryIoc、MVVM設計模式、Blazor以及MySQL資料庫構建的企業級工作流系統的WPF客戶端框架-AIStudio.Wpf.AClient 6.0。 項目介紹 框架採用了 Prism 框架來實現 MVVM 模式,不僅簡化了 MVVM 的典型 ...
  • 先看一下效果吧: 我們直接通過改造一下原版的TreeView來實現上面這個效果 我們先創建一個普通的TreeView 代碼很簡單: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技術部"> <TreeViewItem He ...
  • 1. 生成式 AI 簡介 https://imp.i384100.net/LXYmq3 2. Python 語言 https://imp.i384100.net/5gmXXo 3. 統計和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 數 ...
  • 本文為大家介紹下.NET解壓/壓縮zip文件。雖然解壓縮不是啥核心技術,但壓縮性能以及進度處理還是需要關註下,針對使用較多的zip開源組件驗證,給大家提供個技術選型參考 之前在《.NET WebSocket高併發通信阻塞問題 - 唐宋元明清2188 - 博客園 (cnblogs.com)》講過,團隊 ...
  • 之前寫過兩篇關於Roslyn源生成器生成源代碼的用例,今天使用Roslyn的代碼修複器CodeFixProvider實現一個cs文件頭部註釋的功能, 代碼修複器會同時涉及到CodeFixProvider和DiagnosticAnalyzer, 實現FileHeaderAnalyzer 首先我們知道修 ...
  • 在軟體行業,經常會聽到一句話“文不如表,表不如圖”說明瞭圖形在軟體應用中的重要性。同樣在WPF開發中,為了程式美觀或者業務需要,經常會用到各種個樣的圖形。今天以一些簡單的小例子,簡述WPF開發中幾何圖形(Geometry)相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 在 C# 中使用 RabbitMQ 通過簡訊發送重置後的密碼到用戶的手機號上,你可以按照以下步驟進行 1.安裝 RabbitMQ 客戶端庫 首先,確保你已經安裝了 RabbitMQ 客戶端庫。你可以通過 NuGet 包管理器來安裝: dotnet add package RabbitMQ.Clien ...
  • 1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...