# File lib/ramaze/log/xosd.rb, line 53
      def initialize(options = {})
        @options = DEFAULT.merge(options)

        super(@options[:lines])

        @options.each do |key, value|
          next if IGNORE.include?(key)
          value %= @options[:font_size] if key == :font
          send("#{key}=", value)
        end

        Thread.new(self) do |xosd|
          loop do
            items = []
            lines = xosd.options[:lines]
            items << QUEUE.shift until QUEUE.empty? or items.size >= lines

            unless items.empty?
              # pad up with empty lines to avoid dragging around old messages.
              items << [:info, ' '] until items.size >= lines

              items.each_with_index do |(tag, message), i|
              xosd.color = xosd.options[:colors][tag.to_sym]
              xosd.display(message, i)
              end
            end
            sleep xosd.options[:timeout]
          end
        end
      end