I upgraded my Ubuntu installation and this time I wrote down what I needed for a running cells-gtk installation (with sbcl):
-------------------------------------------------------------- script --------------------- sudo apt-get install darcs git-core cvs emacs libgtk2.0-dev cd ~/src wget http://puzzle.dl.sourceforge.net/sourceforge/sbcl/sbcl-1.0.23-x86-linux-binary.tar.bz2 tar xjf sbcl-1.0.23-x86-linux-binary.tar.bz2 cd sbcl-1.0.23-x86-linux INSTALL_ROOT=/usr/local sudo sh install.sh mkdir ~/.sbcl mkdir ~/.sbcl/site mkdir ~/.sbcl/systems # command to link new asd files into systems/ # run this after extracting a source package in ~/.sbcl/site echo 'for i in `find ~/.sbcl/site -type f | grep \\.asd$`;do ln -s $i ~/.sbcl/systems/; done' > ~/.sbcl/run chmod a+x ~/.sbcl/run # delete all fasl files. most of the time running this makes everything work echo 'find ~/.sbcl/site -type f |grep \\.fasl$|xargs rm' > ~/.sbcl/clean chmod a+x ~/.sbcl/clean cd ~/.sbcl/site git clone git://github.com/Ramarren/cells-gtk3.git git clone git://github.com/Ramarren/cells.git darcs get http://www.common-lisp.net/project/cl-opengl/darcs/cl-opengl/ darcs get http://common-lisp.net/project/cffi/darcs/cffi/ darcs get http://common-lisp.net/project/babel/darcs/babel darcs get http://common-lisp.net/project/alexandria/darcs/alexandria darcs get http://common-lisp.net/~loliveira/darcs/trivial-features<http://common-lisp.net/%7Eloliveira/darcs/trivial-features> darcs get http://common-lisp.net/~loliveira/darcs/trivial-garbage<http://common-lisp.net/%7Eloliveira/darcs/trivial-garbage> darcs get http://common-lisp.net/project/bordeaux-threads/darcs/bordeaux-threads git clone http://www.princeton.edu/~tpapp/software/cl-cairo2.git<http://www.princeton.edu/%7Etpapp/software/cl-cairo2.git> wget http://www.common-lisp.net/project/cl-utilities/cl-utilities-latest.tar.gz tar xzf cl-utilities-latest.tar.gz # there seems to be at least one other cl-colors package, which is incompatible wget http://common-lisp.net/project/cl-colors/cl-colors-latest.tar.gz tar xzf cl-colors-latest.tar.gz ~/.sbcl/run cd ~/.sbcl/site/cl-opengl/ make cd ~/.sbcl/site/cells-gtk3/gtk-ffi make cd ~/.sbcl/site/cffi make cd ~/src cvs -d :pserver:anonymous:anonym...@common-lisp.net:/project/slime/cvsroot co slime sudo apt-get install paredit-el # turn paredit and slime on in emacs cat >> ~/.emacs << "EOF" (mapc (lambda (mode) (let ((hook (intern (concat (symbol-name mode) "-mode-hook")))) (add-hook hook (lambda () (paredit-mode +1))))) '(emacs-lisp lisp inferior-lisp)) (add-to-list 'load-path "~/src/slime/") ; your SLIME directory (setq inferior-lisp-program "/usr/local/bin/sbcl") ; your Lisp system (require 'slime) (slime-setup) (add-hook 'slime-mode-hook (lambda () (unless (slime-connected-p) (save-excursion (slime))))) EOF # I want to have the keys () where [] normally are (on us keyboard) # I enable it with ~/init cat >> ~/swap_parent.xmod << "EOF" keycode 18 = 9 bracketleft keycode 19 = 0 bracketright keycode 34 = parenleft braceleft keycode 35 = parenright braceright EOF echo 'xmodmap ~/swap_parent.xmod' > ~/init chmod a+x ~/init ---------------------- script - end ------------------- after these steps the following program worked. to run it either save it to file [e.g. gl.lisp] and run sbcl --load gl.lisp or more for a more lispy experience open it in emacs press C-M-x on the line (require :cells-gtk) press C-c C-k move the slider change the source. you can leave the window open. just call the last progn to clear the kids in :martin-top with a new setf a completely new layout can be loaded ---------------------- source -------------- (require :asdf) (require :cells-gtk) (defpackage :kielhorn.martin.cgtk-show (:use :cells :cl :cells-gtk)) (in-package :kielhorn.martin.cgtk-show) (defmodel my-app (gtk-app) () (:default-initargs :md-name :martin-top :width (c-in 300) :height (c-in 300) :kids (c-in nil))) (init-gtk) (start-win 'my-app) (defun draw-grid () ; (gl:line-width .7) (gl:color 1 1 1 .6) (gl:with-primitive :lines (loop for i from -10 below 12 by 2 do (gl:vertex i 10) (gl:vertex i -10)) (loop for i from -10 below 12 by 2 do (gl:vertex 10 i) (gl:vertex -10 i)))) (defun threed-draw (self) (gl:clear :color-buffer-bit :depth-buffer-bit) (draw-grid) (gl:with-pushed-matrix (gl:translate 0 0 (zpos self)) (gl:with-primitive :lines ;;(gl:line-width 2) (gl:color 1 0 0) (gl:vertex 5 0 0) (gl:vertex 0 0 0) (gl:color 0 1 0) (gl:vertex 0 5 0) (gl:vertex 0 0 0) (gl:color 0 0 1) (gl:vertex 0 0 5) (gl:vertex 0 0 0))) ;;(timeout-add 30 #'(lambda () (redraw (find-widget :threed)))) ) (defmodel threed (gl-drawing-area) ((zpos :cell t :reader zpos :initarg :zpos :initform (c-in 0))) (:default-initargs :width (c-in 200) :height (c-in 200) :init #'(lambda (self) (gl:enable :blend :depth-test :line-smooth) (gl:blend-func :one :src-alpha) (with-integrity (:change :adjust-widget-size) (setf (allocated-width self) (width self) (allocated-height self) (height self)))) :resize #'(lambda (self) (let ((w (allocated-width self)) (h (allocated-height self))) (gl:viewport 0 0 w h) (with-matrix-mode (:projection) (glu:perspective 60 (/ w h) .1 200)) (gl:matrix-mode :modelview) (gl:load-identity) (glu:look-at 10 10 3 0 0 0 0 0 1))) :draw 'threed-draw)) (setf (kids (find-widget :martin-top)) (list (mk-vbox :fm-parent (find-widget :martin-top) :kids (kids-list? (mk-hscale :md-name :scale-zpos :min -10 :max 10 :init 0 :step .05 ) (make-kid 'threed :md-name :threed :zpos (c? (progn (redraw (find-widget :threed)) (widget-value :scale-zpos)))))))) (unless t (progn (not-to-be (find-widget :threed)) (setf (kids (find-widget :martin-top)) nil))) -------------- source - end ------------------ -- Martin Kielhorn Randall Division of Cell & Molecular Biophysics King's College London, New Hunt's House Guy's Campus, London SE1 1UL, U.K. tel: +44 (0) 207 848 6519, fax: +44 (0) 207 848 6435
_______________________________________________ cells-gtk-devel site list cells-gtk-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-gtk-devel