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 -i'
ReadCommand =
'xsel -o'
Selection =
{'clipboard' => '-b', 'primary' => '-p', 'secondary' => '-s'}

Instance Method Summary collapse

Instance Method Details

#clearObject



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

def clear
  copy ''
end

#copy(data) ⇒ Object



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

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

#paste(which = nil) ⇒ Object



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

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