             robinson.aterminal)
   (:require [robinson.macros :as rm]
             [taoensso.timbre :as timbre]
-            [clojure.core.async :as async :refer [go go-loop]])
+            [clojure.core.async :as async :refer [go go-loop]]
+            clojure.java.io)
   (:import  
             java.util.concurrent.LinkedBlockingQueue
             java.awt.Color

  []
  (not (nil? (re-find #"[Mm]ac" (System/getProperty "os.name")))))

;; Normally this would be a record, but until http://dev.clojure.org/jira/browse/CLJ-1224 is fixed
;; it is not performant to memoize records because hashCode values are not cached and are recalculated
;; each time.

                       font-size]
    (let [is-windows       (>= (.. System (getProperty "os.name" "") (toLowerCase) (indexOf "win")) 0)
          normal-font      (if is-windows
                              (make-font windows-font Font/PLAIN font-size)
                              (make-font else-font Font/PLAIN font-size))
          bold-font        (if is-windows
                              (make-font windows-font Font/BOLD font-size)
                              (make-font else-font  Font/BOLD font-size))
          _                (info "Using font" (.getFontName normal-font))
          default-fg-color (Color. (long default-fg-color-r) (long default-fg-color-g) (long default-fg-color-b))
          default-bg-color (Color. (long default-bg-color-g) (long default-bg-color-g) (long default-bg-color-b))
