TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

MacBook 的 Force Touch 觸控板內建壓力感測,開源工具 TrackWeight 把這個感測值直接當成公克讀數,手指按住觸控板就能秤咖啡豆或小零件。這篇從原始碼拆解它的原理、安裝代價與機型限制。
用 AI 摘要這篇文章:
MacBook 的觸控板可以拿來秤東西,而且這回不是愚人節玩笑。開源工具 TrackWeight 把 Force Touch 觸控板內建的壓力感測讀數直接當成公克顯示:一根手指輕貼在觸控板上,另一手把咖啡豆、螺絲或耳機放上板面,等畫面數字停住,那就是它判讀的重量。這個專案 2025 年 7 月出現在 GitHub,發布當週衝上近六千顆星、同日登上 Hacker News 首頁,到 2026 年 9 月累積到九千一百多顆星,最新版安裝檔的下載次數超過二十萬。我的判斷先放在前面:把它當硬體彩蛋來玩,值得裝;把它當料理秤或任何計量工具來信任,超過它自己敢保證的範圍。
這篇的觀察來自它的原始碼、官方說明文件與問題追蹤區(數字截至 2026 年 9 月),我沒有實際安裝實測,讀數能信到哪裡,文末會給你自己驗證的方法。
讀 TrackWeight 的原始碼,最意外的地方是它幾乎什麼都沒算。核心邏輯在 ScaleViewModel.swift 裡:程式監聽觸控板的觸摸資料流,抓第一個觸摸點的壓力值當作原始重量,減掉歸零偏移後直接顯示,中間沒有任何係數、曲線或查表換算。整個「電子秤」的數學就這麼一行。
它之所以能這樣做,原因是作者在說明文件裡自己寫的:這條多點觸控通道吐出來的壓力資料,數值剛好就落在公克量級。作者的原話是「我們從 MultitouchSupport 拿到的資料已經是公克了」。這句話要標清楚是作者宣稱,蘋果官方文件從來沒有證實感測器讀數的單位定義,但作者的校準方法至少是可以理解的那種:把整台 MacBook 的觸控板壓在傳統電子秤上,放上不同已知重量的物件,對照兩邊讀數。換句話說,它真正有趣的點是挖出了一條蘋果沒對一般應用程式開放的感測器資料通道,軟體本身反而只是薄薄一層。
要讀到這條通道,代價寫在權限設定檔裡。TrackWeight 用的是 Takuto Nakamura 開源的 OpenMultitouchSupport 函式庫(作者另外 fork 了一份調整),它讀的是 macOS 私有的多點觸控介面,一般 App 拿不到這種事件的原始資料,所以 TrackWeight 的 App Sandbox 必須整個關閉。這是理解後面所有取捨的起點。這條通道吐出的觸控資料其實相當細:位置、壓力、接觸角度、面積密度都在欄位裡,TrackWeight 的量測邏輯只用了壓力這一項,剩下的欄位等於是留給下一個想做觸控實驗的人。
Force Touch 觸控板只在偵測到電容時才會吐出壓力事件,這個硬體特性決定了它的使用姿勢:你的手指從頭到尾都不能離開板面。官方的使用流程是四步:打開 App、把手指輕放在觸控板上、維持接觸的同時把物件放上去、手指出力越少越好,只留剛好維持接觸的力道,數字就是物件的重量。手指一離開,壓力事件消失,程式會把重量和歸零偏移一起重置,等下一次接觸重新開始。
App 內建一條引導流程,從原始碼看得出它想把手動技巧變成自動判斷:先要求手指穩定按住約三秒(畫面上有進度回饋),之後進入等待物件的階段,偵測壓力變化率,物件放上板面的瞬間會造成壓力跳升,程式就進入量測階段,接著等讀數穩定,必須連續約三秒、變動幅度壓在 2 公克以內,才鎖定結果交給你。這裡要澄清一個常見誤會:網路轉述這個工具時常出現「誤差約 2 公克」的說法,但原始碼裡的 2 是穩定判斷的門檻,意思是讀數停止抖動就鎖定,與精度規格是兩回事。整個專案沒有任何數值精度規格,README 的標語反而自稱精準,作者的免責聲明也直說這是實驗與教學用途,關鍵測量要用校正過的秤再驗一次。
能秤多重同樣沒有官方數字,校準時涵蓋了哪些重量區間只寫了「多個範圍」。就硬體常識判斷,觸控板的壓力感測是為手指力道設計的,把書本或整瓶水壓上筆電本來就不在合理使用範圍裡;它天生適合的是幾十公克等級的小東西,咖啡豆、螺絲、電子零件這類。
還有一個實務坑來自同一個電容特性:金屬物件可能被觸控板誤判成手指接觸,直接放上去讀數會亂掉。官方建議的做法是在金屬物和板面之間墊一張紙或一塊布再量。
程式裡另外藏了一個秤的重度使用者會在乎的功能:去皮。原始碼裡有個歸零函式,手指按住板面時觸發它,之後的讀數會扣掉當下的壓力當基準。想先放一個容器、扣掉容器重量再倒東西進去,靠的就是這個。說明文件裡附了一段十四秒的官方示範影片:一罐軟糖放上觸控板,讀數從 183.6 收斂到 182.0 鎖定,片尾拿傳統電子秤對照,實體秤顯示 180 公克,兩邊差距約一個百分點。那是作者自己挑的示範,足以證明能力存在,但把它當跨機型的精度承諾就過頭了;實際數字落在哪個區間,終究要用自己機器驗。
TrackWeight 的時間線很短。儲存庫 2025 年 7 月 21 日建立,作者當天在 X 上貼出示範影片、同日衝上 Hacker News 首頁,最後一次程式碼推送停在 7 月 27 日。到 2026 年 9 月,它有 9,127 顆星、396 次 fork、26 個未關閉的議題;這條成長曲線要看快照才誠實:滿一週時約 5,800 顆星,兩個月後 7,300,如今的九千一是十三個月累積出來的長尾。幾乎是一個人的專案(29 個提交裡 25 個出自作者本人),六天做完、爆紅、然後靜止不動,這是典型的病毒式週期,裝之前對它的維護狀態要有正確預期:你遇到的 bug 大概率不會有人修。

