Only set client's urgent after startup
[awesome.git] / luadoc / client.lua
blob3f20b1f067f50f9772ccf0962364825aaa0b8337
1 --- awesome client API
2 -- @author Julien Danjou <julien@danjou.info>
3 -- @copyright 2008-2009 Julien Danjou
4 module("client")
6 --- Client object.
7 -- @field window The X window id.
8 -- @field name The client title.
9 -- @field skip_taskbar True if the client does not want to be in taskbar.
10 -- @field type The window type (desktop, normal, dock, …).
11 -- @field class The client class.
12 -- @field instance The client instance.
13 -- @field pid The client PID, if available.
14 -- @field role The window role, if available.
15 -- @field machine The machine client is running on.
16 -- @field icon_name The client name when iconified.
17 -- @field icon The client icon.
18 -- @field screen Client screen.
19 -- @field hidden Define if the client must be hidden, i.e. never mapped,
20 -- invisible in taskbar.
21 -- @field minimized Define it the client must be iconify, i.e. only visible in
22 -- taskbar.
23 -- @field size_hints_honor Honor size hints, i.e. respect size ratio.
24 -- @field border_width The client border width.
25 -- @field border_color The client border color.
26 -- @field urgent The client urgent state.
27 -- @field content An image representing the client window content (screenshot).
28 -- @field focus The focused client.
29 -- @field opacity The client opacity between 0 and 1.
30 -- @field ontop The client is on top of every other windows.
31 -- @field above The client is above normal windows.
32 -- @field below The client is below normal windows.
33 -- @field fullscreen The client is fullscreen or not.
34 -- @field maximized The client is maximized (horizontally and vertically) or not.
35 -- @field maximized_horizontal The client is maximized horizontally or not.
36 -- @field maximized_vertical The client is maximized vertically or not.
37 -- @field transient_for The client the window is transient for.
38 -- @field group_window Window identification unique to a group of windows.
39 -- @field leader_window Identification unique to windows spawned by the same command.
40 -- @field size_hints A table with size hints of the client: user_position,
41 -- user_size, program_position, program_size, etc.
42 -- @field sticky Set the client sticky, i.e. available on all tags.
43 -- @field modal Indicate if the client is modal.
44 -- @field focusable True if the client can receive the input focus.
45 -- @field shape_bounding The client's bounding shape as set by awesome as a (native) cairo surface.
46 -- @field shape_clip The client's clip shape as set by awesome as a (native) cairo surface.
47 -- @field shape_client_bounding The client's bounding shape as set by the program as a (native) cairo surface.
48 -- @field shape_client_clip The client's clip shape as set by the program as a (native) cairo surface.
49 -- @field startup_id The FreeDesktop StartId.
50 -- @class table
51 -- @name client
53 --- Get all clients into a table.
54 -- @param screen An optional screen number.
55 -- @return A table with all clients.
56 -- @name get
57 -- @class function
59 --- Check if a client is visible on its screen.
60 -- @return A boolean value, true if the client is visible, false otherwise.
61 -- @name isvisible
62 -- @class function
64 --- Return client geometry.
65 -- @param arg1 A table with new coordinates, or none.
66 -- @return A table with client coordinates.
67 -- @name geometry
68 -- @class function
70 --- Return client struts (reserved space at the edge of the screen).
71 -- @param struts A table with new strut values, or none.
72 -- @return A table with strut values.
73 -- @name struts
74 -- @class function
76 --- Get or set mouse buttons bindings for a client.
77 -- @param buttons_table An array of mouse button bindings objects, or nothing.
78 -- @return A table with all buttons.
79 -- @name buttons
80 -- @class function
82 --- Get or set keys bindings for a client.
83 -- @param keys_table An array of key bindings objects, or nothing.
84 -- @return A table with all keys.
85 -- @name keys
86 -- @class function
88 --- Access or set the client tags.
89 -- @param tags_table A table with tags to set, or none to get the current tags table.
90 -- @return A table with all tags.
91 -- @name tags
92 -- @class function
94 --- Kill a client.
95 -- @name kill
96 -- @class function
98 --- Swap a client with another one in global client list.
99 -- @param c A client to swap with.
100 -- @name swap
101 -- @class function
103 --- Raise a client on top of others which are on the same layer.
104 -- @name raise
105 -- @class function
107 --- Lower a client on bottom of others which are on the same layer.
108 -- @name lower
109 -- @class function
111 --- Stop managing a client.
112 -- @name unmanage
113 -- @class function
115 --- Change a xproperty.
116 -- @param name The name of the X11 property
117 -- @param value The new value for the property
118 -- @name set_xproperty
119 -- @class function
121 --- Get the value of a xproperty.
122 -- @param name The name of the X11 property
123 -- @name get_xproperty
124 -- @class function
126 --- Add a signal.
127 -- @param name A signal name.
128 -- @param func A function to call when the signal is emitted.
129 -- @name connect_signal
130 -- @class function
132 --- Remove a signal.
133 -- @param name A signal name.
134 -- @param func A function to remove.
135 -- @name disconnect_signal
136 -- @class function
138 --- Emit a signal.
139 -- @param name A signal name.
140 -- @param ... Various arguments, optional.
141 -- @name emit_signal
142 -- @class function
144 --- Get the number of instances.
145 -- @return The number of client objects alive.
146 -- @name instances
147 -- @class function