clipboard

janlelisMIT更新放缓

Ruby 里读写系统剪贴板的统一接口,屏蔽 Windows、Linux、macOS、WSL、Java 等平台差异,省去自己适配各平台命令。

Ruby access to the clipboard on Windows, Linux, macOS, Java, WSL and more platforms 📋︎

暂无版本385star34fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
gem install clipboard
gem install ffi  # Windows 上需要
硬件要求按 README 说明

README 未说明硬件要求;支持 Linux(X11/Wayland)、macOS、Windows、Cygwin、WSL、JRuby 等平台,Ruby 版本需 3.x 或 4.x。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Ruby 跨平台剪贴板读写库,统一 copy/paste/clear 接口,屏蔽各系统差异

Ruby 里读写系统剪贴板的统一接口,屏蔽 Windows、Linux、macOS、WSL、Java 等平台差异,省去自己适配各平台命令。

核心能力

  • 用 Clipboard.copy/paste/clear 三个方法统一读写剪贴板
  • 自动探测平台实现,找不到时回退到 ~/.clipboard 文件
  • 支持 Linux 的 primary、secondary 等多个剪贴板选择
  • 可选启用 Java、GTK+、OSC52 等替代实现
  • OSC52 实现支持从远程 SSH 会话复制到本地剪贴板

容易踩的坑

Linux X11 需先装 xsel 或 xclip,Wayland 需装 wl-copy 和 wl-paste,否则会回退到文件实现;Windows 上必须额外安装 ffi gem;OSC52 实现只支持复制和清空,不支持粘贴,且可能被终端禁用。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Clipboard Ruby Gem 📋︎ version [ci]

    Lets you access the system clipboard from everywhere. Currently supported platforms:

    • Linux (X11)
    • Linux (Wayland)
    • MacOS
    • Windows
    • Cygwin (POSIX environment for Windows)
    • WSL (Windows Subsystem for Linux)
    • Gtk+ (Cross Platform Widget Toolkit)
    • Java (on JRuby)
    • Experimental: OSC52 (ANSI escape sequence) only copying - see note below

    Supported Rubies: 4.x, 3.x

    Unsupported, but might still work: 2.x (use clipboard gem version 1.x)

    Usage

    • Clipboard.copy - Copies a string to system clipboard
    • Clipboard.paste - Paste text contents from system clipboard as string
    • Clipboard.clear - Empties the system clipboard

    Setup

    Run gem install clipboard (and gem install ffi on Windows) or add the following lines to your Gemfile:

    gem "clipboard"
    gem "ffi", :platforms => [:mswin, :mingw] # Necessary on Windows
    

    Important note for Linux users: The clipboard gem requires additional programs to be available:

    • On X11: xsel or xclip
    • On Wayland: wl-copy and wl-paste (wl-clipboard) - depending on your system, just having xsel / xclip might also work

    Clipboard Implementations

    In most environments, the appropriate clipboard implementation can be detected automatically. If none is found, the gem will fallback to a file based one, which will just write to/read from ~/.clipboard instead of the system clipboard.

    You can check the implementation used with Clipboard.implementation or set a specific implementation with Clipboard.implementation = ...

    Alternative Clipboard Providers

    There are more implementations included in this gem, which are not activated by default. You can opt-in to use them if you think they are a better fit for your application environment:

    Java

    Activate with: Clipboard.implementation = :java

    This is an option for JRuby users which will use the clipboard functionality from the Java standard library.

    GTK+

    Activate with: Clipboard.implementation = :gtk

    This utilizes the GTK+ library. See Ruby-GNOME2 for more info.

    Requires the gtk3 or gtk2 gem to be installed.

    OSC52

    Activate with: Clipboard.implementation = :osc52

    OSC52 is an ANSI escape sequence that some terminals support to access the system clipboard. One advantage of using this clipboard provider is that it is possible to copy from remote ssh sessions to your system clipboard.

    As of the current version, only copy and clear commands are supported (no paste).

    Please note: Even if your terminal includes OSC52 functionality, the feature could be (partially) disabled to prevent malicious scripts from accessing (or setting) your clipboard.

    Tips & Tricks

    Linux: Using Clipboard via SSH

    To be able to use the clipboard through SSH (using the xsel/xclip based implementation), you need to install xauth on your server and connect via ssh -X or ssh -Y. Please note that some server settings restrict this feature.

    Linux: Copy To or Paste From Specific Clipboard / Selection

    The clipboard on Linux is divided into multiple clipboard selections. You can choose from which clipboard you want to paste from by passing it as the first argument. The default is :clipboard, other options are :primary and, for some implementations, :secondary:

    Clipboard.paste("primary") # or
    Clipboard.paste(clipboard: "primary")
    

    Clipboard.copy will copy to all available clipboards, except if you specifiy a clipboard using the clipboard: keyword argument:

    Clipboard.copy("only goes to primary clipboard", clipboard: "primary")
    

    Windows: Encoding Info

    Windows uses UTF-16LE as its default encoding, so pasted strings will always come in UTF-16. You can then manually convert them to your desired encoding, for example, UTF-8, using the String#encode method:

    Clipboard.paste.encode('UTF-8')
    

    CLI Utility: blip

    The blip gem is a handy command-line wrapper for the clipboard gem. It lets you quickly copy a file's content to your clipboard:

    $ blip FILE_NAME
    

    Without any arguments, it will just paste the contents of the clipboard.

    MIT

    Copyright (c) 2010-2024 Jan Lelis https://janlelis.com released under the MIT license. Contributions by and thanks to Michael Grosser and all the other contributors!