mirror of
https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux
synced 2026-04-26 01:25:11 +02:00
* feat: enhance capabilities and permissions for autostart and global shortcuts * feat: implement desktop environment detection and global shortcut registration * feat: add permission checker module for uinput access verification and configuration * feat: add autostart and global shortcut plugins; integrate permission checker functions * feat: add LXQt and LXDE support for global shortcuts * feat: add permission_checker and shortcut_setup modules to the library * feat: implement SetupWizard for first-run setup and autostart configuration * feat: overhaul install script for improved distribution detection and installation methods * feat: add autostart and global shortcut plugins to dependencies * feat: enhance Makefile with improved installation and cleanup processes * feat: enhance release workflow with version syncing and installation instructions * docs: update contributing guidelines to include required dependencies * docs: update README with Rust version, installation instructions, and new features * feat: improve installation process for uinput module and udev rules * feat: add support for AlmaLinux and improve WebKitGTK compatibility handling * feat: enhance post-removal script to handle multiple module configuration filenames * feat: add XDG_SESSION_CLASS to environment variables in wrapper script * fix: improve error handling for MATE keybinding slots * chore: remove xml formatting * feat: ensure input group exists and add user only on live system during installation * feat: add architecture detection for DEB and RPM packages * fix: correct logic for uinput module configuration in post-installation script * fix: improve error message for missing win11-clipboard-history binary * feat: enhance permission fixing by checking for required commands * fix: improve shortcut registration by ensuring thread completion * style: shortcut registration formatting * feat: add support for CachyOS * feat: enhance distribution detection and installation process * chore: update version to 0.4.0 in package.json, Cargo.toml, and tauri.conf.json * chore: update version to 0.4.0 in package-lock.json * fix: update Cloudsmith repository name to clipboard-manager * feat: add PKGBUILD and installation script for win11-clipboard-history-bin * chore: remove VERSION variable from Makefile * fix: improve error message for binary not found in wrapper script * feat: enhance installation process with Cloudsmith repository support
184 lines
4.6 KiB
Markdown
184 lines
4.6 KiB
Markdown
# Contributing to Windows 11 Clipboard History For Linux
|
|
|
|
First off, thank you for considering contributing to Windows 11 Clipboard History For Linux! 🎉
|
|
|
|
## 📋 Table of Contents
|
|
|
|
- [Code of Conduct](#code-of-conduct)
|
|
- [Getting Started](#getting-started)
|
|
- [Development Setup](#development-setup)
|
|
- [Making Changes](#making-changes)
|
|
- [Pull Request Process](#pull-request-process)
|
|
- [Style Guidelines](#style-guidelines)
|
|
- [Reporting Bugs](#reporting-bugs)
|
|
- [Suggesting Features](#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
|
|
|
|
1. **Fork the repository** on GitHub
|
|
2. **Clone your fork** locally:
|
|
```bash
|
|
git clone https://github.com/YOUR-USERNAME/Windows-11-Clipboard-History-For-Linux.git
|
|
cd win11-clipboard-history-for-linux
|
|
```
|
|
3. **Add the upstream remote**:
|
|
```bash
|
|
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:
|
|
|
|
- **Rust 1.77+** (for autostart plugin compatibility)
|
|
- **Node.js 20+**
|
|
- System build dependencies
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Install npm dependencies
|
|
npm install
|
|
|
|
# Start development server with hot reload
|
|
make dev
|
|
```
|
|
|
|
## Making Changes
|
|
|
|
1. **Create a new branch** from `master`:
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
# or
|
|
git checkout -b fix/your-bug-fix
|
|
```
|
|
|
|
2. **Make your changes** and test them locally
|
|
|
|
3. **Run linters and formatters**:
|
|
```bash
|
|
make lint
|
|
make format
|
|
```
|
|
|
|
4. **Commit your changes** with a descriptive message:
|
|
```bash
|
|
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](https://www.conventionalcommits.org/):
|
|
|
|
- `feat:` - New feature
|
|
- `fix:` - Bug fix
|
|
- `docs:` - Documentation changes
|
|
- `style:` - Code style changes (formatting, etc.)
|
|
- `refactor:` - Code refactoring
|
|
- `perf:` - Performance improvements
|
|
- `test:` - Adding or updating tests
|
|
- `chore:` - Maintenance tasks
|
|
|
|
## Pull Request Process
|
|
|
|
1. **Update your branch** with the latest upstream changes:
|
|
```bash
|
|
git fetch upstream
|
|
git rebase upstream/master
|
|
```
|
|
|
|
2. **Push your branch** to your fork:
|
|
```bash
|
|
git push origin feature/your-feature-name
|
|
```
|
|
|
|
3. **Create a Pull Request** on GitHub
|
|
|
|
4. **Fill out the PR template** completely
|
|
|
|
5. **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 fmt` for formatting
|
|
- Address all `clippy` warnings
|
|
- 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:
|
|
|
|
1. **Search existing issues** to avoid duplicates
|
|
2. **Try the latest version** - the bug might be fixed
|
|
3. **Collect information**:
|
|
- OS and version
|
|
- Desktop environment
|
|
- Display server (X11/Wayland)
|
|
- Steps to reproduce
|
|
- Error messages/logs
|
|
|
|
Then [create a bug report](https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux/issues/new?template=bug_report.md).
|
|
|
|
## Suggesting Features
|
|
|
|
We welcome feature suggestions! Before suggesting:
|
|
|
|
1. **Check if it aligns** with the project's goal (Windows 11-style clipboard manager)
|
|
2. **Search existing issues** to avoid duplicates
|
|
3. **Consider implementation** - how complex would it be?
|
|
|
|
Then [create a feature request](https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux/issues/new?template=feature_request.md).
|
|
|
|
## Questions?
|
|
|
|
Feel free to [open a discussion](https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux/discussions) for questions or ideas.
|
|
|
|
---
|
|
|
|
Thank you for contributing! 🙏
|