課題:ノートPC本体、外部モニタでEmacsを使う際にきちんと最大フレームにならない!
Emacsを立ち上げた時に、フレームが画面いっぱいに広がってくれると嬉しいです。しかし、ノートPCで作業することも、外部モニタ(職場・自宅など複数の外部モニタあり)につないで作業することもあり、一つの環境に設定をあわせても他の環境では最適でなかったりしました。
解決策
フレームが最大にならない場合でも、タイトルバーをダブルクリックすると、良い感じにフレームが広がってくれます。きっとなにか良い設定方法があるのでは?とChatGPTさんと対話を繰り返して、良い方法が見つかりました。
この設定により、Emacsを起動するたびに手動でウィンドウを最大化する手間を省くことができます。
1. Emacsの設定ファイルにコードを追加
まず、Emacsの設定ファイル(通常は ~/.emacs
または ~/.emacs.d/init.el
)に以下のコードを追加します。
;; フレームをフルスクリーンモードで起動してから最大化する
(defun maximize-frame ()
"Maximize the current frame."
(interactive)
(set-frame-parameter nil 'fullscreen 'maximized))
(add-hook 'window-setup-hook 'maximize-frame)
2. コードの詳細な説明
このコードは、Emacsが起動する際にフレーム(ウィンドウ)を自動的に最大化するためのものです。各部分の機能について詳しく説明します。
2-1. 関数の定義
(defun maximize-frame ()
"Maximize the current frame."
(interactive)
(set-frame-parameter nil 'fullscreen 'maximized))
maximize-frame
という関数を定義しています。この関数は、現在のフレームを最大化するためのものです。set-frame-parameter
関数を使用して、フレームのパラメータを変更し、fullscreen
を maximized
に設定しています。これにより、フレームが全画面表示になります。
-
set-frame-parameter
の引数:-
FRAME
: パラメータを設定するフレームを指定します。nil
を指定すると、現在のフレームが対象になります。 -
PARAMETER
: 設定するパラメータの名前を指定します。この場合はfullscreen
です。 -
VALUE
: パラメータに設定する値を指定します。この場合はmaximized
です。
-
-
nil
の意味:
ここでのnil
は、現在のフレームを指します。つまり、以下のコードは「現在のフレームのfullscreen
パラメータをmaximized
に設定する」という意味になります。(set-frame-parameter nil 'fullscreen 'maximized)
-
fullscreen
パラメータとmaximized
値:-
fullscreen
パラメータは、フレームの全画面表示モードを制御します。 -
maximized
値は、フレームを最大化することを意味します。これにより、フレームが画面全体を占めるようになりますが、ウィンドウマネージャの装飾(タイトルバーやウィンドウ枠)は残ります。
-
2-2. フックの追加
(add-hook 'window-setup-hook 'maximize-frame)
window-setup-hook
に maximize-frame
関数を追加しています。これにより、Emacsが起動してウィンドウが設定された後に maximize-frame
関数が実行され、フレームが最大化されます。
3. コードの実行方法
Emacsを再起動するか、設定ファイルを再読み込みすることで、この設定が適用されます。設定ファイルの再読み込みは M-x eval-buffer
コマンドを使用して行うことができます。
これで、Emacsを起動するたびにフレームが自動的にフルスクリーンモードで最大化されるようになります。手動で最大化する手間が省け、作業環境が整いやすくなりました!
まとめ
Emacsのフレームを自動的に最大化する設定は、効率的な作業環境を整えるのに役立ちます。今回紹介したコードを設定ファイルに追加するだけで、Emacsを起動するたびにフレームがフルスクリーンモードで最大化されるようになります。ぜひ試してみてください。