web-dev-qa-db-ja.com

.Xresourcesがi3wmでクルトンの下で実行されているurxvtによって読み取られない

Linuxを搭載したChromebookがcrouton経由で実行されています(元々はUbuntu 12.04、14.04にアップグレードされました)。私は次を使用してcrosh/ShellからXを開始しています。

Sudo i3

I3の内容(コメント/使用説明書は省略):

#!/bin/sh/ -e

set -e
exec sh -e "`dirname "\`readlink -f "$0"\`"`/enter-chroot" -t x11 "$@" "" \
    exec xinit

.xinitrcの内容:

#!/bin/sh
[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources
exec i3

.Xresourcesの内容:

URxvt.scrollBar: false

i3は私が期待するように起動します。ただし、urxvtを開いた後、xrdb -queryは何も生成しません。 xrdb ~/.Xresourcesを明示的に実行すると、xrdb -queryは上記の1行を返します。この後、新しいurxvtウィンドウがスクロールバーなしで開きます。

Urxvtがデフォルトで.Xresourcesをソースすることを理解しました。そうでない場合でも、.xinitrcでのxrdb呼び出しがそれを処理すると思っていたでしょう。上記はすべて他のMintラップトップで正常に機能するため、chroot環境と関係があると思います(もちろん、.xinitrcは使用しません)。

誰かアイデアはありますか?

1
Rich Churcher

これは私が追跡するのに一日中かかりました。良い学習ポイントだと思いますので、ここに投稿します。シェルの周りで私よりも多くの時間を費やした人にとっては、おそらくもっと明白です!

問題は、.xinitrcの二重角括弧でした。 Croutonは、ダッシュを指すshを使用してchrootを呼び出します。ダッシュは、bashとは異なり、テスト用の二重角括弧をサポートしていません。使用:

[ -f ~/.Xresources ] && xrdb -merge ~/.Xresources

正常に動作します。

0
Rich Churcher