カスタムテーマとは、一括して有効または無効にできる設定の集まりのことです。カスタムテーマを使えば、さまざまな設定の集まりを簡単に切り替えたり、そうした集まりをあるコンピュータから別のコンピュータへ移行したりできます。
カスタムテーマはEmacs Lispのソースファイルとして保存されます。カスタムテーマの名前がnameの場合、テーマファイルの名前はname-theme.elとなります。テーマファイルの形式や作成方法については、カスタムテーマの作成を参照してください。
M-x customize-themes と入力すると、Emacs が認識している Custom
テーマの一覧が記載された *Custom Themes*
という名前のバッファに切り替えられます。デフォルトでは、Emacs は 2 か所でテーマファイルを検索します。1 つは変数 custom-theme-directory で指定されたディレクトリ(デフォルトは ~/.emacs.d/)、もう 1 つは Emacs のインストール先にある etc/themes という名前のディレクトリです(変数 data-directory を参照)。後者には、さまざまな配色に合わせて Emacs
のフェイスをカスタマイズする、Emacs に同梱されている複数の Custom テーマが含まれています。(ただし、Custom
テーマはこの目的に限定される必要はなく、変数のカスタマイズにも使用できます。)
Emacsに別のディレクトリからカスタムテーマを探させたい場合は、そのディレクトリをリスト変数 custom-theme-load-path に追加してください。デフォルト値は (custom-theme-directory t) です。ここで、シンボル custom-theme-directory は変数 custom-theme-directory の値という特別な意味を持ち、t は組み込みテーマディレクトリ etc/themes
を表します。*Custom Themes* バッファにリストされているテーマは、custom-theme-load-path で指定されたディレクトリ内にあるものです。
*Custom Themes*
バッファでは、カスタムテーマの横にあるチェックボックスをオンにすることで、現在の Emacs
セッションでそのテーマを有効または無効にできます。カスタムテーマを有効にすると、そのすべての設定(変数とフェイス)が Emacs
セッションに反映されます。選択したテーマを今後の Emacs セッションにも適用するには、C-x C-s
(custom-theme-save) と入力するか、‘[Save Theme Settings]’ ボタンを使用してください。
カスタムテーマを初めて有効にすると、Emacsはテーマファイルの内容を表示し、本当にロードするかどうかを確認します。カスタムテーマのロードでは任意のLispコードが実行される可能性があるため、そのテーマが安全であると分かっている場合にのみ「はい」と答えてください。その場合、Emacsは今後そのテーマを安全であると記憶することを提案します(これは、テーマファイルのSHA-256ハッシュを変数custom-safe-themesに保存することで行われます。すべてのテーマを安全として扱いたい場合は、その値をtに変更してください)。Emacsに付属しているテーマ(etc/themesディレクトリ内)はこのチェックの対象外であり、常に安全であるとみなされます。
カスタムテーマの設定や保存は、実際には変数 custom-enabled-themes
をカスタマイズすることで行われます。この変数の値は、カスタムテーマ名のリスト(Lispシンボルとして、例えば tango)です。*Custom Themes*
バッファを使用して custom-enabled-themes
を設定する代わりに、通常のカスタマイズインターフェース(例えば M-x customize-option
など)を用いて変数をカスタマイズできます。なお、カスタムテーマ自身が custom-enabled-themes を設定することは許可されていません。
カスタマイズバッファで行ったカスタマイズは、テーマ設定よりも優先されます。これにより、納得のいかない個別のテーマ設定を簡単に上書きできます。2つの異なるテーマの設定が重複する場合、custom-enabled-themes
で先に記載されているテーマが優先されます。カスタマイズバッファにおいて、カスタムテーマによって設定がデフォルトから変更されている場合、その
‘State’ の表示は ‘STANDARD’ ではなく ‘THEMED’ となります。
現在のEmacsセッションで特定のカスタムテーマを有効にするには、M-x load-theme
と入力します。これによりテーマ名の入力が求められ、テーマファイルからテーマが読み込まれて有効になります。以前にテーマファイルが読み込まれている場合は、M-x enable-theme
と入力することで、ファイルを再読み込みせずにテーマを有効にできます。カスタムテーマを無効にするには、M-x
disable-theme と入力します。一部のテーマでは一連のユーザーオプションが提供されており(Newcomers Theme
を参照)、これらの内容は時間の経過とともに変更される場合があります。現在のオプション設定を保持したい場合は、copy-theme-options
コマンドを使用して、テーマのユーザーオプションを自身の設定にコピーできます。
カスタムテーマの説明を表示するには、*Custom Themes*バッファの該当行に?と入力するか、Emacs内の任意の場所でM-x describe-themeと入力してテーマ名を指定してください。
テーマによってはバリエーション(多くの場合、ライトとダークの2種類)があります。M-x theme-choose-variant を使用して別のバリエーションに切り替えることができます。現在有効なテーマに他に1つのバリエーションしかない場合はそれが自動的に選択されます。複数のバリエーションがある場合は、コマンドがどのバリエーションに切り替えるかを確認します。
なお、theme-choose-variant は単一のテーマが有効な場合にのみ動作します。