不過它踩在別人持續維護的地基上。OpenMultitouchSupport 原作者 Takuto Nakamura 的版本到 2026 年 5 月還有推送,函式庫本身是活的。版本史也值得看一眼:帶安裝檔的版本一共四個,第一個在 7 月 25 日發布、檔名直接標了 unsigned,下載四千多次,另外三個集中在 7 月 27 日同一天;目前被 cask 和最新版連結指著的最終版,二十萬次下載是十三個月累積的結果,不是爆紅那一週的瞬時量。

| 安裝方式 | 動作 | 適合誰 |
|---|---|---|
| DMG 下載 | 到 GitHub Releases 頁抓 TrackWeight.dmg,拖進應用程式資料夾 | 大多數人 |
| Homebrew | brew install --cask krishkrosh/apps/trackweight | 有終端機習慣的人 |
| 原始碼編譯 | 複製儲存庫,用 Xcode 打開專案、關閉沙盒後自行建置 | 會 Swift 的人 |
三條路徑背後有三個要知道的代價。第一,官方建置流程在沒有簽署憑證時產出的是未簽署版本,第一次打開會撞到 Gatekeeper,要手動到系統設定放行;知道這點你才能自己權衡要不要信任安裝檔。第二,前面提過的沙盒關閉,它需要比一般 App 更底層的事件權限,讀的是整個觸控裝置的原始資料。同樣在系統層讀輸入事件的工具還有統計鍵盤活動的 Keystats,這類工具的信任判斷邏輯是共通的:看原始碼有沒有把資料送出去。TrackWeight 這關過得乾淨,整個專案的 Swift 檔案裡找不到任何網路請求程式碼,權限設定檔雖然宣告了網路客戶端權利,但程式沒有用它。就原始碼所見,它量到的數字不出你的機器。
第三個代價藏在 Homebrew 的 cask 定義裡:版本欄寫的是 latest,校驗和欄是 no_check。意思是 brew 裝的永遠是當下最新版,沒有版本鎖定也沒有 checksum 可以驗,這不是多數 cask 提供的穩定契約。好處是作者若再發版你會自動跟上,壞處是供應鏈的確定性比典型 cask 低一級。需要可重現安裝的人,自己編譯反而最踏實。這個 cask 還會順便在命令列裝一個 trackweight 指令,從終端機直接打 app 名稱就能啟動;解除安裝時用 brew uninstall –zap 會把偏好設定檔和應用程式支援資料夾一起清乾淨,留過痕跡的位置官方定義裡都列了出來。
機型是最先要確認的。這個工具需要 Force Touch 觸控板,官方支援範圍只列了 2015 年之後的 MacBook Pro 和 2016 年之後的 MacBook。年份門檻背後的硬體差異是:蘋果從 2015 年起逐步把筆電觸控板從「整塊板子實體下壓」換成「板子不動、用力道感測判斷點按」,沒有那排壓力感測器的舊機型,這個工具就沒有資料可讀。不確定自己機型年份的話,查一下 Mactracker 這類機型資料庫最快,順便確認那塊觸控板是不是 Force Touch 規格。系統門檻是 macOS 13 Ventura 以上,開發需求則是 Xcode 16 與 Swift 6,只有要自己編譯的人才用得到。
晶片是另一個變數。Intel 機型的 Homebrew 安裝曾經直接被 cask 的架構限制擋下來,問題追蹤區裡有一串回報,作者的回覆是改抓 DMG 試試;但也有人回報 2020 年的 Intel MacBook Pro 裝了顯示不支援。Intel 用戶要有裝不起來的心理準備,Apple Silicon 相對單純。
裝置誤判則是隨機出現的那種坑。部分帶 Touch Bar 的機型會把 Touch Bar 辨識成觸控板、把真正的觸控板認成滑鼠,這個議題到 2026 年還開著;App 後來內建了裝置選擇器,遇到誤判時到設定裡手動選對裝置,比反覆重開機可靠。還有一批人 brew 裝完雙擊打不開,社群找到的繞法是裝好 Xcode、把命令列工具指到它之後,從終端機直接啟動程式。這些都是一週專案會有的毛邊,遇到時先去問題追蹤區搜,大概率已經有人踩過。
什麼人裝了會開心:想跟朋友展示硬體可能性的人、要大概抓個重量的咖啡玩家、教觸控感測或做人機互動示範的人。什麼人別碰:任何讀數會影響結果的場景,烘焙配方、郵資試算、藥品份量,這些請用真正的秤,作者本人也是這樣寫的。
如果決定裝,給你一個不花錢的驗證方法:找一包包裝上標示淨重的咖啡豆或零食,用它當標準砝碼對照讀數,再拿個金屬物件試試誤觸、練一下墊紙的手感。幾個提高一致性的小訣竅都來自它的設計原理:手指盡量固定在同一個位置、出力維持剛好接觸的程度、每次量之前先歸零、等數字真的停住再讀。一輪下來你會知道自己這塊觸控板的讀數落在哪個區間,這比任何網路轉述的精度數字都可靠。它也示範了一種把蘋果封在硬體裡的感測器挖出來用的思路,同樣在蘋果生態裡挖底層能力的還有把官方回復工具包成圖形介面的 DFU-Tools,而這種一個人用 Swift 寫成的原生小工具,過去我們也介紹過像是 PasteMemo 這樣的例子,數量比想像中多,品質也越來越有意思。
TrackWeight 的價值不在於取代你抽屜裡的電子秤,而在於它證明你每天摸幾百次的那塊玻璃板下,藏著一排沒被說明的壓力感測器,而讀出它的門檻低到一個週末專案就跨過去了。帶著這個認識去裝它,你會玩得很開心;帶著計量的期待去用它,你會失望。