web-dev-qa-db-ja.com

tmuxでgsettingsが機能しないのはなぜですか?

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を使用しています。

3
zrneely

私はなんとかこの問題を解決しました(ついに、そして#linux freenode ircチャネルの何人かの人々の助けを得て)。 1つの問題は、dbus-launchがtmuxにまったく影響しないことでした。外側のシェルのみに影響します。解決策はこれを私の.tmux.confに置くことでした:

set-option -g -a update-environment " DBUS_SESSION_BUS_ADDRESS"

これにより、tmux内で起動したアプリケーションがシステムバスにアクセスできるようになりました。

1
zrneely