Cleave is a lightweight, GPU-accelerated screen capture tool that allows users to quickly select and copy portions of their screen. Built with Rust and WGPU, it offers smooth performance and minimal resource usage.
- π GPU-accelerated rendering using WGPU
- π― Interactive screen region selection
- β¨οΈ Keyboard-driven controls for precise adjustments
- π Direct-to-clipboard copying
- πΌοΈ Support for high DPI displays
- π¨ Real-time visual feedback during selection
- Launch Cleave
- Click and drag to select a screen region
- Press
Space
to copy the selection to clipboard - Press
Esc
to cancel and exit
# Clone the repository
git clone https://github.com/exotik850/cleave.git
cd cleave
# Build and install
cargo install --path .
On Linux, you need to install libxcb
, libxrandr
, and dbus
.
apt-get install libxcb1 libxrandr2 libdbus-1-3
apk add libxcb libxrandr dbus
pacman -S libxcb libxrandr dbus
for more details on linux compatibility, see here
Key | Action |
---|---|
Space |
Copy selection and exit |
Esc |
Cancel and exit |
Arrow Keys |
Fine-tune selection |
Shift + Arrow Keys |
Adjust selection start point |
Ctrl + Arrow Keys |
Move entire selection |
Right Click |
Cancel current selection |
Cleave offers three selection modes:
-
Resize Mode (Default)
- Use arrow keys to adjust selection size
-
Move Mode (Hold Ctrl)
- Move entire selection without changing its size
-
Inverse Resize Mode (Hold Shift)
- Adjust selection from the starting point
Cleave uses sensible defaults and currently doesn't require configuration. Future versions may introduce a configuration file for customization.
- Rust 1.82 or higher
- A GPU with Vulkan, Metal, or DirectX 12 support
# Debug build
cargo build
# Release build
cargo build --release
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow the Rust standard formatting guidelines
- Use
cargo fmt
before committing - Ensure
cargo clippy
passes without warnings
This project is licensed under the MIT License - see the LICENSE file for details.
Cleave is built using:
- WGPU for GPU-accelerated rendering
- Winit for window management and event handling
- Image for image processing
- Glam for vector mathematics
- Arboard for clipboard operations
- Xcap for Screen Capture
- OS: Windows, macOS, or Linux
- GPU: Any GPU supporting Vulkan, Metal, or DirectX 12
- Memory: Minimal (~150-200MB) (WIP!!)
- The WGPU development team
- The Rust community
- Contributors and users who have provided feedback and suggestions