2 -- @author Julien Danjou <julien@danjou.info>
3 -- @copyright 2008-2009 Julien Danjou
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
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 titlebar The client titlebar.
27 -- @field urgent The client urgent state.
28 -- @field content An image representing the client window content (screenshot).
29 -- @field focus The focused client.
30 -- @field opacity The client opacity between 0 and 1.
31 -- @field ontop The client is on top of every other windows.
32 -- @field above The client is above normal windows.
33 -- @field below The client is below normal windows.
34 -- @field fullscreen The client is fullscreen 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_id 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.
48 --- Get all clients into a table.
49 -- @param screen An optional screen number.
50 -- @return A table with all clients.
54 --- Check if a client is visible on its screen.
56 -- @return A boolean value, true if the client is visible, false otherwise.
60 --- Return client geometry.
61 -- @param arg1 A table with new coordinates, or none.
62 -- @return A table with client coordinates.
66 --- Return client struts (reserved space at the edge of the screen).
67 -- @param struts A table with new strut values, or none.
68 -- @return A table with strut values.
72 --- Get or set mouse buttons bindings for a client.
73 -- @param buttons_table An array of mouse button bindings objects, or nothing.
74 -- @return A table with all buttons.
78 --- Get or set keys bindings for a client.
79 -- @param keys_table An array of key bindings objects, or nothing.
80 -- @return A table with all keys.
84 --- Access or set the client tags.
85 -- @param tags_table A table with tags to set, or none to get the current tags table.
86 -- @return A table with all tags.
95 --- Swap a client with another one in global client list.
96 -- @param c A client to swap with.
100 --- Raise a client on top of others which are on the same layer.
105 --- Lower a client on bottom of others which are on the same layer.
110 --- Redraw a client by unmapping and mapping it quickly.
115 --- Stop managing a client.
121 -- @param name A signal name.
122 -- @param func A function to call when the signal is emitted.
127 -- @param name A signal name.
128 -- @param func A function to remove.
129 -- @name remove_signal
133 -- @param name A signal name.
134 -- @param ... Various arguments, optional.