Thanks for considering contributing! Here's how to get started.
# Prerequisites
# - Node.js 20+
# - Rust 1.77+ (rustup.rs)
# - Windows 10/11
git clone https://github.com/danscMax/Sidearm.git
cd Sidearm
npm install
cargo tauri devsrc/ # React frontend (TypeScript)
components/ # UI components
hooks/ # React hooks
lib/ # Utilities, types, helpers
src-tauri/ # Rust backend
src/
lib.rs # IPC commands, app setup
capture_backend.rs # Keyboard hook + foreground watcher
executor.rs # Action execution (shortcuts, macros, text)
clipboard.rs # Clipboard operations (STA thread)
resolver.rs # Profile/button resolution
config.rs # Config schema + validation
input_synthesis.rs # SendInput wrapper
- Create a branch:
git checkout -b fix/description - Make your changes
- Run checks:
npx tsc --noEmit # TypeScript npx vitest run # Frontend tests cargo test -p sidearm # Rust tests
- Commit with a clear message:
fix: descriptionorfeat: description - Open a pull request
- Rust: standard
rustfmt, no clippy overrides - TypeScript: project tsconfig (strict, ES2022)
- React: functional components, hooks only, no Context API
- Comments: English in code, Russian in UI strings
- Commits: Conventional Commits format
Use the Bug Report issue template.
Use the Feature Request issue template.