Module: Clipboard::Linux

Extended by:
Linux
Included in:
Linux
Defined in:
lib/clipboard/linux.rb

Constant Summary collapse

CLIPBOARDS =
%w[clipboard primary secondary]
WriteCommand =
'xsel'
ReadCommand =
'xsel -o'
Selection =
{'clipboard' => '-b', 'primary' => '-p', 'secondary' => '-s'}

Instance Method Summary collapse

Instance Method Details

#clearObject



32
33
34
# File 'lib/clipboard/linux.rb', line 32

def clear
  copy ''
end

#copy(data) ⇒ Object



36
37
38
39
40
41
# File 'lib/clipboard/linux.rb', line 36

def copy(data)
  CLIPBOARDS.each{ |which|
    Open3.popen3( "#{WriteCommand} #{Selection[which.to_s.downcase]}" ){ |input,_,_| input << data }
  }
  paste
end

#paste(which = nil) ⇒ Object



25
26
27
28
29
30
# File 'lib/clipboard/linux.rb', line 25

def paste(which = nil)
  if !which || !CLIPBOARDS.include?(which.to_s.downcase)
    which = CLIPBOARDS.first
  end
  `#{ReadCommand} #{Selection[which.to_s.downcase]}`
end