#:g1: LispWorks 7購入への道(2) ─ StumpWMをLWで

Posted 2015-07-19 14:07:05 GMT

 自分は、ウィンドウマネージャーは、Common Lispで実装されたウィンドウマネージャーであるStumpWMを利用していますが、現在処理系はSBCLを利用してます。
確かStumpWMのメーリングリストでLispWorksを使って動かしたという人がいたと思ったので、多分LispWorksでも動くんだろうと思って試してみました。

試してみた結果ですが、CLXがLispWorks 7でコンパイルする時に対応外のプラットフォームとしてエラーにしますが、対応のプラットフォームとしてLispWorks 7が入っていないだけなので、追加してやればコンパイルも通ります。

実行可能ファイルの作成

StumpWMの実行可能ファイルは、LispWorksの場合、save-imageで作成可能です。
swankも起動しておきたいのでこんな感じのファイルを書きました。

;;; make-stumpwm.lisp

(ql:quickload :swank)

(ql:quickload :stumpwm)

...

(defun run-stumpwm () (stumpwm:stumpwm) (lw:quit :status 0 :ignore-errors-p T))

(defun run-swank () (swank:create-server :port 7777 :dont-close T))

(pushnew '("StumpWM" (:priority 60000000 :restart-action :continue) run-stumpwm) mp:*initial-processes*)

(pushnew '("Swank 7777" (:priority 60000005 :restart-action :continue) run-swank) mp:*initial-processes*)

(hcl:save-image "/tmp/lw-stumpwm" :console t :multiprocessing t :environment nil)

これを、

$ lispworks-7-0-0-amd64-linux -init - -siteinit - -build make-stumpwm.lisp

みたいにして、StumpWMのイメージを作成できます。

まとめ

StumpWMをLispWorks 7で動かしてみました。
現状のStumpWMでは日本語入力に難がありますが、LispWorksのcapiだとダイアログを作るのが簡単なので組み合わせて欠点を補えそうです。

(stumpwm:defcommand ohayo () ()
  (capi:contain (make-instance 'capi:display-pane :text "おはよう日本")))

パソコンを使っている時間とほぼ同じ時間だけ起動しているStumpWMですが、これがLispWorks 7になれば、LispWorksの利用時間だけは長くできます。


HTML generated by 3bmd in LispWorks 7.0.0

comments powered by Disqus