#:g1: clfswmの紹介

Posted 2014-02-26 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の58日目です。

clfswmとはなにか

 clfswmはStumpWMと同じくCommon Lisp製で全画面型(タイル型)のウィンドウマネージャーです。

パッケージ情報

パッケージ名clfswm
Quicklisp
プロジェクトサイトCLFSWM
CLiKihttp://cliki.net/clfswm
Quickdocshttp://quickdocs.org/clfswm

インストール方法

(ql:quickload :clfswm)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 プロジェクトのページに多数の動画がありますので、どんな使い勝手かは動画をみると良く分かるかなと思います。
StumpWMはGNU Screenっぽく画面が並置される感じですが、clfswmは、階層分けで管理する傾向があるようです。
また、MacOSXのexposeのような機能がなかなか便利かもしれません。 clfswm-expose

 どんなものかちょっと試してみましたが、自分は、StumpWM風にカスタマイズして終わりました。

(in-package :clfswm)

(define-main-key (#\t :control) 'second-key-mode)

(progn (defun $start-emacs () "start emacs" (setf *second-mode-leave-function* (lambda () (run-or-raise (lambda (win) (string-equal "emacs" (xlib:get-wm-class win))) (lambda () (do-shell "cd $HOME && exec emacsclient -c"))))) (leave-second-mode))

(define-second-key ("e") '$start-emacs) (define-second-key ("e" :control) '$start-emacs))

(progn (defun $start-firefox () "start firefox" (setf *second-mode-leave-function* (lambda () (run-or-raise (lambda (win) (string-equal "firefox" (nth-value 1 (xlib:get-wm-class win)))) (lambda () (do-shell "cd $HOME && exec firefox"))))) (leave-second-mode))

(define-second-key ("f") '$start-firefox) (define-second-key ("f" :control) '$start-firefox))

(defun expose-windows-mode/second-mode () (setf *second-mode-leave-function* #'expose-windows-mode) (leave-second-mode))

(define-second-key ("e" :mod-1) 'expose-windows-mode/second-mode)

(progn (defun $start-screen () "start screen" (setf *second-mode-leave-function* (lambda () (run-or-raise (lambda (win) (string-equal "gnome-terminal-server" (xlib:get-wm-class win))) (lambda () (do-execute "/usr/bin/gnome-terminal" ()))))) (leave-second-mode)) (define-second-key ("c") '$start-screen) (define-second-key ("c" :control) '$start-screen))

 軸になるsecond-keyをStumpWM風にControl-tにしたり、お馴染のrun-or-raiseでemacsや、firefoxを起動できるようにしたり、です。
exposeは、C-t M-eで起動するようにしてみました。

 上記設定コードを眺めれば分かるかと思いますが、Common Lispそのままの感じで設定を書きます。StumpWMのように設定用のちょっとしたDSLが構築されている感じでもないようです。
ちなみに、例では読み込んでいませんが、contribディレクトリに色々なツールがあるようなので試してみるのも良いかなと思います。

まとめ

 今回は、clfswmを紹介してみました。
StumpWMの改良型かと思いましたが、割と違った所が多いようです。
ちなみに、second-keyに割り当てたキーをアプリに送る方法が分からず(StumpWMでいう、Control-T Tのようなもの)、firefoxのタブを開いたり閉じたりで困ったりです。

comments powered by Disqus