Emacs24.1でフレームサイズの設定をディスプレイサイズに自動で合わせる
普段は自席でMacbook Airに外部モニタを繋いで作業し、たまに持ち出してMacbook Airのモニタを使うような使い方をしてる。
これで特に問題なかったのだけど、Emacs24.1にしてから持ち出す度にEmacsの表示がおかしくなるようになった。具体的にはC-lでウィンドウバーが変な所に表示されたり、先頭行を表示できなくなったり。そして困ったことにEmacsを再起動しても戻らないという。
最初はorg-modeで気づいたのでorg-modeの仕業と判断してたのだけど、違うよ!全然違うよ!とこれまた@gantawitterに教えてもらった。Emacsで設定しているフレームサイズより小さなディスプレイを使用している場合に発生するとのこと。表示はディスプレイのサイズにフィットさせてくれてるのに、なんだこの惜しい感じ!
ということで、フレームサイズの設定をディスプレイサイズに自動で合わせる方法を調べてみた。こんなふうにするといいみたい。(参考: 起動時のフレームサイズをディスプレイ解像度に応じて縦いっぱいに - cl.note)
(when window-system (set-frame-size (selected-frame) 90 ;横サイズ (- (/ (- (x-display-pixel-height) 40) (frame-char-height)) 1)))
Mac OS Xなので上のメニューバー分を引いてます。