Next: , Previous: , Up: Easy Customization   [Contents][Index]


51.1.7 カスタムテーマ

カスタムテーマ(Custom themes)は、1つの単位として有効または無効にできる、セッティングのコレクションです。カスタムテーマを使用して、さまざまなセッティングコレクション間を簡単に切り替えることができ、あるコンピューターから別のコンピューターへそのようなコレクションを持ち運ぶことができます。

カスタムテーマは、Emacs Lispソースファイルとして保存されています。カスタムテーマの名前がnameなら、そのテーマのファイル名はname-theme.elです。テーマファイルのフォーマットと、それを作成する方法については、Creating Custom Themesを参照してください。

M-x customize-themesとタイプすると、Emacsが認識するカスタムテーマをリストする、*Custom Themes*という名前のバッファーに切り替わります。デフォルトでは、Emacsは2つの場所からテーマファイルを探します。1つはcustom-theme-directoryにより指定されるディレクトリー(デフォルトは~/.emacs.d/))で、もう1つはEmacsがインストールされた場所(変数data-directoryを参照してください)のetc/themesというディレクトリーです。後者にはEmacsと共に配布されるいくつかのカスタムテーマが含まれており、これらはさまざまなカラースキーム(color schemes)に適合するように、Emacsフェイスをカスタマイズします(しかし、カスタムテーマの目的はこれだけに制限される必要はなく、変数をカスタマイズするのにも使用できることに注意してください)。

Emacsに他の場所からカスタムテーマを探させたい場合は、リスト変数custom-theme-load-pathにディレクトリー名を追加します。この変数のデフォルト値は(custom-theme-directory t)です。ここでシンボルcustom-theme-directoryは、変数custom-theme-directoryの値を指定するという特別な意味をもち、tはビルトインのテーマディレクトリーetc/themesを意味します。custom-theme-load-pathで指定されるディレクトリーにあるテーマが、*Custom Themes*バッファーにリストされます。

*Custom Themes*バッファーでは、カスタムテーマの隣のチェックボックスをアクティブにすることにより、カレントEmacsセッションで、そのテーマを有効または無効にできます。カスタムテーマが有効な場合、そのテーマのすべてのセッティング(変数とフェイス)がEmacsセッションで効果をもちます。選択したテーマを将来のEmacsセッションに適用するには、C-x C-s (custom-theme-save)とタイプするか、‘[Save Theme Settings]’ボタンを使用してください。

最初にカスタムテーマを有効にするとき、Emacsはテーマファイルの内容を表示して、本当にロードするか確認を求めます。これはカスタムテーマのロードにより不定なLispコードが実行されるからで、テーマが安全だと判っているときだけyesと答えるべきです。この場合、Emacsは将来のセッションのために、そのテーマが安全だということを記憶するか尋ねます(これは変数custom-safe-themesにテーマファイルのSHA-256ハッシュ値を保存することにより行なわれます)。すべてのテーマを安全なものとして扱いたい場合は、変数の値をt)に変更します。(ディレクトリーetc/themesの)Emacsと共に配布されるテーマは、このチェックから除外されていて、常に安全だと判断されます。

カスタムテーマのセッティングと保存は、変数custom-enabled-themesをカスタマイズすることにより機能します。この変数の値は、カスタムテーマ名(tangoのようなLispシンボル)のリストです。custom-enabled-themesのセットに*Custom Themes*バッファーを使用するかわりに、たとえばM-x customize-optionのような通常のカスタマイズインターフェースを使用して、変数をカスタマイズできます。カスタムテーマ自身では、custom-enabled-themesをセットできないことに注意してください。

カスタマイズバッファーを通じて行なう任意のカスタマイズは、テーマのセッティングより優先されます。これによりテーマのセッティングを簡単にオーバーライドできます。2つの異なるテーマのセッティングがオーバーラップする場合には、custom-enabled-themesで先に指定されたテーマが優先されます。カスタマイズバッファーでは、カスタムテーマによりセッティングがデフォルトから変更されているときは、‘State’には‘STANDARD’ではなく‘THEMED’が表示されます。

M-x load-themeとタイプすることにより、カレントEmacsセッションで特定のカスタムテーマを有効にできます。これはテーマ名の入力を求め、テーマファイルからテーマをロードし、それを有効にします。すでにテーマファイルがロードされているときは、M-x enable-themeとタイプすることにより、ファイルをロードせずにテーマを有効にできます。カスタムテーマを無効にするには、M-x disable-themeとタイプしてください。

カスタムテーマの説明を見るには、*Custom Themes*バッファーのその行で、?とタイプするか、Emacsの任意のバッファーでM-x describe-themeとタイプしてテーマ名を入力してください。