-;; incompatible minor-modes
-(defvar spray--saved-global-hl-line-mode nil)
-(defvar spray--saved-font-lock-mode nil)
-(defvar spray--saved-hl-line-mode nil)
+(defvar spray-wpm 400 "words/min")
+(defvar spray-height 400 "height of characters")
+(defvar spray-margin-top 1 "character margin at top of buffer. Characters are as big as spray text characters.")
+(defvar spray-margin-left 0 "character margin at left of buffer. Characters are as big as spray text characters.")
+
+(defvar spray-mode-map
+ (let ((km (make-sparse-keymap)))
+ (define-key km (kbd "SPC") 'spray-start/stop)
+ (define-key km (kbd "h") 'spray-backward-word)
+ (define-key km (kbd "l") 'spray-forward-word)
+ (define-key km (kbd "<left>") 'spray-backward-word)
+ (define-key km (kbd "<right>") 'spray-forward-word)
+ (define-key km (kbd "f") 'spray-faster)
+ (define-key km (kbd "s") 'spray-slower)
+ (define-key km (kbd "q") 'spray-quit)
+ (define-key km (kbd "<return>") 'spray-quit)
+ km)
+ "keymap for spray-mode buffers")
+
+;; * faces
+
+(make-face 'spray-base-face)
+(set-face-attribute 'spray-base-face nil
+ :background (face-background 'default)
+ :foreground (face-foreground 'default)
+ :slant 'normal)
+
+(make-face 'spray-accent-face)
+(set-face-attribute 'spray-accent-face nil
+ :foreground "red"
+ :overline (face-foreground 'default)
+ :underline (face-foreground 'default)
+ :slant 'normal)
+
+;; * internal vars
+
+(defvar spray--margin-string ""
+ "Currently not used.")
+(defvar spray--base-overlay nil)
+(defvar spray--accent-overlay nil)
+(defvar spray--running nil)
+(defvar spray--delay 0)