def NcursesInterface::get_key_bindings
key_names = Ncurses::constants.grep(/^KEY/).inject([]) { |ret, name|
ret[Ncurses::const_get(name)] = name
ret
}
0.upto(255) { |i| key_names[i] = i.chr }
keys = {}
$config['keys'].each { |key, value| keys[key_names[key]] = value }
keys.each_key { |key|
old_key = key
key = key.gsub(/^KEY_/, '')
case key
when 'DC': key = 'Delete'
when ' ': key = 'Space'
when 'NPAGE': key = 'Page Down'
when 'PPAGE': key = 'Page Up'
when '': key = 'Control-L'
when ' ': key = 'Tab'
when /^\d$/: key = '1-9'
end
unless key == old_key
keys[key] = keys[old_key]
keys.delete(old_key)
end
}
keys.each { |key, value|
keys[key] = value.to_s.sub(/^\|.*\|\s?/, '').sub(/^.*::/, '').sub(/\(.*\)$/, '').tr('_', ' ').capitalize
}
keys.delete_if { |key, value| value == 'Select item' and key != 'Space' }
end