如何在 tmux + urxvt 设置中启动命令?

如何在 tmux + urxvt 设置中启动命令?

我正在尝试制作一个非常漂亮的桌面控制台,它可以显示来自 /dev/logi 的系统日志。该设备显示来自 /var/log 中多个文件的新内容。我想使用 urxvt 和 tmux 来实现这一点。一切似乎都正常,但我不知道如何自动启动它。我正在使用 openbox,所以我尝试将以下行添加到 /home/morfik/.config/openbox/autostart :

(sleep 2 && urxvt -name 'konsola_desktop' -e sh -c "tmux -c 'cat /dev/logi'") &

这没有按预期工作。urxvt 星号,如果记录了某些内容,则会显示在控制台上。但缺少一部分,没有 tmux。我需要它,因为我在 /home/morfik/.Xresources 中设置了以下选项:

URxvt*saveLines: 0

我使用 /etc/tmux.conf 中指定的 tmux 缓冲区:

set -g history-limit 5000

因此,如果我启动上述命令,我将无法滚动输出。我甚至无法分屏,因为没有 tmux。也没有 tmux 进程:

ps -eo "%mem args" | grep -i tmux
1.1 urxvt -name konsola_desktop -e sh -c tmux -c 'cat /dev/logi'
0.0 sh -c tmux -c 'cat /dev/logi'

但是当我仅执行以下步骤时:

urxvt -name 'konsola_desktop'
tmux
cat /dev/logi

一切正常:

ps -eo "%mem args" | grep -i tmux
0.1 tmux
0.1 tmux

有人知道发生了什么事吗?

答案1

我找到了一个解决方案。

首先,最好使用 tmux 配置文件,而不是在自动启动行中输入命令。因此,它将是:

new true
set set-remain-on-exit on
new -n logi "cat /dev/logi"
neww -n test
splitw -v -p 50 -t 0 
neww -n test2
splitw -h -p 50 -t 0
set -u set-remain-on-exit

上面的几行应该添加到 /etc/tmux.conf 中,现在启动控制台的行应该如下所示:

(sleep 2 && urxvt -name 'konsola_desktop' -e bash -c "tmux attach") &

它甚至更好,因为我可以定义多个窗口并在它们之间切换。

相关内容