简体中文 · 繁體中文 · English
ZeroLaunch-rs 是一個為 Windows 打造的鍵盤啟動器。
給習慣用鍵盤的人:按 Alt+Space 喚出,敲幾個字母,Enter 啟動;
手快打錯了也沒關係——你要找的那個,多半還在第一位。
下載最新版
敲錯也能命中 ·
60 秒上手 ·
核心能力 ·
怎麼做到 ·
擴充 ·
貢獻
## 敲錯也能命中
如果你打字很快,大概遇過這種失敗:想搜 `chrome`,手指一快打成了 `chorem`,結果清單空空如也,明明裝著的應用一個都不出來。
ZeroLaunch-rs 預設的匹配演算法就是衝著這件事寫的。它給每個結果打三路分:看你敲的字母差了幾個、看字母組合像不像、看開頭和中間的字母對不對得上。錯一兩個字母、或者兩個字母敲反了,分數只是低一點,而不是直接掉到零。
`chorem` 和 `chrome` 只差一次相鄰字母互換,所以這種情況下第一條結果依然是 Chrome。下面是實際執行時的樣子(錄影:先正常搜 `ch`、`stea`,再把 `chrome` 敲亂成 `chormfe`、`vhcomre`):
> 不吹準確率百分比——敲錯一個字母,按一次 Enter 試試就知道了。
## 60 秒上手
1. **裝**:到 [Releases](https://github.com/ghost-him/ZeroLaunch-rs/releases) 下載檔名帶 `x64` 的 `.msi`,雙擊裝完即可(只有 ARM 筆電要選帶 `arm64` 的)。
2. **或者用可攜版**:下載檔名帶 `x64` 的 `ZeroLaunch-portable-…` `.zip`,解壓後執行裡面的 `exe`。
用起來就三步:按 Alt+Space 喚出 → 敲幾個字母 → Enter 開啟。第一個結果預設選中,所以這三步就夠了。
資料在 `C:\Users\你的使用者名稱\.ZeroLaunch-rs\`(可攜版全放在 `exe` 旁邊);不上傳你的使用資料,詳見 [PRIVACY.md](./PRIVACY.md);不需要時刪掉這個資料夾再解除安裝即可。
完整操作說明:全部按鍵
### 喚出與收起
| 按鍵 | 作用 |
|---|---|
| Alt+Space | 喚出搜尋窗。這是預設鍵,可以在設定裡換成別的組合,也可以改成「雙擊 Ctrl」。 |
| Esc | 輸入框裡有內容就清空;空的時候收起視窗。開啟設定裡的「ESC 優先隱藏」後,一律直接收窗。 |
| 面板裡的
Esc | 先退出面板、回到普通搜尋;再按一次才收窗。 |
### 搜尋清單
| 按鍵 | 作用 |
|---|---|
| ↓ / ↑ | 上下移動選中項。 |
| Ctrl+J
Ctrl+K | 也是上下移動,預設的「向下選擇鍵 / 向上選擇鍵」,可在設定裡改;兩個都清空後只剩方向鍵。 |
| Enter | 執行選中的條目。 |
| Ctrl+1…9 | 執行選中條目的第 N 個動作(主鍵盤數字區)。 |
| 條目自帶的快速鍵 | 有些條目會宣告自己的快速鍵,直接印在動作按鈕上——路徑與程式條目的「以管理員身分執行」是 Ctrl+Enter,「喚醒視窗」是 Shift+Enter;按下即執行那個動作。 |
| Tab
Shift+Tab | 在選中條目的動作之間向後 / 向前循環。 |
| Home / End | 跳到第一條 / 最後一條。 |
| 空格 | 平常就是輸入空格;開啟設定裡的「空格鍵確認」後等同於 Enter。 |
| 滑鼠 | 單擊條目直接執行;單擊條目上的動作按鈕只執行那個動作。 |
### 需要填參數的條目(比如自建指令)
| 按鍵 | 作用 |
|---|---|
| Enter | 確認參數並執行。 |
| Tab
Shift+Tab | 參數多於一個時,切到下一個 / 上一個欄位。 |
| Ctrl+J
Ctrl+K | 上下移動選中項(這時方向鍵留給輸入框的游標)。 |
| Backspace | 參數還空著時,退出參數輸入。 |
| Esc | 退出參數輸入。 |
### 外掛面板裡
面板按鍵由外掛自己宣告,下面是自帶的幾個:
| 面板 | 按鍵 |
|---|---|
| 翻譯 | Enter 複製譯文(還沒譯好時觸發翻譯或重試);Ctrl+Enter 直接複製已有譯文;Esc 退出面板。 |
| 算數 | Enter 複製結果(沒有結果時重算);Esc 退出。 |
| 路徑
網址 | Enter 開啟;其餘動作(如「開啟所在資料夾」)用滑鼠點;Esc 退出回搜尋。 |
外掛面板走的是「全接管」模型:面板裡需要哪些鍵,全由外掛自己宣告,宿主只解釋它宣告過的那幾個,剩下的按鍵一概放行給它。所以某個鍵在某個面板裡沒反應,通常是這個外掛沒宣告它——這種情況屬於外掛自身的問題,請直接向該外掛的作者回饋。
### 外掛熱鍵
獨立外掛可以自帶一個熱鍵(例如 Ctrl+E):搜尋窗已經開啟時按下,直接進這個外掛的面板。它不會註冊成系統級全域熱鍵,所以視窗沒開啟時按不到。熱鍵和別的外掛撞車時,只有優先級高的那個生效。
## 核心能力
喚出之後就是一個輸入框。你敲進去的可以是「東西本身」——應用名、資料夾路徑、網址、算式;也可以是「觸發詞 + 內容」,比如 `fy 你好`。前者交給搜尋,後者交給外掛。注意「觸發詞 + 空格 + 內容」是**行內外掛**(翻譯、計算機這類)的用法;**獨立外掛**(如 Everything 搜尋)不吃這套,要先在候選清單裡選中它進入外掛,再在外掛自己的介面裡搜尋(外掛有哪兩種、自帶的都有什麼,見下方折疊的「外掛」小節)。
- **搜到就能啟動**:系統裡裝的應用(含從 Microsoft Store 裝的)、開始功能表裡的程式、你自己加的條目,都在同一個輸入框裡;開啟時用的是系統預設程式,跟雙擊一樣。
- **打錯也能找到**:敲錯一兩個字母、或者把兩個字母敲反了,清單也不會空,你要找的那個多半還在最前面。
- **越用越順**:常用、最近用過的條目會自動往前排;這些記錄單獨存一個檔案,重啟不丟,也不會混進你的設定檔。
- **按習慣自訂**:取別名、加自訂指令和網址、改快速鍵、換介面語言,都在設定裡完成。
- **設定都有介面**:從喚出快速鍵、主題配色、字型,到每個外掛自己的參數(翻譯用哪個模型、預設譯成什麼語言),每一項都有對應控件:熱鍵按下即錄、顏色有取色器、路徑與字型有選擇清單、數值有步進器。不用開啟任何設定檔,改壞了還能一鍵恢復預設。
- **想問就問**:側邊欄底部的「問 AI」是一個獨立問答頁——問它某個功能支不支援、去哪裡設定、目前的值是多少。答覆分兩段給(是否支援 + 逐步點擊路徑/目前的值 + 改成什麼後的效果),並附上可一鍵跳轉的設定項。它只讀內建說明書與你目前的設定,不會改動任何設定;先在「AI 助理」裡指定一個聊天模型(本機 Ollama 或 OpenAI 相容介面都行)即可使用。
外掛:兩種形態與內建外掛清單
外掛按喚醒方式分兩種。**行內外掛**(inline)在你輸入的時候接管,結果嵌在搜尋視窗裡;**獨立外掛**(panel)不接管輸入,而是自己變成一個候選,選中之後整頁接管。
行內外掛有兩種玩法。一種是**提供管道部件**:外掛可以宣告自己實作搜尋引擎、候選來源、執行動作、評分規則、關鍵字處理這幾種組件,和內建組件完全對等——搜尋引擎按優先級只取一個生效,其餘(資料來源、執行器、評分、關鍵字處理)疊加參與,每個都能在設定裡單獨啟停。另一種是**自帶一套互動**:翻譯、算數就屬於這種——你敲 `fy 你好` 或者 `= 12*8`,結果區就換成它的面板,搜尋列還在。路徑和網址連觸發詞都不用,靠形態判定:讓它知道「就是這個」的辦法是在末尾敲一個空格(例如 `github.com `),路徑本身含空格時用引號整段包住(例如 `"C:\Program Files"`)。
獨立外掛的觸發詞只會變成候選關鍵字:輸入停在觸發詞本身就好(例如只敲 `ev`,後面別再跟查詢詞,跟了候選項就會消失),清單裡就多出這個外掛;Enter 之後它佔滿整個視窗、不留搜尋列,接下來在外掛自己的介面裡搜尋。這類外掛還能宣告一個熱鍵(只在搜尋窗開啟時生效,例如 Everything 外掛的 Ctrl+E),一鍵直接進入。
自帶的外掛不用額外裝什麼就能用,不想要哪個可以在設定裡單獨關掉:
- **應用搜尋**:`chrome` 啟動應用(`微信` 直接搜中文,`qqy` 直接搜 QQ 音樂)。
- **路徑與網址**:`D:\下載 ` 開啟資料夾,`github.com ` 開啟網址(末尾空格表示「就是它」;含空格的路徑用引號包住)。
- **計算機**:`= 12*8` 直接出結果。
- **cmd 執行**:`> ping 1.1.1.1` 在 cmd 視窗裡執行這條命令;預設跑完視窗保留(方便看輸出),可在設定裡改成自動關閉視窗。
- **翻譯**:以 `fy`、`tr` 或 `翻译`(簡體字面關鍵字)開頭,可以邊打邊譯,也可以 Enter 才譯;第一次用要先在設定裡配好一個聊天模型(本機 Ollama 或 OpenAI 相容介面都行),沒配就出不來結果。
- **書籤搜尋**:自動讀取 Chrome、Edge 等瀏覽器的書籤,敲書籤標題就能開啟。
- **內建指令**:輸入 `settings` / `refresh` / `reshortcut` / `gamemode` / `exit`(程式內建的中文關鍵字是簡體字面值 `设置` / `刷新` / `注册` / `游戏` / `退出`,照打即可),分別開啟設定、重建索引、重新註冊快速鍵、切換遊戲模式、離開程式。
- **自訂指令與網址**:把常用內容存成自己的條目,下次敲關鍵字直接執行或開啟。
## 怎麼做到
從按下 Alt+Space 到開啟目標,中間要經過一條管線:先把你的輸入拆成幾組關鍵字,再從各個來源收集候選,由匹配演算法評分,疊加你的使用習慣,最後交給執行器執行。這條管線裡的每一段都能整體替換——換搜尋引擎、換資料來源、換加分規則、換執行方式都可以。
預設參數(都能在設定裡調)
- 匹配演算法由三路組成:最短編輯距離、字元 bigram 上的 BM25 稀有度加權、KMP 首字元與子字串匹配。
- 標準模型:BM25 `k1 = 1.2`、`b = 0.3`(應用名短、長度變異小,所以比經典 `0.75` 低),分數再經 `3·log2(score+1)` 放大。
- 習慣加分:啟動歷史 `0.8`、近期習慣 `1.5`、時間 `0.5`、衰減 `10800` 秒(約 3 小時);查詢親和權重 `3.0`、衰減 `259200` 秒(約 3 天)、冷卻 `15` 秒。
- 內建三個搜尋引擎:標準(預設)、Launchy 風格、skim 風格。
- 設定裡的除錯頁能看到每次查詢的耗時與各組件分數明細。
## 擴充
- **第三方外掛**:除了自帶的,還能裝別人寫好的,也可以自己寫。每個外掛都在獨立行程裡跑,外掛崩了不會帶走主程式;雙方按固定協定對話,版本對不上就直接拒絕載入。
- **外掛市集**:在軟體裡就能逛社群外掛,點一下就能裝,裝完立刻能用。
- **Rust SDK**:官方提供 SDK,見 [`crates/plugin-sdk-rust`](./crates/plugin-sdk-rust/README.md)。實作 `Plugin`(`init` / `query` / `execute_action`)和 `Configurable`,用 `run(MyPlugin)` 就能跑起來,需要用到宿主能力時調 `HostProxy`;完整的 trait 清單與協定說明見 [`crates/plugin-api/README.md`](./crates/plugin-api/README.md)。
- **本機 CLI**:給 AI 程式助手或腳本用。到 [Releases](https://github.com/ghost-him/ZeroLaunch-rs/releases) 附件裡下載 `zerolaunch-cli_<版本>_<架構>.exe`,改名成 `zl.exe` 即可(它自己的指令名就是 `zl`)。子指令有 `ping`、`query`、`session`、`plugins`、`config`,加 `-j` 輸出 JSON。
## 貢獻
遇到問題、發現 bug,或者只是想說點什麼,歡迎[提 issue](https://github.com/ghost-him/ZeroLaunch-rs/issues),也歡迎來 [discussions](https://github.com/ghost-him/ZeroLaunch-rs/discussions) 聊聊。
想動手改程式,請先讀 [CONTRIBUTING.md](./CONTRIBUTING.md),裡面寫了:
- 本機怎麼跑起來:環境需求、依賴安裝、開發與除錯指令;
- 提交前要過哪些檢查:格式化、靜態檢查、測試;
- 提交訊息與 PR 的規範(Conventional Commits)。
## 💝 贊助商
感謝以下贊助商對 ZeroLaunch-rs 的大力支持,讓專案變得更好 (´▽´ʃ♡ƪ)
## 授權條款
主程式 `GPL-3.0-only`,見 [`LICENSE.txt`](./LICENSE.txt)。外掛用的 SDK(`zerolaunch-plugin-api`、`zerolaunch-plugin-host`、`zerolaunch-plugin-sdk-rust` 等)單獨採用 `Apache-2.0`,所以你寫的第三方外掛不受主程式授權條款的限制。
简体中文 · 繁體中文 · English