Files
Windows-11-Clipboard-Histor…/.github/CONTRIBUTING.md
Gustavo Carvalho 18ed605943 refactor: multi distro overhaul (#52)
* 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
2025-12-22 23:03:19 -03:00

4.6 KiB

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

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:
    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:
    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
# 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

  1. Create a new branch from master:

    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:

    make lint
    make format
    
  4. 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 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:

    git fetch upstream
    git rebase upstream/master
    
  2. Push your branch to your fork:

    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.

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.

Questions?

Feel free to open a discussion for questions or ideas.


Thank you for contributing! 🙏