Skip to content

FlagTech/qshot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QShot

QShot 是以全域快捷鍵操作的 Windows/macOS 截圖工具。程式啟動後只顯示於系統匣;截圖會直接複製至剪貼簿並顯示預覽。

Windows 版本已完成實機驗證;macOS 後端已完成權限、快捷鍵與目標選取的實機整合驗證。Linux 尚未支援。

系統需求

  • Python 3.12 以上
  • uv 0.11.25 以上
  • Windows 10/11,或目前受 Apple 支援的 macOS

執行

uv sync
uv run qshot

macOS 第一次使用時,需在「系統設定 → 隱私權與安全性」允許 QShot(或啟動它的終端機)使用「輔助使用」及「螢幕錄製」。

快捷鍵

Windows macOS 功能
Alt+Shift+A Opt+Shift+A 擷取焦點視窗
Alt+Shift+R Opt+Shift+R 選取矩形區域
Alt+Shift+F Opt+Shift+F 擷取游標所在螢幕
Alt+Shift+W Opt+Shift+W 選取游標下的控制元件或視窗

操作方式

  • 矩形選取:拖曳滑鼠左鍵選取範圍,放開後擷取;按 Esc 取消。
  • 視窗/控制元件選取:移動游標時會以粗框標示目前目標,在框內任意位置按下並放開滑鼠左鍵後擷取;按 Esc 取消。
  • Windows 會透過 UI Automation 辨識 Terminal 標籤頁等自繪控制項,也可選取桌面、桌面圖示與工作列;子視窗範圍會裁切至父視窗的可見區域。
  • 視窗/控制元件選取期間,滑鼠移動、按鍵與滾輪事件會由 QShot 接收,不會改變下方視窗的 hover 狀態或觸發操作。
  • 全螢幕擷取:擷取游標所在的整個螢幕。
  • 預覽:顯示於擷取來源螢幕中央;若圖片過大,會等比例縮小至可用畫面的 80%。按任意鍵或點擊預覽本身即可關閉;點擊預覽外部不會關閉。
  • 預覽期間再次按截圖快捷鍵,會先關閉原預覽再開始新的截圖。

全域快捷鍵會由 QShot 攔截,不會傳遞至目前具有輸入焦點的程式。

開發與測試

uv run pytest

目前測試涵蓋快捷鍵映射、擷取防重入、目標選取輸入處理、預覽重用/縮放/點擊範圍、視窗尺寸與平台共用邏輯。Windows 另已驗證 UI Automation 深層元素解析、父視窗邊界裁切、原生命中測試、輸入選取層策略、快捷鍵註冊/解除、焦點視窗邊界及多螢幕擷取。

初次參與開發者請先閱讀 架構與技術棧,了解模組分工、截圖事件流程與平台後端設計。

已知限制

  • macOS 授予或變更「輔助使用」及「螢幕錄製」權限後,需重新啟動 QShot。
  • 受保護內容、系統安全畫面及拒絕螢幕擷取的程式可能無法擷取。
  • 不提供圖片存檔、截圖歷史、圖片標註、開機自動啟動或設定介面。

About

QShot screenshot utility

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages