Skip to content

gustavosett/Windows-11-Clipboard-History-For-Linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

image

License Rust Tauri Platform Version Sites

A beautiful, Windows 11-style Clipboard History Manager for Linux.

Works on Wayland & X11.

Built with πŸ¦€ Rust + ⚑ Tauri v2 + βš›οΈ React + 🎨 Tailwind CSS

Features β€’ Installation β€’ How to Use β€’ Development


✨ Features

  • 🐧 Wayland & X11 Support - Uses OS-level shortcuts and uinput for pasting to support Wayland & X11.
  • ⚑ Global Hotkey - Press Super+V or Ctrl+Alt+V to open instantly.
  • πŸ–±οΈ Smart Positioning - Window follows your mouse cursor across multiple monitors.
  • πŸ“Œ Pinning - Keep important items at the top of your list.
  • πŸ–ΌοΈ Rich Media - Supports Images, Text, etc.
  • 🎬 GIF Integration - Search and paste GIFs from Tenor directly into Discord, Slack, etc.
  • 🀩 Emoji Picker - Built-in searchable emoji keyboard.
  • 🏎️ Performance - Native Rust backend ensures minimal resource usage.
  • πŸ›‘οΈ Privacy Focused - History is stored locally and never leaves your machine.
  • πŸ§™ Setup Wizard - First-run wizard guides you through permission setup, detects shortcut conflicts, and autostart configuration.

πŸ“₯ Installation

πŸš€ Recommended: One-Line Install

This script automatically detects your distro and architecture (x86_64, ARM64), downloads the correct package, and sets up permissions.

curl -fsSL https://raw.githubusercontent.com/gustavosett/Windows-11-Clipboard-History-For-Linux/master/scripts/install.sh | bash

Note: The installer uses ACLs to grant immediate access to input devices β€” no logout required!

πŸ“¦ Manual Installation

Download the latest release from the Releases Page.

Debian / Ubuntu / Pop!_OS / Linux Mint

Option 1: APT Repository (Recommended - enables automatic updates)

# Add the Cloudsmith repository
curl -1sLf 'https://dl.cloudsmith.io/public/gustavosett/clipboard-manager/setup.deb.sh' | sudo -E bash

# Install the package
sudo apt update
sudo apt install win11-clipboard-history

# For immediate paste access (without logout):
sudo setfacl -m u:$USER:rw /dev/uinput

Option 2: Direct Download

# Download and install (replace VERSION with actual version)
sudo apt install ./win11-clipboard-history_VERSION_amd64.deb

# The package sets up udev rules automatically.
# For immediate paste access (without logout):
sudo setfacl -m u:$USER:rw /dev/uinput
Fedora / RHEL / CentOS

Option 1: DNF Repository (Recommended - enables automatic updates)

# Add the Cloudsmith repository
curl -1sLf 'https://dl.cloudsmith.io/public/gustavosett/clipboard-manager/setup.rpm.sh' | sudo -E bash

# Install the package
sudo dnf install win11-clipboard-history

# For immediate paste access (without logout):
sudo setfacl -m u:$USER:rw /dev/uinput

Option 2: Direct Download

# Download and install (replace VERSION with actual version)
sudo dnf install ./win11-clipboard-history-VERSION-1.x86_64.rpm

# For immediate paste access (without logout):
sudo setfacl -m u:$USER:rw /dev/uinput
Arch Linux (AUR)
# Using yay
yay -S win11-clipboard-history-bin

# Or using paru
paru -S win11-clipboard-history-bin
AppImage (Universal)

Quick Start

# Download the AppImage from the releases page
chmod +x win11-clipboard-history_*.AppImage

# Grant uinput access for paste simulation
sudo setfacl -m u:$USER:rw /dev/uinput

# Run the app
./win11-clipboard-history_*.AppImage

Full Installation (recommended for regular use)

# Create directories
mkdir -p ~/.local/bin ~/.local/share/applications

# Move AppImage to local bin
mv win11-clipboard-history_*.AppImage ~/.local/bin/win11-clipboard-history.AppImage
chmod +x ~/.local/bin/win11-clipboard-history.AppImage

