|
| 1 | +# Contributing to Linux Desktop MCP |
| 2 | + |
| 3 | +First off, thank you for considering contributing to Linux Desktop MCP! |
| 4 | + |
| 5 | +## Built with Claude Code |
| 6 | + |
| 7 | +This entire project was built using [Claude Code](https://claude.ai/claude-code), Anthropic's AI-powered coding assistant. We believe in the power of AI-assisted development and welcome contributions from both humans and AI-assisted developers alike. |
| 8 | + |
| 9 | +## Ways to Contribute |
| 10 | + |
| 11 | +We're very open to contributions of all kinds: |
| 12 | + |
| 13 | +- **Bug Reports**: Found a bug? Open an issue with details about your environment and steps to reproduce. |
| 14 | +- **Feature Requests**: Have an idea? We'd love to hear it! Open an issue to discuss. |
| 15 | +- **Pull Requests**: Code contributions are welcome! See below for guidelines. |
| 16 | +- **Documentation**: Help improve our docs, add examples, or fix typos. |
| 17 | +- **Forks**: Feel free to fork this project and build your own version! We'd love to see what you create. |
| 18 | + |
| 19 | +## Development Setup |
| 20 | + |
| 21 | +1. **Clone the repository** |
| 22 | + ```bash |
| 23 | + git clone https://github.com/yourusername/linux-desktop-mcp.git |
| 24 | + cd linux-desktop-mcp |
| 25 | + ``` |
| 26 | + |
| 27 | +2. **Install system dependencies** |
| 28 | + ```bash |
| 29 | + # Ubuntu/Debian |
| 30 | + sudo apt install python3-pyatspi gir1.2-atspi-2.0 at-spi2-core |
| 31 | + |
| 32 | + # For input simulation (pick one or more) |
| 33 | + sudo apt install ydotool # Wayland + X11 |
| 34 | + sudo apt install xdotool # X11 only |
| 35 | + ``` |
| 36 | + |
| 37 | +3. **Create a virtual environment** |
| 38 | + ```bash |
| 39 | + python3 -m venv venv |
| 40 | + source venv/bin/activate |
| 41 | + ``` |
| 42 | + |
| 43 | +4. **Install in development mode** |
| 44 | + ```bash |
| 45 | + pip install -e ".[dev]" |
| 46 | + ``` |
| 47 | + |
| 48 | +5. **Run tests** |
| 49 | + ```bash |
| 50 | + pytest tests/ |
| 51 | + ``` |
| 52 | + |
| 53 | +## Code Style |
| 54 | + |
| 55 | +We use [ruff](https://github.com/astral-sh/ruff) for linting. Before submitting: |
| 56 | + |
| 57 | +```bash |
| 58 | +pip install ruff |
| 59 | +ruff check . |
| 60 | +ruff format . |
| 61 | +``` |
| 62 | + |
| 63 | +### Guidelines |
| 64 | + |
| 65 | +- Follow PEP 8 style guidelines |
| 66 | +- Add type hints to function signatures |
| 67 | +- Write docstrings for public functions and classes |
| 68 | +- Keep functions focused and reasonably sized |
| 69 | +- Add tests for new functionality |
| 70 | + |
| 71 | +## Pull Request Process |
| 72 | + |
| 73 | +1. **Fork the repository** and create your branch from `main` |
| 74 | +2. **Make your changes** with clear, descriptive commits |
| 75 | +3. **Add tests** if you're adding new functionality |
| 76 | +4. **Run the test suite** to ensure nothing is broken |
| 77 | +5. **Update documentation** if needed |
| 78 | +6. **Open a Pull Request** with a clear description of changes |
| 79 | + |
| 80 | +### PR Title Format |
| 81 | + |
| 82 | +Use clear, descriptive titles: |
| 83 | +- `feat: Add support for Wayland layer shell` |
| 84 | +- `fix: Handle closed windows gracefully` |
| 85 | +- `docs: Add troubleshooting section` |
| 86 | +- `test: Add tests for reference manager` |
| 87 | + |
| 88 | +## Reporting Bugs |
| 89 | + |
| 90 | +When reporting bugs, please include: |
| 91 | + |
| 92 | +1. **Your environment**: Linux distro, display server (X11/Wayland), compositor |
| 93 | +2. **Steps to reproduce**: Clear steps to trigger the bug |
| 94 | +3. **Expected behavior**: What should happen |
| 95 | +4. **Actual behavior**: What actually happens |
| 96 | +5. **Logs**: Any relevant error messages or logs |
| 97 | + |
| 98 | +## Feature Requests |
| 99 | + |
| 100 | +For feature requests, please describe: |
| 101 | + |
| 102 | +1. **The problem** you're trying to solve |
| 103 | +2. **Your proposed solution** (if you have one) |
| 104 | +3. **Alternatives** you've considered |
| 105 | + |
| 106 | +## Code of Conduct |
| 107 | + |
| 108 | +- Be respectful and inclusive |
| 109 | +- Welcome newcomers |
| 110 | +- Focus on constructive feedback |
| 111 | +- Assume good intentions |
| 112 | + |
| 113 | +## License |
| 114 | + |
| 115 | +By contributing, you agree that your contributions will be licensed under the MIT License. |
| 116 | + |
| 117 | +## Questions? |
| 118 | + |
| 119 | +Feel free to open an issue for any questions about contributing. We're happy to help! |
0 commit comments