命令列表
命令是你绑定在特定按键组合上的东西。你也可以通过使用 IPC 接口在运行时运行命令,而不需要按下一个键,一个简单的方法是使用 i3-msg
工具。
举例:
# 在你的 shell 中执行这个命令,去除当前的容器的边界
i3-msg border none
多个命令可以用 ;
(分号)连接。所以,如果想要将一个窗口移动到一个工作区中并立即切换到这个工作区,你可以配置如下的按键绑定:
bindsym $mod+x move container to workspace 3; workspace 3
另外,你还可以更改命令的作用域——即哪些容器会受到该命令的影响。判断标准在命令之前用一对方括号指定,用空格隔开。
当作用域用于多条命令时,应使用 ,
(逗号)而不是分号来分隔它们。判断标准只适用到下一个分号之前,所以如果你使用分号来分隔命令,只有第一个命令会对被匹配的窗口执行。
举例:
# 如果你想杀死所有 class 是 Firefox 的窗口,使用:
bindsym $mod+x [class="Firefox"] kill
# 同上,除了匹配时忽略大小写
bindsym $mod+x [class="(?i)firefox"] kill
# 只杀死 Firefox 的关于对话框
bindsym $mod+x [class="Firefox" window_role="About"] kill
# 打开浮动模式并移动容器到工作区 4
for_window [class="^evil-app$"] floating enable, move container to workspace 4
# 移动所有浮动窗口到 scratchpad
bindsym $mod+x [floating] move scratchpad
目前已实现的判断标准有:
class:
比较 window class(WM_CLASS 的第二部分)。使用特殊值 __focused__
匹配 window class 和目前拥有焦点的窗口相同的所有窗口。
instance:
比较 window instance(WM_CLASS 的第二部分)。使用特殊值 __focused__
匹配 window instance 和目前拥有焦点的窗口相同的所有窗口。
window_role:
比较 window role(WM_WINDOW_ROLE)。使用特殊值 __focused__
匹配 window role 和目前拥有焦点的窗口相同的所有窗口。
window_type:
比较 window type(_NET_WM_WINDOW_TYPE)。合法值有 normal
, dialog
, utility
, toolbar
, splash
, menu
, dropdown_menu
, popup_menu
, tooltip
和 notification
。
id:
比较 X11 window ID,你可以使用 xwininfo
获得 ID。
title:
比较 X11 窗口标题(_NET_WM_NAME 或者默认值 WM_NAME)。使用特殊值 __focused__
匹配窗口标题和目前拥有焦点的窗口相同的所有窗口。
urgent:
比较窗口的紧急状况。值可以是 "latest" 或者 "oldest",分别匹配最新的和最旧的紧急窗口。
workspace:
比较窗口所在工作区的名字。使用特殊值 __focused__
匹配目前拥有焦点的工作区中的所有窗口。
con_mark:
比较此容器的标记,见类似 VIM 的标记。如果一个容器的多个标记中有一个标记被匹配,这个容器就会被匹配。
con_id:
比较 i3 内部的容器 ID,你可通过 IPC 接口获得 ID。写脚本时使用它比较方便。使用特殊值 __focused__
匹配目前拥有焦点的那个窗口。
floating:
只匹配浮动窗口。这个判断标准没有值。
floating_from:
和 floating
相似但这个判断标准有两个可能的值:"auto" 和 "user"。当值是 "auto" 时,只有打开时就自动是浮动状态的窗口会被匹配。当值是 "user" 时,只有被用户改变为浮动的窗口会被匹配。
tiling:
只匹配平铺窗口。这个判断标准没有值。
tiling_from:
和 tiling
相似但这个判断标准有两个可能的值:"auto" 和 "user"。当值是 "auto" 时,只有打开时就自动是平铺状态的窗口会被匹配。当值是 "user" 时,只有被用户改变为平铺的窗口会被匹配。
判断标准 class
, instance
, role
, title
, workspace
和 mark
都是正则表达式(PCRE)。如何使用请见 pcresyntax(3)
或 perldoc perlre
。