#include <X11/Xlib.h>
#include "all.h"
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) |
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. | |
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 GRAB_KEY | ( | modifier | ) |
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 | ) |
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 | ) |
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().
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().
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 | |||
) |
Reads the configuration from ~/.i3/config or /etc/i3/config if not found.
If you specify override_configpath, only this path is used to look for a configuration file.
Definition at line 258 of file config.c.
References assignments, Config::config_client::background, Config::bar, Mode::bindings, bindings, BS_NORMAL, Config::client, Binding::command, Config::default_border, Config::default_orientation, ELOG, Config::config_bar::focused, Config::config_client::focused, Config::config_client::focused_inactive, Config::font, FREE, get_colorpixel(), grab_all_keys(), Font::id, INIT_COLOR, load_font(), modes, Mode::name, NO_ORIENTATION, parse_configuration(), predict_text_width(), scalloc(), SLIST_EMPTY, SLIST_FIRST, SLIST_INIT, SLIST_INSERT_HEAD, SLIST_REMOVE, sstrdup(), TAILQ_EMPTY, TAILQ_FIRST, TAILQ_FOREACH, TAILQ_INIT, TAILQ_REMOVE, translate_keysyms(), Binding::translated_to, Config::config_bar::unfocused, Config::config_client::unfocused, ungrab_all_keys(), Config::config_bar::urgent, and Config::config_client::urgent.
Referenced by main(), and yyparse().
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().
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().
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().
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.
Referenced by handle_mapping_notify(), load_configuration(), switch_mode(), and xkb_got_event().
Definition at line 22 of file config.c.
Referenced by _tree_next(), check_crossing_screen_boundary(), con_new(), con_set_layout(), floating_enable(), handle_button_press(), handle_configure_request(), handle_enter_notify(), handle_motion_notify(), handle_signal(), init_ws_for_output(), main(), manage_window(), output_change_mode(), predict_text_width(), render_con(), resize_graphical_handler(), store_restart_layout(), workspace_attach_to(), workspace_get(), x_draw_decoration(), and yyparse().
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().