e2wm.elのバージョンアップ:ver1.1

ver1.1をリリースしました。名前の変更しました。また、ver1.0リリース時にいろいろいただいたご意見を反映し、いくつかの問題を解消しました。

名前の変更

ewm.el はやはり著名なMLで宣言されてしまっているので、いろいろ考えた結果、名前を e2wm.el に変更することにしました。一応検索してみて同名のプロジェクトは無いようでしたので、またかぶらないように EmacsWiki に登録しておこうと思います。

githubリポジトリ自体は変わりませんが、ファイル名が変わります。取得はauto-install.elの場合は下の式を評価してください。

(auto-install-from-url "http://github.com/kiwanami/emacs-window-layout/raw/master/window-layout.el")
(auto-install-from-url "http://github.com/kiwanami/emacs-window-manager/raw/master/e2wm.el")

手動で入れる場合は、以下のリンク先をload-pathに保存してください。

設定やキーバインドについては、e2wm-config.elを参考にしてみてください。

先日のはてなの記事についても、混乱がないように修正しました。

既に導入していただいている方には大変お手数をおかけしますが、ewm→e2wmへ置換をお願いします。

widen-window.elとの併用の問題

widen-window.el とそのまま一緒に使うと挙動がおかしくなります。原因はe2wm.elとwidwn-window.elの両方が同じ window 制御系の関数をアドバイスしているためです。以下のようなコードを設定に追加すると、e2wm管理フレームではwiden-windowを使わないようにして回避します。

(defun e2wm:fix-widen-window-pre-start ()

  ;; widen-window でエラーを起きないようする
  (defadvice wlf:layout-internal (around disable-ww-mode activate)
    (ad-deactivate-regexp "widen-window")
    (unwind-protect
        ad-do-it
      (ad-activate-regexp "widen-window")))

  ;; widen-window を e2wm では全く使わない場合
  (defadvice widen-current-window (around e2wm:disable-ww-mode activate)
    (unless (e2wm:managed-p)
      ad-do-it
      )))

(defun e2wm:fix-widen-window-post-stop ()
  ;; e2wm が終わったら widen-window を戻す
  (ad-deactivate-regexp "e2wm:disable-ww-mode"))

(defun e2wm:fix-widen-window ()
  (interactive)
  (when (featurep 'widen-window)
    (add-hook 'e2wm:pre-start-hook 'e2wm:fix-widen-window-pre-start)
    (add-hook 'e2wm:post-stop-hook 'e2wm:fix-widen-window-post-stop))
  )

複数フレーム

e2wmは特定のフレームにとりついて機能します。今回の修正で、管理外のフレームでは何もせず、干渉しないようになりました。もし問題があれば教えてください。

elscreenやwindows.elへの対応はまだ出来てませんが、同じフレームで使わなければとりあえず問題は起きないようです。

twoの機能追加など

twitterで@iRi_Eさんにいろいろご意見をいただいて、codeからtwoに移動してきてただ並んでいるだけではなく、もう少し積極的に両方のバッファを選べるようにしてみました。2つのバッファを選ぶ新しいインタフェースが出来たような気がします。

e2wm-config.el の方のワンキーでのバッファ変更のキーバインド(C-, C-. C-< C->)も是非参考にしてみてください。

このままediffとかにつっこんで比較できそうな勢いです。

早いところ書きかけのドキュメントを書いて、パースペクティブプラグイン、活用方法を広げていきたいと思っています。