| Crates.io | bclicker |
| lib.rs | bclicker |
| version | 0.1.0 |
| created_at | 2025-09-17 14:57:29.217331+00 |
| updated_at | 2025-09-17 14:57:29.217331+00 |
| description | Professional auto-clicker with TUI interface, global hotkeys, and system tray integration |
| homepage | https://github.com/linux-brat/BClicker |
| repository | https://github.com/linux-brat/BClicker |
| max_upload_size | |
| id | 1843452 |
| size | 178,045 |
BClicker Professional is a high-performance auto-clicker application with a TUI (Terminal User Interface) built using crossterm and tui-rs. The application provides professional auto-clicking functionality with global hotkey support, system tray integration, audio feedback, and statistics tracking.
๐ฎ Core Features
|
โ๏ธ Technical Features
|
| Component | Technology | Purpose |
|---|---|---|
| ๐ฆ Language | Rust (2025 edition) | High-performance systems programming |
| ๐ฅ๏ธ UI Framework | tui-rs + crossterm | Terminal-based user interface |
| ๐ฑ๏ธ Mouse Control | enigo | Cross-platform mouse automation |
| ๐ Audio | rodio | Non-blocking sound effects |
| โ๏ธ Configuration | TOML + serde | Human-readable config files |
| ๐ฑ System Tray | tray-item | Background system integration |
| ๐ Notifications | notify-rust | Cross-platform notifications |
| ๐ช Platform | Windows + Win32 API | Global hotkey support |
# ๐ Get up and running in 30 seconds!
git clone https://github.com/linux-brat/BClicker.git
cd BClicker
cargo run --release
๐ฎ Controls:
Space - Start/Stop clickingTab - Switch between presetsh - Help menuq - Quit๐ซ WARP Users: This works perfectly in WARP terminal with full Unicode support and beautiful rendering!
# ๐ Quick Setup - Copy & Paste!
git clone https://github.com/linux-brat/BClicker.git
cd BClicker
cargo build --release
# โถ๏ธ Run BClicker
.\target\release\bclicker.exe
# ๐ Optional: Add to PATH for global access
# Copy target\release\bclicker.exe to C:\Windows\System32\ or your preferred PATH directory
๐ Note: Replace
bclicker.exewith the actual executable name if different
# ๐ฆ Install audio libraries (Ubuntu/Debian)
sudo apt update && sudo apt install libasound2-dev pkg-config
# ๐ For other distributions:
# Fedora: sudo dnf install alsa-lib-devel pkgconf
# Arch: sudo pacman -S alsa-lib pkgconf
# ๐ Quick Setup - Copy & Paste!
git clone https://github.com/linux-brat/BClicker.git
cd BClicker
cargo build --release
# โถ๏ธ Run BClicker
./target/release/bclicker
# ๐ Optional: Install system-wide
sudo cp target/release/bclicker /usr/local/bin/
# ๐ Install directly from GitHub
cargo install --git https://github.com/linux-brat/BClicker.git
# ๐ Or install from crates.io (when published)
cargo install bclicker
๐ก WARP Users: These commands work perfectly in WARP terminal with syntax highlighting and autocompletion!
| Command | Description | WARP Tip |
|---|---|---|
cargo build |
๐ Debug build | ๐ Use WARP's AI to explain any build errors |
cargo build --release |
โก Optimized release build | ๐ View build progress in WARP's enhanced output |
cargo run |
โถ๏ธ Run in debug mode | ๐ Perfect for development with WARP's terminal multiplexing |
cargo run --release |
๐ Run optimized version | โ๏ธ Best performance for testing |
# ๐ Quick Development Cycle
cargo run # Fast compilation, debug info
cargo run --release # Optimized performance
| Command | Purpose | WARP Feature |
|---|---|---|
cargo test |
๐งช Run all tests | ๐ Test results beautifully formatted |
cargo check |
โ๏ธ Fast syntax check | โก Lightning-fast feedback loop |
cargo fmt |
๐จ Format code | ๐ Instant code beautification |
cargo clippy |
๐ Lint analysis | ๐ก Smart suggestions in WARP |
cargo clippy -- -D warnings |
๐ก๏ธ Strict linting | ๐ซ Zero tolerance for warnings |
# ๐ Code Quality Pipeline
cargo check # Quick syntax validation
cargo fmt # Auto-format code
cargo clippy # Catch common issues
cargo test # Ensure everything works
# ๐งผ Clean build artifacts
cargo clean
# ๐ Update dependencies
cargo update
# ๐ณ Show dependency tree
cargo tree
# ๐ Security audit (install with: cargo install cargo-audit)
cargo audit
# ๐ Generate documentation
cargo doc --open
# ๐ Performance profiling
cargo build --release
time ./target/release/bclicker
๐ซ WARP Pro Tip: Use WARP's AI assistant to explain any cargo commands or help debug build issues!
The application follows a modular architecture with clear separation of concerns:
Main Components:
App struct) - Central application state, configuration, and UI modesConfiguration System:
Config struct handles all persistent settingsStatistics struct tracks usage metrics across sessionsKeyCombo struct represents global hotkey combinationsbclicker_config.toml in the current directoryThreading Architecture:
The application uses a state machine for different input modes:
Normal - Standard navigation and controlsEditingCps - Custom CPS value inputSettingKeybind - Capturing hotkey combinationsAwaitingKeybind - Brief preparation state before capturingShowingHelp - Help screen displayWindows Integration:
RegisterHotKey)Cross-Platform Considerations:
bclicker_config.toml (current directory)cps_presets = [20, 30, 40, 50] # Available CPS preset values
selected_preset = 2 # Currently selected preset index
custom_cps_value = 99 # User-defined CPS value
using_custom_cps = false # Whether to use custom vs preset
selected_button = 0 # 0=Left, 1=Right mouse button
sound_enabled = false # Audio feedback toggle
[toggle_keybind] # Global hotkey configuration
mods = 6 # Modifier bitmask (1=Shift, 2=Ctrl, 4=Alt)
key = "B" # Key character or function key
[statistics] # Usage tracking
total_clicks = 0 # All-time click count
session_clicks = 0 # Current session clicks
total_sessions = 0 # Number of application launches
last_session_start = 0 # Unix timestamp
session_duration = 0 # Session length in seconds
Duration::from_micros(1_000_000 / cps)Arc<AtomicBool> for simple boolean flags (clicker running, UI visibility)Arc<Mutex<T>> for complex shared data (statistics, configuration)Adding New Features:
InputMode enum and add handlers in handle_input()Statistics struct with migration logicAudioManager with new sound methodsUI Customization:
Theme structdraw_ui() functionConfiguration Changes:
// Always save config after modifications
app.config.some_setting = new_value;
app.save_config();
app.needs_redraw = true; // Trigger UI update
Shared State Updates:
// Safe access to shared statistics
if let Ok(mut stats) = app.stats_tracker.lock() {
stats.some_field += 1;
// Lock automatically released
}
Event-Driven Updates:
// Mark redraw needed for next frame
app.needs_redraw = true;
// Only redraw when UI is visible and needs update
cargo run for development with debug info and faster compilation