aboutsummaryrefslogtreecommitdiff
path: root/doc/asciidoc/client-patterns.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/asciidoc/client-patterns.txt')
-rw-r--r--doc/asciidoc/client-patterns.txt81
1 files changed, 81 insertions, 0 deletions
diff --git a/doc/asciidoc/client-patterns.txt b/doc/asciidoc/client-patterns.txt
new file mode 100644
index 0000000..85dac7b
--- /dev/null
+++ b/doc/asciidoc/client-patterns.txt
@@ -0,0 +1,81 @@
1A 'pattern' looks like this:::
2 *(*['propertyname'[!]=]'regexp'*)* ...
3
4Match definitions are enclosed in parentheses *(*...*)*, and if no
5'propertyname' is given then *Name* is assumed. The 'regexp' can contain any
6regular expression, or the special value *[current]*, which matches the
7corresponding value of the currently focused window. See 'regex(7)' for more
8information on acceptable regular expressions.
9
10'propertyname' is not case sensitive, whereas the 'regexp' is.
11
12If you specify multiple *('pattern'*) arguments, this implies an AND condition -
13All specified patterns must match.
14
15You can use *=* to test for equality or *!=* to test for inequality.
16
17The following values are accepted for 'propertyname':::
18*Name*;;
19 A string, corresponding to the CLASSNAME property (The first field of
20 WM_CLASS from the output of the *xprop(1)* utility).
21*Class*;;
22 A string, corresponding to the CLASSCLASS property (The second field of
23 WM_CLASS from the output of the *xprop(1)* utility).
24*Title*;;
25 A string, corresponding to the window title (WM_NAME from *xprop(1)*).
26*Role*;;
27 A string, corresponding to the ROLE property (WM_WINDOW_ROLE from
28 *xprop(1)*).
29*Transient*;;
30 Either *yes* or *no*, depending on whether the window is transient
31 (typically, a popup dialog) or not.
32*Maximized*;;
33 Either *yes* or *no*, depending on whether the window is maximized or
34 not.
35*Minimized*;;
36 Either *yes* or *no*, depending on whether the window is minimized
37 (iconified) or not.
38*Shaded*;;
39 Either *yes* or *no*, depending on whether the window is shaded or
40 not.
41*Stuck*;;
42 Either *yes* or *no*, depending on whether the window is sticky (on
43 all workspaces) or not.
44*FocusHidden*;;
45 Either *yes* or *no*, depending on whether the window has asked to be
46 left off the focus list (or, the alt-tab list), or not.
47*IconHidden*;;
48 Either *yes* or *no*, depending on whether the window has asked to be
49 left off the icon list (or, the taskbar), or not.
50*Urgent*;;
51 Either *yes* or *no*, depending on whether the window has the urgent
52 hint set.
53*Workspace*;;
54 A number corresponding to the workspace number to which the window is
55 attached. The first workspace here is *0*. You may also use *[current]* to
56 match the currently visible workspace.
57*WorkspaceName*;;
58 A string corresponding to the name of the workspace to which the
59 window is attached.
60*Head*;;
61 The number of the display head to which the window is attached. You
62 may match this against the special value *[mouse]* which refers to the
63 head where the mouse pointer currently resides.
64*Layer*;;
65 The string name of the window's layer, which is one of
66 *AboveDock*, *Dock*, *Top*, *Normal*, *Bottom*, *Desktop*
67
68.Matches any windows with the CLASSNAME of "xterm"
69..........
70(xterm)
71..........
72
73.Matches any windows with the same CLASSNAME as the currently focused window
74..........
75(Name=[current])
76..........
77
78.Matches any windows on the same head as the mouse but on a different layer than the currently focused window
79...........
80(Head=[mouse]) (Layer!=[current])
81...........