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 分钟缓存一次天气脚本的输出,这解决了问题。