【问题标题】:Is there a way to determine if a terminal is focused without asking the window manager?有没有办法在不询问窗口管理器的情况下确定终端是否聚焦?
【发布时间】:2018-10-22 09:28:22
【问题描述】:

我想在终端失去焦点/变为非活动状态时更改一些 tmux 样式(即,当我单击打开的 Google Chrome 窗口时)。我知道我可以检查窗口管理器以查看聚焦哪个应用程序窗口,但这不适用于窗口管理器。

终端模拟器本身是否会公开这些信息?

我尝试运行showkey -a 以查看在失去焦点时是否发送了任何转义序列,但看起来不像。

【问题讨论】:

标签: terminal xterm terminal-emulator


【解决方案1】:

我认为 一些 终端实现了这一点,但不是全部,基于 vim-tmux-focus-events 插件的问题跟踪器上的this comment

关于“我希望在窗口管理器中的不同窗口之间更改焦点时触发事件”的问题:是的,我知道这将非常有用。我认为这可能取决于您使用的终端应用程序。我刚刚在 OSX 上对此进行了测试,以下是一些快速的结果:

  • 当 tmux 在窗口内运行时,它在为 iTerm 工作
  • 不适用于在内部运行普通 bash + vim 的 iTerm(无 tmux)
  • 不适用于 Terminal.app(带或不带 tmux)

[...]

所以,如果我没记错的话,由终端应用程序来实现“获得焦点”、“失去焦点”功能。

我有一个模糊的记忆(虽然我记不太清了),在使用那个插件和 gnome-terminal 时,焦点增益/丢失可能对我有用,所以值得一试。

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 2012-04-06
    • 2016-07-04
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多