Go to the documentation of this file.
13 #include <xkbcommon/xkbcommon.h>
18 struct modes_head
modes;
27 DLOG(
"Ungrabbing all keys\n");
28 xcb_ungrab_key(
conn, XCB_GRAB_ANY,
root, XCB_BUTTON_MASK_ANY);
193 #define INIT_COLOR(x, cborder, cbackground, ctext, cindicator) \
195 x.border = draw_util_hex_to_color(cborder); \
196 x.background = draw_util_hex_to_color(cbackground); \
197 x.text = draw_util_hex_to_color(ctext); \
198 x.indicator = draw_util_hex_to_color(cindicator); \
199 x.child_border = draw_util_hex_to_color(cbackground); \
240 die(
"Unable to find the configuration file (looked at "
241 "$XDG_CONFIG_HOME/i3/config, ~/.i3/config, $XDG_CONFIG_DIRS/i3/config "
242 "and " SYSCONFDIR
"/i3/config)");
248 ELOG(
"You did not specify required configuration option \"font\"\n");
struct Colortriple urgent
Defines a mouse command to be executed instead of the default behavior when clicking on the non-statu...
char * urgent_workspace_bg
Stores which workspace (by name or number) goes to which output and its gaps config.
char * active_workspace_text
void update_barconfig(void)
Sends the current bar configuration as an event to all barconfig_update listeners.
struct Barconfig::bar_colors colors
struct Colortriple focused_inactive
char * binding_mode_border
struct deco_render_params * deco_render_params
Cache for the decoration rendering.
char * focused_workspace_border
Holds the status bar configuration (i3bar).
char * inactive_workspace_bg
void * scalloc(size_t num, size_t size)
Safe-wrapper around calloc which exits if malloc returns NULL (meaning that there is no more memory a...
bool show_marks
Specifies whether or not marks should be displayed in the window decoration.
enum Font::@23 type
The type of font.
char * id
Automatically generated ID for this bar config.
int default_orientation
Default orientation for new containers.
struct Colortriple unfocused
char * restart_state_path
char * current_configpath
char * get_config_path(const char *override_configpath, bool use_system_paths)
Get the path of the first configuration file found.
border_style_t default_border
The default border style for new windows.
#define TAILQ_EMPTY(head)
#define SLIST_FIRST(head)
void set_font(i3Font *font)
Defines the font to be used for the forthcoming calls.
struct all_cons_head all_cons
struct ws_assignments_head ws_assignments
void ipc_send_barconfig_update_event(Barconfig *barconfig)
For the barconfig update events, we send the serialized barconfig.
int num_outputs
Number of outputs in the outputs array.
char * urgent_workspace_text
void x_deco_recurse(Con *con)
Recursively calls x_draw_decoration.
struct Colortriple focused
int default_floating_border_width
bool parse_file(const char *f, bool use_nagbar)
Parses the given file by first replacing the variables, then calling parse_config and launching i3-na...
struct Colortriple placeholder
struct Colortriple unfocused
color_t draw_util_hex_to_color(const char *color)
Parses the given color in hex format to an internal color representation.
Match match
the criteria to check if a window matches
char * focused_background
focus_wrapping_t focus_wrapping
When focus wrapping is enabled (the default), attempting to move focus past the edge of the screen (i...
Holds part of the configuration (the part which is not already in dedicated structures in include/dat...
#define TAILQ_FIRST(head)
#define SLIST_REMOVE(head, elm, type, field)
char * sstrdup(const char *str)
Safe-wrapper around strdup which exits if malloc returns NULL (meaning that there is no more memory a...
union Assignment::@19 dest
destination workspace/command/output, depending on the type
char * i3bar_command
Command that should be run to execute i3bar, give a full path if i3bar is not in your $PATH.
void free_font(void)
Frees the resources taken by the current font.
void translate_keysyms(void)
Translates keysymbols to keycodes for all bindings which use keysyms.
An Assignment makes specific windows go to a specific workspace/output or run a command for that wind...
uint32_t nr_assignments
Pointers to the Assignments which were already ran for this Window (assignments run only once)
void binding_free(Binding *bind)
Frees the binding.
#define SLIST_EMPTY(head)
char * focused_workspace_text
char * urgent_workspace_border
float workspace_urgency_timer
By default, urgency is cleared immediately when switching to another workspace leads to focusing the ...
#define TAILQ_HEAD_INITIALIZER(head)
char * status_command
Command that should be run to get a statusline, for example 'i3status'.
char * inactive_workspace_border
char * fake_outputs
Overwrites output detection (for testing), see src/fake_outputs.c.
Assignment ** ran_assignments
void match_free(Match *match)
Frees the given match.
char * command
The command which is to be executed for this button.
border_style_t default_floating_border
The default border style for new floating windows.
static void free_configuration(void)
#define SLIST_INSERT_HEAD(head, elm, field)
enum Assignment::@18 type
type of this assignment:
char * active_workspace_bg
char * inactive_workspace_text
i3Font load_font(const char *pattern, const bool fallback)
Loads a font for usage, also getting its height.
struct bindings_head * bindings
Holds a keybinding, consisting of a keycode combined with modifiers and the command which is executed...
struct bindings_head * bindings
void regrab_all_buttons(xcb_connection_t *conn)
Release the button grabs on all managed windows and regrab them, reevaluating which buttons need to b...
#define TAILQ_FOREACH(var, head, field)
struct Colortriple focused
char * font
Font specification for all text rendered on the bar.
#define INIT_COLOR(x, cborder, cbackground, ctext, cindicator)
void switch_mode(const char *new_mode)
Switches the key bindings to the given mode, if the mode exists.
struct Colortriple urgent
char * focused_statusline
struct Config::config_client client
char * focused_workspace_bg
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 con...
struct assignments_head assignments
#define TAILQ_REMOVE(head, elm, field)
char * socket_path
Path to the i3 IPC socket.
A 'Con' represents everything from the X11 root window down to a single X11 window.
struct barconfig_head barconfigs
bool load_configuration(const char *override_configpath, config_load_t load_type)
(Re-)loads the configuration file (sets useful defaults before).
int logical_px(const int logical)
Convert a logical amount of pixels (e.g.
struct Config::config_bar bar
void grab_all_keys(xcb_connection_t *conn)
Grab the bound keys (tell X to send us keypress events for those keycodes)
char * active_workspace_border
xcb_connection_t * conn
XCB connection and root screen.
char ** outputs
Outputs on which this bar should show up on.
The configuration file can contain multiple sets of bindings.