X 用 (X なら Cygwin でも MacOSX でも動きます!) FSF Emacs の背景拡張非公式パッチです。
Emacs-BGEX patch を適用すると背景に画像や色を指定できるようになります。
フレーム単位ではなく、バッファごとに異なる背景を指定することもできます。
かれこれ 10 年以上メンテナンスしています。
presentation_bgex_20080308_0_2.mp4 demo movie (15.6Mbytes)
Emacs version | patch (sha1sum) | 備考 |
---|---|---|
Git | git clone https://github.com/wachikun/emacs_bgex | ほぼ毎日ビルドして動作確認しています。 2019年1月30日(水) |
Emacs-26.1 | patch-bgex_20171115_0-git-emacs-master.tar.xz (sha1sum:8b88ab136a80ab083aa9d9ce8f02dcd0995bf05f) | |
Emacs-25.1 / 25.2 / 25.3 | patch-bgex_20160201_0-git-emacs-master.tar.xz (sha1sum:bd6a5065769dc9d3c016e49eaae694520c62b035) | |
Emacs-24.5 | patch-bgex_20150515_0-emacs-24.5.tar.xz (sha1sum:46aac7f70710f47e592d1ad3041c0c9cff6cb9ec) | |
Emacs-24.4 | patch-bgex_20140112_0-bzr-emacs-trunk.tar.bz2 (sha1sum:28d1f4f39b788fe2ceed4de3cb6091ac9d504964) | |
Emacs-24.3 | patch-bgex_20121216_0-bzr-emacs-trunk.tar.bz2 (sha1sum:b90e885bc3fc58ca4013f3cb4623c3ad4ad29935) | |
Emacs-24.2 | patch-bgex_20120916_0-emacs-24.2.tar.bz2 (sha1sum:6296b85efa5e8b1c1474ea245fd42dda1610eab6) | |
Emacs-24.1 | patch-bgex_20111215_0-bzr-emacs-trunk.tar.bz2 (sha1sum:4de173c3d2da7a081c4c318bf0732a09d0839b8d) | |
Emacs-23.3a | patch-bgex_20110822_0-emacs-23.3a.tar.bz2 (sha1sum:778b581beff1856db7b5a81a29f7eba9faba2adc) | |
Emacs-22.3 | patch-bgex_20060712_0-emacs-cvshead.tar.bz2 (sha1sum:be98ddae75428933d7c96f4c00e319099b6f950f) | |
Emacs-21.4 | patch-bgex_20050921_0-emacs-21.4.tar.bz2 (sha1sum:f91e5354bc8ad785a885e0c61a3f9b33f7f4ea6e) | 21.3 にも適用できます。 |
何かありましたら twitter @wachikun 、 wac@umiushi.org へのメイルなどお気軽にどうぞ。
(set-background-color "#d0b8a0") (set-frame-parameter nil 'bg-image-enable-flag t) (set-frame-parameter nil 'bg-fill-alpha 0.6) (set-frame-parameter nil 'bg-image-filename "/Users/wac/.emacs.d/images/paper_1_1600x1200_color_2.png")
インストールは非常に簡単です。次のような手順で導入します。
まず BGEX archive と Emacs source を展開し、 patch を当てて build します。
$ cd /tmp $ wget http://umiushi.org/~wac/bgex/patch-bgex_20110822_0-emacs-23.3a.tar.bz2 $ tar xf patch-bgex_20110822_0-emacs-23.3a.tar.bz2 $ wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3a.tar.gz $ tar xf emacs-23.3a.tar.bz2 $ cd emacs-23.3/src $ patch < /tmp/patch-bgex_20110822_0-emacs-23.3a/patch-bgex_20110822_0-emacs-23.3a $ cd .. $ ./configure --prefix=YOUR-INSTALL-PATH && make -j2
bzr 版ならば、
$ cd /tmp $ wget http://umiushi.org/~wac/bgex/patch-bgex_20110611_0-bzr-emacs-trunk.tar.bz2 $ tar xf patch-bgex_20110611_0-bzr-emacs-trunk.tar.bz2 $ cd YOUR-EMACS-PATH $ bzr pull $ cd src $ patch < /tmp/patch-bgex_20110611_0-bzr-emacs-trunk/patch-bgex_20110611_0-bzr-emacs-trunk $ cd .. $ ./configure --prefix=YOUR-INSTALL-PATH && make -j2
bzr の場合タイミングによって patch が当たらないことが稀にありますが、ここ数年の実績では遅くとも 3 日以内に patch を更新できています。
bgex.el を load-path の通ったディレクトリにコピーします。
$ cp -av bgex.el YOUR-ELISP-PATH
まずテストのため background color を変更してみます。 .emacs を以下のように修正してください。
;; Emacs-BGEX patch (add-to-list 'load-path "YOUR-ELISP-PATH") (require 'bgex) ;; color (when (boundp 'bgex-exist-p) (bgex-set-color-default "darkgreen" t) (bgex-set-color "*scratch*" 'bgex-identifier-type-buffer-name "skyblue"))
emacs 先ほどビルドしたものを起動しましょう。ビルドしてからカレントディレクトリを変更していなければ src/emacs で起動します。
.emacs を修正せずに src/emacs -Q で起動して、上のコードを *scratch* にコピーした方が問題が少ないかもしれません。
上の設定で Emacs を起動して background color が変わっていれば install は成功しています。次に image を指定するため、以下のように修正してみましょう。
指定する image は Emacs 側で対応している必要があります。 xpm/jpeg/png/gif あたりが使用できます。
;; color ;; (when (boundp 'bgex-exist-p) ;; (bgex-set-color-default "darkgreen" t) ;; (bgex-set-color "*scratch*" 'bgex-identifier-type-buffer-name "skyblue")) ;; image (when (boundp 'bgex-exist-p) (bgex-set-image-default "YOUR-IMAGE-FILE-A") (bgex-set-image "*scratch*" 'bgex-identifier-type-buffer-name "YOUR-IMAGE-FILE-B" t))
あとは以下の .emacs 設定例で色々と調整してみてください。
load-path に含まれる場所へ bgex.el を置き、 .emacs に
;; Emacs-BGEX patch (require 'bgex)
のように書いておきます。
XEmacs の背景画像機能と似ています。 (boundp 'bgex-exist-p) で、 Emacs-BGEX patch が組み込まれているかどうかを調べることができます。
(when (boundp 'bgex-exist-p) (bgex-set-image-default "~/.emacs.d/images/background.xpm"))
このとき以下のような表示になります。
(when (boundp 'bgex-exist-p) (bgex-set-image-default "~/.emacs.d/images/background.xpm" t))
このとき以下のような表示になります。このモードは CPU とネットワークリソースを大量に消費します。色の計算式は SRC * DST / factor です 。
(bgex-set-color "HTML" 'bgex-identifier-type-major-mode '(60000 40000 40000) t)
(bgex-set-color "*scratch*" 'bgex-identifier-type-buffer-name "skyblue")
(bgex-set-image "*scratch*" 'bgex-identifier-type-buffer-name "~/tmp/bg.jpg")
(when (boundp 'bgex-exist-p) (bgex-set-xpm-string "*scratch*" 'bgex-identifier-type-buffer-name "XPM string" t) (bgex-set-xpm-string-default "XPM string" t))
(bgex-destroy-all)
(when (boundp 'bgex-exist-p) (bgex-set-image-default "~/.emacs.d/images/.emacs22_back.xpm" t) (bgex-set-image "svn-status" 'bgex-identifier-type-major-mode "~/.emacs.d/images/w-cork12.jpg" t) (bgex-set-color "*YaDEV*glmm2-COMPILE*" 'bgex-identifier-type-buffer-name '(60000 50000 40000) t) (bgex-set-image "YaDEV-INTERFACE" 'bgex-identifier-type-major-mode "~/.emacs.d/images/w-surface04.jpg" t) (bgex-set-image "Buffer Menu" 'bgex-identifier-type-major-mode "~/.emacs.d/images/w-ca01.jpg" t) (bgex-set-color "Dired by name" 'bgex-identifier-type-major-mode '(60000 40000 40000) t) (bgex-set-color "Dired by date" 'bgex-identifier-type-major-mode '(40000 60000 40000) t) (bgex-set-image "C" 'bgex-identifier-type-major-mode "~/.emacs.d/images/w-ca05.jpg" t) (bgex-set-image "*scratch*" 'bgex-identifier-type-buffer-name "~/.emacs.d/images/w-sptit18.png" t))
バッファごとに背景が指定できると、バッファの意味や属性を modeline だけではなく背景色や画像で表現することができます。
その他にも例えば、
などといった応用が考えられます。
っていうか楽しいじゃん。
画像をクリックすると大きな画像を表示します。
Emacs-BGEX patch は以下の環境で動作確認しています。
X サーバ名 | OS | 備考 |
---|---|---|
X.org@Linux | Linux(amd64) | |
XQuarts@Mac | MacOSX(x86) | |
X.org@Linux | Linux(x86) | 最近はテストしていません。 |
XFree86@Linux | Linux(x86) | 最近はテストしていません。 |
XFree86@Linux | Solaris9(UltraSPARC) | 最近はテストしていません。 |
XFree86@Cygwin | Linux(x86) | 最近はテストしていません。 |
ASTEC-X@WindowsXP | Linux(x86) | 最近はテストしていません。 |