4.5 KiB
Contributing to Win11 Clipboard History
First off, thank you for considering contributing to Win11 Clipboard History! 🎉
📋 Table of Contents
- Code of Conduct
- Getting Started
- Development Setup
- Making Changes
- Pull Request Process
- Style Guidelines
- Reporting Bugs
- Suggesting Features
Code of Conduct
This project and everyone participating in it is governed by our commitment to creating a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/win11-clipboard-history-for-linux.git cd win11-clipboard-history-for-linux - Add the upstream remote:
git remote add upstream https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux.git
Development Setup
Prerequisites
Make sure you have the required dependencies installed:
# Install system dependencies (auto-detects your distro)
make deps
# Install Rust and Node.js if needed
make rust
make node
source ~/.cargo/env
# Verify everything is installed
make check-deps
Running in Development Mode
# Install npm dependencies
npm install
# Start development server with hot reload
make dev
Making Changes
-
Create a new branch from
master:git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes and test them locally
-
Run linters and formatters:
make lint make format -
Commit your changes with a descriptive message:
git commit -m "feat: add amazing new feature" # or git commit -m "fix: resolve clipboard paste issue on Wayland"
Commit Message Convention
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringperf:- Performance improvementstest:- Adding or updating testschore:- Maintenance tasks
Pull Request Process
-
Update your branch with the latest upstream changes:
git fetch upstream git rebase upstream/master -
Push your branch to your fork:
git push origin feature/your-feature-name -
Create a Pull Request on GitHub
-
Fill out the PR template completely
-
Wait for review - maintainers will review your PR and may request changes
PR Requirements
- Code follows the project's style guidelines
- All linters pass (
make lint) - Changes are tested locally
- Documentation is updated if needed
- PR description clearly explains the changes
Style Guidelines
TypeScript/React
- Use functional components with hooks
- Follow existing component patterns
- Use TypeScript types (avoid
any) - Use meaningful variable and function names
Rust
- Follow Rust idioms and best practices
- Use
cargo fmtfor formatting - Address all
clippywarnings - Document public functions and modules
CSS/Tailwind
- Use Tailwind utility classes
- Follow the Windows 11 design system defined in
tailwind.config.js - Support both light and dark modes
Reporting Bugs
Before reporting a bug:
- Search existing issues to avoid duplicates
- Try the latest version - the bug might be fixed
- Collect information:
- OS and version
- Desktop environment
- Display server (X11/Wayland)
- Steps to reproduce
- Error messages/logs
Then create a bug report.
Suggesting Features
We welcome feature suggestions! Before suggesting:
- Check if it aligns with the project's goal (Windows 11-style clipboard manager)
- Search existing issues to avoid duplicates
- Consider implementation - how complex would it be?
Then create a feature request.
Questions?
Feel free to open a discussion for questions or ideas.
Thank you for contributing! 🙏