YPWU
Trying to move text and other things
By Titan Wu
Mastodon Mastodon
  • Subscribe
  • Archive
  • About
  • When Keyboard Shortcuts Become a Burden

    Wednesday, February 5, 2025

    I’ve been using Alfred on my Mac since 2013. Over time, I’ve found myself increasingly relying on it to initiate various tasks—searching the file system or the web, opening files, adding reminders, or interacting with AI—to the point where it’s no longer just an app launcher or a Spotlight-like tool. These days, I typically use Alfred 40-50 times a day, which has led to an unintended side effect: I now use the keyboard more than ever on my Mac. As a result, I’ve grown to prefer using the keyboard over the mouse and the trackpad.

    At first, I appreciated this shift—until it started to feel like a burden.

    Using the keyboard means that I don’t need to move my hand to reach the pointing devices. However, I found that the more I use the keyboard instead of the mouse or trackpad, the more commands and keyboard shortcuts I have to remember. I thought that eventually I would get used to it and remember all the commands and their key combinations I needed if I used them often enough. But in recent years, I’ve realized that I just can’t keep up, because:

    1. The most often used keyboard shortcuts do become my muscle memory, but those I use less frequently don’t. And they might still be essential.
    2. As I continue to integrate new software into my workflow, I’m always forced to remember new keyboard shortcuts.

    I can’t help but wonder if the advantages of almost exclusively using the keyboard are really that compelling.

    Using a mouse may not be the fastest or most efficient way to interact with a computer, but it’s certainly the easiest. We all know the benefits of GUI. When most of us need to click a button or an option, we simply glance at it or roughly recall its location, move the cursor, click it, and it’s done. We don’t have to put the cursor on the center of the button precisely. Any part—even just a few pixels—of the button is good to go. In contrast, if we want to use a keyboard shortcut to do the same task, we have to remember it and the keystrokes must be 100 percent right, sometimes even the order of the keystrokes matters.

    Back to my case. When I try to memorize some new keyboard shortcuts, I feel like I’m learning a bunch of new vocabulary. Just like how the verb “paste” changes with tenses, the command “Paste” has several slightly different options: Paste, Paste and Match Style, Paste in Plain Text, etc. Each one of them has its own unique shortcut, which means I have to remember all of them if I want to paste something properly. But using a mouse or a trackpad is different. There is almost no memory involved, and it’s easier.

    In my experience, clicking Edit on the menu bar to find the Paste and Match Style option is much easier than remembering the key combinations. It’s like looking up a word in a dictionary vs. trying to memorize a word and all its variations. (If you’re like me and find vocabulary learning challenging, this can feel like a mental overload.)

    After I realized it, I’m not as obsessed with using keyboard shortcuts as I used to be. I think perhaps there is a balance between using keyboards and pointing devices.

    But what if I still want to shift the balance slightly in favor of the keyboard? What can I do about it? Let’s save this topic for a future article.


  • 我的 2023、2024 年軟體清單

    Wednesday, January 8, 2025

    一下子 2025 年就過了一週 😱 發現之前並沒有分享過 2023 年版本的好產品清單,於是決定跟 2024 年的合併整理,而且很幸運地有幾個產品竟然都剛好出現在去年底前 XD

    本文會分享一些過去兩年我經常使用、推出很棒的升級或新功能,或是新發現的好軟體——未必是最新的軟體,更常見的情況是我因為有需求而找到這樣的軟體。它們大多是 Mac 或 iOS app,一部分是 web app。至於我已經使用很久、與 2023、2024 年比較無關的,例如 Keynote、Drafts 或 Reeder Classic 1等等,就不特別列出來了。

    我會從清單中挑幾個出來寫一段簡短的介紹,特別是那些我在使用時每每讚嘆「啊,真是個好產品!」或是發現「原來還可以這樣!」的,又或者每次使用時總是感到特別愉快,甚至到了我會想要「多用」的地步,就好比當你買了很喜歡的衣服,會想找機會穿出門。將來有機會的話,我會想要為這些產品寫一篇(或多篇)介紹或教學。

    前述種種情緒伴隨的是我對開發者、設計師的敬佩,也是為什麼我想要寫這篇文章:我想跟大家分享這些好產品。它們之中有些當然已是家喻戶曉,有些相對比較小眾,但我百分之百希望他們可以持續投注心血,開發這些好產品。

    以下是經過簡易分類的清單,這些 app 的個別介紹會集中在清單之後依序排列,點擊 app 名稱可以跳到我寫的介紹,要購買或下載 app 可以點擊「網站(或「下載」)」連結,我想這樣的設計可能比較適合閱讀。假如你有特別想知道哪個 app 或是使用方式也歡迎提出,我會試著回答看看 XD

    本文目錄
    • 清單
      1. 編輯器相關
      2. 字體
      3. Email
      4. Utility
      5. To-do
      6. 其他生產力工具
      7. 音樂與 podcast
      8. 相機 app
      9. 圖形與設計
      10. 檔案同步與資料備份
      11. 其他
      12. 覺得很棒但還用得不多
      13. 好玩
      14. 退步的產品
    • 個別介紹
      1. Bike Outliner,大綱軟體(macOS)
      2. iA Writer 7,寫作軟體(macOS/iOS/iPadOS/Windows)
      3. BBEdit 15,文字與程式編輯器(macOS)
      4. Berkeley Mono V2,字體
      5. MailMate 2 (Beta),macOS IMAP email 軟體
      6. SpamSieve,macOS 垃圾郵件過濾軟體
      7. Fastmail,email 服務(web/iOS/iPadOS/Android)
      8. Mimestream,macOS Gmail 專用 email 軟體
      9. Alfred,macOS launcher
      10. Keyboard Maestro,macOS 自動化軟體
      11. Hazel,macOS 檔案自動化工具
      12. Pandoc,文件轉檔指令工具
      13. Wooshy,macOS 輔助使用軟體
      14. Warp,terminal emulator(macOS/Linux)
      15. Ghostty,terminal emulator(macOS/Linux)
      16. Ice,macOS Menu Bar 整理工具
      17. Things,待辦事項 app(macOS/iOS/iPadOS/watchOS)
      18. Taskpaper,macOS 純文字待辦事項軟體
      19. na,Taskpaper 指令工具
      20. Readwise,畫線與筆記彙整、同步服務(web/iOS/Android)
      21. BusyContacts,macOS 通訊錄 app
      22. MusicBox,(針對音樂的)「稍後再聽」app(macOS/iOS/iPadOS)
      23. Overcast,podcast app
      24. Zerocam 和 Zerocam Mono,分別是傻瓜相機 app(iOS/watchOS/Android)和傻瓜黑白相機 app(iOS)
      25. Halide Process Zero,Halide 新推出的最小化處理拍攝功能(iOS/iPadOS/watchOS)
      26. Sketch,macOS 向量圖形設計工具;Acorn,macOS 圖像編輯軟體

    清單

    編輯器相關

    • Bike Outliner,macOS 大綱軟體(網站)
    • iA Writer 7,寫作軟體(macOS/iOS/iPadOS/Windows)(網站)
    • BBEdit 15,macOS 文字與程式編輯器(網站)

    字體

    • Berkeley Mono V2,嚴格來說字體不是軟體而是數位資產 XD 不過這家 U.S. Graphics Company 的字體編譯器(font compiler)也算是一種 web app?: p (網站)

    Email

    • MailMate 2(Beta),macOS IMAP email 軟體(網站)
    • SpamSieve,macOS 垃圾郵件過濾軟體(網站)
    • Fastmail,email 服務(web/iOS/iPadOS/Android)(網站)
    • Mimestream,macOS Gmail 專用 email 軟體(網站)

    Utility

    • Alfred,macOS launcher (網站)
    • Keyboard Maestro 11,macOS 自動化軟體(網站)
    • Hazel 6,macOS 檔案自動化工具(網站)
    • Shortcuts,macOS/iOS/iPadOS 內建的自動化工具(網站)
    • CleanShot X,macOS 截圖工具(網站)
    • Pandoc,文件轉檔指令工具(網站)
    • Wooshy,macOS 輔助使用軟體(網站)
    • Warp,terminal emulator(macOS/Linux/Windows)(網站)
    • Ghostty,terminal emulator(macOS/Linux)(網站)
    • Ice,macOS Menu Bar 整理軟體(網站)

    To-do

    • Things 3,待辦事項 app(macOS/iOS/iPadOS/watchOS)(網站)
    • Taskpaper,macOS 純文字待辦事項軟體(網站)
    • na,為 Taskpaper 設計的指令工具(網站)
    • Reminders,macOS/iOS/iPadOS 內建待辦事項 app (網站)

    其他生產力工具

    • Readwise,畫線與筆記彙整、同步服務(web/iOS/Android)(網站)
    • Readwise Reader,Readwise 旗下的多功能閱讀軟體(web/iOS/Android,macOS 跟 Windows 都還是 alpha 版)(網站)
    • BusyContacts,macOS 通訊錄 app(網站)

    音樂與 podcast

    • MusicBox,(針對音樂的)「稍後再聽」app(macOS/iOS/iPadOS)(網站)
    • Overcast,podcast app(iOS/iPadOS/watchOS)(網站)
    • Snipd,整合 AI 功能的 podcast app (iOS/watchOS)(網站)

    相機 app

    • Zerocam,傻瓜相機 app(iOS/watchOS/Android)(下載)
    • Zerocam Mono,傻瓜黑白相機 app(iOS)(下載)
    • Halide Process Zero,Halide 新推出的最小化處理拍攝功能(iOS/iPadOS/watchOS)(網站)

    圖形與設計

    • Sketch,macOS 向量圖形設計工具(網站)
    • Acorn 8,macOS 圖像編輯軟體(網站)

    檔案同步與資料備份

    • Maestral,開源的 Dropbox 檔案同步軟體,也有 CLI(macOS/Linux)(網站)
    • Backblaze,雲端檔案備份服務(macOS/Windows)(網站)

    其他

    • Ivory,由 Tweetbot 團隊開發的 Mastodon app(macOS/iOS/iPadOS)(網站)
    • Weather Strip,資料視覺化天氣 app (macOS/iOS/iPadOS)(網站)
    • Octal,在 iPhone/iPad 上閱讀 Hacker News 的 app (網站)
    • macOS 15 Sequoia 可用鍵盤快速鍵叫出右鍵選單(context menu)(網站),我要講的只有這件事!XD 這個功能 Windows 應該 30 年前就有了吧?
    • ChatGPT desktop app(網站),不過很遺憾的,自從某次改版之後,以注音輸入法打字到一半、還在選字狀態下的文字會無預警消失。我有寫信去反映,他們表示知道有這個問題,也可以重現,只是還無法給出修正的時程。
    • Perplexity(網站)

    覺得很棒但還用得不多

    • Google Docs 推出 Tab 功能(網站),Google Docs 現在有了分頁(還有子分頁)功能(tab),我想這對文件的應用帶來許多可能性,可惜還不能預設將新的 tab 排在最上面。
    • FSNotes,Markdown 筆記軟體(macOS/iOS/iPadOS)(網站)
    • Fivenotes,便利貼軟體(macOS/iOS/iPadOS)(網站)
    • Tot,便利貼軟體(macOS/iOS/iPadOS)(網站)
    • Text Workflow,自動化文字處理工具(macOS/iOS/iPadOS)(網站)
    • Reeder,內容消費軟體(macOS/iOS/iPadOS)(網站)
    • AllTrails,戶外活動路線紀錄(web/iOS/watchOS/Android)(網站)
    • Kino,錄影 app(iOS)(網站)
    • Flighty,航班追蹤軟體(macOS/iOS/iPadOS/watchOS)(網站)

    好玩

    • Festivitas,macOS 節慶燈飾軟體 🎄 (網站)
    • GGtag,具備 RFID 功能、識別證大小的 e-paper 螢幕,可搭配web 介面使用(網站)

    附註說明:以上兩個我沒玩過,第一個是我長期 follow 的開發者 Simon B. Støvring 去年底開發的;另一個 GGtag 則是 @dlackty 推薦的 XD(Mouser 台灣好像有免運。)

    • Orion,透過 HDMI 把 iPad 變成外接螢幕,需要 USB-C 影像截取卡(iPadOS)(網站)
    • PixelPals,電子寵物 widget(iOS/iPadOS)(網站)
    • Cool-retro-term,開源的復古 terminal emulator(macOS/Linux)(網站),但我後來學到有 shader 這種酷東西,所以就很少打開了 : p

    退步的產品

    • Sonos,Sonos 音響 app(web/iOS/iPadOS/Android)(網站)
    • SoundSource,控制 macOS 聲音輸入、輸出的軟體(網站)

    個別介紹

    Bike Outliner,大綱軟體(macOS)

    網站|回到清單

    Bike 是一款 Mac 原生的大綱軟體,推薦給有大綱需求,或是經常需要列點並且調整順序的人。我不久前寫過兩篇文章介紹:

    • 〈快速推薦 Bike Outliner〉
    • 〈Bike 帶來的價值與我的使用情境〉

    iA Writer 7,寫作軟體(macOS/iOS/iPadOS/Windows)

    網站|回到清單

    iA Writer 其實我已經使用十幾年了,這次會特別提出來,是因為開發團隊因應 AI 趨勢,在 2023 年加入「Authorship」功能,讓使用者可以建立多個作者身分,區分文字是自己寫的、別人寫的,還是由 AI 產生的。

    舉例來說,如果我把一段從 ChatGPT 複製而來的文字貼進 iA Writer,可以使用「Paste As > ChatGPT」,這樣 iA Writer 就會知道這段文字是「誰」寫的。又或者我把自己在 iA Writer 寫的一段文字複製到 ChatGPT 讓它改寫,然後再把這段改寫過的文字貼回 iA Writer、覆蓋原本的內容,此時選擇「Paste Edits From > ChatGPT」,告訴 iA Writer 這段文字是 ChatGPT 寫的,iA Writer 完成貼上後就會把「被改寫過的部分」變成淺色顯示,原本屬於我寫的、沒有被更改過的文字將會被保留,以一般的深色呈現。

    Authorship 功能並不像追蹤修訂那麼強大,卻也已足夠讓在意「內容是誰寫的」這件事的使用者有個方便區分的工具。Authorship 也是 iA 公司對 AI 議題的回應,他們對新功能的定位如下:

    This allows you to separate and control what you borrow and what you type. By splitting what you type and what you pasted, you can make sure that you speak your mind with your voice, rhythm and tone.

    參考:

    • iA Writer 7
    • How to stay in control of Apple’s AI Writing Tools

    BBEdit 15,文字與程式編輯器(macOS)

    網站|回到清單

    我很猶豫要不要提到 BBEdit,因為我不會寫程式,對於程式碼編輯器並不了解。會想用 BBEdit 單純是因為 John Gruber、2John Siracusa 和 Jason Snell 等人都是長期使用者,聽他們講久了難免會想試試看 XD

    我常用 BBEdit 寫 script、貼上和修改 AI 產生的各種 script、修改各種 dotfile 或 stylesheet,還有比對文件之間的差異,偶爾也會用它來寫 email(請看下面關於 MailMate 的介紹)。我很喜歡它的「Scratchpad」功能,拿來暫放各種文字、script 或程式碼片段什麼的都很方便,也有語法(syntax)標示功能。

    Berkeley Mono V2,字體

    網站|回到清單

    Berkeley Mono 是一款由工程師 Neil Panchal 設計的等寬字體(monospaced typeface)。我會知道 Berkeley Mono,是因為 2023 年 3 月看到開發者 Andreas Kling 的一則貼文,說也奇怪,平時沒有特別留意等寬字體的我(上一次可能是 2020 年 JetBrains Mono 發表的時候),卻被當時推文的 og:image 深深吸引,研究一番後就下載試用,同時 follow 了 U.S. Graphics Company(USGC,當時還叫 Berkeley Graphics)的 X 帳號,下個月就買了字型授權 XD

    更棒的是,就在 2024 年快要過完之前,在聖誕節當天我們等到了 Berkely Mono V2(買過 V1 的可以免費更新 ✌🏻),更新的重點之一是為整個字型家族增加了四個窄體(condensed),可在同樣的空間放入更多的文字或程式碼。

    很酷的是,由於客製化選項太多了,3USGC 不再是先產生好字體讓客戶下載,而是推出一個新的字體編譯器,按照客戶的客製化選項,即時產生好一套字體(通常就是 20 秒左右),由於過程中還可以看到 ticket log 在跑,不會有什麼等待的感覺,是很有趣的體驗。由於我加購了他的 SuperType™ Compiler 服務,除了有更多字重可以選擇,甚至還可以微調字重跟字距(tracking),我想這對於要把 Berkeley Mono 分別用來寫文章跟寫程式的使用者會很有幫助。(我也是到了最近才知道原來外國不少人寫文章打字也是習慣用等寬字體,以前沒想過這個問題。4)

    撇開字體設計不談,光是點進網站,我立刻就感受到 Neil Panchal 對於設計和技術抱持強烈觀點,甚至可以說是對於當代趨勢採取帶有攻擊性的姿態,我們需要更多這種態度。

    目前我已經把大部分 macOS 常用軟體(iA Writer 除外)用於編輯的等寬字體換成不同的 Berkeley Mono 字型,至於不能分別指定等寬字體的,例如 Bike,我就乾脆也換成 Berkeley Mono 了 XD

    MailMate 2 (Beta),macOS IMAP email 軟體

    網站|回到清單

    已經有快 15 年歷史的 MailMate 也是我耳聞許久,終於在 2020 年買來用的 macOS email 軟體(「只」支援 IMAP),開發者 Benny Kjær Nielsen 來自丹麥。MailMate 的特色如下:

    • 很尊重 email 標準與 IMAP
    • 信件列表有多種版型
    • 可用 Markdown 寫信(提供預覽功能)
    • 強大的搜尋功能
    • 智慧信箱(smart mailbox)
    • 強大的規則(rules)功能
    • 跟很多第三方服務整合(在 MailMate 叫 Bundles,內建有 30 種)
    • 鍵盤友善。支援 Gmail 快速鍵,也可以自訂
    • 預設會擋掉圖片跟那些 1×1 pixel 追蹤用的圖片載入
    • 可搭配垃圾郵件過濾軟體 SpamSieve 使用
    • 自由度高,有許多功能和介面上的客製化選項

    對我來說它最棒的當然是可以用 Markdown 寫 email,而且有強大的搜尋、信箱規則、自動化與客製化功能,還整合了許多好用的 app。我最常用的 bundle 是 DEVONthink、Fantastical、Things 還有信件輸出功能。就像我前面說的,在 MailMate 可以打開其他編輯器寫信,除了 BBEdit 之外還有 Sublime Text、VS Code 等等。開發者想要開發 bundle 也可以參考文件。

    MailMate 其實還有一大堆隱藏功能(可能是來不及設計介面?XD),需要透過 terminal 下一些指令完成設定,不過這些使用手冊上都有說明。例如寫信時一開始游標要在哪個欄位(我選擇編輯 email 正文的欄位)、編輯器要顯示哪些 header、按下寄信後「反悔時間」要設定為幾秒⋯⋯ 使用者甚至可以決定刪除一封信之後,MailMate 的信件列表要選取上一封信還是下一封信,或是乾脆不選取。

    如果你是 email 重度使用者,或是不怕客製化功能和介面,我會特別推薦試試看 MailMate,雖然現在還有 Beta 字樣,但其實軟體很穩定。而且開發者 Benny 蠻友善的,有問題除了可以寫信去找他,使用 issue tracker 也行,Benny 也會回覆處理狀況。MailMate 還有一個社群(一個 mailing list),包含 Benny 在內的使用者們很樂於回答各種問題。

    我會再度列出來是因為過去兩年我在使用上更有心得(後面介紹 Alfred 時會提到),而且就在聖誕節前,Benny 推出了新的 Beta 版 MailMate(還直接把版本號改成 2 了),同時宣布推出新的授權模式。我個人非常高興看到他達成這樣的里程碑,也希望新的模式可以支持他繼續開發。

    2025-03-27 更新:我最近寫了一篇文章,分享三個我認為很實用的 MailMate 隱藏設定:〈Three Useful Hidden Preferences in MailMate〉。

    2025-04-10 更新:我在 AI 的幫助之下寫了一個 MailMate bundle,讓你可以在 Ghostty 用 Neovim 寫 email。

    SpamSieve,macOS 垃圾郵件過濾軟體

    網站|回到清單

    以今日大部分消費者的 email 使用模式來說,應該不太需要煩惱垃圾郵件問題。不過既然我想要多掌握一點自己使用 email 的自由(其中一部分就是逃離 Gmail,以後有機會再談),就會想試試看也是我聽聞已久、由 Michael Tsai 開發的垃圾信過濾軟體 SpamSieve。

    SpamSieve 是一個結合電子郵件語料庫(corpus)、黑/白名單、通訊錄,以及貝氏分類器(以貝氏統計為核心的分類技術)等各種方法來防堵垃圾郵件的單機版軟體,透過手動和自動化訓練,去學習使用者的偏好。SpamSieve 可以跟包括 Apple Mail 在內的許多 email 軟體搭配使用,所有的分析、訓練與過濾都發生在我的 Mac,也只會留在我的 Mac。

    SpamSieve 可以讓我看到這個軟體是怎麼運作的,包含視覺化的垃圾郵件分類,還有詳細的 log 紀錄,我也可以看到每封信的判讀結果,或者 SpamSieve 統計出來的垃圾郵件分類詞彙等等。SpamSieve 還提供了一個歷史統計資料,讓使用者可以查看它過濾了多少郵件、掃描過多少字,當然還有最重要的準確度。以我自己的數據來看,我是 2024 年 7 月底開始用,其中最重要的指標 false positives(即誤把一般信件判斷成垃圾信)數量,從 7 月到 12 月分別是 10、4、2、1、1、1,可以發現很快就下降到很小的數字,至於 false negatives 一直都是 0。

    關於 SpamSieve,背後有個小故事:SpamSieve 是啟發自 Paul Graham 寫的文章〈A Plan for Spam〉,文中談到他如何使用貝氏統計打敗垃圾信,Michael Tsai 說第一版 SpamSieve 的過濾機制完全就是文章裡描述的那樣(只有在 word tokenization 的部分做一點微調),PG 的文章是 2002 年 8 月發表的,SpamSieve 1.0 在 9 月就推出 XD 當然後來的第二版跟現在的第三版在數學的部分已經跟當時很不一樣了,然而 PG 的文章無疑促使 Michael Tsai 相信開發出一個有效的垃圾郵件過濾軟體是可行的。5推薦大家閱讀 PG 的文章和 Michael Tsai 的訪談。

    Fastmail,email 服務(web/iOS/iPadOS/Android)

    網站|回到清單

    老牌電子郵件服務,雖然我在 2022 年版本的清單有提過,但是他們去年正式推出的 private memo 值得我再介紹一次 XD 這個 private memo 其實就是為你的 email 寫個便利貼,我第一次看到這類功能是在 HEY Email,當時就覺得這個點子很好。

    因為社群上的討論,我還因此了解到這個功能背後是怎麼利用 email 裡的「In-Reply-To」header 來完成,蠻有意思。而且最棒的是,我在 MailMate 也可以讀到那些 memo。希望日後有機會可以進一步發展成在 MailMate 也能寫 memo。(目前我如果有類似需求,會透過 MailMate 的 Things/Reminders 等 bundle 來做到。)

    Mimestream,macOS Gmail 專用 email 軟體

    網站|回到清單

    如果你主力使用 Gmail,卻又沒那麼喜歡用網頁版介面,可以考慮 2023 年正式推出的 Mimestream,創辦人 Neil Jhaveri 在 Apple 任職時也曾長期開發 Mail app,所以會想把 Mimestream 做成原生的 Mac app 應該也不奇怪。

    Mimestream 最特別的地方在於它使用 Gmail API,所以比起 Apple Mail 或是其他 IMAP email client 可以提供更完整的 Gmail 功能,例如信件分類、標籤和 Gmail 搜尋功能等等,甚至還可以在 Mac 上管理 Gmail 篩選器(filters)。(我不確定 Mimestream 是不是第一個可以這樣做的,但是可以做到這樣真的很厲害。)

    不過由於我個人並不想倚賴 Gmail,所以只訂閱過一年,日後使用的機會可能也不大。但是呢,Mimestream 一直有計劃要支援其他 IMAP email 服務(還有 iOS app),也許未來我會再觀察看看。

    Alfred,macOS launcher

    網站|回到清單

    Alfred 5.5 新增了許多 Workflow UI 元件,為 Workflow 顯示結果的排版(格狀顯示)和內容(文字、圖片、PDF 等)增加許多可能性,例如在 Alfred 與 ChatGPT 對話(需要使用 API)、顯示最近的螢幕截圖,或者直接打開 Alfred 寫筆記等等,現在都有相對應的 Workflow 可以下載來使用,對於想要自製 Workflow 的使用者來說當然也是好消息。(我知道最近兩三年最紅的 launcher 是 Raycast,不過我就是沒打算要跳過去 : p)

    以下是幾個我常用的 Workflow:

    • Menu Bar Search,可以搜尋當前 app 的功能表,並且執行。我自己有在 macOS 設定快速鍵叫出 menu 上的「Help」,這樣也可以開始打字、搜尋,以步驟來說跟 Menu Search 一樣都是:1. 快速鍵 2. 開始打字搜尋,但 Menu Bar Search 比 Help 選單更方便的它有 Alfred 內建的「記憶功能」,所以更容易找出你常用的功能和快速鍵,而 Help 選單的搜尋結果排序是固定的,更不用說有些 Mac app 連「Help」選單都沒有。
    • Shortcuts,搜尋 macOS Shortcuts 並執行。
    • Alfred Maestro,搜尋 Keyboard Maestro 裡的 Macro 並執行。
    • Moom,搜尋 Moom(視窗管理 app)內的視窗排列組合並執行。
    • Doctor Drafts,專為 Drafts 設計、功能強大的 Alfred Workflow,如果你是 Drafts Mac app 的重度使用者,可以參考看看。我最常用的功能是搜尋(標題或內文)、在特定 Draft 的頭尾新增文字(prepend 跟 append)。
    • CleanShot X,從 Alfred 發動 CleanShot X 的功能,我最常用的是 OCR、顯示截圖歷史紀錄。
    • Coinc,快速查詢多國匯率。
    • Define Word,查詢 macOS 內建字典,並且顯示完整的字義解釋。
    • Reminder for Alfred,直接從 Alfred 新增提醒事項,需要的話也可以把當前網頁的標題和網址也帶入。

    過去兩年多我也試著自己打造簡單的 Alfred Workflow:

    例如按兩次 Shift 可以叫出我的工作空間選單,快速選擇要打開工作的筆記、待辦事項、網站後台和各種文件,如果要搜尋什麼工作相關的文件也可以從 Alfred 開始。

    又或者我幫自己做了一個拆信刀 Workflow,從 Alfred 發動 MailMate 的功能:搜尋、打開 app 後跳到最新信件或最新一封未讀信件,如果我忘記搜尋的語法,也可以一鍵叫出 search modifiers 來參考。

    由於我蠻習慣使用鍵盤快速鍵,可是有些沒那麼常用的我會忘記(我總以為久了就會記住,可惜沒有 XD),以前我會用一個 spreadsheet 記錄常用的快速鍵,後來在 ChatGPT 的協助下,做了一個 Workflow 來搜尋自己常用的快速鍵(就從那張表搜尋),搜尋結果會顯示這是哪個 app 的快速鍵、用途、快速鍵組合、附註說明,後來我還加入 tag 功能(不過目前只有一個「common」),還能調整搜尋結果的顯示權重。為了避免大家誤會,我必須說明:這個 Workflow 目前只能查詢快速鍵,不像前面介紹的 Menu Bar Search 還可以執行,但好處是可以跨 app 搜尋(當然)XD

    有了前面的經驗,我也用 Alfred 做一個 AI Prompt Finder,快速搜尋常用的各種 prompt,讓我可以快速貼上,需要的時候也可以先顯示完整 prompt 內容再複製貼上,這比記憶 snippets 或替代文字容易多了。

    Keyboard Maestro,macOS 自動化軟體

    網站|回到清單

    強大的 macOS 自動化軟體,開發者是 Peter N. Lewis。Keyboard Maestro 是威力加強版的 Automator,主要的功能是讓使用者利用各種 action 組合成 macro(巨集),在符合特定的條件下觸發(條件可以是按下某個快速鍵、送出一個 MIDI 訊號、啟動某個 app,或是連上公司 Wi-Fi 時⋯⋯),這樣 Mac 就會自動去執行設計好的一連串動作,當中可以包含變數和邏輯,根據不同條件執行相對應的動作,它也可以執行 Automator Workflow 和 Shortcuts 等等。

    舉例來說,當我在看影片寫筆記的時候,可以設定「點擊播放/暫停鍵後跳回前一個 app」,這樣我就可以一直維持筆記軟體的輸入狀態。這在一些 F8 鍵(macOS 預設的媒體播放鍵)不適用的場景就可以派上用場。有了這個概念之後,要倒帶/快轉 5 秒鐘也不是問題。我還會將這些設定成 MIDI 啟動的快速鍵,所以按鍵超大超好按 XD

    我還記得之前發現 Keyboard Maestro 可以透過 MIDI 訊號觸發 macro 時非常開心,因為簡直就像電影《Batman Begins》(蝙蝠俠:開戰時刻)裡的場景,不過當然 Bruce Wayne 打開 Batcave 還是帥多了 XD 我知道現在許多玩家會用 Stream Deck 類的產品,但反正我剛好有一個 ROLI Block 嘛 : )

    總之 Keyboard Maestro 目前在我的自動化流程扮演蠻重要的角色(儘管我大概只發揮它十分之一不到的功能),先前介紹 Bike 時我提到的許多自動化功能就是靠它來完成,而且每隔一段時間,我好像就會發現有新的自動化需求,像我在寫這篇貼文的中間也跑去做了一個可以切換螢幕解析度(為了方便截圖)的 Macro。

    Hazel,macOS 檔案自動化工具

    網站|回到清單

    Hazel 是強大的 macOS 檔案自動化工具,開發者是 Paul Kim。Hazel 會監看我指定的檔案夾,並且依據我設計的規則去處理檔案夾內的文件,看是要修改檔名、轉檔、移動到其他檔案夾都可以,比如說搭配 Hazel 內建的 OCR 功能,我下載的說明書或使用手冊,就會自動被放到我指定的檔案夾,不用自己整理。同樣的道理我想也可以運用在帳單上,搭配前面提到的 MailMate,應該可以做到讓 email 附件裡的帳單自己下載好並且按照內容歸檔,連動手按下載都不必。(這個我現在做到一半 XD)

    Hazel 支援 AppleScript、JavaScript、Automator 和 Shell Script 等等,所以可以做的事情很多,我後面也會再提到。

    Pandoc,文件轉檔指令工具

    網站|回到清單

    Pandoc 的開發者是 UC Berkeley 的哲學教授 John MacFarlane。我想 Pandoc 的用途對每個人來說都略有不同,我最主要是用它把 Bike 檔案從 HTML 轉換成一個新的 Markdown 檔案,搭配前面提到的 Hazel,我就可以在 iPhone 或 iPad 用 iA Writer 查看我的 Bike 文件,過程完全自動化 : D 我還記得當初看到 Pandoc 的文件簡直目瞪口呆:它竟然可以轉換這麼多種格式!實在是很厲害。

    Wooshy,macOS 輔助使用軟體

    網站|回到清單

    Wooshy 很有趣,我先試著用文字解釋。這是一個在 macOS 以搜尋文字和 UI element 來達到快速操作的 app。我可以用快速鍵叫出 Wooshy 視窗,輸入關鍵字,這時當前 app 的畫面中只要有符合關鍵字的按鈕或文字,就會被一個個黃色的框框標示起來(可以按 Tab 鍵循環選取),如果它是一個超連結或按鈕,按下 enter 後 Wooshy 會模擬滑鼠左鍵點擊一次的效果,但這對一般文字(例如文章內文)就不會有任何效果。然而 Wooshy 對此也有設計一個功能:按下 command + C 複製文字,若有其他自動化需求,這正好可以派上用場,例如透過 macOS Shortcuts 翻譯我複製的文字。

    • 螢幕截圖:展示 Wooshy 這個 app 的運作機制,在文字輸入框輸入關鍵字,這時當前 app 的畫面中只要有符合關鍵字的按鈕或文字,就會被一個個黃色的框框標示起來。
      ▲ 在 Wooshy 文字框輸入關鍵字後,當前 app 畫面符合的按鈕或文字,就會被一個個黃色的框框標示起來。

    你也可以參考 Wooshy 開發者 Guillaume Leclerc 拍的影片:

    除了翻譯選取文字,我個人最常使用 Wooshy 的場景是拿來對付各種按鈕,例如那些沒有設計快速鍵的 web extension。

    Warp,terminal emulator(macOS/Linux/Windows)

    網站|回到清單

    長期以來,我如果需要在 Mac 上使用 terminal emulator,都是直接打開 macOS 內建的 Terminal,雖然經常聽開發者們提到 iTerm 2,卻也沒有真的下載來用過。大約是從我開始玩 Raspberry Pi 之後吧,使用 terminal 的頻率稍微增加,有天在 Hacker News 上注意到有個叫 Warp 的 terminal emulator 引起大家的討論,創辦人 Zach Lloyd 在創業前曾是 Google Docs 的 principal engineer。

    我知道蠻多開發者並不認同 Warp「需要註冊、登入才能使用」的機制,然而 Warp 的一些設計對於我這個外行人來說是相當友善的,除了開箱即用的指令搜尋(我愛 command palette 的設計!)與提示,AI 輔助功能讓我可以用自然語言描述自己要做什麼,再讓 Warp 的 AI 來告訴我可以使用什麼指令、怎麼下指令,而我如有需要進一步確認,也可以拿著它給的指令再去 google 或問人。

    Warp 另外一個很棒的「block」設計是在我需要頻繁把 output 複製出去時才領略到的。Warp 將每個指令和指令執行的結果設計成一個一個區塊,使用者可以用快速鍵在區塊間移動、複製指令和執行結果(可以選擇要複製指令、執行結果,還是區塊的全部內容)。

    站在生意的角度,我完全可以理解 Warp 設計登入機制的理由,畢竟他們主打的產品特色如協作、workflow、notebook 和環境變數(environment variable)等,都是為了團隊合作所設計,更不用說還要控制 AI 的使用量和預防濫用。我並沒有深入研究業界採用 Warp 的情形,但是參考 Homebrew 的下載數字,6可以合理猜測應該蠻多人用的。

    不過我也同意許多開發者的看法,Warp 其實還是可以允許個人使用者在不登入的情況下使用,因為這類使用者幾乎完全用不到 Warp 為了協作所設計的功能,自然也無需登入。2024 年 11 月,Warp 也宣布使用者不需登入即可使用大部分功能——當然,他們認為登入使用才能享有完整的體驗。7

    Warp 在 2021 年獲得 GV 領投的 600 萬美元種子輪投資,2022 年由 Dylan Field 領投 A 輪 1,700 萬美元(其他知名投資人包含 Marc Benioff 與 Elad Gil 等人),2023 年再由 Sequoia 領投 B 輪 5,000 萬美元。

    2025-02-27 更新:Warp 昨日正式推出 Windows 版,這麼一來他們在 macOS、Linux 和 Windows 都有對應版本了。

    2025-08-21 更新:Warp 在 6 月底推出 2.0 版,將自己定位成 Agentic Development Environment(ADE),表示新的設計會帶來超越 IDE 與 terminal AI coding agent 的體驗,企圖成為開發者寫程式的主要環境。

    Ghostty,terminal emulator(macOS/Linux)

    網站|回到清單

    Ghostty 是我期待已久的開源 terminal emulator,作者是 HashiCorp 共同創辦人 Mitchell Hashimoto,Ghostty 一如他所宣布的在 2024 年 12 月推出 1.0。(事實上 1.0.1 也已經推出了 XD)自從 2023 年我開始 follow 他的部落格以來,就知道 Ghostty 正在進行 private beta,而 Ghostty 是一個很特別的軟體,因為按照 Mitchell 的說法,跨平台(macOS/Linux,未來預計會有 Windows)的 Ghostty 除了兼具速度與功能,還要做到系統原生 UI。(如果你好奇原生 UI 有什麼好處,可以參考這篇文章,作者 Gregory Anders 是 Neovim 的 core maintainer 之一。)

    除了前面提到的特點,Ghostty 還有幾個特色,其中之一是 Mitchell 嘗試做到 zero config,也就是免設定、開箱即用。8另一個特色則是在於 Ghostty 這個開源專案是怎麼運作的:Mitchell 明確表示 Ghostty 專案在 GitHub 的 issue tracker 不是用來討論或是提出需求的,所有 issue 都要是可以進行下一步任務的:bug 要可以重現;功能要是大家已經充分討論過、被接受、scope 定好的;所有 Pull Request 都要與 issue 相關,也就是不接受 drive-by PRs。所以要回報 bug 或是有任何想法跟建議,都從專案的 Discussions 開始。9

    我不是 terminal 重度使用者,主要的使用場景僅限於用 Homebrew 安裝軟體、管理 Raspberry Pi、測試一些自動化流程,或是使用一些指令工具(當中比較簡單的功能 XD)。雖然用得不多,但我還是很高興能在有需要的時候使用 Ghostty 這樣的原生 Mac app。

    厚臉皮一點地說,光是 follow Mitchell 的這段時間,我都覺得自己學到很多開發相關的知識,非常有收穫。如果你也對 Mitchell 開發 Ghostty 的過程感興趣,除了閱讀部落格文章之外,也可以收聽這集《Changelog Interviews》,你可能想不到他花了多少時間處理 termainl 的 font rendering XD

    2025-08-21 更新:對於 Ghostty 專案,Mitchell Hashimoto 還有一個企圖,他先前表示過希望能讓專案中的 libghostty 成為廣被採納的 terminal 引擎,這樣一來其他人在開發 terminal 相關產品時(例如在一些 IDE,terminal 只是其中的一個功能),可以省下許多時間、專心在功能開發上。我前幾天恰好看到一個案例:廣受好評的 OrbStack(一款 macOS 上的輕量級 Docker container 與 Linux VM 管理工具)開發者 Danny 就在 Ghostty 的 Discord 透露自己正在用 libghostty 開發 OrbStack 裡的 terminal 功能(我沒用過 OrbStack,但這個功能看起來主要是為了方便使用 OrbStack Debug Shell)。

    此刻,業界正在重新想像工程師與 AI 合作的樣貌,我想 Warp 與 Ghostty 是其中很好的觀察對象,另一個則是編輯器 Zed 與他們正在開發的新資料庫 DeltaDB。

    Ice,macOS Menu Bar 整理工具

    網站|回到清單

    假如你是 macOS 使用者,特別是使用螢幕較小的 MacBook 系列產品,不知道有沒有遇過一種煩惱:menu bar 右側空間不夠、icon 放不下 XD Ice 就是要幫大家解決這個困擾。

    以前我慣用的 Bartender 在這方面是佼佼者,然後它的開發者在轉移 Bartender 所有權後引發使用者疑慮,10我索性就不用了。後來發現 MacWhisper 作者 Jordan Baird 開發了具備類似功能的 Ice,雖然在一些細節上可能不如原本 Bartender,但做為一個免費、開源的替帶方案我想完全是可以的。感興趣的人可以去 GitHub 頁面看看 Jordan Baird 預計新增哪些功能。

    對於習慣 Bartender 的使用者,可能要注意 Ice 目前還無法做到「暫時消除 menu bar 左側的應用程式選單以清出空間給 menu bar 右邊的 icon」,11因此如果你的螢幕比較小,那麼可能要選擇「Use Ice Bar」或是透過搜尋功能叫出你想要的 menu bar icon。

    Things,待辦事項 app(macOS/iOS/iPadOS/watchOS)

    網站|回到清單

    儘管 Things 並沒有大改版,過去兩年持續累積的更新還是很可觀。其中我認為最值得一提的是 2023 年新增的許多 Shortcuts Action,詳細的說明可以參考他們的文件,或是直接使用他們提供的一系列實用 Shortcuts

    另外還有幾個不錯的更新,例如提供更多字體大小的選擇,以及為 Things for Mac 增加推播通知功能,以往在 Mac 上你要收到待辦事項設定的時間通知,Things app 必須是開啟的(在 iOS/iPadOS 則不必),現在 Things for Mac 如果沒打開也照樣收得到通知了。另一個我個人很喜歡的更新是它也支援 Bike Outliner ✌🏻我可以在使用 Things Quick Entry 時直接帶入 Bike 大綱的資訊。

    Taskpaper,macOS 純文字待辦事項軟體

    網站|回到清單

    Taskpaper 是 Jesse Grosjean 在 Bike Outliner 之前的作品,從 2007 年推出至今,主打用很簡單的語法以純文字形式來做 to-do list:

    • 文字後面加上冒號 : 即是 project,預設會是加粗的字體
    • 文字前加上 - 並且空一格即是 task
    • 如果只是打字,那麼就會被當成 note,會以斜體呈現

    而 project、task 和 note 之間的關係則以縮排來表示,例如:

    
    Project 1:
        - Task 1
        - Task 2
            Note
    
    

    Taskpaper 也支援標籤(tag)功能,而且可以為標籤添加一個或多個值(value),例如 @priority(1)。在 Taskpaper,完成一個待辦事項後預設會加上一個 @done(可以選擇要不要加上日期),有了這些標籤,Taskpaper 便可以提供強大的搜尋和過濾功能,搭配 Taskpaper 在 macOS 所支援的 JavaScript for Automation(JXA),可以做很多變化,例如我可以把 Taskpaper 未完成的待辦事項匯入 Things。

    Taskpaper 還提供了 StyleSheets 功能,用的是稍微修改過的 Less/CSS 語法,使用者可以調整自己想要的版型(或是下載別人的來用),甚至透過切換版型達到切換「打字機模式」的功能,我超愛。不過 Taskpaper 的檔案並不是 HTML,而是一般的純文字檔,所以可以用任何文字編輯器開啟。另一個我很常用的 Drafts 也支援 Taskpaper 語法。

    Jesse 說 Taskpaper 是「finished software」,因此除了維護之外不會再添加什麼新的功能,但我想說不定有些使用者反而喜歡這樣。對於 Taskpaper 跟 Bike 兩者的定位,Jesse 也做了很好的說明:〈How does Bike relate to TaskPaper?〉。由於我是先使用 Bike Outliner,才「回頭」使用 Taskpaper,這種感覺蠻妙的 XD 後來我在使用 Bike Outliner 時便處處瞥見 Taskpaper 的影子,Bike 有許多設計承襲自 Taskpaper,並在此之上繼續創新。除了最明顯的縮排、收和/展開 parent node,還有類似 command palette 的介面和 query 功能等等。我在摸過 StyleSheet 之後,也對於 Bike 2 即將提供類似(甚至更強的)功能感到更加期待。

    我對 Taskpaper 唯一有意見的大概就是 app icon 了吧,後來自己做了一個新的換掉 XD

    na,Taskpaper 指令工具

    網站|回到清單

    另一個要一併介紹的是 na(next action),開發者 Brett Terpstra 為了在 terminal 使用 Taskpaper 而以 Ruby 寫了 na(不過因為 Taskpaper 檔案是純文字,所以其實任何使用 Taskpaper 語法的純文字檔案都適用),透過 na 新增的待辦事項預設會帶有「@na」標籤,如果比起 GUI 你更偏好 CLI 的話,可以考慮 na。

    我其實已經忘記是怎麼知道 na 的了,一開始是出於好奇而使用,也因此意外發現 na 的復原功能有些問題(已回報給 Brett Terpstra),不過他本來就有在文件上表示 undo 是實驗性質的功能啦 XD

    Readwise,畫線與筆記彙整、同步服務(web/iOS/Android)

    網站|回到清單

    Readwise 這個畫線筆記整合服務我想大家都很熟了,我想特別提出來的是「以 email 附件 CSV 檔案匯入畫線筆記」這個功能。透過一些自動化設計,我在 MailMate 閱讀電子報(或是任何 email)的時候,也可以直接從 MailMate 畫線、寫筆記,產生 CSV 檔案後再自動發信給 Readwise、進入我的資料庫。比較可惜的是 Readwise 目前支援的 CSV 欄位有點少。

    BusyContacts,macOS 通訊錄 app

    網站|回到清單

    我最喜歡 BusyContacts 的一個功能是它可以讓我瀏覽一個聯絡人跟我之間來往的所有 email。(假如你也使用 BusyCal 的話,還可以看到你跟特定聯絡人之間安排過的會議)剛好我喜歡的 MailMate 跟 Mimestream 都沒有提供這個功能,只能以搜尋、智慧信箱或是標籤來達成,並不是很便利。不過 Gmail 跟 Fastmail 的 web app 跟 iOS/iPadOS app 倒是有提供這樣的功能,最近連 iOS 內建的 Mail app 也做得到了(神奇的是 macOS 跟 iPadOS 卻沒有⋯⋯)。

    MusicBox,(針對音樂的)「稍後再聽」app(macOS/iOS/iPadOS)

    網站|回到清單

    MusicBox 我上一次也有提到,它是一個由獨立開發者 Marcos Tanaka 設計的 app,專門讓你將音樂存起來「稍後再聽」。有時候我看到別人推薦音樂,當下卻沒辦法聽聽看的時候,就會先存到 MusicBox。舉例來說,當你點開別人分享的 Spotify 音樂連結,就可以在 Spotify app 裡的「分享」按鈕(Share Sheet),選擇「Add to MusicBox」,之後有空可以好好聽音樂的時候再找出來聽。

    這次值得再提是因為它持續推出很不錯的更新,例如擴大支援的串流服務清單,連 Tidal 這些 Marcos 在 2023 年告訴我有困難的,現在都支援了。MusicBox 也陸續新增了按照藝術家、音樂類型來分類的功能,還可以用 Markdown 寫筆記,而且由於它的機制就是儲存並解析 URL,所以 Marcos 自己有在 release notes 提到過,你要拿來放網路文章(樂評)也不是不行 XD

    Overcast,podcast app(iOS/iPadOS)

    網站|回到清單

    Overcast 從 2014 年推出以來,一直是我最常用的 podcast app。開發者 Marco Arment 在 2024 年 7 月進行了一次裡裡外外的大改版(詳情可參考他的文章),重點之一是他以較新的技術重寫了 Overcast 大部分的程式碼,這讓他未來不管是要更新還是開發新功能都會變得更有效率。

    另一個重大改變當然是介面設計和功能上的調整,雖然在剛改版時有遇到一些狀況,例如串流功能被捨棄引發一部分使用者不滿,而且顯然影響到了 Overcast 在 App Store 的評價,因此 Marco Arment 後來有把經過調整後的串流功能加回來。幾個月過去,現在 Overcast 幾經更新之後,不管是在體驗上,或是呈現 show notes、章節資訊和播放控制等等,都變得比新版剛推出時更好。

    Zerocam 和 Zerocam Mono,分別是傻瓜相機 app(iOS/watchOS/Android)和傻瓜黑白相機 app(iOS)

    下載 Zerocam、下載 Zerocam Mono|回到清單

    Zerocam 跟 Zerocam Mono 這兩個 app 是由產品設計師 Dimitri Novikov 與開發者 Sergio Rodríguez Rama 合作的相機 app。Zerocam 源自 Dimitri Novikov 在 x.com 提出的一個想法:能不能有個相機 app,不要過度後製拍出來的照片(並且幾乎不要有任何控制,就是按下快門)?Dimitri 在很多推文裡批評這種過度後製的現象,其中一個明顯的「禍首」就是 iPhone 內建的相機 app。後來 Sergio 聯繫上 Dimitri,提議合作開發這樣的 app。位在倫敦的 Dimitri 先是用自己任職的 Rive 做了原型,在米蘭的 Sergio 負責程式開發,兩人從來沒有真的見過面,Zerocam 在 2024 年六月推出,幾個月後換專攻黑白攝影的 Zerocam Mono 上架。

    這兩個 Zerocam 的共通點都是強調不過度後製,沒有 HDR,也沒有什麼 AI 強化影像,拍攝 RAW 之後只經過微幅的調整,套用 Dimitri 設計的調色後輸出,就這樣。(被我講得好像很簡單 XD)我跟很多人一樣,沒有很欣賞 iPhone 內建相機處理的照片,因此很喜歡 Zerocam 的概念,一直在追蹤他們的開發進展,也加入了 TestFlight。最早整個 app 打開後就只有一個觀景窗和一個大大的黃色快門按鈕,使用者只需構圖、拍照,連對焦功能都沒得用,後來才陸續加入選擇鏡頭和預覽照片的功能。

    這兩個 app 還有個好玩的 widget,會自動記錄你每天有多常用 Zerocam 拍照,呈現出來的樣子就像 GitHub 上的 Contributions Calendar。

    Halide Process Zero,Halide 新推出的最小化處理拍攝功能(iOS/iPadOS/watchOS)

    網站|回到清單

    不知道是湊巧還是大家對於過度後製的照片都覺得受夠了,在 Zerocam 推出後兩個月,Halide 也推出了名為 Process Zero 的新功能,也是拍攝一張 RAW 之後跳過各種內建相機會做的各種處理(例如 HDR、合併多張照片等等),儘管雜點也會跟著被保留下來,但整體質感仍勝過被過度處理的照片。我非常喜歡這個改變,因為 iPhone 14 Pro 以後的相機在處理照片上真的太過激進了。

    不過 Halide 的開發者 Ben Sandofsky 也說,他們自己也經常在系統後製跟 Process Zero 來回切換,因為用手機拍照還是很仰賴光線條件,若要在手機上做夜間攝影,演算法和各種 computational photography 技術依舊有他們的優勢。

    我在介紹這幾個 app 時好像都把 HDR 描述得很差,不過 HDR 當然有它的好處,在我寫這篇貼文的兩週前,Halide 背後的 Lux 團隊宣布了他們的 Halide Mark III 計劃,今年大改版的重點之一就是 HDR,另外兩個則是調色(color grading)與介面改版。

    Sketch,macOS 向量圖形設計工具;Acorn,macOS 圖像編輯軟體

    Sketch 網站、Acorn 網站|回到清單

    前面提到我沒那麼喜歡 Taskpaper 的 app icon,想要自己動手做一個,於是打開一陣子沒使用、舊版的 Sketch,沒想到熟悉感一下就回來了。我先選定一個字型,選好樣式,轉換成 outline 之後繼續修改、調整,然後加上一個識別度極高的「勾勾」,接著叫出內建的 macOS app icon 模板出來修改顏色和漸層,之後分別移到 Acorn 做一些效果後輸出,過程真的很好玩。

    巧的是,就在我完成這個 app icon 之後過了幾天,Acorn 開發者 Gus Mueller 宣布推出新版 Acorn 8,雖然我的使用次數並不多,但是衝著各種新功能和效能改善還是買了 XD

    我不是這兩個 app 的重度使用者,但是當我需要他們的時候,用起來還是那麼順手,而且就在我寫貼文的這幾天,又讀到另一個同樣是 Gus Mueller 出品、專門用於批次影像處理軟體「Retrobatch」的用法,之後也打算來試試看。


    1. 以前的 Reeder 已改名為 Reeder Classic,開發者 Silvio Rizzi 將原本的名字 Reeder 給了新產品。 ↩︎

    2. 2000-2002 年 John Gruber 在 BBEdit 開發商 Bare Bones Software 工作過。(來源) ↩︎

    3. 相信有些人讀到這裡,也會好奇那總共有多少組合,為何不能先產生好呢?對此 Neil Panchal 也計算過,所有的組合大約有 6.71E+61 這麼多(6.71×1061),扣除連字(ligatures)也還有大約 1030。當然實務上也有進一步提升效率的做法(可以在同一篇貼文看到 Neil Panchal 跟網友的討論)。 ↩︎

    4. 請參考 Mastodon 上的討論。 ↩︎

    5. Daring Fireball: Interview: Michael Tsai ↩︎

    6. Homebrew Analytics Cask Install Events (30 days) — Homebrew Formulae ↩︎

    7. Lifting the login requirement | Warp ↩︎

    8. 推文連結。 ↩︎

    9. 推文連結、GitHub 連結 ↩︎

    10. Bartender 5 not safe anymore ? Warning from MacUpdater : r/macapps ↩︎

    11. 為了方便我先這樣寫,這個部分正確的 macOS UI 名稱可參考: ↩︎

      • The menu bar | Apple Developer Documentation
      • NSStatusBar | Apple Developer Documentation

  • Bike 帶來的價值與我的使用情境

    Monday, December 23, 2024

    我的前一篇文章〈快速推薦 Bike Outliner〉寫得比較像是推薦給那些已經知道大綱軟體,或是還在找類似工具的人,但我想還是可以補充一下 Bike 帶給我的價值,並且提供幾個我使用的場景給大家參考。

    思考的起點

    Bike 為我帶來最大的價值是「可快速條列文字並組織架構」(同時保持心情愉快或穩定),因此對我而言最有用的場景是在 Mac 上「開始思考某件事情的時候」(很多時候則是紙筆)。因為它很適合寫清單,調整階層跟順序都很快(也很適合做所謂的 brain dump),快速地將腦中的想法傾倒出來,只要條列式,甚至簡短字句或單字都可以,寫完一件事就換行,或是要一直縮排也行,後續再來組織整理就好了。我在想題目、安排想讀的書,都會用 Bike 先快速列出來。

    「快速記錄一些文字」有不少軟體都做得到,也做得很好,例如 Drafts(它還有 Apple Watch app 可以隨時語音轉文字)、Apple Notes 等等,要記待辦事項也有 Reminders 或 Things,但是在 Mac 上要調整順序跟階層(還有一些文字格式),Bike 操作起來就是比較順暢。另一個重要的特性就是大綱的展開/收合,能夠在寫文件的同時注意整體架構我想是很有幫助的。

    以前要快速記錄事情我都用 Drafts,使用 Bike 後讓我更加意識到自己常用的 Markdown 格式/編輯器並不適合處理需要排序、階層、展開/收合的內容。或許有些軟體也具備上述的功能,不過如果還要是原生、本機端、file-based、scriptable 的 Mac app,反應還要快,應該就很少見了吧?(Drafts 跟 iA Writer 都有可以移動段落順序的功能,但就是不像 Bike 那樣可以「伸縮自如」。)

    當然,Bike 現在沒有 iOS app,所以在 iPhone 我還是先用 Drafts。(我知道可以用功能強大的 Workflowy,但是它用起來實在太不像是 iOS app 了。)

    前一篇貼文提過 Bike 有聚焦功能,可以讓我在既有文件立刻進入一個獨立的、不受前後文干擾的思考空間,不必擔心弄亂原本的排版或內容。反過來說,如果我需要參照同一份文件其他位置的內容,Bike 也可以在多個新分頁或視窗開啟同一份文件,這對我編輯長篇文件、準備演講和簡報大綱來說都很有用。

    大綱

    既然是大綱軟體,當然很適合寫大綱。後來我在寫文章的時候就不是從 Drafts 開始了,而是先在 Bike 上發想,思考文章的目的、主題、大綱等等,覺得差不多了之後再移到 Drafts 開始寫稿,有需要的話就把 Bike 視窗並列在 Drafts 旁邊。(順帶一提,草稿寫到一定程度之後我就會一鍵移到 iA Writer 繼續完成。)

    同樣地,既然適合寫文章的大綱,各種專案、策略、事物的架構,尤其是那種樹狀結構的,應該也都很適合。(雖說 Bike 的大綱每一點都有自己的連結,可以打破樹狀結構限制,但真的遇到需要圖像化思考的時候,我想也不必堅持繼續使用文字編輯器了。)

    彈性

    第三個就是 Bike 檔案格式和自動化的彈性,一來我不必擔心產出的文件只能在 Bike 使用,二來是結合 shell script、AppleScript、Keyboard Maestro 跟 macOS Shortcuts,不管是利用 Bike 本身的功能組合、擴充,或是把我在 Bike 寫的東西轉移到其他軟體,都很有幫助。

    除了我在前一篇提到的「將任何新的 Bike 文件轉檔成 Markdown 文件在 iPhone 查看、編輯」,還有「把待辦事項傳送到 Things」,其他我常用的還有:

    • 將目前游標所在位置的 row 在新視窗開啟並聚焦
    • 收合目前游標所在位置以外的所有其他大綱內容
    • 複製 Bike 內容,清理格式後貼到 Logseq
    • 用快速鍵立刻打開一個新的 Bike 空白文件(macOS 全域的快速鍵,就算目前正在用別的 app 也能立刻開啟新的 Bike 視窗)
    • 收合所有「child row 只有 notes」的 row

    Jesse Grosjean 在論壇上也整理出許多由社群貢獻的各種現成的 script 和自動化設計,有興趣的人可以去看看。

    還有一個 Bike(跟其他幾個獨立開發者的 app)帶給我的、比較個人的價值是,我似乎更能(也比較願意)去理解、掌握這個工具——就像 Bike 的作者 Jesse Grosjean 在使用手冊寫的:

    Bike is small enough to fully understand. Once understood it’s flexible enough to be used for many purposes.


  • 快速推薦 Bike Outliner

    Friday, December 20, 2024

    幾天前讀到李如一的文章,剛好文中提到的獨立 app 我也有一些,其中我特別喜歡 Bike Outliner,決定把去年寫給朋友的簡短介紹,稍微修改、補充後貼來這裡。

    Bike Outliner 是一個 Mac 上的大綱軟體(以下簡稱 Bike),由獨立開發者 Jesse Grosjean 設計、開發。他對 Mac app 真的很有愛,Bike 不但軟體的設計目標明確,許多細節也照顧得很好。

    假如你正在考慮大綱類型的軟體,或是覺得 OmniOutliner 超過你的需求太多,可以試試看 Bike,它除了具備大綱軟體常見的主要功能,還有以下幾個特色:

    創新、實用的 UI/UX 設計

    會長「尾巴」的文字游標

    Bike 是一個以 rich text 格式為主的文字編輯器,而它獨特的文字游標(text caret)設計解決了以往我在編輯 rich text 格式文件時常見的惱人問題:

    • 想要編輯或是複製超連結(文字或其對應的連結)時會不小心把連結點開。
    • 想要修改一段部分內容帶有格式(例如粗體)的文字時,總是不確定我在那一段文字的前後輸入的文字會是什麼格式。

    Jesse Grosjean 想到的解法是讓 Bike 文字游標出現在格式變化的交界處時會長出「尾巴」,這個設計讓使用者在編輯 rich text 時能夠清楚地掌握格式:在一段文字中插入文字游標時,可用鍵盤方向鍵控制「尾巴」指向左或右,代表接下來輸入的內容會套用哪一邊文字的格式。實際效果可參考下方兩張 GIF,也可以往下滑看 Jesse Grosjean 錄製的說明短片。

    展示 Bike 文字游標設計的效果 1:文字游標指向左邊時,新增的文字會套用原本游標左側文字的格式。
    ▲ 展示 Bike 文字游標設計的效果 1:文字游標指向左邊時,
    新增的文字會套用原本游標左側文字的格式。
    展示 Bike 文字游標設計的效果 2:文字游標指向右邊時,新增的文字會套用原本游標右側文字的格式。
    ▲ 展示 Bike 文字游標設計的效果 2:文字游標指向右邊時,
    新增的文字會套用原本游標右側文字的格式。

    動畫設計

    一開始在 Bike 打字時,相信很多人會立刻注意到文字游標移動的模式「不太一樣」,那是因爲 Bike 針對游標移動的動畫做了巧妙的設計,在打字、移動游標(上下移動時特別明顯)或是調整大綱順序的時候覺得很滑順、流暢,令人感到心情愉快。(這點似乎每個人的感受不同,有些人反而會覺得變慢,不過動畫可以調整速度,也可以關掉。)

    在新分頁或新視窗開啟同一份文件

    另一個提升 Bike 使用體驗的功能是在新分頁或新視窗重複開啟同一份文件。這樣一來就可以同時看到文件不同位置的內容,或是在處理某個子項目的時候,同時透過另一個視窗看到最上層的整體大綱。我是在過去幾年使用 Roam Research、Logseq 等產品之後才體會到「重複開啟同一份文件以顯示不同位置的內容」這樣的設計有多麽便利。

    輕巧、快速的原生 Mac app

    Bike 是原生 Mac app,這點在今日已是一種少見的美德。Bike 程式體積輕巧、速度快,使用時佔用的記憶體也少。

    Jesse Grosjean 深入研究了編輯器的效能問題,例如他選擇不讓程式每次改變視窗大小就要重新處理「看得見的文字以及前、後部分」,只處理「看得見的」,所以運作起來速度很快。1他試過把整本《白鯨記》文字(約 21 萬字,Bike 檔案大小約 1.4MB)都放進去,運作起來依舊順暢。另一個我很喜歡的 app iA Writer 打開《白鯨記》Markdown 檔案就不太行了,調整視窗大小時會很卡。(當然了,Bike 並不是設計來讓工程師打開動輒數百 MB 或好幾 GB 的 log 檔。)

    支援多種檔案格式

    萬一使用者不喜歡 rich text,Bike 也支援純文字(plain text)和 OPML 等開放式標準的檔案格式(不同檔案格式在功能上會有差異,例如純文字就不支援下面提到的 links to rows 功能),而預設的 Bike 檔案(.bike)其實就是 HTML,所以也可以直接用瀏覽器打開檔案,或是做後續的轉換、處理。(我自己會用 Pandoc 轉檔。)

    • 因為支援 OPML,所以如果選擇這個格式的話,也可以用心智圖 app 打開,把大綱以心智圖呈現。
    • 因為支援多種檔案格式,Bike 跟許多軟體相容。

    連結與自動化

    如果我在 Bike 使用預設的 .bike 檔案,那麼文件的每個 row 都有獨立的 link,可以在同一份文件、跨文件和跨 app 使用。2

    Bike 的自動化功能很棒,一開始支援 AppleScript,後來加入 macOS Shortcuts。不過目前 Bike 並沒有 JavaScript API,可以用的是蘋果為 macOS 自動化設計的 JavaScript for Automation(JXA)。

    我個人非常喜歡一個 app 有這些設計,加上前面提到的檔案格式,不僅讓 Bike 的自由度更高,也讓我更容易把它跟其他 app 搭配使用,加入既有工作流程。這些增加 app 之間互通性的設計,可以大大提升使用效益和體驗。

    其他

    • 大綱可以全部一次展開/收合,也可以一次展開/收合一個階層,有利於做整體的審視;大綱模式下可以只用方向鍵做到快速展開/收合。
    • 各種大綱功能如上下移動順序、縮排、聚焦(focus in)等都具備。
    • 聚焦功能搭配同一份文件可重複開啟的特性,有助於編輯長篇文件。
    • 以上功能搭配 Bike 的動畫設計,讓使用體驗加分不少,光是展開/收和、移動順序和聚焦大綱,都令我覺得「很好玩」。
    • Bike 對於上面提到的展開/收和與聚焦功能,加上超連結,都有設計相對應的 icon 提供使用者以滑鼠游標操作,非常清楚易懂。(不需要 icon 提示的話可以在設定裡隱藏這些介面。)
    • 不只 GUI 創新,Bike 的操作對鍵盤很友善,預設的快速鍵也很完整。
    • Bike 的大綱有「類型」(row type)的設計,可以是標題、筆記、code block、待辦事項或列表等等。
    • 儘管 Bike 目前還沒有 tag 跟 filter 功能,去年加入的 Outline Paths 設計 讓進階使用者可以在 AppleScript 裡做 query,並且進一步做其他應用。比如說搭配前面提到的 row type,就可以寫一個 AppleScript 列出「尚未完成的待辦事項並且傳送到 Things 3 建立個別的待辦事項」。Jesse Grosjean 說過 Outline Paths 會是未來許多新功能的基礎,所以我想未來在 Bike 2 應該還會以此延伸出很多相關功能吧,令人期待。
    • 我都不知道原來編輯器的「打字機模式」用起來感覺這麼棒,現在用 Drafts 跟 iA Writer 也常常會開啟打字機模式。(可能以前剛接觸不習慣就沒繼續用,現在回想起來還真的是小時候不懂事 XD)
    • 我喜歡 Bike 的使用授權設計:每年購買授權以享有持續更新(更新授權都是半價),停止授權後依舊可以繼續使用現有功能。
    • 搭配 Berkeley Mono 這個字體超級好看,哈哈 XD(Btw 我好期待 Berkeley Mono V2!)

    幾個缺點

    • CJK 相關的設計還不夠好。如果切換成中文輸入,那一行會「跳」一下。這個問題早期的 iA Writer 也有,不少 app 到現在都還沒解決這個問題,例如 Drafts。
    • 我用注音輸入法,undo 的時候中文部分會有點怪(文字會先分解成注音符號,所以 undo 會很慢 XD)。
    • 沒有 iOS app。Jesse Grosjean 說大概要等 Bike 3 才會有 iOS app,所以很重視這點的人要注意。不過如果可以接受使用純文字或是 .opml,那麼 iOS 上相容的 app 選擇不少。我自己設計了一個自動化流程,將 Bike 檔案轉成 Markdown 文件後在 iPhone 上用 iA Writer 打開,可以查看或是做一點編輯(但結果不會同步回去原本的檔案),iPad 也適用。這個方法雖不完美,將就著用倒也還可以。
    • 不支援 Markdown syntax,這點就比較個人一點。如果很好奇 Jesse Grosjean 為何做出這種選擇,可以收聽這集 《Changelog Interviews》,在大約在 25-26 分鐘處他有提到。不過因為 Bike 支援純文字格式,所以其實用 Markdown 語法編輯文件,存檔時選擇純文字,之後要用其他 Markdown 編輯器繼續編輯,或是複製文字時選擇純文字也是可以的。然而為了不影響後續其他 Markdown 編輯器呈現文字,恐怕就得在 Bike 中棄用大綱的階層功能。
    • 缺乏協作功能。這點可能跟 Jesse Grosjean 個人的偏好還有技術選擇有關,感興趣的讀者可以到他們的論壇提出。

    Jesse Grosjean 正在開發 Bike 2,也有陸續在使用者論壇和 Mastodon 上談到目前的進度、未來的規劃等等,感興趣的人可以去看看。啊,我的簡短介紹好像寫得太多了,哈哈。以後有機會再寫一篇完整的。

    相關文章

    • 〈Bike 帶來的價值與我的使用情境〉

    1. Show HN: Bike – macOS Native Outliner | Hacker News ↩︎

    2. 如果你認為這類「連結」功能很重要,可以參考這份最近滿三年的宣言 。 ↩︎


  • 為了在 Raspberry Pi 手動更新 AdGuardHome,我學到的 ChatGPT 用法

    Monday, April 1, 2024

    前幾天發現裝在 Raspberry Pi 的 AdGuardHome 無法自動更新,不過因為之前有過一次按照文件說明自己手動更新的經驗,當時是從 Mac 以 VNC 方式操作 GUI + command line 完成,想說等假日有空再來走一次。

    沒想到這次一開始就不太順利,VNC 竟然連不上,於是打開 Terminal 以 SSH 連線讓 Raspberry Pi 重新開機,之後雖然 VNC 可以連線,畫面卻是一片黑,只顯示「Cannot Currently Show the Desktop」訊息,我 google 後逐一排除原因,發現可能是 Micro SD 卡的空間滿了。這令我很困惑,因為這台機器除了跑 AdGuardHome 完全沒別的用途,怎麼會 32GB 的空間就用完了呢?

    被超大 err 檔攻佔!

    後來我在檔案系統裡一個一個查,很快就發現 var/log 裡有一個超級大的檔案「AdGuardHome.err」,一個檔案就佔了 22GB!雖然我也順便學了 scp 指令,想要把檔案搬出來,但中間因為很搞笑的原因一直沒成功,索性直接把檔案刪掉。重新開機之後,我又打開 AdGuard Home web app,想說再按一次自動更新看看,很神奇的這次就成功了 XD 結果繞了一大圈我解決的是別的問題,哈哈。(我查了一下,似乎自動更新會失敗不必然是因為空間不足,但因為我把 .err 給刪掉了,所以⋯⋯ XD)

    為了避免下次又出現這種 22GB 的檔案,我學到可以用 logrotate 處理,而且我發現其實 Raspberry Pi OS 很多軟體都有設定 log rotation,不知為何 AdGuard Home 沒有這個設計。

    另外講一件有趣的事,前面提到的一些指令和操作,例如 scp 和 logrotate,都是我向 ChatGPT 問來的,但我也不是直接把 ChatGPT 講的指令拿來用。我的流程如下:

    1. 先提出我的問題,包含對電腦環境的描述、幾個一定不可少的關鍵字,還有遭遇的問題,請 ChatGPT 告訴我是否有方法,有的話也請它解釋。(通常不必提醒它也會解釋。)
    2. 拿著 ChatGPT 給的指令去 google,以我這次遇的幾個問題來說都蠻容易找到資料。而且對於那些毫無頭緒的問題,問過 ChatGPT 之後至少你知道初步的搜尋方向。
    3. 如果有看不懂的地方,可以再問 ChatGPT,利如請它解釋指令或是某個功能。
    4. 綜合以上的資訊,經過自己的判斷後實際使用。

    過去一年我發現這樣的做法很方便,也的確可以解決不少問題。當然我並不是真的就懂了,這種「爆竹」(Squib)式學習法(其實應該更偏向麻瓜(Muggle)吧?XD)其實也常常讓我踢到鐵板。

    踢到鐵板

    前面提到說我使用 scp 指令過程很搞笑,就是因為我上傳了一張 Terminal 截圖,畫面是 ncdu 顯示檔案列表,我問 ChatGPT:「It’s my Raspberry Pi, how do I move the 22GB file out of it? (I can access it through SSH on my Mac.)」它說你可以用 scp 指令,接著給我 example code 並且附上詳細的解釋。以下是它提供的指令:

    
    scp @:/mnt/var/log/AdGuardHome.err 
    
    

    於是我就把指令改成:

    
    scp XX@XXX.XXX.XXX:/mnt/var/log/AdGuardHome.err ~/Desktop/temp/sites
    
    

    當我在 Mac 上「已經透過 SSH 連線 Raspberry Pi」的 Terminal 輸入那個指令後,我的 Mac 桌面毫無動靜,反倒是 VNC 視窗裡 Raspberry Pi 的桌面出現了那個檔案,相信真正懂的讀者早就看出問題在哪裡。我後來發現原來 google 有篇文章的教學寫著:

    NOTE: This is done from the Mac Terminal window without being logged in to the Raspberry Pi over SSH. I am forever forgetting this and try doing it from an SSH session.

    笑死,對吧?🤣事後想起來覺得 ChatGPT 並沒有發現我已經以 SSH 連線到 Raspberry Pi 了(不然我哪來的 ncdu 截圖呢?),這時它應該要建議我另外開啟一個 Termainl,在 Mac 這邊執行 scp 才對啊,或是修改成別的指令。又或者我在 google 的時候如果沒輸入 Raspberry Pi 或 Mac 等關鍵字,第一個結果「How to Use SCP Command to Securely Transfer Files | Linuxize」其實就會讓我知道可以輸入 source 跟 destination 的 IP。


←Previous Page
1 2

Blog at WordPress.com.

 

Loading Comments...
 

    • Subscribe Subscribed
      • YPWU
      • Already have a WordPress.com account? Log in now.
      • YPWU
      • Subscribe Subscribed
      • Sign up
      • Log in
      • Report this content
      • View site in Reader
      • Manage subscriptions
      • Collapse this bar