   (args [_]
     term-args)
   (groups [_]
-     (into {} (map (fn [[id ref]] [id @ref]) group-map)))
+     (into {} (map (fn [[id ref]]
+                     (let [group @ref
+                           gg @(get group->font-texture id)]
+                       [id (merge group (select-keys gg [:font-texture-width
+                                                         :font-texture-height 
+                                                         :character-width
+                                                         :character-height]))]))
+                   group-map)))
   (alter-group-pos! [_ group-id pos-fn]
     (alter (get group-map group-id) (fn [group] (update group :pos (fn [pos] (mapv int (pos-fn pos)))))))
   (alter-group-font! [_ group-id font-fn]

        framebuffer-size-callback
                              (proxy [GLFWFramebufferSizeCallback] []
                                (invoke [window framebuffer-width framebuffer-height]
                                  (let [fbo-texture-width  (inc framebuffer-width) #_(int (zutil/next-pow-2 framebuffer-width))
                                        fbo-texture-height (inc framebuffer-height) #_(int (zutil/next-pow-2 framebuffer-height))
                                        ^ByteBuffer bbnil  nil]
                                    (with-gl-context gl-lock window capabilities
                                      (log/info "Changing size of fbo" fbo-texture)

        group->font-texture (into {}
                              (mapv (fn [[k v]]
                                      [k (ref (let [font ((get @v :font) (zlwjgl/platform))
                                                    _    (log/info "Creating glyph-graphics for" font (zlwjgl/platform))
                                                    gg   (if (zfont/glyph-graphics? font)
                                                             font
                                                             (zfont/glyph-graphics font))
