DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Lightweight Windows screenshot tool (WPF / .NET 10): clean multi-monitor capture, vector annotations, blur/pixelate, pin to screen, offline OCR and a screenshot gallery.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Built-in and classic screenshot tools on Windows 11 often:
PrtSc);NeatShot runs in the system tray. It freezes the whole virtual desktop into one overlay and lets you select, annotate and export a region in a few keystrokes.
Capture
BitBlt (CAPTUREBLT included for layered windows).W × H badge).Ctrl + Shift + R): reopens the capture screen with the region you used last time already selected — handy for before/after comparisons. If a monitor was unplugged, the region is trimmed to the current screen.Esc to cancel the countdown.Annotate
Export & reuse
Pictures\NeatShot.F3): pin any image you copied from a browser, chat app, Figma or Explorer — no capture needed.Windows.Media.Ocr. It keeps line breaks and normalizes Vietnamese diacritics.Everyday
| Context | Shortcut | Action |
|---|---|---|
| Global | Ctrl + Shift + A / PrtSc | Start a capture (both keys can be changed in Settings) |
| Global | F3 | Pin the image in the clipboard |
| Global | Ctrl + Shift + R | Capture the last region again |
| Overlay | Click (no drag) | Select the highlighted window |
| Overlay | Enter / Ctrl + C | Copy to clipboard (also saved to the gallery) |
| Overlay | Ctrl + S | Save to the screenshots folder |
| Overlay | Ctrl + Shift + S (or Shift + click Save) | Save as… (choose folder and name) |
| Overlay | Ctrl + O | Extract text (OCR) |
| Overlay | Ctrl + Z / Ctrl + Y (Ctrl + Shift + Z) | Undo / Redo |
| Overlay | V P R O L A H T B N I | Select, Pencil, Rectangle, Ellipse, Line, Arrow, Highlight, Text, Pixelate, Step, Eyedropper |
| Overlay | Delete | Delete the selected annotation |
| Overlay | Esc / right-click | Leave the current tool; press again to cancel the capture |
| Pin | Mouse wheel / + - / Ctrl + 0 | Zoom in, zoom out, reset |
| Pin | Ctrl + wheel | Change opacity |
| Pin | P / Ctrl + P | Show or hide the annotation toolbar |
| Pin | V H R E L A T N |
Download (recommended)
NeatShot-v<version>-win-x64.zip from the latest release.NeatShot.exe. No installer and no .NET runtime needed (self-contained).Requirements
Build from source (requires the .NET 10 SDK)
git clone https://github.com/Thien21112005/neat-shot.git
cd neat-shot
dotnet build
dotnet run --project src/NeatShot
NeatShot starts in the system tray. Left-click the tray icon to capture, or right-click it to open the menu (full-screen capture, gallery, screenshots folder, start with Windows, exit). Only one instance can run at a time.
Start with Windows: like Lightshot, NeatShot registers itself to start in the tray when you sign in, so Ctrl + Shift + A is always ready. Turn it off with the tray menu item Khởi động cùng Windows (or in Task Manager → Startup apps). If you move the NeatShot folder, just run it once from the new location.
Package a release build: ./scripts/publish.ps1 runs the tests and produces artifacts/NeatShot-v<version>-win-x64.zip. See CHANGELOG.md for release notes.
Microsoft Store package (MSIX): ./scripts/package-msix.ps1 runs the tests and produces artifacts/msix/NeatShot-<version>.0-x64.msix from the manifest and logos in packaging/msix/. The package is unsigned on purpose: the Store signs it on release. Add -Register to install the build locally first (requires Windows Developer Mode). In the Store version, start-with-Windows is a Windows startup task you can also manage in Settings → Apps → Startup. Store listing copy lives in docs/store/store-listing.md and the privacy policy in site/privacy.html.
# Full suite
dotnet test tests/NeatShot.Tests/NeatShot.Tests.csproj
# Skip the tests that capture the real desktop
dotnet test tests/NeatShot.Tests/NeatShot.Tests.csproj --filter "Category!=Desktop"
Tests tagged
Category=Desktoprun the real Clean Shot routine, which sends a globalEsckeystroke. Exclude them when running tests from an IDE or agent thatEsccould interrupt.
| Data | Location |
|---|---|
| Screenshots (gallery) | %USERPROFILE%\Pictures\NeatShot (or the folder chosen in Settings / Save as); %USERPROFILE%\NeatShot if Windows blocks writing there |
| Settings & color history | %AppData%\NeatShot\settings.json (Store version: kept by Windows in the app's private storage) |
NeatShot uses a layered design (Core / Presentation) with MVVM via CommunityToolkit.Mvvm and constructor injection via Microsoft.Extensions.DependencyInjection.
src/NeatShot/
├── App.xaml(.cs) # Entry point, DI container, tray menu, single-instance mutex
├── app.manifest # Per-Monitor V2 DPI awareness
├── Common/Helpers/ # DPI, color, cursor, hit-testing, image effects, OCR post-processing
├── Core/
│ ├── Interop/ # Win32 P/Invoke (GDI capture, hotkeys, Shell_NotifyIcon)
│ ├── Models/ # CaptureRegion, DrawingElement, BeautifyOptions, GalleryItem, AppSettings
│ └── Services/ # Capture, Hotkey, Export, Beautify, OCR, Settings, Gallery, UndoStack
└── Presentation/
├── Controls/ # SelectionCanvas, DrawingCanvas, AnnotationToolbar, PinAnnotationToolbar
├── Tray/ # NativeTrayIcon (pure Win32, no third-party dependency)
├── ViewModels/ # Overlay, Pin, Gallery
└── Views/ # OverlayWindow, PinWindow, GalleryWindow
tests/NeatShot.Tests/ # xUnit suite (WPF tests run on dedicated STA threads)
site/ # Landing page (static HTML/CSS/JS + GSAP) — see site/README.md
docs/ # SRS, architecture, workflow guide, plans, design exports
Tech stack: C# / .NET 10 (net10.0-windows10.0.19041.0), WPF + WPF-UI, CommunityToolkit.Mvvm, Microsoft.Extensions.DependencyInjection, Windows.Media.Ocr, xUnit.
More detail: SRS · Architecture & tech stack · Workflow guide · Implementation plans
PrtSc does nothing. Windows 11 may give PrtSc to Snipping Tool. Turn off Settings → Accessibility → Keyboard → "Use the Print screen key to open screen capture", or use Ctrl + Shift + A. The console output at startup shows which hotkeys were registered.%USERPROFILE%\NeatShot instead of Pictures. Controlled folder access (Windows Security → Virus & threat protection → Ransomware protection) stops unknown apps from writing to Pictures, Documents or Desktop. NeatShot then saves to %USERPROFILE%\NeatShot instead (the "saved" toast shows the folder). To use Pictures again, choose Allow an app through Controlled folder access and add NeatShot.exe, or pick another folder in Settings.main (feat/..., fix/..., docs/...).dotnet test passes before you open a PR.feat(pin): ..., fix(gallery): ..., docs(readme): ..., test(...), chore(...).Distributed under the MIT License. See LICENSE.
NeatShot là ứng dụng chụp màn hình gọn nhẹ cho Windows, viết bằng C# / WPF. Ứng dụng giải quyết các vấn đề quen thuộc trên Windows 11:
PrtSc).Chụp ảnh
BitBlt.W × H).Ctrl + Shift + R): mở màn hình chụp với đúng vùng lần trước được chọn sẵn — tiện so sánh trước/sau. Nếu đã rút màn hình phụ, vùng được tự cắt gọn trong màn hình hiện tại.Esc để huỷ đếm ngược.Chú thích
Xuất và tái sử dụng
Pictures\NeatShot.F3): ghim bất kỳ ảnh nào bạn vừa copy từ trình duyệt, Zalo, Figma hay Explorer — không cần chụp.Windows.Media.Ocr, giữ nguyên xuống dòng và chuẩn hoá dấu tiếng Việt.Dùng hằng ngày
| Ngữ cảnh | Phím tắt | Chức năng |
|---|---|---|
| Toàn cục | Ctrl + Shift + A / PrtSc | Bắt đầu chụp (đổi được cả hai phím trong Cài đặt) |
| Toàn cục | F3 | Ghim ảnh đang có trong Clipboard |
| Toàn cục | Ctrl + Shift + R | Chụp lại vùng vừa chụp |
| Màn hình chụp | Click (không kéo) | Chọn cửa sổ đang được viền |
| Màn hình chụp | Enter / Ctrl + C | Sao chép (đồng thời lưu vào thư viện) |
| Màn hình chụp | Ctrl + S | Lưu thẳng vào thư mục ảnh |
| Màn hình chụp | Ctrl + Shift + S (hoặc Shift + click nút Lưu) | Lưu thành… (chọn thư mục và tên file) |
| Màn hình chụp | Ctrl + O | Trích xuất chữ |
| Màn hình chụp | Ctrl + Z / Ctrl + Y (Ctrl + Shift + Z) | Hoàn tác / Làm lại |
| Màn hình chụp | V P R O L A H T B N I | Chọn, Bút, Chữ nhật, Oval, Đường thẳng, Mũi tên, Dạ quang, Chữ, Khảm, Đánh số, Hút màu |
| Màn hình chụp | Delete | Xoá nét vẽ đang chọn |
| Màn hình chụp | Esc / chuột phải | Thoát công cụ hiện tại; bấm lần nữa để huỷ chụp |
| Ảnh ghim | Lăn chuột / + - / Ctrl + 0 | Phóng to, thu nhỏ, về 100% |
| Ảnh ghim | Ctrl + lăn chuột | Chỉnh độ trong suốt |
| Ảnh ghim | P / Ctrl + P | Bật/tắt thanh công cụ vẽ |
| Ảnh ghim | V H R E L A |
Tải về (khuyên dùng)
NeatShot-v<version>-win-x64.zip ở bản phát hành mới nhất.NeatShot.exe. Không cần cài đặt, không cần cài .NET (bản self-contained).Yêu cầu
Build từ mã nguồn (cần .NET 10 SDK)
git clone https://github.com/Thien21112005/neat-shot.git
cd neat-shot
dotnet build
dotnet run --project src/NeatShot
Ứng dụng chạy ngầm dưới khay hệ thống. Click trái vào icon để chụp; click phải để mở menu (chụp toàn màn hình, thư viện ảnh, thư mục ảnh, khởi động cùng Windows, thoát). Mỗi lúc chỉ chạy được một phiên bản.
Khởi động cùng Windows: giống Lightshot, NeatShot tự đăng ký chạy nền mỗi khi bạn đăng nhập Windows nên Ctrl + Shift + A luôn sẵn sàng. Muốn tắt, bỏ chọn mục Khởi động cùng Windows trong menu khay (hoặc trong Task Manager → Startup apps). Nếu di chuyển thư mục NeatShot, chỉ cần mở app một lần ở vị trí mới.
Đóng gói bản phát hành: ./scripts/publish.ps1 sẽ chạy test rồi tạo artifacts/NeatShot-v<version>-win-x64.zip. Ghi chú các phiên bản xem tại CHANGELOG.md.
Gói Microsoft Store (MSIX): ./scripts/package-msix.ps1 chạy test rồi tạo artifacts/msix/NeatShot-<version>.0-x64.msix từ manifest và logo trong packaging/msix/. Gói cố ý không ký vì Store sẽ tự ký khi phát hành. Thêm -Register để cài thử lên máy trước (cần bật Developer Mode của Windows). Ở bản Store, "khởi động cùng Windows" là startup task của Windows, quản lý được cả trong Settings → Apps → Startup. Nội dung trang Store nằm ở docs/store/store-listing.md, chính sách quyền riêng tư ở site/privacy.html.
# Toàn bộ bộ test
dotnet test tests/NeatShot.Tests/NeatShot.Tests.csproj
# Bỏ qua các test chụp màn hình thật
dotnet test tests/NeatShot.Tests/NeatShot.Tests.csproj --filter "Category!=Desktop"
Các test gắn
Category=Desktopchạy thuật toán Clean Shot thật nên sẽ gửi phímEsctoàn hệ thống. Hãy loại chúng ra khi chạy test trong IDE hoặc agent có thể bị phímEsclàm gián đoạn.
| Dữ liệu | Vị trí |
|---|---|
| Ảnh chụp (thư viện) | %USERPROFILE%\Pictures\NeatShot (hoặc thư mục chọn trong Cài đặt / Lưu thành…); %USERPROFILE%\NeatShot nếu Windows chặn ghi vào đó |
| Cấu hình & lịch sử màu | %AppData%\NeatShot\settings.json (bản Store: Windows lưu trong vùng riêng của app) |
Dự án chia lớp Core / Presentation, dùng MVVM với CommunityToolkit.Mvvm và tiêm phụ thuộc bằng Microsoft.Extensions.DependencyInjection. Xem sơ đồ thư mục ở phần tiếng Anh và tài liệu chi tiết trong docs/.
%USERPROFILE%\NeatShot thay vì Pictures: tính năng Controlled folder access (Windows Security → Virus & threat protection → Ransomware protection) chặn app lạ ghi vào Pictures, Documents, Desktop. Khi đó NeatShot lưu vào %USERPROFILE%\NeatShot (thông báo "Đã lưu" ghi rõ thư mục). Muốn lưu lại vào Pictures, chọn Allow an app through Controlled folder access rồi thêm NeatShot.exe, hoặc đổi thư mục trong Cài đặt.PrtSc không có tác dụng: Windows 11 có thể dành phím PrtSc cho Snipping Tool. Tắt tuỳ chọn Settings → Accessibility → Keyboard → "Use the Print screen key to open screen capture", hoặc dùng Ctrl + Shift + A.main (feat/..., fix/..., docs/...).dotnet test pass trước khi mở PR.feat, fix, docs, test, chore, refactor…Phân phối theo giấy phép MIT License. Xem LICENSE.
XB| Pick a tool while the toolbar is open (select, highlighter, rectangle, ellipse, line, arrow, text, steps, pixelate, blur) |
| Pin | Ctrl + Z / Ctrl + Y (Ctrl + Shift + Z) | Undo / Redo |
| Pin | Ctrl + C | Copy the pinned image, including annotations |
| Pin | Esc | Hide the controls; press again to close the pin |
| Gallery | F5 / Esc | Refresh / Close |
TNXB| Chọn công cụ khi thanh vẽ đang mở (chọn, dạ quang, khung, elip, đường thẳng, mũi tên, chữ, đánh số, làm vỡ điểm ảnh, làm mờ) |
| Ảnh ghim | Ctrl + Z / Ctrl + Y (Ctrl + Shift + Z) | Hoàn tác / Làm lại |
| Ảnh ghim | Ctrl + C | Sao chép ảnh ghim (kèm chú thích) |
| Ảnh ghim | Esc | Ẩn thanh điều khiển; bấm lần nữa để đóng ảnh ghim |
| Thư viện | F5 / Esc | Làm mới / Đóng |