! 本篇文章將會介紹 opencode 的 TUI 個人化設定,把工具客製成你的樣子,用得順手才用得長久 :D
TL;DR: https://dev.benben.me/slides/s/ironman-08-theming-keybinds
讀完這篇你會學到:
opencode 的設定分成兩個檔案:
| 檔案 | 管什麼 | 例子 |
|---|---|---|
opencode.json(c) |
server / runtime 行為 | model、provider、permissions、formatter、LSP |
tui.json(c) |
介面體驗 | theme、keybinds、mouse、scroll、通知音效 |
對,你沒看錯——主題和快捷鍵現在住在 tui.json。舊版本把這些寫在 opencode.json 的做法已經被列為 deprecated(會自動搬移),新專案請直接寫對地方。
兩種都支援 JSONC(JSON with Comments),可以寫註解:
// ~/.config/opencode/tui.jsonc
{
"$schema": "https://opencode.ai/tui.json",
// 這行是註解,寫給未來的自己
"theme": "tokyonight",
"keybinds": {
"leader": "ctrl+x"
}
}
加上
$schema之後,編輯器會自動幫你補全跟驗證——設定檔寫錯字當場抓包,不用等到啟動才爆。
~/.config/opencode/ 底下的 opencode.json / tui.json——你的個人偏好opencode.json / tui.json——可以 commit 進 git 給團隊共用重要規則:設定是「合併」不是「覆蓋」。全域設了 A、專案設了 B,兩個都會生效;只有同一個 key 衝突時,專案層才贏過全域層。所以全域放共通偏好、專案放差異調整,不會互相清空。
/themes 即時換漂亮主題最快的方式是 TUI 裡直接輸入 /themes(或 ctrl+x t),即時預覽、選了立即生效。
找到本命之後寫進 tui.json 固定下來:
{"$schema": "https://opencode.ai/tui.json", "theme": "tokyonight"}
每天盯著看八小時的東西,值得花五分鐘挑一套順眼的,這樣就可以看十二小時了(X)。
還記得 Day 03 的快捷鍵都長 ctrl+x 開頭嗎?ctrl+x 就是 leader key——先按它、再按功能鍵,避免跟 terminal 其他快捷鍵打架。
不順手?tui.json 換掉:
{
"$schema": "https://opencode.ai/tui.json",
"leader_timeout": 2000,
"keybinds": {
"leader": "ctrl+o", // 換 leader
"session_new": "<leader>n",
"command_list": "ctrl+p"
}
}
以筆者為例,是用
ctrl + o(o for opencode),因為單手要按ctrl + x,真的不太順手,試試看再跟我分享你的心得!
兩個貼心設計:
"none" 就好leader_timeout(預設 2000ms)決定按完 leader 後等多久算放棄,覺得手忙腳亂可以調長。
// 專案 opencode.json
{
"$schema": "https://opencode.ai/config.json",
"model": "opencode-go/glm-5.3",
"small_model": "opencode-go/glm-5.3-flash", // 輕量任務用小模型
"autoupdate": "notify" // 不自動更新,但有新版會通知
}
small_model 是幫標題生成這類雜事省錢用的小模型;多模型策略的完整玩法留到 Day 20。另外還有個變數魔術:{env:變數名} 可以引用環境變數、{file:路徑} 可以引用檔案內容——放 API key 特別好用,不會把機密硬塞進設定檔。
小小測驗:同事說「我把 theme 寫在 opencode.json 怎麼沒生效」——你會先檢查什麼?
答案:該寫在tui.json。舊位置已 deprecated,雖然會自動搬移,但直接寫對地方才是正解。
.json)不行,別搞混。tui.json 把 mouse 設為 false,還原 terminal 原生行為。opencode.json 管行為、tui.json 管介面(theme / keybinds 都在這)$schema + JSONC 註解,讓設定檔好寫好維護Day 09:LSP 與 formatters——幫 AI 裝上眼睛與尺,改得更準、格式一次到位。
參考資料:
有任何疑問但沒有 iT 邦幫忙帳號,或是想匿名提問?
歡迎到 https://dev.benben.me/q/P3C5U6 提問或加油打氣,沒意外的話會在完賽之後一起回答 :D