add a data structure for 'bar' configuration
This commit is contained in:
parent
f26a344dfa
commit
4898f78e5e
|
@ -22,9 +22,11 @@
|
|||
#include "i3.h"
|
||||
|
||||
typedef struct Config Config;
|
||||
typedef struct Barconfig Barconfig;
|
||||
extern char *current_configpath;
|
||||
extern Config config;
|
||||
extern SLIST_HEAD(modes_head, Mode) modes;
|
||||
extern SLIST_HEAD(barconfig_head, Barconfig) barconfigs;
|
||||
|
||||
/**
|
||||
* Used during the config file lexing/parsing to keep the state of the lexer
|
||||
|
@ -170,6 +172,72 @@ struct Config {
|
|||
} popup_during_fullscreen;
|
||||
};
|
||||
|
||||
/**
|
||||
* Holds the status bar configuration (i3bar). One of these structures is
|
||||
* created for each 'bar' block in the config.
|
||||
*
|
||||
*/
|
||||
struct Barconfig {
|
||||
/** Automatically generated ID for this bar config. Used by the bar process
|
||||
* to request a specific configuration. */
|
||||
char *id;
|
||||
|
||||
/** Number of outputs in the outputs array */
|
||||
int num_outputs;
|
||||
/** Outputs on which this bar should show up on. We use an array for
|
||||
* simplicity (since we store just strings). */
|
||||
char **outputs;
|
||||
|
||||
/** Output on which the tray should be shown. The special value of 'no'
|
||||
* disables the tray (it’s enabled by default). */
|
||||
char *tray_output;
|
||||
|
||||
/** Path to the i3 IPC socket. This option is discouraged since programs
|
||||
* can find out the path by looking for the I3_SOCKET_PATH property on the
|
||||
* root window! */
|
||||
char *socket_path;
|
||||
|
||||
/** Bar display mode (hide unless modifier is pressed or show in dock mode) */
|
||||
enum { M_HIDE = 0, M_DOCK = 1 } mode;
|
||||
|
||||
/** Bar position (bottom by default). */
|
||||
enum { P_BOTTOM = 0, P_TOP = 1 } position;
|
||||
|
||||
/** Command that should be run to get a statusline, for example 'i3status'.
|
||||
* Will be passed to the shell. */
|
||||
char *status_command;
|
||||
|
||||
/** Font specification for all text rendered on the bar. */
|
||||
char *font;
|
||||
|
||||
/** Hide workspace buttons? Configuration option is 'workspace_buttons no'
|
||||
* but we invert the bool to get the correct default when initializing with
|
||||
* zero. */
|
||||
bool hide_workspace_buttons;
|
||||
|
||||
/** Enable verbose mode? Useful for debugging purposes. */
|
||||
bool verbose;
|
||||
|
||||
struct bar_colors {
|
||||
char *background;
|
||||
char *statusline;
|
||||
|
||||
char *focused_workspace_text;
|
||||
char *focused_workspace_bg;
|
||||
|
||||
char *active_workspace_text;
|
||||
char *active_workspace_bg;
|
||||
|
||||
char *inactive_workspace_text;
|
||||
char *inactive_workspace_bg;
|
||||
|
||||
char *urgent_workspace_text;
|
||||
char *urgent_workspace_bg;
|
||||
} colors;
|
||||
|
||||
SLIST_ENTRY(Barconfig) configs;
|
||||
};
|
||||
|
||||
/**
|
||||
* Reads the configuration from ~/.i3/config or /etc/i3/config if not found.
|
||||
*
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
char *current_configpath = NULL;
|
||||
Config config;
|
||||
struct modes_head modes;
|
||||
struct barconfig_head barconfigs;
|
||||
|
||||
/**
|
||||
* Ungrabs all keys, to be called before re-grabbing the keys because of a
|
||||
|
|
Loading…
Reference in New Issue