i3
Macros | Functions | Variables
config_directives.c File Reference
#include "all.h"
Include dependency graph for config_directives.c:

Go to the source code of this file.

Macros

#define APPLY_COLORS(classname)
 
#define APPLY_COLORS(classname)
 

Functions

 CFGFUN (criteria_init, int _state)
 
 CFGFUN (criteria_pop_state)
 
 CFGFUN (criteria_add, const char *ctype, const char *cvalue)
 
static bool eval_boolstr (const char *str)
 
i3_event_state_mask_t event_state_from_str (const char *str)
 A utility function to convert a string containing the group and modifiers to the corresponding bit mask. More...
 
 CFGFUN (font, const char *font)
 
 CFGFUN (binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *exclude_titlebar, const char *command)
 
 CFGFUN (mode_binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *exclude_titlebar, const char *command)
 
 CFGFUN (enter_mode, const char *pango_markup, const char *modename)
 
 CFGFUN (exec, const char *exectype, const char *no_startup_id, const char *command)
 
 CFGFUN (for_window, const char *command)
 
 CFGFUN (floating_minimum_size, const long width, const long height)
 
 CFGFUN (floating_maximum_size, const long width, const long height)
 
 CFGFUN (floating_modifier, const char *modifiers)
 
 CFGFUN (default_orientation, const char *orientation)
 
 CFGFUN (workspace_layout, const char *layout)
 
 CFGFUN (default_border, const char *windowtype, const char *border, const long width)
 
 CFGFUN (hide_edge_borders, const char *borders)
 
 CFGFUN (focus_follows_mouse, const char *value)
 
 CFGFUN (mouse_warping, const char *value)
 
 CFGFUN (force_xinerama, const char *value)
 
 CFGFUN (disable_randr15, const char *value)
 
 CFGFUN (focus_wrapping, const char *value)
 
 CFGFUN (force_focus_wrapping, const char *value)
 
 CFGFUN (workspace_back_and_forth, const char *value)
 
 CFGFUN (fake_outputs, const char *outputs)
 
 CFGFUN (force_display_urgency_hint, const long duration_ms)
 
 CFGFUN (focus_on_window_activation, const char *mode)
 
 CFGFUN (title_align, const char *alignment)
 
 CFGFUN (show_marks, const char *value)
 
 CFGFUN (workspace, const char *workspace, const char *output)
 
 CFGFUN (ipc_socket, const char *path)
 
 CFGFUN (restart_state, const char *path)
 
 CFGFUN (popup_during_fullscreen, const char *value)
 
 CFGFUN (color_single, const char *colorclass, const char *color)
 
 CFGFUN (color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *child_border)
 
 CFGFUN (assign_output, const char *output)
 
 CFGFUN (assign, const char *workspace, bool is_number)
 
 CFGFUN (no_focus)
 
 CFGFUN (ipc_kill_timeout, const long timeout_ms)
 
 CFGFUN (bar_font, const char *font)
 
 CFGFUN (bar_separator_symbol, const char *separator)
 
 CFGFUN (bar_mode, const char *mode)
 
 CFGFUN (bar_hidden_state, const char *hidden_state)
 
 CFGFUN (bar_id, const char *bar_id)
 
 CFGFUN (bar_output, const char *output)
 
 CFGFUN (bar_verbose, const char *verbose)
 
 CFGFUN (bar_modifier, const char *modifiers)
 
