tmux 可以监视特定窗格中按下的按键吗? (然后发出`send-keys`)

tmux 可以监视特定窗格中按下的按键吗? (然后发出`send-keys`)

我想要一个窗格腹膜虫“视频”(字面意思是动画纯文本)在另一个窗格中播放时,用户可以做各种事情(键入命令、编写脚本或其他任何事情)。用户可以切换到 asciinema 窗格并按 <space> 键来暂停/播放视频。我想观看该窗格,以及当用户暂停/播放录音然后运行时tmux send-keys以暂停/播放正在播放的 mp3 文件CMUS在另一个窗口中。

我还没能找到类似tmux watch-pane或 的东西tmux listen。存在这样的东西吗?对于此用例,需要区分通过 asciinema 输入的空格和用户实际按下的按钮。

我正在使用,并且在手册页中tmux 2.1没有看到任何有关watch或的内容。listen但也许在新版本中提供了命令?

答案1

您可以尝试通过几种不同复杂程度的方法来实现此目的:

  • 您可以在根表中绑定空格键,以便在您想要的窗格中按下空格键时执行您想要的操作,也许类似于:

    bind -n Space if -F '#{m:*asciinema*:#{pane_current_command}}' 'send -t:mycmuswindow Space; send Space' 'send Space'
    

    或者如果pane_current_command 不起作用,则pane_title 或其他任何内容。

  • 您可以在 asciinema 窗格中打开 Monitor-silence,并使用alert-silence 挂钩以类似方式将 Space 发送到 cmus 窗格。

  • 您可以编写一个脚本,使用控制模式来侦听来自 asciinema 窗格的数据并发送 Space,这是假设它将您可以识别的内容(例如“暂停”)打印到您可以查找的窗格中。

相关内容