i3
Functions | Variables
include/randr.h File Reference
#include "data.h"
#include <xcb/randr.h>
Include dependency graph for randr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

 TAILQ_HEAD (outputs_head, xoutput)
void randr_init (int *event_base)
 We have just established a connection to the X server and need the initial XRandR information to setup workspaces for each screen.
void disable_randr (xcb_connection_t *conn)
 Disables RandR support by creating exactly one output with the size of the X11 screen.
void output_init_con (Output *output)
 Initializes a CT_OUTPUT Con (searches existing ones from inplace restart before) to use for the given Output.
void init_ws_for_output (Output *output, Con *content)
 Initializes at least one workspace for this output, trying the following steps until there is at least one workspace:
void randr_query_outputs ()
 Initializes the specified output, assigning the specified workspace to it.
Outputget_first_output ()
 Returns the first output which is active.
Outputget_output_by_name (const char *name)
 Returns the output with the given name if it is active (!) or NULL.
Outputget_output_containing (int x, int y)
 Returns the active (!) output which contains the coordinates x, y or NULL if there is no output which contains these coordinates.
Outputget_output_most (direction_t direction, Output *current)
 Gets the output which is the last one in the given direction, for example the output on the most bottom when direction == D_DOWN, the output most right when direction == D_RIGHT and so on.

Variables

struct outputs_head outputs

Function Documentation

void disable_randr ( xcb_connection_t *  conn)

Disables RandR support by creating exactly one output with the size of the X11 screen.

Definition at line 151 of file randr.c.

References xoutput::active, xoutput::con, DLOG, Rect::height, init_ws_for_output(), xoutput::name, output_get_content(), output_init_con(), outputs, randr_disabled, xoutput::rect, root_screen, scalloc(), TAILQ_INSERT_TAIL, Rect::width, Rect::x, and Rect::y.

Referenced by randr_init(), randr_query_outputs(), and xinerama_init().

Here is the call graph for this function:

Output* get_first_output ( )

Returns the first output which is active.

Definition at line 68 of file randr.c.

References xoutput::active, outputs, and TAILQ_FOREACH.

Referenced by randr_query_outputs().

Output* get_output_by_name ( const char *  name)

Returns the output with the given name if it is active (!) or NULL.

Definition at line 54 of file randr.c.

References xoutput::active, xoutput::name, outputs, and TAILQ_FOREACH.

Referenced by init_ws_for_output().

Output* get_output_containing ( int  x,
int  y 
)

Returns the active (!) output which contains the coordinates x, y or NULL if there is no output which contains these coordinates.

Definition at line 83 of file randr.c.

References xoutput::active, DLOG, Rect::height, outputs, xoutput::rect, TAILQ_FOREACH, Rect::width, Rect::x, and Rect::y.

Referenced by check_crossing_screen_boundary(), floating_enable(), floating_maybe_reassign_ws(), and manage_window().

Output* get_output_most ( direction_t  direction,
Output current 
)

Gets the output which is the last one in the given direction, for example the output on the most bottom when direction == D_DOWN, the output most right when direction == D_RIGHT and so on.

This function always returns a output.

Definition at line 106 of file randr.c.

References xoutput::active, D_DOWN, D_LEFT, D_RIGHT, D_UP, outputs, xoutput::rect, TAILQ_FOREACH, WIN, Rect::x, and Rect::y.

void init_ws_for_output ( Output output,
Con content 
)

Initializes at least one workspace for this output, trying the following steps until there is at least one workspace:

• Move existing workspaces, which are assigned to be on the given output, to the output. • Create the first assigned workspace for this output. • Create the first unused workspace.

Definition at line 280 of file randr.c.

References xoutput::con, con_attach(), con_detach(), con_focus(), con_get_output(), con_new(), config, croot, Config::default_orientation, DLOG, focused, FREE, Con::fullscreen_mode, get_output_by_name(), GREP_FIRST, Rect::height, HORIZ, init_ws_for_output(), LOG, Con::name, Workspace_Assignment::name, xoutput::name, NO_ORIENTATION, Con::num, Con::orientation, Workspace_Assignment::output, output_get_content(), xoutput::rect, TAILQ_EMPTY, TAILQ_FIRST, TAILQ_FOREACH, TAILQ_NEXT, Con::type, VERT, Rect::width, workspace_is_visible(), workspace_show(), ws_assignments, and x_set_name().

Referenced by disable_randr(), init_ws_for_output(), query_screens(), and randr_query_outputs().

Here is the call graph for this function:

void output_init_con ( Output output)

Initializes a CT_OUTPUT Con (searches existing ones from inplace restart before) to use for the given Output.

Definition at line 175 of file randr.c.

References xoutput::con, con_attach(), con_fix_percent(), con_new(), croot, DLOG, Match::dock, FREE, Match::insert_where, Con::layout, match_init(), Con::name, xoutput::name, Con::orientation, xoutput::rect, Con::rect, scalloc(), sstrdup(), TAILQ_FOREACH, TAILQ_INSERT_TAIL, Con::type, VERT, and x_set_name().

Referenced by disable_randr(), query_screens(), and randr_query_outputs().

Here is the call graph for this function:

void randr_init ( int *  event_base)

We have just established a connection to the X server and need the initial XRandR information to setup workspaces for each screen.

Definition at line 767 of file randr.c.

References conn, disable_randr(), randr_query_outputs(), and root.

Referenced by main().

Here is the call graph for this function:

void randr_query_outputs ( )
TAILQ_HEAD ( outputs_head  ,
xoutput   
)

Variable Documentation

struct outputs_head outputs