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:
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.
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.
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.
以今日大部分消費者的 email 使用模式來說,應該不太需要煩惱垃圾郵件問題。不過既然我想要多掌握一點自己使用 email 的自由(其中一部分就是逃離 Gmail,以後有機會再談),就會想試試看也是我聽聞已久、由 Michael Tsai 開發的垃圾信過濾軟體 SpamSieve。
SpamSieve 是一個結合電子郵件語料庫(corpus)、黑/白名單、通訊錄,以及貝氏分類器(以貝氏統計為核心的分類技術)等各種方法來防堵垃圾郵件的單機版軟體,透過手動和自動化訓練,去學習使用者的偏好。SpamSieve 可以跟包括 Apple Mail 在內的許多 email 軟體搭配使用,所有的分析、訓練與過濾都發生在我的 Mac,也只會留在我的 Mac。
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」選單都沒有。
Pandoc 的開發者是 UC Berkeley 的哲學教授 John MacFarlane。我想 Pandoc 的用途對每個人來說都略有不同,我最主要是用它把 Bike 檔案從 HTML 轉換成一個新的 Markdown 檔案,搭配前面提到的 Hazel,我就可以在 iPhone 或 iPad 用 iA Writer 查看我的 Bike 文件,過程完全自動化 : D 我還記得當初看到 Pandoc 的文件簡直目瞪口呆:它竟然可以轉換這麼多種格式!實在是很厲害。
另外還有幾個不錯的更新,例如提供更多字體大小的選擇,以及為 Things for Mac 增加推播通知功能,以往在 Mac 上你要收到待辦事項設定的時間通知,Things app 必須是開啟的(在 iOS/iPadOS 則不必),現在 Things for Mac 如果沒打開也照樣收得到通知了。另一個我個人很喜歡的更新是它也支援 Bike Outliner ✌🏻我可以在使用 Things Quick Entry 時直接帶入 Bike 大綱的資訊。
另一個重大改變當然是介面設計和功能上的調整,雖然在剛改版時有遇到一些狀況,例如串流功能被捨棄引發一部分使用者不滿,而且顯然影響到了 Overcast 在 App Store 的評價,因此 Marco Arment 後來有把經過調整後的串流功能加回來。幾個月過去,現在 Overcast 幾經更新之後,不管是在體驗上,或是呈現 show notes、章節資訊和播放控制等等,都變得比新版剛推出時更好。
不知道是湊巧還是大家對於過度後製的照片都覺得受夠了,在 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)與介面改版。
我的前一篇文章〈快速推薦 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 有聚焦功能,可以讓我在既有文件立刻進入一個獨立的、不受前後文干擾的思考空間,不必擔心弄亂原本的排版或內容。反過來說,如果我需要參照同一份文件其他位置的內容,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 視窗)
Jesse Grosjean 想到的解法是讓 Bike 文字游標出現在格式變化的交界處時會長出「尾巴」,這個設計讓使用者在編輯 rich text 時能夠清楚地掌握格式:在一段文字中插入文字游標時,可用鍵盤方向鍵控制「尾巴」指向左或右,代表接下來輸入的內容會套用哪一邊文字的格式。實際效果可參考下方兩張 GIF,也可以往下滑看 Jesse Grosjean 錄製的說明短片。
▲ 展示 Bike 文字游標設計的效果 1:文字游標指向左邊時, 新增的文字會套用原本游標左側文字的格式。▲ 展示 Bike 文字游標設計的效果 2:文字游標指向右邊時, 新增的文字會套用原本游標右側文字的格式。
動畫設計
一開始在 Bike 打字時,相信很多人會立刻注意到文字游標移動的模式「不太一樣」,那是因爲 Bike 針對游標移動的動畫做了巧妙的設計,在打字、移動游標(上下移動時特別明顯)或是調整大綱順序的時候覺得很滑順、流暢,令人感到心情愉快。(這點似乎每個人的感受不同,有些人反而會覺得變慢,不過動畫可以調整速度,也可以關掉。)
在新分頁或新視窗開啟同一份文件
另一個提升 Bike 使用體驗的功能是在新分頁或新視窗重複開啟同一份文件。這樣一來就可以同時看到文件不同位置的內容,或是在處理某個子項目的時候,同時透過另一個視窗看到最上層的整體大綱。我是在過去幾年使用 Roam Research、Logseq 等產品之後才體會到「重複開啟同一份文件以顯示不同位置的內容」這樣的設計有多麽便利。
輕巧、快速的原生 Mac app
Bike 是原生 Mac app,這點在今日已是一種少見的美德。Bike 程式體積輕巧、速度快,使用時佔用的記憶體也少。
前幾天發現裝在 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 指令過程很搞笑,就是因為我上傳了一張 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 並且附上詳細的解釋。以下是它提供的指令:
當我在 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。