static void bar_configure_binding (const char *button, const char *release, const char *command)
 
 CFGFUN (bar_wheel_up_cmd, const char *command)
 
 CFGFUN (bar_wheel_down_cmd, const char *command)
 
 CFGFUN (bar_bindsym, const char *button, const char *release, const char *command)
 
 CFGFUN (bar_position, const char *position)
 
 CFGFUN (bar_i3bar_command, const char *i3bar_command)
 
 CFGFUN (bar_color, const char *colorclass, const char *border, const char *background, const char *text)
 
 CFGFUN (bar_socket_path, const char *socket_path)
 
 CFGFUN (bar_tray_output, const char *output)
 
 CFGFUN (bar_tray_padding, const long padding_px)
 
 CFGFUN (bar_color_single, const char *colorclass, const char *color)
 
 CFGFUN (bar_status_command, const char *command)
 
 CFGFUN (bar_binding_mode_indicator, const char *value)
 
 CFGFUN (bar_workspace_buttons, const char *value)
 
 CFGFUN (bar_workspace_min_width, const long width)
 
 CFGFUN (bar_strip_workspace_numbers, const char *value)
 
 CFGFUN (bar_strip_workspace_name, const char *value)
 
 CFGFUN (bar_start)
 
 CFGFUN (bar_finish)
 

Variables

static int criteria_next_state
 
static char * font_pattern
 
static char * current_mode
 
static bool current_mode_pango_markup
 
static char * current_workspace = NULL
 
static Barconfigcurrent_bar
 

Macro Definition Documentation

◆ APPLY_COLORS [1/2]

