リモートサーバーから xrdb を呼び出して Xresources ファイルをロードする

リモートサーバーから xrdb を呼び出して Xresources ファイルをロードする

リモート マシンで i3 ウィンドウ マネージャーを起動するために、リモート デスクトップ マネージャー (Exceed onDemand) で起動する簡単な起動スクリプトがあります。

ここにスクリプト ( という名前i3start) があります。これは、ローカルでビルドされたバイナリを指すように環境を設定し、色やその他の設定を行うためにいくつかの Xresources ファイルをロードし、最後に を起動するだけですi3

#!/bin/bash

_root="${HOME}/.i3wm"

source /etc/environment
export PATH="$_root/usr/bin:${PATH}"
export LD_LIBRARY_PATH="$_root/usr/lib:$_root/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"
export PERL5LIB="$_root/usr/lib/urxvt"

xrdb $_root/common/themes/solarized-dark/Xresources
xrdb -override ${HOME}/.Xresources
xrdb -q &> ~/xrdb.log

exec i3

Exceed onDemand では、次の Xstart 設定があります。

  • 起動方法: セキュアシェル
  • ホスト:<insert_server_name>
  • 認証:超過接続サーバー資格情報を使用する
  • 指示:/home/user_name/.i3wm/i3start

これらの設定によってどのようなコマンドが生成されるかは、(ユーザー マニュアルを読んだ後でも)完全にはわかりませんが、X を起動して を発行するなどの操作が行われるのではないかと想像していますssh -X <insert_server_name> /home/user_name/.i3wm/i3start

問題は、 をチェックして確認したところ~/xrdb.log、空であるため、 によってロードされたファイルはxrdb効果がないということです。xrdb -nによってファイルが正しく解析できることも確認しましたがxrdb、それでも X リソース データベースには何も設定されません。

Xstart の設定を変更して起動のみにした場合xterm:

  • 起動方法: セキュアシェル
  • ホスト:<insert_server_name>
  • 認証:超過接続サーバー資格情報を使用する
  • 指示:xterm

/home/user_name/.i3wm/i3startシンプルなターミナルが表示され、からスクリプトを起動するとxterm、2 つの Xresources ファイルから読み込まれた設定が によって適切に表示され、すべてが意図したとおりに動作しますxrdb -q

私のスクリプトではi3start、それらの設定をロードするために呼び出す前に何か行う必要があるのでしょうかxrdb? 起動するだけで何かが実行されるはずだと私は思いますxterm

編集:言い忘れましたが、リモート サーバーは Ubuntu 16.04 (xenial) です。

関連情報