在 i3 上切换全屏程序

在 i3 上切换全屏程序

我想在我的电脑上使用类似 node-WebKit 的东西制作某种状态窗口/系统监视器,这很简单。问题是,我希望能够在 i3 中使用键盘命令将其切换为全屏,无论我在 i3 中的哪个工作区中。我该怎么做?

答案1

你可以将以下两行放入你的i3配置:

for_window [title="^WINDOW_TITLE$"] mark "STATWIN", move scratchpad
bindsym Mod4+s [con_mark="^STATWIN$"] fullscreen enable, scratchpad show

WINDOW__TITLE您的状态窗口的确切标题在哪里,以及Mod4+sWin+ s)预期的快捷方式是什么。如果按Win+ ,s它将在当前工作区全屏显示窗口,或者如果窗口已经存在,则将其隐藏。

解释:

  1. 初始化:

    for_window [title="^WINDOW_TITLE$"] mark "STATWIN", move scratchpad
    
    • for_window可用于title="^WINDOWS_TITLE$"在创建窗口时运行符合给定条件(此处 )的特定命令。这意味着标题必须与窗口的初始标题相匹配。还有其他条件,如classinstance。根据您的程序,您可能需要使用除 之外的其他条件,title甚至是条件组合(请参阅i3 用户指南中的标准部分了解更多信息)
    • mark将一个唯一的标签放在窗口上,稍后可以使用该标签与con_mark标准一起引用该窗口。这里的标签是STATWIN
    • ,:需要注意的是,,用于链接命令,而不是;。窗口标准([...])仅适用于下一个;(当然,也是行尾)。
    • move scratchpad将窗口移至 Scratchpad,可用于存放您想要轻松访问的窗口。(请参阅用户指南中有关 Scratchpad 的部分
  2. 访问窗口

    bindsym Mod4+s [con_mark="^STATWIN$"] fullscreen enable, scratchpad show
    
    • bindsym将命令绑定到快捷方式(此处Mod4+s
    • 标准清单——[con_mark="^STATWIN$"]告诉i3针对所有符合所有条件的窗口(而不是当前聚焦的窗口)运行以下命令。条件以正则表达式的形式进行匹配,因此您可以/应该使用^$分别表示字符串的开始和结束。这里唯一的条件是con_mark="^STATWIN$",匹配标记为(精确)的窗口(只能有一个)STATWIN,这是在初始化中完成的。
    • fullscreen enable每次都需要执行此操作,因为 Scratchpad 中的窗口通常显示为浮动窗口。(确切地说:虽然可以随时在 Scratchpad 窗口上设置全屏状态(可见或不可见),但当窗口被 隐藏时,该状态将被删除。scratchpad show如果窗口在设置全屏时不可见,它将保持不可见,但会在 上全屏显示scratchpad show
    • 再次,需要用来分隔命令,因为该标准应该适用于两个命令
    • scratchpad show如果窗口之前不在当前工作区中,则使窗口在当前工作区中可见。如果窗口已经在当前工作区中,则窗口将被隐藏。

相关内容