不同脚本具有不同状态间隔的 Tmux 状态行

问题描述 投票:0回答:0

My

tmux.conf
使用三个 shell 脚本在 tmux 状态行右侧显示系统使用情况、CPU/GPU/HDD 温度以及当前天气(附图)。如果可能的话,我想对每个脚本使用不同的
status-interval
时间。特别是,我希望对由
weather.sh
脚本管理的 OpenWeatherMap 的 API 调用每 10 分钟更新一次(OpenWeatherMap 的默认更新时间),而另外两个由
sysload.sh
systemp.sh
管理的 API 调用每 10 分钟更新一次。每5秒更新一次。现在,我在状态行脚本顶部声明了一个 60 秒的
status-interval
,它每 1 分钟更新一次整个状态行 - 这不是我想要的。
tmux.conf
的相关部分粘贴在下面。任何帮助表示赞赏。谢谢!

set -g status-interval 60
...rest of statusline codes...
set -g status-right "#[fg=green,bg=default,bright]#($HOME/.config/tmux/sysload.sh)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=pink3,bg=default,bright]#($HOME/.config/tmux/systemp.sh)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=#7aa2f7,bg=default,bright]#($HOME/.config/tmux/weather.sh)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=#565f89,bg=default]%b %d (%a) %H:%M#[default]"

更新:我尝试对此代码进行以下更改:删除顶部的

status-interval
行,并在每行的脚本名称后面添加
--interval <n>
。我不确定这是否正确:

set -g status-right "#[fg=green,bg=default,bright]#($HOME/.config/tmux/sysload.sh --interval 5)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=pink3,bg=default,bright]#($HOME/.config/tmux/systemp.sh --interval 5)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=#7aa2f7,bg=default,bright]#($HOME/.config/tmux/weather.sh --interval 600)"
set -ag status-right "#[fg=grey80,bg=default,bright] | "
set -ag status-right "#[fg=#565f89,bg=default]%b %d (%a) %H:%M#[default]"

更新#2:我按照 Jeremy 在下面评论中的建议每 10 分钟缓存一次天气脚本的输出,这解决了问题。

tmux statusline
© www.soinside.com 2019 - 2024. All rights reserved.