#{{{ Clipboard def_settings "clipboard/no_of_buff,refresh_period,selection,sel_buffer,selected}" do |wmii| wmii.plugin_config["ollis-plugins:clipboard"]["no_of_buff"] ||= 10 wmii.plugin_config["ollis-plugins:clipboard"]["refresh_period"] ||= 1 wmii.plugin_config["ollis-plugins:clipboard"]["selection"] = '' wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"] = Array.new wmii.plugin_config["ollis-plugins:clipboard"]["mouseclick_prog"] ||= "true" end bar_applet("clipboard", 50) do |wmii, bar| Thread.new do loop do selection ||= `wmiipsel`.strip # wmiipsel is much faster than xclip if selection != wmii.plugin_config["ollis-plugins:clipboard"]["selection"] LOGGER.debug "new selection: #{selection}" wmii.plugin_config["ollis-plugins:clipboard"]["selection"] = selection wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"].push(selection) wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"].uniq! if wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"].length > wmii.plugin_config["ollis-plugins:clipboard"]["no_of_buff"] wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"].shift end end sleep(wmii.plugin_config["ollis-plugins:clipboard"]["refresh_period"] || 1) end end end binding("clipboard_print", "MODKEY-Shift-h") do |wmii,| LOGGER.debug "clipboard_print called!!!" system wmii.plugin_config["ollis-plugins:clipboard"]["mouseclick_prog"] end binding("clipboard_select", "MODKEY-h") do |wmii,| LOGGER.debug "clipboard_select called!!!" Thread.new do list = Array.new wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"].each do |curr| list.push(curr.gsub("\n", " ")) end result = wmii.wmiimenu(list.reverse) do |choice| if(choice.length > 0) obj_id = list.rindex(choice) selection = wmii.plugin_config["ollis-plugins:clipboard"]["sel_buffer"][obj_id] system "echo '#{selection}' | xclip -i" end end end end