2012-10-07 10:32:50 -04:00
|
|
|
|
/*
|
|
|
|
|
* vim:ts=4:sw=4:expandtab
|
|
|
|
|
*
|
|
|
|
|
* i3 - an improved dynamic tiling window manager
|
2015-04-03 20:17:56 -04:00
|
|
|
|
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
|
2012-10-07 10:32:50 -04:00
|
|
|
|
*
|
2012-10-08 07:23:48 -04:00
|
|
|
|
* config_directives.h: all config storing functions (see config_parser.c)
|
2012-10-07 10:32:50 -04:00
|
|
|
|
*
|
|
|
|
|
*/
|
2013-12-28 21:11:50 -05:00
|
|
|
|
#pragma once
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
#include "config_parser.h"
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2014-01-27 22:45:01 -05:00
|
|
|
|
/**
|
|
|
|
|
* A utility function to convert a string of modifiers to the corresponding bit
|
|
|
|
|
* mask.
|
|
|
|
|
*/
|
|
|
|
|
uint32_t modifiers_from_str(const char *str);
|
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
/** The beginning of the prototype for every cfg_ function. */
|
2014-05-18 00:44:19 -04:00
|
|
|
|
#define I3_CFG Match *current_match, struct ConfigResultIR *result
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
/* Defines a configuration function, that is, anything that can be called by
|
|
|
|
|
* using 'call cfg_foo()' in parser-specs/.*.spec. Useful so that we don’t need
|
|
|
|
|
* to repeat the definition all the time. */
|
|
|
|
|
#define CFGFUN(name, ...) \
|
2014-06-19 05:20:32 -04:00
|
|
|
|
void cfg_##name(I3_CFG, ##__VA_ARGS__)
|
2012-10-08 07:23:48 -04:00
|
|
|
|
|
|
|
|
|
/* The following functions are called by the config parser, see
|
|
|
|
|
* parser-specs/config.spec. They get the parsed parameters and store them in
|
|
|
|
|
* our data structures, e.g. cfg_font gets a font name and stores it in
|
|
|
|
|
* config.font.
|
2012-10-07 10:32:50 -04:00
|
|
|
|
*
|
2012-10-08 07:23:48 -04:00
|
|
|
|
* Since they are so similar, individual comments were omitted. */
|
|
|
|
|
|
|
|
|
|
CFGFUN(criteria_init, int _state);
|
|
|
|
|
CFGFUN(criteria_add, const char *ctype, const char *cvalue);
|
|
|
|
|
CFGFUN(criteria_pop_state);
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(font, const char *font);
|
|
|
|
|
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(default_orientation, const char *orientation);
|
|
|
|
|
CFGFUN(workspace_layout, const char *layout);
|
|
|
|
|
CFGFUN(workspace_back_and_forth, const char *value);
|
|
|
|
|
CFGFUN(focus_follows_mouse, const char *value);
|
2014-03-24 13:03:05 -04:00
|
|
|
|
CFGFUN(mouse_warping, const char *value);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(force_focus_wrapping, const char *value);
|
|
|
|
|
CFGFUN(force_xinerama, const char *value);
|
|
|
|
|
CFGFUN(fake_outputs, const char *outputs);
|
|
|
|
|
CFGFUN(force_display_urgency_hint, const long duration_ms);
|
2015-04-03 04:16:38 -04:00
|
|
|
|
CFGFUN(delay_exit_on_zero_displays, const long duration_ms);
|
2015-03-30 16:07:48 -04:00
|
|
|
|
CFGFUN(focus_on_window_activation, const char *mode);
|
2015-03-28 19:26:49 -04:00
|
|
|
|
CFGFUN(show_marks, const char *value);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(hide_edge_borders, const char *borders);
|
|
|
|
|
CFGFUN(assign, const char *workspace);
|
2015-03-29 11:30:14 -04:00
|
|
|
|
CFGFUN(no_focus);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(ipc_socket, const char *path);
|
|
|
|
|
CFGFUN(restart_state, const char *path);
|
|
|
|
|
CFGFUN(popup_during_fullscreen, const char *value);
|
|
|
|
|
CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator);
|
|
|
|
|
CFGFUN(color_single, const char *colorclass, const char *color);
|
|
|
|
|
CFGFUN(floating_modifier, const char *modifiers);
|
|
|
|
|
CFGFUN(new_window, const char *windowtype, const char *border, const long width);
|
|
|
|
|
CFGFUN(workspace, const char *workspace, const char *output);
|
2015-04-01 21:43:46 -04:00
|
|
|
|
CFGFUN(binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command);
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(enter_mode, const char *mode);
|
2015-04-01 21:43:46 -04:00
|
|
|
|
CFGFUN(mode_binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command);
|
2012-10-07 10:32:50 -04:00
|
|
|
|
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_font, const char *font);
|
2015-03-24 18:07:25 -04:00
|
|
|
|
CFGFUN(bar_separator_symbol, const char *separator);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_mode, const char *mode);
|
introduced i3 command for changing the hidden state and the mode of i3bar
The hidden_state and mode of each i3bar instance can now be controlled from within i3.
Therefore, two new i3 command were introduced:
_
bar hidden_state show|hide|toggle [<bar_id>]
show: always show the bar
hide: normal hide mode
toggle: toggle between show and hide (individually for each bar)
_
bar mode dock|hide|invisible|toggle [<bar_id>]
hide,dock: like before
invisible: always keep the bar hidden
toggle: toggle between dock and hide (individually for each bar)
This patch introduces a hidden_state ("hidden_state hide|show") in the
barconfig, which indicates the current hidden_state of each i3bar
instance. It only affects the bar when in hide mode. Additionally, a new
invisible mode was introduced. In order to change the hidden_state or
mode of the bar from i3, a barconfig-update event was introduced, for
which a bar can subscribe and the bar then gets notified about the
currently set hidden_state and mode in its barconfig.
For convenience, an id field ("id <bar_id>") was added to the barconfig, where one can
set the desired id for the corresponding bar. If the id is not specified, i3 will
deterministically choose an id; otherwise, with the previous random approach for finding
a new id, which is actually not shared with i3bar, as it would determine its id on
startup, the event-subscription would be destroyed on reload. Still, this issue remains
when manually changing the bar_id in the config and then reloading.
fixes #833, #651
2013-05-25 08:30:00 -04:00
|
|
|
|
CFGFUN(bar_hidden_state, const char *hidden_state);
|
|
|
|
|
CFGFUN(bar_id, const char *bar_id);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_output, const char *output);
|
|
|
|
|
CFGFUN(bar_verbose, const char *verbose);
|
|
|
|
|
CFGFUN(bar_modifier, const char *modifier);
|
2014-07-04 05:53:22 -04:00
|
|
|
|
CFGFUN(bar_wheel_up_cmd, const char *command);
|
|
|
|
|
CFGFUN(bar_wheel_down_cmd, const char *command);
|
2015-05-02 15:53:23 -04:00
|
|
|
|
CFGFUN(bar_bindsym, const char *button, const char *command);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
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);
|
2015-06-09 04:06:45 -04:00
|
|
|
|
CFGFUN(bar_tray_padding, const long spacing_px);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_color_single, const char *colorclass, const char *color);
|
|
|
|
|
CFGFUN(bar_status_command, const char *command);
|
2013-08-08 23:30:14 -04:00
|
|
|
|
CFGFUN(bar_binding_mode_indicator, const char *value);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_workspace_buttons, const char *value);
|
2014-05-05 13:56:47 -04:00
|
|
|
|
CFGFUN(bar_strip_workspace_numbers, const char *value);
|
2015-05-02 15:53:23 -04:00
|
|
|
|
CFGFUN(bar_start);
|
2012-10-08 07:23:48 -04:00
|
|
|
|
CFGFUN(bar_finish);
|