https://github.com/jamditis/wristcontrol
Control and talk to your computer with your smart watch.
https://github.com/jamditis/wristcontrol
Last synced: 6 months ago
JSON representation
Control and talk to your computer with your smart watch.
- Host: GitHub
- URL: https://github.com/jamditis/wristcontrol
- Owner: jamditis
- License: mit
- Created: 2026-01-06T19:03:00.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-16T22:06:32.000Z (6 months ago)
- Last Synced: 2026-01-17T11:14:27.757Z (6 months ago)
- Language: HTML
- Size: 237 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WristControl
Voice & Gesture Computer Control
Control your computer with natural hand gestures and voice commands using your Samsung Galaxy Watch.
Features •
Installation •
Usage •
Configuration •
Contributing
---
## Overview
WristControl transforms your Samsung Galaxy Watch into a powerful input device, enabling hands-free computer control through natural gestures and voice commands. Move your cursor, click, scroll, and type without touching your keyboard or mouse.
**Key Differentiators:**
- **Voice Integration** - Full voice command and dictation support
- **Motion Cursor Control** - Continuous cursor movement from hand motion
- **Privacy Focused** - Local speech-to-text processing option
- **Open Source** - Fully customizable and extensible
## Features
### Gesture Control
- **Tap** - Left click (finger pinch)
- **Double Tap** - Double click
- **Hold** - Right click / context menu
- **Wrist Flick** - Scroll up/down
- **Palm Up** - Pause cursor control
### Voice Commands
- Mouse actions: click, double-click, right-click, scroll
- Keyboard shortcuts: copy, paste, undo, select all
- Text dictation: "type [your text]"
- Custom commands: define your own
### Cursor Control
- **Relative Mode** - Tilt hand to move cursor
- **Absolute Mode** - Point to position cursor
- Configurable sensitivity, acceleration, and dead zones
## Requirements
### Desktop
- Windows 10/11, macOS 11+, or Linux (BlueZ 5.50+)
- Bluetooth 4.0+ with BLE support
- Python 3.10+ (for source installation)
### Watch
- Samsung Galaxy Watch 4 or newer (Wear OS)
- Wear OS 3.0+ recommended
## Installation
### Pre-built Binaries
Download the latest release for your platform from the [Releases](https://github.com/wristcontrol/wristcontrol/releases) page.
### From PyPI
```bash
pip install wristcontrol
```
### From Source
```bash
# Clone the repository
git clone https://github.com/wristcontrol/wristcontrol.git
cd wristcontrol/desktop
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install in development mode
pip install -e ".[dev]"
```
## Usage
### Quick Start
1. **Install** the desktop app on your computer
2. **Enable Bluetooth** on both devices
3. **Install** the WristControl app on your Galaxy Watch
4. **Launch** both apps and follow the pairing wizard
5. **Start controlling** your computer with gestures and voice
### Running the Desktop App
```bash
# Run the application
wristcontrol
# Run with debug logging
wristcontrol --debug
# Run with specific config file
wristcontrol --config /path/to/config.json
```
### Basic Gestures
| Gesture | Action |
|---------|--------|
| Tap (pinch) | Left click |
| Double tap | Double click |
| Hold (500ms) | Right click |
| Wrist flick left/right | Scroll |
| Palm facing up | Pause control |
### Basic Voice Commands
```
"click" → Left click
"double click" → Double click
"right click" → Context menu
"scroll up/down" → Scroll
"copy" / "paste" → Ctrl+C / Ctrl+V
"type hello" → Types: hello
```
## Configuration
Configuration is stored in `~/.config/wristcontrol/config.json`:
```json
{
"cursor": {
"sensitivity": 1.0,
"dead_zone": 0.1,
"acceleration": 1.5,
"smoothing": 0.3,
"mode": "relative"
},
"gestures": {
"tap_threshold": 0.5,
"double_tap_window": 0.3,
"hold_duration": 0.5,
"enabled_gestures": ["tap", "double_tap", "hold", "wrist_flick"]
},
"voice": {
"enabled": true,
"backend": "whisper_local",
"activation_mode": "push_to_talk"
},
"bluetooth": {
"auto_reconnect": true
}
}
```
See the [Configuration Guide](web/docs.html#settings) for detailed options.
## Project Structure
```
wristcontrol/
├── desktop/ # Desktop companion app (Python)
│ ├── src/wristcontrol/ # Main package
│ │ ├── core/ # App logic & config
│ │ ├── bluetooth/ # BLE communication
│ │ ├── gestures/ # Gesture recognition
│ │ ├── voice/ # Speech-to-text
│ │ ├── cursor/ # Input injection
│ │ └── ui/ # User interface
│ └── tests/ # Unit tests
├── watch/ # Watch app (Wear OS) [planned]
├── web/ # Website & documentation
├── assets/ # Logos & icons
└── planning/ # PRD & design docs
```
## Development
### Setup
```bash
cd desktop
pip install -e ".[dev]"
```
### Running Tests
```bash
pytest
pytest --cov=wristcontrol # With coverage
```
### Code Quality
```bash
# Linting
ruff check src/
# Formatting
black src/
# Type checking
mypy src/
```
## Performance Targets
| Metric | Target |
|--------|--------|
| Input latency | < 50ms |
| Gesture accuracy | > 95% |
| Battery life | > 4 hours |
| Voice recognition | > 90% |
## Roadmap
- [x] Desktop app skeleton
- [x] Web assets & documentation
- [ ] Bluetooth LE connection
- [ ] Gesture recognition
- [ ] Voice command processing
- [ ] Motion cursor control
- [ ] Watch app (Wear OS)
- [ ] Configuration UI
## Contributing
Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details.
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- [DoublePoint TouchSDK](https://github.com/doublepointlab/touch-sdk-py) - Gesture detection reference
- [OpenAI Whisper](https://github.com/openai/whisper) - Local speech-to-text
- [Bleak](https://github.com/hbldh/bleak) - Cross-platform BLE library
---
Made with gestures and voice