{"id":13341372,"url":"https://github.com/dnut/clipboard-sync","last_synced_at":"2025-07-10T09:34:37.609Z","repository":{"id":51107635,"uuid":"481704114","full_name":"dnut/clipboard-sync","owner":"dnut","description":"Synchronizes the clipboard across multiple X11 and wayland instances running on the same machine.","archived":false,"fork":false,"pushed_at":"2024-11-11T20:02:38.000Z","size":104,"stargazers_count":90,"open_issues_count":21,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-20T04:03:25.646Z","etag":null,"topics":["arch","archlinux","clipboard","desktop","environment","gnome","linux","rust","sway","wayland","x11","xorg"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-04-14T18:09:23.000Z","updated_at":"2025-05-10T10:09:19.000Z","dependencies_parsed_at":"2023-01-31T09:31:33.311Z","dependency_job_id":"84cdc1b0-a996-47e1-87ce-4e332c227738","html_url":"https://github.com/dnut/clipboard-sync","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dnut/clipboard-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnut%2Fclipboard-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnut%2Fclipboard-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnut%2Fclipboard-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnut%2Fclipboard-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnut","download_url":"https://codeload.github.com/dnut/clipboard-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnut%2Fclipboard-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264559337,"owners_count":23628037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch","archlinux","clipboard","desktop","environment","gnome","linux","rust","sway","wayland","x11","xorg"],"created_at":"2024-07-29T19:25:24.658Z","updated_at":"2025-07-10T09:34:37.566Z","avatar_url":"https://github.com/dnut.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clipboard Sync\n\nSynchronizes the clipboard across multiple X11 and wayland instances running on the same machine.\n\nTo use clipboard sync, you only need to install it and start the service. It identifies and synchronizes your clipboards automatically.\n\nExample use cases:\n\n- **Improve Wayland compatibility**: You have already enabled support for wayland in your system, but your computer does not synchronize the clipboard between X11 and wayland windows. clipboard-sync can solve this problem. [more details](https://github.com/dnut/clipboard-sync/issues/9#issuecomment-1502368133)\n- **VNC**: You run a VNC server and would like all host and client logins from the same user to share the same clipboard.\n- **Multiple displays**: You run two or more desktop environments or window managers in separate ttys, switching between desktops using ctrl-alt-F*.\n- **Nested Wayland**: You run a wayland compositor within a window. examples:\n  - you primarily use kde, but run sway in a window to consolidate all your messenger apps into a single tiled/tabbed window.\n  - you use gnome and develop extensions for gnome, so you run a nested gnome environment for testing.\n\nTable of Contents:\n- [Installation](#installation)\n- [Usage](#usage)\n- [Build From Source](#build-from-source)\n\n# Installation\nInstall clipboard-sync with your system's package manager. If your system is not supported, please vote on [the appropriate issue](https://github.com/dnut/clipboard-sync/issues?q=is%3Aissue+label%3Adistribution), or create one if it does not exist.\n\n### Arch Linux\n[clipboard-sync](https://aur.archlinux.org/packages/clipboard-sync) is available in the Arch User Repository.\n\n### Ubuntu \u0026 Debian\nInstall from the official repository:\n```bash\nsudo wget -P /etc/apt/sources.list.d/ https://raw.githubusercontent.com/dnut/deb/master/dnut.list\nsudo apt update \u0026\u0026 sudo apt install clipboard-sync\n```\n\n## Advanced Installation\nIf your system is not supported, you have two other options:\n- [Generic Linux](#generic-linux)\n  - automatically and cleanly installs or uninstalls the entire package.\n  - requires extra steps to acquire the source code.\n- [Cargo](#cargo)\n  - only installs the executable, which needs to be run manually.\n  - requires extra steps to manually edit and install a systemd service if desired.\n  - If you use [cargo-update](https://crates.io/crates/cargo-update), it can make updates to the executable easier.\n\n### Generic Linux\n[Build from Source](#build-from-source), then install ***either*** system-wide ***or*** for only the current user:\n```bash\nsudo make install  # system\nmake user-install  # user\n```\nIt can be easily uninstalled:\n```bash\nsudo make uninstall  # system\nmake user-uninstall  # user\n```\n\n### Cargo\n[clipboard-sync](https://crates.io/crates/clipboard-sync) is published to crates.io, so it can be installed as a normal binary crate.\n\n1. Install rust: https://www.rust-lang.org/tools/install\n2. Install clipboard-sync\n```bash\ncargo install clipboard-sync\n```\n3. If you want it to run in the background, you can use tmux, or you can manually download the systemd service file and copy it to a systemd folder. You can download it to the correct path using this command, after which you may need to manually edit the file to point the correct binary location:\n```bash\nwget -P \"$HOME/.config/systemd/user/\" https://raw.githubusercontent.com/dnut/clipboard-sync/master/clipboard-sync.service\n```\nIt can be easily uninstalled:\n```bash\ncargo uninstall clipboard-sync\nrm -r \"$HOME/.config/systemd/clipboard-sync.service\"\n```\n\n### Ubuntu \u0026 Debian (advanced)\nIn addition to installing from the official repository, you can also build and install the deb package from source. Follow the instructions to [Build from Source](#build-from-source), then create a deb file and install it with:\n```bash\nmake deb \u0026\u0026 sudo apt install ./dist/deb/clipboard-sync_*.deb\n```\n\n### NixOS\nAdd this repo to your flake inputs:\n```nix\nclipboard-sync.url = \"github:dnut/clipboard-sync\";\n```\n\nPut `clipboard-sync.nixosModules.default` into flake modules.\n\nTo enable the systemd service, add `services.clipboard-sync.enable = true;` into the `configuration.nix`.\n\n# Usage\nThe typical set-and-forget approach is to enable to service:\n```bash\nsystemctl --user enable --now clipboard-sync\n```\n\nIf you don't want it to run constantly, only on-demand, don't use systemd. Directly call the binary as needed:\n```bash\nclipboard-sync\n```\n\nYou can also daemonize clipboard-sync using tmux instead of systemd. ~/.bashrc aliases may be handy for these commands.\n```bash\ntmux new-session -ds clipboard-sync clipboard-sync  # start in background\ntmux attach -t clipboard-sync                       # view status\nctrl-b, d                                           # while viewing status, send back to background\nctrl-c                                              # while viewing status, terminate the process\n```\n\n# Build from Source\n\n1. Ensure you have the build dependencies: rust make gcc libc libxcb\n- install rust using rustup: https://www.rust-lang.org/tools/install\n- For the rest:\n  - arch linux: `sudo pacman -Syu make gcc libxcb`\n  - debian/ubuntu: `sudo apt install make gcc libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev`\n\n2. Download the source from [the releases page](https://github.com/dnut/clipboard-sync/releases/) and unzip it. Alternatively, select *one* of these commands to download the source:\n```bash\nwget -O- https://github.com/dnut/clipboard-sync/archive/refs/tags/0.2.0.tar.gz | tar xvz\ncurl -L https://github.com/dnut/clipboard-sync/archive/refs/tags/0.2.0.tar.gz | tar xvz\ngit clone https://github.com/dnut/clipboard-sync.git --branch stable\n```\n\n3. Compile the program\n```bash\ncd clipboard-sync*\nmake\n```\n\nThe executable is here:\n```bash\n./target/release/clipboard-sync\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnut%2Fclipboard-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnut%2Fclipboard-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnut%2Fclipboard-sync/lists"}