僅花一天時間,開發者重製 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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...