■ Emacs 全般で利用できる設定


【お知らせ】


<2018/12/27 追記>
次のページに Xephyr を使った X端末的な利用方法を紹介しています。

<2018/10/14 追記>
設定を ~/.ssh/config で行うように見直しました。

【本題】


tramp による接続先で Xクライアント を実行できるようするための設定です。

1) 次の設定を行う。

2) X11 forwarding を必要とするホストの設定を、~/.ssh/config で次のように行う。<aliasname> が tramp を行うときに利用するホスト名となる。(/scp:<aliasname>:<path>)
Host <aliasname>
     HostName           <hostname>
     Port               <portno>
     User               <username>
     ForwardX11         yes
     # ForwardX11Trusted  yes
     # Compression        yes
※ ForwardX11Trusted の設定は必要なときのみに行ってください。(Cygwin の環境では必要なようです。)設定が必要となる場面や設定することの留意点は次のページを参考としてください。

3) Emacs が起動する時点で DISPLAY 環境変数が設定されていなければ、次の設定を行う。(.bashrc での設定が行えない場合の設定方法となります。)
;; DISPLAY 環境変数を設定する
(unless (and (getenv "DISPLAY")«
             (string-match ":" (getenv "DISPLAY")))«
  (setenv "DISPLAY" ":0"))«

4) gnupack を利用している場合は、Cygwin に xlaunch package をインストールし、Windows のスタートメニューから XLaunch を「Multiple windows」と「Start no clinet」のモードで起動する。

※ 「WSL で Emacs を使うための設定」から本ページに来た場合は、既に VcXsrv が動作していると思いますので、この設定は不要です。

5) 以上の設定をした接続先に ssh で接続した際、「No xauth data; using fake authentication data for X11 forwarding」と表示される場合は、接続元の環境で次のコマンドを実行してみる。
xauth generate :0 .
※ Cygwin では xauth を見つけることができず、この対応は行えませんでした。


以上で、tramp で接続したリモートマシンの shell 上で Xクライアント を起動すると、ローカル側に表示されます。
Ubuntu など xdg-open がある OS については、「dired を OS と連携して使うための設定」と連携した利用も可能となります。

なお、Xフォント のラスタライズが Xサーバ 側で行われる場合には、Xフォント のインストールや Xフォントサーバの追加設定が必要かもしれません。最近は、フォントのラスタライズを Xクライアント 側で行うように実装してあるソフトが多いようですので、Xフォントのことはあまり気にする必要はないとは思います。


<変更履歴>
  • 2014/05/10 このページを作成した。
  • 2015/09/09 連想リストの修正を push で行うように変更した。
  • 2017/03/30 接続のオプションに -Y を追加した。
  • 2018/10/14 設定を ~/.ssh/config で行うように見直した。