src/config.c File Reference

#include <X11/Xlib.h>
#include "all.h"
Include dependency graph for config.c:

Go to the source code of this file.

Defines

#define GRAB_KEY(modifier)
#define REQUIRED_OPTION(name)
#define INIT_COLOR(x, cborder, cbackground, ctext)

Functions

void ungrab_all_keys (xcb_connection_t *conn)
 Ungrabs all keys, to be called before re-grabbing the keys because of a mapping_notify event or a configuration file reload.
static void grab_keycode_for_binding (xcb_connection_t *conn, Binding *bind, uint32_t keycode)
Bindingget_binding (uint16_t modifiers, xcb_keycode_t keycode)
 Returns a pointer to the Binding with the specified modifiers and keycode or NULL if no such binding exists.
void translate_keysyms ()
 Translates keysymbols to keycodes for all bindings which use keysyms.
void grab_all_keys (xcb_connection_t *conn, bool bind_mode_switch)
 Grab the bound keys (tell X to send us keypress events for those keycodes).
void switch_mode (const char *new_mode)
 Switches the key bindings to the given mode, if the mode exists.
static char * get_config_path (const char *override_configpath)
static void parse_configuration (const char *override_configpath)
void load_configuration (xcb_connection_t *conn, const char *override_configpath, bool reload)
 Reads the configuration from ~/.i3/config or /etc/i3/config if not found.

Variables

char * current_configpath = NULL
Config config
struct modes_head modes

Define Documentation

#define GRAB_KEY ( modifier   ) 
Value:
do { \
                        xcb_grab_key(conn, 0, root, modifier, keycode, \
                                     XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC); \
                } while (0)

Referenced by grab_keycode_for_binding().

#define INIT_COLOR ( x,
cborder,
cbackground,
ctext   ) 
Value:
do { \
                x.border = get_colorpixel(cborder); \
                x.background = get_colorpixel(cbackground); \
                x.text = get_colorpixel(ctext); \
        } while (0)

Referenced by load_configuration().

#define REQUIRED_OPTION ( name   ) 
Value:
if (config.name == NULL) \
                die("You did not specify required configuration option " #name "\n");

Function Documentation

Binding* get_binding ( uint16_t  modifiers,
xcb_keycode_t  keycode 
)

Returns a pointer to the Binding with the specified modifiers and keycode or NULL if no such binding exists.

Definition at line 59 of file config.c.

References bindings, Binding::keycode, Binding::mods, Binding::number_keycodes, Binding::symbol, TAILQ_END, TAILQ_FOREACH, and Binding::translated_to.

Referenced by handle_key_press().

static char* get_config_path ( const char *  override_configpath  )  [static]

Definition at line 179 of file config.c.

References die, path_exists(), resolve_tilde(), and sstrdup().

Referenced by parse_configuration().

Here is the call graph for this function:

void grab_all_keys ( xcb_connection_t *  conn,
bool  bind_mode_switch 
)

Grab the bound keys (tell X to send us keypress events for those keycodes).

Definition at line 129 of file config.c.

References BIND_MODE_SWITCH, bindings, grab_keycode_for_binding(), Binding::keycode, Binding::mods, Binding::number_keycodes, TAILQ_FOREACH, and Binding::translated_to.

Referenced by handle_mapping_notify(), load_configuration(), main(), switch_mode(), and xkb_got_event().

Here is the call graph for this function:

static void grab_keycode_for_binding ( xcb_connection_t *  conn,
Binding bind,
uint32_t  keycode 
) [static]

Definition at line 35 of file config.c.

References BIND_MODE_SWITCH, DLOG, GRAB_KEY, Binding::mods, and xcb_numlock_mask.

Referenced by grab_all_keys().

void load_configuration ( xcb_connection_t *  conn,
const char *  override_configfile,
bool  reload 
)
static void parse_configuration ( const char *  override_configpath  )  [static]

Definition at line 246 of file config.c.

References current_configpath, DLOG, FREE, get_config_path(), and parse_file().

Referenced by load_configuration().

Here is the call graph for this function:

void switch_mode ( const char *  new_mode  ) 

Switches the key bindings to the given mode, if the mode exists.

Definition at line 152 of file config.c.

References Mode::bindings, bindings, conn, ELOG, grab_all_keys(), LOG, modes, Mode::name, SLIST_FOREACH, translate_keysyms(), and ungrab_all_keys().

Referenced by yyparse().

Here is the call graph for this function:

void translate_keysyms (  ) 

Translates keysymbols to keycodes for all bindings which use keysyms.

Definition at line 88 of file config.c.

References bindings, DLOG, ELOG, Binding::keycode, keysyms, Binding::number_keycodes, smalloc(), Binding::symbol, TAILQ_FOREACH, and Binding::translated_to.

Referenced by handle_mapping_notify(), load_configuration(), main(), switch_mode(), and xkb_got_event().

Here is the call graph for this function:

void ungrab_all_keys ( xcb_connection_t *  conn  ) 

Ungrabs all keys, to be called before re-grabbing the keys because of a mapping_notify event or a configuration file reload.

Definition at line 30 of file config.c.

References DLOG, and root.

Referenced by handle_mapping_notify(), load_configuration(), switch_mode(), and xkb_got_event().


Variable Documentation

char* current_configpath = NULL

Definition at line 21 of file config.c.

Referenced by parse_configuration(), and x_set_i3_atoms().

struct modes_head modes

Definition at line 23 of file config.c.

Referenced by load_configuration(), switch_mode(), and yyparse().


Generated on 7 Feb 2013 for i3 by  doxygen 1.6.1