SyncerMan is a powerful, cross-platform synchronization tool designed to bridge the gap between Windows and Linux environments. It enables real-time, bi-directional sharing of clipboard content, text messages, files, and directories over a local network using TCP sockets.
Built with Python, SyncerMan runs efficiently in the background, listening for global hotkeys to trigger instant data transfer without interrupting your workflow.
- ✨ Features
- 🧰 Requirements
- ⚙️ Setup
- 0. Update IP addresses
- 1. Define Firewall Rules for TCP/65433
- 1.1: Using GUI
- 1.2: Using Powershell:
- To Delete the Rule Later (Optional)
- 2. Install Requirements
- 3. Run Script
A Python-based clipboard sync tool between a Windows PC and a Linux laptop over the same network.
- Send copied text from Windows (using
Ctrl + Alt + C) to Linux:- Text gets appended to
PCRecieved.txt - Also copied last received text into the Linux clipboard.
- Text gets appended to
- Send clipboard content from Linux (using
Ctrl + Shift + V) to Windows:- Text gets appended to
LinuxReceived.txt - Also copied last received text into the Windows clipboard.
- Text gets appended to
- Python 3.x
- Modules:
pyperclipkeyboard
- Python 3.x
- Modules:
pyperclipkeyboard
- Note: Linux side Must run with
sudodue tokeyboardrequiring root access permission.
- Install
Python 3.12on both Windows and Linux. - Then, on Windows, open PowerShell as Administrator and run:
python -m pip install pyperclip
python -m pip install keyboard- Install the following libraries:
sudo pip install pyperclip
sudo pip install keyboard- Note: The
keyboardpackage must be installed with root access (sudo).
- In
server-linux.py(Linux), set the correct IP address of your Windows PC:
WINDOWS_CLIENT_IP = "192.168.x.x"- Note: Use
ipconfigon Windows to find your correct IP address.
- In
client-windows.py(Windows), set the correct IP address of your Linux PC:
SERVER_IP = "192.168.x.x"- Note: Use
ifconfig(orip a) on Linux to find your correct IP address.
To ensure your Linux server can send data to your Windows clipboard sync client, you need to allow incoming connections on a specific TCP port (e.g., 65433) in Windows Firewall.
WIN+R => wf.msc => Inbound Rules => New Rule- Define an Allow rule for TCP port
65433.
- Define an Allow rule for TCP port
- OR you can use PowerShell.
-
Open PowerShell as Administrator
- Press
Win + S, search forPowerShell - Right-click and choose Run as Administrator
- Press
-
Run the following command:
New-NetFirewallRule -DisplayName "Allow Clipboard Sync" `
-Direction Inbound `
-LocalPort 65433 `
-Protocol TCP `
-Action Allow- Verify the rule
- Open Windows Defender Firewall with Advanced Security
- Go to Inbound Rules
- Look for the rule named "Allow Clipboard Sync"
-
- You can change
65433to any other port number if needed — just make sure it matches your Python script. - Make sure your Windows machine is using a Private or Trusted network profile.
- No restart is needed; the rule applies immediately.
- This rule only opens TCP traffic on port
65433.
- You can change
If you want to remove this rule, run:
Remove-NetFirewallRule -DisplayName "Allow Clipboard Sync"- If your Linux system is not using a firewall, you can skip this step.
- If a firewall is enabled, configure it according to your Linux distribution.
- If you are using the
ufwfirewall, add the following command:
sudo ufw allow 65433/tcp comment 'Allow Clipboard Sync'- If you want to remove the rule after uninstalling the app, use the following command:
sudo ufw delete allow 65433/tcp- Add the rule using
firewall-cmd:
sudo firewall-cmd --permanent --add-port=65433/tcp
sudo firewall-cmd --reload- If you want to remove the rule after uninstalling the app, use the following command:
sudo firewall-cmd --permanent --remove-port=65433/tcp
sudo firewall-cmd --reload- By completing this step, your Windows and Linux systems will be ready to receive/send data over the network.
- On Linux, run the server side:
sudo python3 linux-server.py- Then, on Windows, open PowerShell as Administrator and run the client:
python windows-client.py-
Note: You can change the server and client execution locations. For example, you can run the server on Windows and the client on Linux. The choice is yours.
-
Enjoy Script 😊