#define APPLY_COLORS (   classname)
Value:
do { \
if (strcmp(colorclass, "client." #classname) == 0) { \
config.client.classname.border = draw_util_hex_to_color(border); \
config.client.classname.background = draw_util_hex_to_color(background); \
config.client.classname.text = draw_util_hex_to_color(text); \
if (indicator != NULL) { \
config.client.classname.indicator = draw_util_hex_to_color(indicator); \
} \
if (child_border != NULL) { \
config.client.classname.child_border = draw_util_hex_to_color(child_border); \
} else { \
config.client.classname.child_border = config.client.classname.background; \
} \
} \
} while (0)
Config config
Definition: config.c:17
color_t draw_util_hex_to_color(const char *color)
Parses the given color in hex format to an internal color representation.
struct Config::config_client client

◆ APPLY_COLORS [2/2]

#define APPLY_COLORS (   classname)
Value:
do { \
if (strcmp(colorclass, #classname) == 0) { \
if (text != NULL) { \
/* New syntax: border, background, text */ \
current_bar->colors.classname##_border = sstrdup(border); \
current_bar->colors.classname##_bg = sstrdup(background); \
current_bar->colors.classname##_text = sstrdup(text); \
} else { \
/* Old syntax: text, background */ \
current_bar->colors.classname##_bg = sstrdup(background); \
current_bar->colors.classname##_text = sstrdup(border); \
} \
} \
} while (0)
char * sstrdup(const char *str)
Safe-wrapper around strdup which exits if malloc returns NULL (meaning that there is no more memory a...

Function Documentation

◆ bar_configure_binding()

static void bar_configure_binding ( const char *  button,
const char *  release,
const char *  command 
)
static

Definition at line 528 of file config_directives.c.

References bindings, Barbinding::command, current_bar, ELOG, Barbinding::input_code, Barbinding::release, scalloc(), sstrdup(), TAILQ_FOREACH, and TAILQ_INSERT_TAIL.

Referenced by CFGFUN().

Here is the call graph for this function:

◆ CFGFUN() [1/64]

CFGFUN ( assign  ,
const char *  workspace,
bool  is_number 
)

◆ CFGFUN() [2/64]

CFGFUN ( assign_output  ,
const char *  output 
)

◆ CFGFUN() [3/64]

CFGFUN ( bar_binding_mode_indicator  ,
const char *  value 
)

Definition at line 640 of file config_directives.c.

References current_bar, eval_boolstr(), and Barconfig::hide_binding_mode_indicator.

Here is the call graph for this function:

◆ CFGFUN() [4/64]

CFGFUN ( bar_bindsym  ,
const char *  button,
const char *  release,
const char *  command 
)

Definition at line 566 of file config_directives.c.

References bar_configure_binding(), Barbinding::command, and Barbinding::release.

Here is the call graph for this function:

◆ CFGFUN() [5/64]

CFGFUN ( bar_color  ,
const char *  colorclass,
const char *  border,
const char *  background,
const char *  text 
)

Definition at line 579 of file config_directives.c.

References APPLY_COLORS.

◆ CFGFUN() [6/64]

CFGFUN ( bar_color_single  ,
const char *  colorclass,
const char *  color 
)

◆ CFGFUN() [7/64]

CFGFUN ( bar_finish  )

Definition at line 668 of file config_directives.c.

References barconfigs, config, current_bar, DLOG, Barconfig::font, font_pattern, Barconfig::id, Config::number_barconfigs, sasprintf(), sstrdup(), and TAILQ_INSERT_TAIL.

Here is the call graph for this function:

◆ CFGFUN() [8/64]

CFGFUN ( bar_font  ,
const char *  font 
)

Definition at line 491 of file config_directives.c.

References current_bar, Barconfig::font, FREE, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [9/64]

CFGFUN ( bar_hidden_state  ,
const char *  hidden_state 
)

Definition at line 505 of file config_directives.c.

References current_bar, and Barconfig::hidden_state.

◆ CFGFUN() [10/64]

CFGFUN ( bar_i3bar_command  ,
const char *  i3bar_command 
)

Definition at line 574 of file config_directives.c.

References current_bar, FREE, Barconfig::i3bar_command, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [11/64]

CFGFUN ( bar_id  ,
const char *  bar_id 
)

Definition at line 509 of file config_directives.c.

References current_bar, Barconfig::id, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [12/64]

CFGFUN ( bar_mode  ,
const char *  mode 
)

Definition at line 501 of file config_directives.c.

References current_bar, and Barconfig::mode.

◆ CFGFUN() [13/64]

CFGFUN ( bar_modifier  ,
const char *  modifiers 
)

Definition at line 524 of file config_directives.c.

References current_bar, event_state_from_str(), and Barconfig::modifier.

Here is the call graph for this function:

◆ CFGFUN() [14/64]

CFGFUN ( bar_output  ,
const char *  output 
)

Definition at line 513 of file config_directives.c.

References current_bar, Barconfig::num_outputs, Workspace_Assignment::output, Barconfig::outputs, srealloc(), and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [15/64]

CFGFUN ( bar_position  ,
const char *  position 
)

Definition at line 570 of file config_directives.c.

References current_bar, and Barconfig::position.

◆ CFGFUN() [16/64]

CFGFUN ( bar_separator_symbol  ,
const char *  separator 
)

Definition at line 496 of file config_directives.c.

References current_bar, FREE, Barconfig::separator_symbol, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [17/64]

CFGFUN ( bar_socket_path  ,
const char *  socket_path 
)

Definition at line 605 of file config_directives.c.

References current_bar, FREE, Barconfig::socket_path, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [18/64]

CFGFUN ( bar_start  )

Definition at line 660 of file config_directives.c.

References current_bar, Barconfig::modifier, scalloc(), TAILQ_INIT, and Barconfig::tray_padding.

Here is the call graph for this function:

◆ CFGFUN() [19/64]

CFGFUN ( bar_status_command  ,
const char *  command 
)

Definition at line 635 of file config_directives.c.

References current_bar, FREE, sstrdup(), and Barconfig::status_command.

Here is the call graph for this function:

◆ CFGFUN() [20/64]

CFGFUN ( bar_strip_workspace_name  ,
const char *  value 
)

Definition at line 656 of file config_directives.c.

References current_bar, eval_boolstr(), and Barconfig::strip_workspace_name.

Here is the call graph for this function:

◆ CFGFUN() [21/64]

CFGFUN ( bar_strip_workspace_numbers  ,
const char *  value 
)

Definition at line 652 of file config_directives.c.

References current_bar, eval_boolstr(), and Barconfig::strip_workspace_numbers.

Here is the call graph for this function:

◆ CFGFUN() [22/64]

CFGFUN ( bar_tray_output  ,
const char *  output 
)

Definition at line 610 of file config_directives.c.

References current_bar, tray_output_t::output, scalloc(), sstrdup(), and TAILQ_INSERT_TAIL.

Here is the call graph for this function:

◆ CFGFUN() [23/64]

CFGFUN ( bar_tray_padding  ,
const long  padding_px 
)

Definition at line 616 of file config_directives.c.

References current_bar, and Barconfig::tray_padding.

◆ CFGFUN() [24/64]

CFGFUN ( bar_verbose  ,
const char *  verbose 
)

Definition at line 520 of file config_directives.c.

References current_bar, eval_boolstr(), Barconfig::verbose, and verbose.

Here is the call graph for this function:

◆ CFGFUN() [25/64]

CFGFUN ( bar_wheel_down_cmd  ,
const char *  command 
)

Definition at line 561 of file config_directives.c.

References bar_configure_binding(), Barbinding::command, and ELOG.

Here is the call graph for this function:

◆ CFGFUN() [26/64]

CFGFUN ( bar_wheel_up_cmd  ,
const char *  command 
)

Definition at line 556 of file config_directives.c.

References bar_configure_binding(), Barbinding::command, and ELOG.

Here is the call graph for this function:

◆ CFGFUN() [27/64]

CFGFUN ( bar_workspace_buttons  ,
const char *  value 
)

Definition at line 644 of file config_directives.c.

References current_bar, eval_boolstr(), and Barconfig::hide_workspace_buttons.

Here is the call graph for this function:

◆ CFGFUN() [28/64]

CFGFUN ( bar_workspace_min_width  ,
const long  width 
)

Definition at line 648 of file config_directives.c.

References current_bar, and Barconfig::workspace_min_width.

◆ CFGFUN() [29/64]

CFGFUN ( binding  ,
const char *  bindtype,
const char *  modifiers,
const char *  key,
const char *  release,
const char *  border,
const char *  whole_window,
const char *  exclude_titlebar,
const char *  command 
)

Definition at line 106 of file config_directives.c.

References configure_binding(), and DEFAULT_BINDING_MODE.

Here is the call graph for this function:

◆ CFGFUN() [30/64]

CFGFUN ( color  ,
const char *  colorclass,
const char *  border,
const char *  background,
const char *  text,
const char *  indicator,
const char *  child_border 
)

Definition at line 398 of file config_directives.c.

References APPLY_COLORS, and focused.

◆ CFGFUN() [31/64]

CFGFUN ( color_single  ,
const char *  colorclass,
const char *  color 
)

Definition at line 393 of file config_directives.c.

References Config::config_client::background, Config::client, config, and draw_util_hex_to_color().

Here is the call graph for this function:

◆ CFGFUN() [32/64]

CFGFUN ( criteria_add  ,
const char *  ctype,
const char *  cvalue 
)

Definition at line 40 of file config_directives.c.

References current_match, and match_parse_property().

Here is the call graph for this function:

◆ CFGFUN() [33/64]

CFGFUN ( criteria_init  ,
int  _state 
)

Definition at line 23 of file config_directives.c.

References criteria_next_state, current_match, DLOG, match_free(), and match_init().

Here is the call graph for this function:

◆ CFGFUN() [34/64]

CFGFUN ( criteria_pop_state  )

Definition at line 31 of file config_directives.c.

References criteria_next_state.

◆ CFGFUN() [35/64]

CFGFUN ( default_border  ,
const char *  windowtype,
const char *  border,
const long  width 
)

◆ CFGFUN() [36/64]

CFGFUN ( default_orientation  ,
const char *  orientation 
)

Definition at line 178 of file config_directives.c.

References config, Config::default_orientation, HORIZ, NO_ORIENTATION, and VERT.

◆ CFGFUN() [37/64]

CFGFUN ( disable_randr15  ,
const char *  value 
)

Definition at line 261 of file config_directives.c.

References config, Config::disable_randr15, and eval_boolstr().

Here is the call graph for this function:

◆ CFGFUN() [38/64]

CFGFUN ( enter_mode  ,
const char *  pango_markup,
const char *  modename 
)

Definition at line 121 of file config_directives.c.

References current_mode, current_mode_pango_markup, DEFAULT_BINDING_MODE, DLOG, ELOG, FREE, modes, Mode::name, Mode::pango_markup, SLIST_FOREACH, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [39/64]

CFGFUN ( exec  ,
const char *  exectype,
const char *  no_startup_id,
const char *  command 
)

Definition at line 140 of file config_directives.c.

References autostarts, autostarts_always, Autostart::command, Autostart::no_startup_id, smalloc(), sstrdup(), and TAILQ_INSERT_TAIL.

Here is the call graph for this function:

◆ CFGFUN() [40/64]

CFGFUN ( fake_outputs  ,
const char *  outputs 
)

Definition at line 294 of file config_directives.c.

References config, Config::fake_outputs, outputs, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [41/64]

CFGFUN ( floating_maximum_size  ,
const long  width,
const long  height 
)

◆ CFGFUN() [42/64]

CFGFUN ( floating_minimum_size  ,
const long  width,
const long  height 
)

◆ CFGFUN() [43/64]

CFGFUN ( floating_modifier  ,
const char *  modifiers 
)

Definition at line 174 of file config_directives.c.

References config, event_state_from_str(), and Config::floating_modifier.

Here is the call graph for this function:

◆ CFGFUN() [44/64]

CFGFUN ( focus_follows_mouse  ,
const char *  value 
)

Definition at line 246 of file config_directives.c.

References config, Config::disable_focus_follows_mouse, and eval_boolstr().

Here is the call graph for this function:

◆ CFGFUN() [45/64]

CFGFUN ( focus_on_window_activation  ,
const char *  mode 
)

Definition at line 303 of file config_directives.c.

References config, DLOG, ELOG, and Config::focus_on_window_activation.

◆ CFGFUN() [46/64]

CFGFUN ( focus_wrapping  ,
const char *  value 
)

Definition at line 265 of file config_directives.c.

References config, eval_boolstr(), Config::focus_wrapping, FOCUS_WRAPPING_FORCE, FOCUS_WRAPPING_OFF, FOCUS_WRAPPING_ON, and FOCUS_WRAPPING_WORKSPACE.

Here is the call graph for this function:

◆ CFGFUN() [47/64]

CFGFUN ( font  ,
const char *  font 
)

Definition at line 97 of file config_directives.c.

References config, Config::font, font_pattern, FREE, load_font(), set_font(), and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [48/64]

CFGFUN ( for_window  ,
const char *  command 
)

◆ CFGFUN() [49/64]

CFGFUN ( force_display_urgency_hint  ,
const long  duration_ms 
)

Definition at line 299 of file config_directives.c.

References config, and Config::workspace_urgency_timer.

◆ CFGFUN() [50/64]

CFGFUN ( force_focus_wrapping  ,
const char *  value 
)

Definition at line 277 of file config_directives.c.

References config, eval_boolstr(), Config::focus_wrapping, FOCUS_WRAPPING_FORCE, and FOCUS_WRAPPING_ON.

Here is the call graph for this function:

◆ CFGFUN() [51/64]

CFGFUN ( force_xinerama  ,
const char *  value 
)

Definition at line 257 of file config_directives.c.

References config, eval_boolstr(), and Config::force_xinerama.

Here is the call graph for this function:

◆ CFGFUN() [52/64]

CFGFUN ( hide_edge_borders  ,
const char *  borders 
)

Definition at line 229 of file config_directives.c.

References config, eval_boolstr(), HEBM_BOTH, HEBM_HORIZONTAL, HEBM_NONE, HEBM_SMART, HEBM_VERTICAL, and Config::hide_edge_borders.

Here is the call graph for this function:

◆ CFGFUN() [53/64]

CFGFUN ( ipc_kill_timeout  ,
const long  timeout_ms 
)

Definition at line 481 of file config_directives.c.

References ipc_set_kill_timeout().

Here is the call graph for this function:

◆ CFGFUN() [54/64]

CFGFUN ( ipc_socket  ,
const char *  path 
)

Definition at line 373 of file config_directives.c.

References config, Config::ipc_socket_path, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [55/64]

CFGFUN ( mode_binding  ,
const char *  bindtype,
const char *  modifiers,
const char *  key,
const char *  release,
const char *  border,
const char *  whole_window,
const char *  exclude_titlebar,
const char *  command 
)

Definition at line 117 of file config_directives.c.

References configure_binding(), current_mode, and current_mode_pango_markup.

Here is the call graph for this function:

◆ CFGFUN() [56/64]

CFGFUN ( mouse_warping  ,
const char *  value 
)

◆ CFGFUN() [57/64]

CFGFUN ( no_focus  )

Definition at line 468 of file config_directives.c.

References assignments, current_match, DLOG, ELOG, Assignment::match, match_copy(), match_is_empty(), scalloc(), TAILQ_INSERT_TAIL, and Assignment::type.

Here is the call graph for this function:

◆ CFGFUN() [58/64]

CFGFUN ( popup_during_fullscreen  ,
const char *  value 
)

Definition at line 383 of file config_directives.c.

References config, and Config::popup_during_fullscreen.

◆ CFGFUN() [59/64]

CFGFUN ( restart_state  ,
const char *  path 
)

Definition at line 378 of file config_directives.c.

References config, Config::restart_state_path, and sstrdup().

Here is the call graph for this function:

◆ CFGFUN() [60/64]

CFGFUN ( show_marks  ,
const char *  value 
)

Definition at line 332 of file config_directives.c.

References config, eval_boolstr(), and Config::show_marks.

Here is the call graph for this function:

◆ CFGFUN() [61/64]

CFGFUN ( title_align  ,
const char *  alignment 
)

Definition at line 320 of file config_directives.c.

References config, and Config::title_align.

◆ CFGFUN() [62/64]

CFGFUN ( workspace  ,
const char *  workspace,
const char *  output 
)

◆ CFGFUN() [63/64]

CFGFUN ( workspace_back_and_forth  ,
const char *  value 
)

Definition at line 290 of file config_directives.c.

References config, eval_boolstr(), and Config::workspace_auto_back_and_forth.

Here is the call graph for this function:

◆ CFGFUN() [64/64]

CFGFUN ( workspace_layout  ,
const char *  layout 
)

Definition at line 187 of file config_directives.c.

References config, Config::default_layout, L_DEFAULT, L_STACKED, and L_TABBED.

◆ eval_boolstr()

static bool eval_boolstr ( const char *  str)
static

Definition at line 48 of file config_directives.c.

Referenced by CFGFUN().

◆ event_state_from_str()

i3_event_state_mask_t event_state_from_str ( const char *  str)

A utility function to convert a string containing the group and modifiers to the corresponding bit mask.

Definition at line 61 of file config_directives.c.

References I3_XKB_GROUP_MASK_1, I3_XKB_GROUP_MASK_2, I3_XKB_GROUP_MASK_3, and I3_XKB_GROUP_MASK_4.

Referenced by CFGFUN(), and configure_binding().

Variable Documentation

◆ criteria_next_state

int criteria_next_state
static

Definition at line 16 of file config_directives.c.

Referenced by CFGFUN().

◆ current_bar

Barconfig* current_bar
static

Definition at line 489 of file config_directives.c.

Referenced by bar_configure_binding(), and CFGFUN().

◆ current_mode

char* current_mode
static

Definition at line 114 of file config_directives.c.

Referenced by CFGFUN(), and reorder_bindings().

◆ current_mode_pango_markup

bool current_mode_pango_markup
static

Definition at line 115 of file config_directives.c.

Referenced by CFGFUN().

◆ current_workspace

char* current_workspace = NULL
static

Definition at line 336 of file config_directives.c.

Referenced by CFGFUN().

◆ font_pattern

char* font_pattern
static

Definition at line 95 of file config_directives.c.

Referenced by CFGFUN().