# Create a wrapper script for clean environment
cat > ~/.local/bin/win11-clipboard-history << 'EOF'
#!/bin/bash
unset LD_LIBRARY_PATH LD_PRELOAD GTK_PATH GIO_MODULE_DIR
export NO_AT_BRIDGE=1
exec "$HOME/.local/bin/win11-clipboard-history.AppImage" "$@"
EOF
chmod +x ~/.local/bin/win11-clipboard-history

# Create desktop entry
cat > ~/.local/share/applications/win11-clipboard-history.desktop << EOF
[Desktop Entry]
Type=Application
Name=Clipboard History
Comment=Windows 11-style Clipboard History Manager
Exec=$HOME/.local/bin/win11-clipboard-history
Icon=utilities-clipboard
Terminal=false
Categories=Utility;
EOF

# Add ~/.local/bin to PATH if not already there
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

Setting up paste simulation (required)

AppImage doesn't install udev rules automatically, so you need to set up permissions:

# Quick fix (temporary, resets on reboot):
sudo setfacl -m u:$USER:rw /dev/uinput

# Permanent fix (survives reboot):
sudo tee /etc/udev/rules.d/99-win11-clipboard-input.rules > /dev/null << 'EOF'
ACTION=="add", SUBSYSTEM=="misc", KERNEL=="uinput", OPTIONS+="static_node=uinput"
KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", GROUP="input", TAG+="uaccess"
EOF

echo "uinput" | sudo tee /etc/modules-load.d/win11-clipboard.conf > /dev/null
sudo modprobe uinput
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=misc

# Apply ACL for immediate access
sudo setfacl -m u:$USER:rw /dev/uinput

Note: You may need to log out and back in for the permanent udev rules to take full effect.

Build from Source
# Clone and enter the repo
git clone https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux.git
cd Windows-11-Clipboard-History-For-Linux

# Install dependencies (auto-detects distro)
make deps
make rust
make node
source ~/.cargo/env

# Build
make build

# Install system-wide (uses /usr/local by default)
sudo make install

# Or install to /usr like a package
sudo make install PREFIX=/usr

🎯 First Run

On the first launch, the app will show a Setup Wizard that:

  • βœ… Checks if you have the necessary permissions for paste simulation
  • πŸ”§ Offers a one-click fix if permissions are missing
  • ⚠️ Detects shortcut conflicts with your desktop environment (GNOME, KDE, i3, Sway, Hyprland, etc.)
  • ⚑ Offers automatic conflict resolution where possible
  • ⌨️ Helps register the global shortcut (Super+V) for your desktop environment
  • πŸš€ Lets you enable autostart on login

⌨️ How to Use

Hotkey Action
Super + V Open Clipboard History
Ctrl + Alt + V Alternative Shortcut
Esc Close Window
↑ / ↓ / Tab Navigate Items
Enter Paste Selected Item

Tips

  • Paste GIFs: Select a GIF, and it will be copied as a file URI. The app simulates Ctrl+V to paste it into apps like Discord or Telegram.
  • Pinning: Click the pin icon on any item to keep it at the top permanently.

πŸ› οΈ Development

Prerequisites

  • Rust 1.77+
  • Node.js 20+
  • System build dependencies (see make deps)

Quick Start

git clone https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux.git
cd Windows-11-Clipboard-History-For-Linux

make deps      # Install system dependencies (auto-detects distro)
make rust      # Install Rust via rustup
make node      # Install Node.js via nvm
source ~/.cargo/env

make dev       # Run in development mode with hot reload

Available Commands

Command Description
make dev Run in development mode
make build Build production release
make install Install to system (default: /usr/local)
make uninstall Remove from system
make clean Remove build artifacts
make lint Run linters
make help Show all available commands

πŸ”§ Troubleshooting

App won't open with Super+V

  1. Ensure the app is running: pgrep -f win11-clipboard-history-bin
  2. If not running, launch it from your app menu or run win11-clipboard-history
  3. Re-run the Setup Wizard to register the shortcut:
    rm ~/.config/win11-clipboard-history/setup.json
    win11-clipboard-history

Super+V Conflicts with Desktop Environment

Many desktop environments use Super+V for built-in features. The Setup Wizard will detect and offer to fix these automatically, but you can also resolve them manually:

GNOME / Ubuntu

GNOME uses Super+V for the Notification Center / Message Tray.

