add a data structure for 'bar' configuration
This commit is contained in:
parent
f26a344dfa
commit
4898f78e5e
|
@ -22,9 +22,11 @@
|
||||||
#include "i3.h"
|
#include "i3.h"
|
||||||
|
|
||||||
typedef struct Config Config;
|
typedef struct Config Config;
|
||||||
|
typedef struct Barconfig Barconfig;
|
||||||
extern char *current_configpath;
|
extern char *current_configpath;
|
||||||
extern Config config;
|
extern Config config;
|
||||||
extern SLIST_HEAD(modes_head, Mode) modes;
|
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
|
* Used during the config file lexing/parsing to keep the state of the lexer
|
||||||
|
@ -170,6 +172,72 @@ struct Config {
|
||||||
} popup_during_fullscreen;
|
} 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.
|
* Reads the configuration from ~/.i3/config or /etc/i3/config if not found.
|
||||||
*
|
*
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
char *current_configpath = NULL;
|
char *current_configpath = NULL;
|
||||||
Config config;
|
Config config;
|
||||||
struct modes_head modes;
|
struct modes_head modes;
|
||||||
|
struct barconfig_head barconfigs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ungrabs all keys, to be called before re-grabbing the keys because of a
|
* Ungrabs all keys, to be called before re-grabbing the keys because of a
|
||||||
|
|
Loading…
Reference in New Issue