Gsettingsでさまざまなdconf設定を変更しようとしています。何らかの理由で、それは私がtmuxにいないときにのみ機能します。 tmux内で設定を読み取ることはできますが、設定を黙って失敗します-動作しているように見えますが、変更は効果がなく、再度読み取ると古い値が返されます。 tmux以外では、すべてが完璧に機能します。dconfプロパティを読み取って設定すると、すぐに有効になります。これが私のbashrcの関連部分です:
# start tmux
if command -v tmux >/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z "$TMUX" ] && exec tmux
# in tmux, we need to handle dbus specially
export $(dbus-launch)
fi
Xベースのアプリケーションをtmux内から起動しても問題ありません。参考までに、私はUbuntu 15.04を使用していますが、UnityではなくGnome Shellを使用しています。
私はなんとかこの問題を解決しました(ついに、そして#linux freenode ircチャネルの何人かの人々の助けを得て)。 1つの問題は、dbus-launchがtmuxにまったく影響しないことでした。外側のシェルのみに影響します。解決策はこれを私の.tmux.confに置くことでした:
set-option -g -a update-environment " DBUS_SESSION_BUS_ADDRESS"
これにより、tmux内で起動したアプリケーションがシステムバスにアクセスできるようになりました。