clipboard 1.3.5 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 [](https://badge.fury.io/rb/clipboard) [
|
1
|
+
# Clipboard Ruby Gem [](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.
|