如何在启动时更改 tmux `status line` 目录?

如何在启动时更改 tmux `status line` 目录?

我注意到运行 tmux 时,它总是从/home/user/目录启动,无论 tmux 启动的 shell 的当前工作目录如何。

我通过pwd在状态行运行确认了这一点:

set -g status-right "#(pwd)"

我想在状态行运行一些 shell 脚本,但我不想手动处理所有脚本的目录更改。

我想要的是 tmux 将目录更改为它启动/调用的位置。

我怎样才能做到这一点呢?

答案1

$ ps -ef | grep tmux
username 13965 12977  0 13:03 pts/2    00:00:00 grep --color=auto tmux

$ cd /tmp

/tmp $ tmux

(within tmux) /tmp $ ps -ef | grep tmux
username 14244 12977  0 13:04 pts/2    00:00:00 tmux
username 14246     1  0 13:04 ?        00:00:00 tmux
username 14269 14247  0 13:04 pts/3    00:00:00 grep --color=auto tmux

(within tmux) /tmp $ ls -l /proc/14244/cwd /proc/14246/cwd
lrwxrwxrwx 1 username  username  0 Sep 25 13:07 /proc/14244/cwd -> /tmp/
lrwxrwxrwx 1 username  username  0 Sep 25 13:07 /proc/14246/cwd -> /tmp/

它看起来像 tmux 客户端和服务器进程的工作目录tmux 启动目录,从 tmux 状态行启动的任何进程(例如#(pwd)您的行中的进程)都将作为其工作目录status-right运行。$HOME

更改此行为需要修改tmux源代码并编译您自己的版本。

答案2

提交后问题在 tmux repo,事实证明他们已经修复了它,但它仍然处于阶段release-candidate。所以我不得不从源头重建。

相关内容