Fankex

輸入關鍵字搜尋已發布文件。

nano-use

權限與疑難排解

解決 nano-use 的常見問題——macOS 權限、建置錯誤、截圖故障、座標細節。

檢查實際啟動應用程式的權限

截圖需要「螢幕錄製」權限,滑鼠和鍵盤事件需要「輔助使用」權限。到系統設定裡檢查的時候,注意看的是實際啟動執行檔的那個應用程式。從終端機切換到 IDE 或其他啟動器時,權限環境可能改變。改完權限後可能需要重啟那個應用程式才會生效。

建置與啟動

  • cargo: command not found — 安裝或選擇 Rust 工具鏈,用 rustc --versioncargo --version 確認。
  • 編譯器、SDK 或 Swift 連結錯誤 — 檢查 xcode-select -p 和 Apple 建置工具。原始碼連結了 macOS 和 Swift 框架,不能當作 Linux 程式來建置。
  • nano-use: command not found — 在儲存庫根目錄用 ./target/release/nano-use --help,或者按「快速開始」設定 PATH。
  • unexpected argument '--version' — 這個版本沒有 version 參數,用 git rev-parse HEAD 來確認檢出版本。

截圖與解碼

成功的 screenshot 會向 stdout 寫入一行 base64 PNG 加一個換行。記得把 stdout 和 stderr 分開處理。按照快速開始裡的步驟解碼——副檔名是 .png 不代表內容就是 PNG。

如果 stderr 顯示 未检测到活动显示器,表示需要在已登入的圖形工作階段中執行,並檢查啟動器是否有顯示器存取權限。受限或無介面的程序可能根本看不到顯示器。即使檔案存在,如果截圖是空白、黑畫面或不完整的,還是要檢查權限和工作階段狀態。不同應用程式的受保護內容和不同系統版本可能影響截圖結果。

輸入與引數

  • unexpected argument '-480' — 加 -- 來結束選項解析:nano-use scroll -- 320 240 -480。負座標和以連字號開頭的文字也一樣。
  • type 命令不接受空字符串 — 傳入非空的文字引數。
  • 无法解析按键组合 — 用一個主鍵加選用修飾鍵,像是 shift+a。單獨的 cmda+b 都不行。
  • 未知按键 — 用支援的按鍵名稱。keypress 不是用來輸入任意 Unicode 文字的,文字請用 type
  • 結束代碼為 0 但介面沒變化 — 在臨時文件裡檢查「輔助使用」權限和視窗焦點,再用新截圖驗證。沒有可見變化不等於事件成功送達了。

解析錯誤的結束代碼是 2,這個版本處理的執行期錯誤寫到 stderr 並以 1 結束。其他終止狀態可能來自作業系統或啟動器本身。

座標與多顯示器

程式用一個包住所有作用中顯示器的軸對齊外接矩形來校驗座標,顯示器之間的空隙也能通過。顯示器原點可以是負數。縮放顯示器上截圖的像素尺寸和桌面座標單位可能不同——不要直接拿圖片像素座標當點擊座標用。改變顯示排列或縮放設定後,記得重新截圖觀察。