# Change GNOME's notification tray shortcut to Super+Shift+V
gsettings set org.gnome.shell.keybindings toggle-message-tray "['<Super><Shift>v']"

Or manually: Settings β†’ Keyboard β†’ Keyboard Shortcuts β†’ Search "Notification"

Pop!_OS / Pop Shell

Pop!_OS inherits GNOME's Super+V shortcut:

gsettings set org.gnome.shell.keybindings toggle-message-tray "['<Super><Shift>v']"

If Pop Shell also uses Super+V for tiling: Settings β†’ Keyboard β†’ Customize Shortcuts β†’ Pop Shell

KDE Plasma

Check if Klipper (built-in clipboard manager) uses Meta+V:

  1. Right-click Klipper in system tray β†’ Configure
  2. Go to Shortcuts
  3. Change or disable the Meta+V binding

Or: System Settings β†’ Shortcuts β†’ Global Shortcuts β†’ Search "Meta+V"

COSMIC Desktop

Settings β†’ Keyboard β†’ Shortcuts and check for Super+V bindings in both Custom and System shortcuts.

i3 Window Manager

Edit your i3 config (~/.config/i3/config):

# Comment out or remove existing $mod+v binding
# bindsym $mod+v split vertical

# Add clipboard history
bindsym $mod+v exec win11-clipboard-history

Reload i3: $mod+Shift+r

Sway

Edit your Sway config (~/.config/sway/config):

# Comment out existing $mod+v binding if any
# Add clipboard history
bindsym $mod+v exec win11-clipboard-history

Reload Sway: $mod+Shift+c

Hyprland

Edit your Hyprland config (~/.config/hypr/hyprland.conf):

# Comment out existing SUPER, V binding if any
# Add clipboard history
bind = SUPER, V, exec, win11-clipboard-history

Config auto-reloads.

Pasting doesn't work

  1. Check the Setup Wizard: It shows permission status and offers one-click fixes
  2. Quick fix: sudo setfacl -m u:$USER:rw /dev/uinput
  3. Wayland: Ensure wl-clipboard is installed
  4. X11: Ensure xclip is installed
  5. The app simulates Ctrl+V β€” ensure the target app accepts this shortcut

Window appears on the wrong monitor

The app uses smart cursor tracking. If it appears incorrectly, try moving your mouse to the center of the desired screen and pressing the hotkey again.


πŸ—‘οΈ Uninstalling

Debian / Ubuntu
sudo apt remove win11-clipboard-history
# To also remove config files:
sudo apt purge win11-clipboard-history
Fedora / RHEL
sudo dnf remove win11-clipboard-history
Arch Linux (AUR)
yay -R win11-clipboard-history-bin
AppImage
rm -f ~/.local/bin/win11-clipboard-history*
rm -f ~/.local/share/applications/win11-clipboard-history.desktop
rm -rf ~/.config/win11-clipboard-history
Built from Source (Makefile)
rm -f ~/.local/bin/win11-clipboard-history
rm -rf ~/.local/lib/win11-clipboard-history
rm -f ~/.config/autostart/win11-clipboard-history.desktop

Check if it still have shortcuts registered and remove them:

This can happen if the application was uninstalled while it was running or if the uninstall permissions were incorrect.

  1. Go to Settings -> Keyboard -> Shortcuts
  2. Find "Win11 Clipboard History" or similar entry
  3. Remove the shortcut or change it to "Disabled"

Screenshot

Contributors ✨

Thanks goes to these wonderful people (emoji key):

freshCoder21313
freshCoder21313

πŸ”£ πŸ’» 🎨
Tallin-Boston-Technology
Tallin-Boston-Technology

πŸ€”
rorar
rorar

πŸ€” πŸ›
sonarx
sonarx

πŸ€”
Oleksandr Romaniuk
Oleksandr Romaniuk

πŸ›
Predrag
Predrag

πŸ’» πŸ›
Hen
Hen

πŸ› πŸ’»
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

🀝 Contributing

Contributions are welcome!

  1. Fork it
  2. Create your feature branch (git checkout -b feature/cool-feature)
  3. Commit your changes (git commit -m 'feat: add cool feature')
  4. Push to the branch (git push origin feature/cool-feature)
  5. Open a Pull Request

πŸ“„ License

MIT License Β© Gustavo Sett

Static Badge

Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.


If you like this project, give it a ⭐!