web-dev-qa-db-fra.com

Pourquoi les paramètres ne fonctionnent-ils pas dans tmux?

J'essaie de modifier divers paramètres dconf avec gsettings. Pour une raison quelconque, cela ne fonctionne que lorsque je ne suis pas dans tmux. Je peux lire les paramètres dans tmux, mais les définir échoue silencieusement - cela semble fonctionner, mais le changement n'a pas d'effet et la lecture donne à nouveau l'ancienne valeur. En dehors de tmux, tout fonctionne parfaitement - je peux lire et définir les propriétés dconf, et elles prennent effet immédiatement. Voici la partie pertinente de mon 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

Je n'ai aucun problème à démarrer des applications basées sur X à partir de tmux. Pour référence, j'ai Ubuntu 15.04 et j'utilise Gnome Shell au lieu d'Unity.

3
zrneely

J'ai réussi à résoudre ce problème (enfin, et avec l'aide de certaines personnes sur le canal irc #linux freenode). Un problème était que le lancement de dbus n'affecte pas du tout tmux; elle affecte uniquement la coque externe. La solution était de mettre ceci dans mon .tmux.conf:

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

ce qui a permis aux applications démarrées dans tmux d'accéder au bus système.

1
zrneely