/screenclip

An experimental video snipping tool for Windows, designed as a system tray application.

Primary LanguageJavaScriptMIT LicenseMIT

Screenclip

Visitors Count Contributors Count GitHub Hacktoberfest combined status (suggestion label override)

A lightweight system tray application built with the Tauri framework, utilizing Rust for backend operations and Vanilla JS for the frontend. The application leverages the DXGI Desktop Duplication API to provide low-latency, direct access to desktop frames, allowing users to video record selected areas of their screen similar to the snipping tool.

🌟 FEATURES

  • High-Efficiency Captures: Utilizes DXGI Desktop Duplication API for high framerate recordings.

  • Optimized for Windows: Crafted specifically for the Windows environment to ensure minimal latency and high performance captures.

🛠️ TO-DO

* The TO-DO list can be found in the main branch *

👷 BUILD INSTRUCTIONS

Building with MSVC on Windows

  1. Install NodeJS.
  2. Install Tauri prerequisites (C++ Build Tools, WebView2 and Rust).
  3. Clone this repo: git clone -b dev --recurse-submodules https://github.com/0Ky/screenclip.git (must use dev branch and include submodules).
  4. Follow the FFmpeg build instructions for the MSVC toolchain.
    • Copy the DLLs to screenclip\src-tauri\libs.
  5. Once you're in the cloned folder run npm install, then npm run tauri dev to run in development mode or npm run tauri build to build in release mode.

Building with GNU Toolchain on MSYS2 for Windows

  1. Install NodeJS.
  2. Install Tauri prerequisites (C++ Build Tools, WebView2 and Rust).
  3. Install MSYS2 MinGW64.
  4. Update all packages in MinGW64, run pacman -Syu a couple of times.
  5. In MinGW64 install Git pacman -S git.
  6. In MinGW64 install Rust compiler pacman -S mingw-w64-x86_64-rust.
  7. Clone this repo: git clone -b dev --recurse-submodules https://github.com/0Ky/screenclip.git (must use dev branch and include submodules).
  8. Follow FFmpeg build instructions for the GNU toolchain.
    • Copy the DLLs to screenclip\src-tauri\libs.
  9. Add export PATH="/c/Program Files/nodejs/:$PATH" to the end of .bashrc file in your home directory of MinGW64.
  10. Once you're in the cloned folder run npm install, then npm run tauri dev to run in development mode or npm run tauri build to build in release mode.

⚠️ WARNING DISCLAIMER

This project is in an experimental and incomplete state, it comes with all the quirks you'd expect. This software is more unpredictable than a cat on a keyboard and it's provided "AS-IS", without the slightest assurance, guarantee, or pinky promise of any kind. Not even the implied warranty that it will work while you’re showcasing it to your boss or during that one crucial presentation.

Use this software or tool entirely at your own discretion and risk. Running or interacting with this program could have unforeseen and potentially adverse consequences, including but not limited to:

  • Unexpected system siestas (aka crashes).

  • Data could play a vanishing trick, rivaling Houdini’s best. 🎩✨

  • An unplanned migration of your data to the digital Bermuda Triangle. And, while we're pushing the envelope, spontaneous combustion.

If you continue using this tool, it means you're brave, perhaps a tad adventurous, and that you fully embrace the digital rodeo ahead. Remember: Always back up your data, wear a virtual helmet, and keep a box of tissues handy. They'll be useful for wiping away tears, be it from laughter or the occasional cry over the code's... uniqueness.

May the tech odds be ever in your favor, knight of the binary realm!