- Customization of window size
- ~Internationalization
- Some bugs with scrolling
+- Respect colors from command?
+
+bugs:
+monitor.rb:264:in `last': negative array size (ArgumentError)
+ from monitor.rb:264:in `yield'
+ from monitor.rb:157:in `print_buffer'
+ from monitor.rb:95:in `move_resize'
+ from monitor.rb:345:in `block in redraw_all'
+ from monitor.rb:344:in `each'
+ from monitor.rb:344:in `redraw_all'
+ from monitor.rb:389:in `<main>'
+
end
def print_buffer()
+ #clear()
win_border()
j = 1
@buffer.yield(@win.getmaxy-2,@curr_offset) { |l,type|
end
end
- def update()
+ def update(force=false)
if(@params['Type'] == 'continuous')
proc_readlines()
end
if(@params['Type'] == 'oneshot')
- if(Time.now - @last_update > @params['Periodic'].to_i)
+ if(force or (Time.now - @last_update > @params['Periodic'].to_i))
@buffer.clear()
spawn_proc()
end
end
end
def yield(size,offset=0,&block)
+ if(size < 0) then size = 0 end
range = Range.new(0,@current-1).to_a
if(@wrap)
range = Range.new(@current,@size-1).to_a + range
end
def print_line(win, str, hscroll=0)
+ revert_color = false
+ str[0,5].match(/\033\[3(.)m/) { |c| #Line starts with an escape sequence. We handle that `a la xterm`
+ Ncurses.init_pair(10, c[1].to_i, Ncurses::COLOR_BLACK)
+ win.attron(Ncurses.COLOR_PAIR(10))
+ revert_color = true
+ str = str[5,str.length]
+ }
+ str = str.gsub("\011"," ")
+ #Any other control char is ignored and escaped
+ str = str.gsub(/[[:cntrl:]]/) { |m|
+ "^"+(m.ord + 64).chr
+ }
if(hscroll > 0)
strcut = str[hscroll,str.length]
if(strcut.nil? or strcut.empty?)
else
win.addstr(str[0,winlen-1]+"…")
end
+ if(revert_color)
+ win.attroff(Ncurses.COLOR_PAIR(10))
+ end
end
def make_bufwins(inifile)
#Ncurses.stdscr.intrflush(false) # turn off flush-on-interrupt
Ncurses.stdscr.keypad(true) # turn on keypad mode
Ncurses.init_pair(1, Ncurses::COLOR_RED, Ncurses::COLOR_BLACK)
+ Ncurses.init_pair(10, Ncurses::COLOR_WHITE, Ncurses::COLOR_BLACK)
inifile = read_ini()
list.print_list(entry=entry)
when 12 #ctrl+L
redraw_all(list,bufwins,cur_bufwin)
+ when 18 #ctrl+R
+ cur_bufwin.update(force=true)
when Ncurses::KEY_RESIZE
redraw_all(list,bufwins,cur_bufwin)
when Ncurses::KEY_LEFT