系统默认语音在tmux会话中的`say`命令上没有变化

时间:2017-05-18 21:26:30

标签: macos terminal tmux

最近我通过"系统偏好设置>更改了我的默认系统语音。听写与演讲>文字转语音>系统语音"。如果我打开一个新的终端窗口并使用say命令,则使用正确的语音。但是,如果我在tmux会话中使用say命令,则仍会使用先前的语音。

我已经尝试重新启动,完全关闭tmux,并使用tmux new-session -s foobar打开一个全新的tmux会话,但它仍然没有获得新的首选语音。

这实际上是一个小问题,但它让我吃了,我不知道它为什么会发生。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

我很确定这与that other issue的根本原因相同:许多需要与UI交互的工具(图形,声音......)在tmux会话中失败:saypbcopy/pbpastenohuplaunchctl export|getenv|setenvsubl(Sublime Text命令行工具),在tmux下启动的应用的Retina呈现,尝试访问KeyChain的工具(curlssh ...)等。

我记得GNU screen曾经有同样的问题,但Apple修补了它,现在它工作正常,但tmux仍有问题。

解决方案(2017-05)

借用链接问题的答案,对于tmux,如果你有自制软件,你可以这样做:

brew install reattach-to-user-namespace

然后将以下内容放入~/.tmux.conf

set-option -g default-command "reattach-to-user-namespace -l $SHELL"

我在macOS 10.11.4上重现了你的问题,以上修正了它。

See here了解有关问题性质及其解决方法的更多信息(使用未记录的macOS API)

很快就会有更好的解决方案?

正如评论中所提到的,tmux的未来版本可以本地跳舞,至少it's being worked on, and current master has the fix