Expand description
§lamco-clipboard-core
Protocol-agnostic clipboard utilities for Rust.
This crate provides core clipboard functionality that can be used with any clipboard backend (Portal, X11, headless, etc.):
ClipboardSinktrait - Abstract clipboard backend interfaceFormatConverter- MIME ↔ Windows clipboard format conversionLoopDetector- Prevent clipboard sync loops with content hashingTransferEngine- Chunked transfer for large clipboard data
§Quick Start
use lamco_clipboard_core::{ClipboardSink, FormatConverter, LoopDetector};
use lamco_clipboard_core::formats::{ClipboardFormat, mime_to_rdp_formats};
// Convert MIME types to RDP formats
let formats = mime_to_rdp_formats(&["text/plain", "text/html"]);
// Check for clipboard loops
let mut detector = LoopDetector::new();
if !detector.would_cause_loop(&formats) {
// Safe to sync
}§Feature Flags
image- Enable image format conversion (PNG, JPEG, BMP ↔ DIB)
§Architecture
The ClipboardSink trait provides an async interface for clipboard operations.
Implementations handle the actual clipboard access (Portal D-Bus, X11, etc.)
while this crate handles format conversion and loop detection.
Re-exports§
pub use formats::build_file_group_descriptor_w;pub use formats::ClipboardFormat;pub use formats::FileDescriptor;pub use formats::FileDescriptorFlags;pub use formats::FormatConverter;pub use loop_detector::ClipboardSource;pub use loop_detector::LoopDetectionConfig;pub use loop_detector::LoopDetector;
Modules§
- formats
- Clipboard format conversion utilities.
- image
image - Image format conversion utilities.
- loop_
detector - Loop detection for clipboard synchronization.
- prelude
- Prelude module for convenient imports
- sanitize
- Cross-platform sanitization utilities for clipboard data.
Structs§
- Clipboard
Change - A clipboard change notification
- Clipboard
Change Receiver - Receiver for clipboard change notifications.
- File
Info - Information about a file in the clipboard
- Transfer
Config - Configuration for the transfer engine
- Transfer
Engine - Handles chunked transfers of clipboard data.
- Transfer
Progress - Progress information for a transfer
Enums§
- Clipboard
Error - Errors that can occur during clipboard operations
- Transfer
State - State of a transfer operation
Constants§
- DEFAULT_
CHUNK_ SIZE - Default chunk size: 64KB
- DEFAULT_
MAX_ SIZE - Default maximum data size: 16MB
- DEFAULT_
TIMEOUT_ MS - Default timeout: 30 seconds
Traits§
- Clipboard
Change Receiver Inner - Inner trait for clipboard change receivers (object-safe)
- Clipboard
Sink - Abstract clipboard backend interface.
Type Aliases§
- Clipboard
Result - Result type for clipboard operations