clipboard 1.3.5 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/MIT-LICENSE.txt +1 -1
- data/README.md +18 -9
- data/clipboard.gemspec +2 -1
- data/lib/clipboard/linux.rb +2 -1
- data/lib/clipboard/linux_wayland.rb +34 -0
- data/lib/clipboard/version.rb +1 -1
- data/lib/clipboard/windows.rb +39 -36
- data/lib/clipboard.rb +16 -10
- data/spec/clipboard_file_spec.rb +3 -1
- data/spec/clipboard_spec.rb +24 -16
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36dbdb09b06bc41833ad82b692560179ea1dde1a061db1dfab093d6ddea64cb7
|
4
|
+
data.tar.gz: 2fc4772e208ee387887ba3558b4acfdc810132877664f59d30fe5605c0218c2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73d188dcf4b8ce431da705feaa6cdf71889ab48679d584450cdf88e871f19fb0ff15b7c1d325ca65f104bdc4195c8bdbdfb01ff477e4fef8f2ab20a12ff8bd4f
|
7
|
+
data.tar.gz: c7d4e4c0e7ca463c4d3799bfbe7a15b1c1cb67aaca4fa1b84aacb9ea39794b8d64eb264d86ab773806049a1a5c6abe766c7ccb87211ebb4afb64fc7faf313259
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.4.0
|
4
|
+
* Add Wayland support via `wl-copy`, patch by @cramt
|
5
|
+
* Only silence clipboard warnings when $VERBOSE is nil
|
6
|
+
|
7
|
+
## 1.3.6
|
8
|
+
* Fix Windows implementation (so it works on more recent Windows), patch by @P3t3rU5
|
9
|
+
|
3
10
|
## 1.3.5
|
4
11
|
* Fix missing String#+@ method on Ruby <2.3, patch by @AaronC81
|
5
12
|
|
@@ -7,7 +14,6 @@
|
|
7
14
|
* Don't break on Ruby 2.1, patch by @grosser
|
8
15
|
|
9
16
|
## 1.3.3
|
10
|
-
|
11
17
|
* Fix Cygwin implementation to work when File constant is loaded, fix by @ntachino
|
12
18
|
|
13
19
|
## 1.3.2
|
data/MIT-LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
# Clipboard Ruby Gem [![version](https://badge.fury.io/rb/clipboard.svg)](https://badge.fury.io/rb/clipboard) [
|
1
|
+
# Clipboard Ruby Gem [![version](https://badge.fury.io/rb/clipboard.svg)](https://badge.fury.io/rb/clipboard) [![[ci]](https://github.com/janlelis/clipboard/workflows/Test/badge.svg)](https://github.com/janlelis/clipboard/actions?query=workflow%3ATest)
|
2
2
|
|
3
3
|
Lets you access the clipboard from everywhere. Currently supported platforms:
|
4
4
|
|
5
|
-
- Linux
|
5
|
+
- Linux (X11)
|
6
|
+
- Linux (Wayland)
|
6
7
|
- MacOS
|
7
8
|
- Windows
|
8
9
|
- Cygwin (POSIX environment for Windows)
|
@@ -10,14 +11,14 @@ Lets you access the clipboard from everywhere. Currently supported platforms:
|
|
10
11
|
- Gtk+ (Cross Platform Widget Toolkit)
|
11
12
|
- Java (on JRuby)
|
12
13
|
|
13
|
-
Supported Rubies: **
|
14
|
+
Supported Rubies: **3.3**, **3.2**, **3.1**, **3.0**
|
14
15
|
|
15
|
-
Unsupported, but might still work: **2.
|
16
|
+
Unsupported, but might still work: **2.X**
|
16
17
|
|
17
18
|
## Usage
|
18
19
|
|
19
20
|
* `Clipboard.copy` - Copies a string to system clipboard
|
20
|
-
* `Clipboard.paste` - Paste contents from system clipboard as string
|
21
|
+
* `Clipboard.paste` - Paste text contents from system clipboard as string
|
21
22
|
* `Clipboard.clear` - Empties the system clipboard
|
22
23
|
|
23
24
|
## Setup
|
@@ -29,7 +30,7 @@ gem "clipboard"
|
|
29
30
|
gem "ffi", :platforms => [:mswin, :mingw] # Required by Clipboard on Windows
|
30
31
|
```
|
31
32
|
|
32
|
-
- **Important note for Linux** users: The clipboard requires the *xsel* or the *xclip* command-line program. On debian and ubuntu, *xsel* can be installed with: `sudo apt-get install xsel`
|
33
|
+
- **Important note for Linux** users: The clipboard requires the *xsel* or the *xclip* command-line program (X11), or the *wl-copy* / *wl-paste* command-line programs (Wayland). On debian and ubuntu, *xsel* can be installed with: `sudo apt-get install xsel` and *wl-copy* / *wl-paste* with `sudo apt-get install wl-clipboard`.
|
33
34
|
|
34
35
|
## Clipboard Implementations
|
35
36
|
|
@@ -70,7 +71,7 @@ passing it as an argument. The default is *:clipboard*, other options are *:prim
|
|
70
71
|
|
71
72
|
### Windows: Encoding Info
|
72
73
|
|
73
|
-
Windows uses [UTF-16LE](https://en.wikipedia.org/wiki/UTF-16) 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](
|
74
|
+
Windows uses [UTF-16LE](https://en.wikipedia.org/wiki/UTF-16) 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](https://rubyapi.org/o/string#method-i-encode) method:
|
74
75
|
|
75
76
|
```ruby
|
76
77
|
Clipboard.paste.encode('UTF-8')
|
@@ -86,6 +87,14 @@ $ blip FILE_NAME
|
|
86
87
|
|
87
88
|
Without any arguments, it will just paste the contents of the clipboard.
|
88
89
|
|
89
|
-
|
90
|
+
## Further Development
|
90
91
|
|
91
|
-
|
92
|
+
This is a list of nice-to-have features - feel free to open a PR or let me know if you want to work on one of these:
|
93
|
+
|
94
|
+
- Native support for clipboard on X11 or Wayland
|
95
|
+
- Support more platforms
|
96
|
+
- Support clipboard meta data
|
97
|
+
|
98
|
+
## MIT
|
99
|
+
|
100
|
+
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!](https://github.com/janlelis/clipboard/graphs/contributors)
|
data/clipboard.gemspec
CHANGED
@@ -12,8 +12,9 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.description = "Access to the clipboard on Linux, MacOS, Windows, and Cygwin: Clipboard.copy, Clipboard.paste, Clipboard.clear"
|
13
13
|
s.homepage = "https://github.com/janlelis/clipboard"
|
14
14
|
s.license = "MIT"
|
15
|
+
s.metadata = { "rubygems_mfa_required" => "true" }
|
15
16
|
s.requirements = [
|
16
|
-
"Linux: You need xclip
|
17
|
+
"Linux: You need xclip / xsel (X11) or wl-clipboard (Wayland)",
|
17
18
|
"Windows: You need the ffi gem",
|
18
19
|
]
|
19
20
|
s.files = Dir.glob(%w[{lib,spec}/**/*.rb [A-Z]*.txt [A-Z]*.md]) + %w{clipboard.gemspec}
|
data/lib/clipboard/linux.rb
CHANGED
@@ -27,7 +27,8 @@ module Clipboard
|
|
27
27
|
}.freeze
|
28
28
|
else
|
29
29
|
raise Clipboard::ClipboardLoadError, "clipboard: Could not find required program xclip or xsel\n" \
|
30
|
-
|
30
|
+
"On debian/ubuntu, you can install it with: sudo apt-get install xsel\n" \
|
31
|
+
"If your system is Wayland-based, please install wl-clipboard"
|
31
32
|
end
|
32
33
|
|
33
34
|
def paste(which = nil)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "utils"
|
4
|
+
|
5
|
+
module Clipboard
|
6
|
+
module LinuxWayland
|
7
|
+
extend self
|
8
|
+
|
9
|
+
WRITE_COMMAND = "wl-copy"
|
10
|
+
READ_COMMAND = "wl-paste"
|
11
|
+
|
12
|
+
if !Utils.executable_installed?(WRITE_COMMAND)
|
13
|
+
raise Clipboard::ClipboardLoadError, "clipboard: Could not find required program wl-copy\n" \
|
14
|
+
"Please install it or try a different implementation"
|
15
|
+
end
|
16
|
+
|
17
|
+
def paste(might_select_primary_clipboard = nil)
|
18
|
+
if might_select_primary_clipboard == "primary"
|
19
|
+
`#{READ_COMMAND} -p`
|
20
|
+
else
|
21
|
+
`#{READ_COMMAND}`
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def copy(data)
|
26
|
+
Utils.popen WRITE_COMMAND, data
|
27
|
+
paste
|
28
|
+
end
|
29
|
+
|
30
|
+
def clear
|
31
|
+
`#{WRITE_COMMAND} -c`
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/clipboard/version.rb
CHANGED
data/lib/clipboard/windows.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
3
|
+
require_relative 'utils'
|
4
4
|
|
5
5
|
module Clipboard
|
6
6
|
module Windows
|
@@ -19,14 +19,14 @@ module Clipboard
|
|
19
19
|
|
20
20
|
module User32
|
21
21
|
extend FFI::Library
|
22
|
-
ffi_lib
|
22
|
+
ffi_lib 'user32'
|
23
23
|
ffi_convention :stdcall
|
24
24
|
|
25
|
-
attach_function :open, :OpenClipboard, [ :
|
26
|
-
attach_function :close, :CloseClipboard, [ ], :
|
27
|
-
attach_function :empty, :EmptyClipboard, [ ], :
|
28
|
-
attach_function :get, :GetClipboardData, [ :long ], :
|
29
|
-
attach_function :set, :SetClipboardData, [ :long, :
|
25
|
+
attach_function :open, :OpenClipboard, [ :pointer ], :bool
|
26
|
+
attach_function :close, :CloseClipboard, [ ], :bool
|
27
|
+
attach_function :empty, :EmptyClipboard, [ ], :bool
|
28
|
+
attach_function :get, :GetClipboardData, [ :long ], :pointer
|
29
|
+
attach_function :set, :SetClipboardData, [ :long, :pointer ], :pointer
|
30
30
|
end
|
31
31
|
|
32
32
|
module Kernel32
|
@@ -34,53 +34,56 @@ module Clipboard
|
|
34
34
|
ffi_lib 'kernel32'
|
35
35
|
ffi_convention :stdcall
|
36
36
|
|
37
|
-
attach_function :lock, :GlobalLock, [ :
|
38
|
-
attach_function :unlock, :GlobalUnlock, [ :
|
39
|
-
attach_function :size, :GlobalSize, [ :
|
40
|
-
attach_function :alloc, :GlobalAlloc, [ :long, :long ], :
|
37
|
+
attach_function :lock, :GlobalLock, [ :pointer ], :pointer
|
38
|
+
attach_function :unlock, :GlobalUnlock, [ :pointer ], :bool
|
39
|
+
attach_function :size, :GlobalSize, [ :pointer ], :long
|
40
|
+
attach_function :alloc, :GlobalAlloc, [ :long, :long ], :pointer
|
41
41
|
end
|
42
42
|
|
43
43
|
# see http://www.codeproject.com/KB/clipboard/archerclipboard1.aspx
|
44
44
|
def paste(_ = nil)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
data
|
45
|
+
return String.new unless User32.open(nil)
|
46
|
+
|
47
|
+
hclip = User32.get( CF_UNICODETEXT )
|
48
|
+
return String.new if hclip.null?
|
49
|
+
|
50
|
+
pointer_to_data = Kernel32.lock( hclip )
|
51
|
+
# Windows Unicode is ended by two null bytes, so get the whole string
|
52
|
+
size = Kernel32.size( hclip )
|
53
|
+
data = pointer_to_data.read_string( size - 2 )
|
54
|
+
data.force_encoding(Encoding::UTF_16LE)
|
55
|
+
ensure
|
56
|
+
Kernel32.unlock(hclip) if hclip && !hclip.null?
|
57
|
+
User32.close
|
59
58
|
end
|
60
59
|
|
61
60
|
def clear
|
62
|
-
if
|
63
|
-
User32.empty( )
|
64
|
-
User32.close( )
|
65
|
-
end
|
61
|
+
User32.empty if User32.open(nil)
|
66
62
|
paste
|
63
|
+
ensure
|
64
|
+
User32.close
|
67
65
|
end
|
68
66
|
|
69
67
|
def copy(data_to_copy)
|
70
|
-
if
|
71
|
-
User32.empty
|
72
|
-
data = data_to_copy.encode(
|
68
|
+
if User32.open(nil)
|
69
|
+
User32.empty
|
70
|
+
data = data_to_copy.encode(Encoding::UTF_16LE) # TODO: catch bad encodings
|
73
71
|
data << 0
|
74
72
|
handler = Kernel32.alloc( GMEM_MOVEABLE, data.bytesize )
|
75
73
|
pointer_to_data = Kernel32.lock( handler )
|
76
|
-
|
77
|
-
|
74
|
+
begin
|
75
|
+
pointer_to_data.write_string( data )
|
76
|
+
ensure
|
77
|
+
Kernel32.unlock( handler )
|
78
|
+
end
|
78
79
|
User32.set( CF_UNICODETEXT, handler )
|
79
|
-
|
80
|
+
data.chop
|
80
81
|
else # don't touch anything
|
81
82
|
Utils.popen "clip", data_to_copy # depends on clip (available by default since Vista)
|
83
|
+
paste
|
82
84
|
end
|
83
|
-
|
85
|
+
ensure
|
86
|
+
User32.close
|
84
87
|
end
|
85
88
|
end
|
86
89
|
end
|
data/lib/clipboard.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rbconfig'
|
4
|
-
|
4
|
+
|
5
|
+
require_relative 'clipboard/version'
|
6
|
+
require_relative 'clipboard/utils'
|
5
7
|
|
6
8
|
module Clipboard
|
7
9
|
extend self
|
@@ -10,12 +12,13 @@ module Clipboard
|
|
10
12
|
end
|
11
13
|
|
12
14
|
unless defined? Ocra # see gh#9
|
13
|
-
autoload :Linux,
|
14
|
-
autoload :
|
15
|
-
autoload :
|
16
|
-
autoload :
|
17
|
-
autoload :
|
18
|
-
autoload :
|
15
|
+
autoload :Linux, 'clipboard/linux'
|
16
|
+
autoload :LinuxWayland, 'clipboard/linux_wayland'
|
17
|
+
autoload :Mac, 'clipboard/mac'
|
18
|
+
autoload :Java, 'clipboard/java'
|
19
|
+
autoload :Cygwin, 'clipboard/cygwin'
|
20
|
+
autoload :Wsl, 'clipboard/wsl'
|
21
|
+
autoload :Gtk, 'clipboard/gtk'
|
19
22
|
end
|
20
23
|
autoload :Windows, 'clipboard/windows'
|
21
24
|
autoload :File, 'clipboard/file'
|
@@ -29,20 +32,23 @@ module Clipboard
|
|
29
32
|
when /mswin|mingw/ then :Windows
|
30
33
|
when /cygwin/ then :Cygwin
|
31
34
|
else
|
32
|
-
raise ClipboardLoadError, "Your OS(#{ RbConfig::CONFIG['host_os'] }) is not supported
|
35
|
+
raise ClipboardLoadError, "Your OS(#{ RbConfig::CONFIG['host_os'] }) is not supported"
|
33
36
|
end
|
34
37
|
|
35
|
-
# Running additional check to detect if running in Microsoft WSL
|
38
|
+
# Running additional check to detect if running in Microsoft WSL or Wayland
|
36
39
|
if os == :Linux
|
37
40
|
require "etc"
|
38
41
|
if Etc.respond_to?(:uname) && Etc.uname[:release] =~ /Microsoft/ # uname was added in ruby 2.2
|
39
42
|
os = :Wsl
|
43
|
+
# Only choose Wayland implementation if wl-copy is found, since xclip / xsel *might* work
|
44
|
+
elsif ENV["XDG_SESSION_TYPE"] == "wayland" && Utils.executable_installed?("wl-copy")
|
45
|
+
os = :LinuxWayland
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
43
49
|
@implementation = Clipboard.const_get(os)
|
44
50
|
rescue ClipboardLoadError => e
|
45
|
-
$stderr.puts e.message
|
51
|
+
$stderr.puts "#{e.message}\nUsing file-based (fake) clipboard" unless $VERBOSE == nil
|
46
52
|
@implementation = Clipboard::File
|
47
53
|
end
|
48
54
|
|
data/spec/clipboard_file_spec.rb
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
require_relative "spec_helper"
|
4
4
|
|
5
|
+
require "fileutils"
|
6
|
+
|
5
7
|
describe 'Clipboard::File' do
|
6
8
|
before :all do
|
7
9
|
Clipboard.implementation = Clipboard::File
|
8
10
|
cache = Clipboard::File::FILE
|
9
|
-
FileUtils.
|
11
|
+
FileUtils.rm_f cache
|
10
12
|
end
|
11
13
|
|
12
14
|
it "can paste with empty file" do
|
data/spec/clipboard_spec.rb
CHANGED
@@ -9,31 +9,37 @@ os_to_restore = RbConfig::CONFIG['host_os']
|
|
9
9
|
describe Clipboard do
|
10
10
|
before do
|
11
11
|
RbConfig::CONFIG['host_os'] = os_to_restore
|
12
|
+
@is_windows = Clipboard.implementation.name == 'Clipboard::Windows'
|
12
13
|
end
|
13
14
|
|
15
|
+
let(:expected) { ->(text) { @is_windows ? text.encode(Encoding::UTF_16LE) : text } }
|
16
|
+
|
14
17
|
it "has a VERSION" do
|
15
18
|
expect( Clipboard::VERSION ).to match /^\d+\.\d+\.\d+$/
|
16
19
|
end
|
17
20
|
|
18
21
|
it "can copy & paste" do
|
19
|
-
|
20
|
-
|
22
|
+
text = "FOO\nBAR"
|
23
|
+
Clipboard.copy(text)
|
24
|
+
expect( Clipboard.paste.bytes ).to eq expected.(text).bytes
|
21
25
|
end
|
22
26
|
|
23
27
|
it "can copy & paste with multibyte char" do
|
24
|
-
Encoding.default_external =
|
25
|
-
|
26
|
-
|
28
|
+
Encoding.default_external = 'utf-8'
|
29
|
+
text = '日本語'
|
30
|
+
Clipboard.copy(text)
|
31
|
+
expect( Clipboard.paste ).to eq expected.(text)
|
27
32
|
end
|
28
33
|
|
29
34
|
it "returns data on copy" do
|
30
|
-
|
35
|
+
text = 'xxx'
|
36
|
+
expect( Clipboard.copy(text) ).to eq expected.(text)
|
31
37
|
end
|
32
38
|
|
33
39
|
it "can clear" do
|
34
40
|
Clipboard.copy('xxx')
|
35
41
|
Clipboard.clear
|
36
|
-
expect( Clipboard.paste ).to eq ''
|
42
|
+
expect( Clipboard.paste ).to eq expected.('')
|
37
43
|
end
|
38
44
|
|
39
45
|
describe "when included" do
|
@@ -43,10 +49,11 @@ describe Clipboard do
|
|
43
49
|
|
44
50
|
it "can copy & paste & clear" do
|
45
51
|
a = A.new
|
46
|
-
|
47
|
-
expect( a.send(:
|
52
|
+
text = 'XXX'
|
53
|
+
expect( a.send(:copy, text) ).to eq expected.(text)
|
54
|
+
expect( a.send(:paste) ).to eq expected.(text)
|
48
55
|
a.send(:clear)
|
49
|
-
expect( a.send(:paste) ).to eq ''
|
56
|
+
expect( a.send(:paste) ).to eq expected.('')
|
50
57
|
end
|
51
58
|
end
|
52
59
|
|
@@ -56,23 +63,24 @@ describe Clipboard do
|
|
56
63
|
data1 = Random.new.bytes(2**14).unpack("H*").first
|
57
64
|
data2 = Clipboard.copy(data1)
|
58
65
|
|
59
|
-
expect(data2).to eq data1
|
66
|
+
expect(data2).to eq expected.(data1)
|
60
67
|
|
61
68
|
# second batch
|
62
69
|
data1 = Random.new.bytes(2**14).unpack("H*").first
|
63
70
|
data2 = Clipboard.copy(data1)
|
64
71
|
|
65
|
-
expect(data2).to eq data1
|
72
|
+
expect(data2).to eq expected.(data1)
|
66
73
|
end
|
67
74
|
|
68
75
|
describe :implementation do
|
69
76
|
before do
|
70
|
-
$VERBOSE =
|
77
|
+
$VERBOSE = false
|
71
78
|
Clipboard.implementation = nil
|
72
79
|
end
|
73
80
|
|
74
81
|
it "does not warn on normal detection" do
|
75
|
-
if system('which xclip >/dev/null 2>&1') || system('which xsel >/dev/null 2>&1')
|
82
|
+
if ( ENV["XDG_SESSION_TYPE"] != "wayland" && (system('which xclip >/dev/null 2>&1') || system('which xsel >/dev/null 2>&1') ) ) ||
|
83
|
+
( ENV["XDG_SESSION_TYPE"] == "wayland" && system('which wl-copy >/dev/null 2>&1') )
|
76
84
|
expect( $stderr ).not_to receive(:puts)
|
77
85
|
end
|
78
86
|
Clipboard.implementation
|
@@ -84,8 +92,8 @@ describe Clipboard do
|
|
84
92
|
expect( Clipboard.implementation ).to eq Clipboard::File
|
85
93
|
end
|
86
94
|
|
87
|
-
it "does not warn when $VERBOSE is
|
88
|
-
$VERBOSE =
|
95
|
+
it "does not warn when $VERBOSE is nil" do
|
96
|
+
$VERBOSE = nil
|
89
97
|
RbConfig::CONFIG['host_os'] = 'Fooo OS'
|
90
98
|
expect( $stderr ).not_to receive(:puts)
|
91
99
|
Clipboard.implementation
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clipboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Lelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- lib/clipboard/gtk.rb
|
58
58
|
- lib/clipboard/java.rb
|
59
59
|
- lib/clipboard/linux.rb
|
60
|
+
- lib/clipboard/linux_wayland.rb
|
60
61
|
- lib/clipboard/mac.rb
|
61
62
|
- lib/clipboard/utils.rb
|
62
63
|
- lib/clipboard/version.rb
|
@@ -68,7 +69,8 @@ files:
|
|
68
69
|
homepage: https://github.com/janlelis/clipboard
|
69
70
|
licenses:
|
70
71
|
- MIT
|
71
|
-
metadata:
|
72
|
+
metadata:
|
73
|
+
rubygems_mfa_required: 'true'
|
72
74
|
post_install_message:
|
73
75
|
rdoc_options: []
|
74
76
|
require_paths:
|
@@ -84,9 +86,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
86
|
- !ruby/object:Gem::Version
|
85
87
|
version: '0'
|
86
88
|
requirements:
|
87
|
-
- 'Linux: You need xclip
|
89
|
+
- 'Linux: You need xclip / xsel (X11) or wl-clipboard (Wayland)'
|
88
90
|
- 'Windows: You need the ffi gem'
|
89
|
-
rubygems_version: 3.
|
91
|
+
rubygems_version: 3.5.3
|
90
92
|
signing_key:
|
91
93
|
specification_version: 4
|
92
94
|
summary: Access to the clipboard on Linux, MacOS, Windows, and Cygwin.
|