(require :asdf) (load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname))) (ql:quickload :croatoan) (in-package :cl-user) (defun main () (with-open-file (f "event2.log" :direction :output :if-exists :supersede) (croatoan:with-screen (scr :input-echoing nil :input-blocking nil) (let* ((h (croatoan:height scr)) (w (croatoan:width scr)) (input-win (make-instance 'croatoan:window :height 1 :width w :position (list (- h 1) 0)))) (setf (croatoan:function-keys-enabled-p input-win) t) (setf (croatoan:input-blocking input-win) nil) (loop (let* ((event (croatoan:get-wide-event input-win)) (ch (and event (typep event 'croatoan:event) (croatoan:event-key event)))) (when ch (format f "Got: ~S (type: ~S)~%" ch (type-of ch)) (finish-output f) (when (or (eq ch #\q) (eq ch :q)) (return)))) (sleep 0.05)))))) (main) (sb-ext:exit)