visible-bellの画像を差し替える

Emacs 25から Macの visible-bellが画像を表示するようになったのでデフォルトの画像から差し替えてみた.

パッチ

Emacs25.1-RC1に対するパッチです.

diff --git a/src/nsterm.m b/src/nsterm.m
index e6a10b8..9a54886 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1318,7 +1318,7 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
       NSRectFill(NSMakeRect(0, 0, 32, 32));
       [self.image unlockFocus];
 #else
-      self.image = [NSImage imageNamed:NSImageNameCaution];
+      self.image = [NSImage imageNamed:@"visible-bell.png"];
       [self.image setSize:NSMakeSize(self.image.size.width * 5,
                                      self.image.size.height * 5)];
 #endif

ビルド & インストール

% ./configure --with-ns --without-x
% make
% make install
% cp -r nextstep/Emacs.app /Applications

画像を置く

適当な画像を Resources以下に置く. Objective-Cやら Macのことがよくわかっていないのですが, ドット絵的なものでないとうまく表示されない印象. 普通のアニメの絵とかだとだいぶ潰れてしまう. また画像は小さめのものがいいです. 64x64とか(このあたりは Macに詳しければなんとかなるのかもしれないですが...)

% cp foobar.png /Applications/Emacs.app/Contents/Resources/visible-bell.png

設定

visible-bellを有効にする

(setq visible-bell t)

結果

Ctrl-gなどを押すたびに好きな画像が見れます.

f:id:syohex:20160731085413g:plain