2012-06-17 13:24:23 -07:00
|
|
|
#ifndef _CONFIG_H__
|
|
|
|
#define _CONFIG_H__ 1
|
|
|
|
|
2012-06-12 03:10:01 -07:00
|
|
|
typedef struct _Config Config;
|
2013-12-16 06:51:35 -08:00
|
|
|
typedef struct _Config_Color Config_Color;
|
2012-06-12 03:10:01 -07:00
|
|
|
|
2012-06-17 13:24:23 -07:00
|
|
|
/* TODO: separate config per terminal (tab, window) and global. */
|
|
|
|
|
2013-12-16 06:51:35 -08:00
|
|
|
struct _Config_Color
|
|
|
|
{
|
|
|
|
unsigned char r, g, b, a;
|
|
|
|
};
|
|
|
|
|
2012-06-12 03:10:01 -07:00
|
|
|
struct _Config
|
|
|
|
{
|
2014-05-08 05:07:37 -07:00
|
|
|
int version;
|
|
|
|
int scrollback;
|
2012-06-12 03:10:01 -07:00
|
|
|
struct {
|
|
|
|
const char *name;
|
2013-01-29 22:24:22 -08:00
|
|
|
const char *orig_name; /* not in EET */
|
2012-06-12 03:10:01 -07:00
|
|
|
int size;
|
2013-01-29 22:24:22 -08:00
|
|
|
int orig_size; /* not in EET */
|
2012-06-12 03:10:01 -07:00
|
|
|
unsigned char bitmap;
|
2013-01-29 22:24:22 -08:00
|
|
|
unsigned char orig_bitmap; /* not in EET */
|
2012-06-12 03:10:01 -07:00
|
|
|
} font;
|
2012-07-04 07:44:43 -07:00
|
|
|
struct {
|
|
|
|
const char *email;
|
|
|
|
struct {
|
|
|
|
const char *general;
|
|
|
|
const char *video;
|
|
|
|
const char *image;
|
|
|
|
} url, local;
|
|
|
|
Eina_Bool inline_please;
|
|
|
|
} helper;
|
2012-06-12 03:10:01 -07:00
|
|
|
const char *theme;
|
2014-05-08 05:07:37 -07:00
|
|
|
const char *background;
|
2012-06-12 03:10:01 -07:00
|
|
|
const char *wordsep;
|
2013-05-03 04:50:58 -07:00
|
|
|
double tab_zoom;
|
2012-06-17 00:10:27 -07:00
|
|
|
int vidmod;
|
2012-07-04 21:36:47 -07:00
|
|
|
Eina_Bool jump_on_keypress;
|
2012-06-17 13:24:23 -07:00
|
|
|
Eina_Bool jump_on_change;
|
2012-06-20 01:29:08 -07:00
|
|
|
Eina_Bool flicker_on_key;
|
2012-06-26 01:05:43 -07:00
|
|
|
Eina_Bool disable_cursor_blink;
|
2012-08-05 02:38:58 -07:00
|
|
|
Eina_Bool disable_visual_bell;
|
2014-04-22 14:32:04 -07:00
|
|
|
Eina_Bool bell_rings;
|
2014-04-11 11:20:47 -07:00
|
|
|
Eina_Bool active_links;
|
2012-06-17 13:24:23 -07:00
|
|
|
Eina_Bool translucent;
|
|
|
|
Eina_Bool mute;
|
2012-06-23 02:25:01 -07:00
|
|
|
Eina_Bool urg_bell;
|
2012-12-27 03:20:32 -08:00
|
|
|
Eina_Bool multi_instance;
|
2013-09-06 11:39:37 -07:00
|
|
|
Eina_Bool application_server;
|
|
|
|
Eina_Bool application_server_restore_views;
|
2013-06-16 13:32:50 -07:00
|
|
|
Eina_Bool xterm_256color;
|
2013-09-22 08:10:39 -07:00
|
|
|
Eina_Bool erase_is_del;
|
2013-04-17 12:59:20 -07:00
|
|
|
Eina_Bool custom_geometry;
|
2013-09-11 23:00:08 -07:00
|
|
|
Eina_Bool drag_links;
|
2014-01-11 06:21:59 -08:00
|
|
|
Eina_Bool login_shell;
|
2014-03-15 15:01:31 -07:00
|
|
|
Eina_Bool mouse_over_focus;
|
2013-04-17 12:59:20 -07:00
|
|
|
int cg_width;
|
|
|
|
int cg_height;
|
2013-12-16 06:51:35 -08:00
|
|
|
Eina_Bool colors_use;
|
|
|
|
Config_Color colors[(4 * 12)];
|
2013-06-22 17:07:27 -07:00
|
|
|
Eina_Bool miniview;
|
2013-04-17 12:59:20 -07:00
|
|
|
|
2012-06-17 13:24:23 -07:00
|
|
|
Eina_Bool temporary; /* not in EET */
|
|
|
|
const char *config_key; /* not in EET, the key that config was loaded */
|
2012-06-12 03:10:01 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
void config_init(void);
|
|
|
|
void config_shutdown(void);
|
2013-01-26 21:24:07 -08:00
|
|
|
void config_sync(const Config *config_src, Config *config);
|
2012-08-14 05:30:55 -07:00
|
|
|
void config_save(Config *config, const char *key);
|
2012-06-17 13:24:23 -07:00
|
|
|
Config *config_load(const char *key);
|
2013-01-29 22:24:22 -08:00
|
|
|
Config *config_fork(Config *config);
|
2012-06-17 13:24:23 -07:00
|
|
|
void config_del(Config *config);
|
|
|
|
|
|
|
|
const char *config_theme_path_get(const Config *config);
|
2012-06-19 08:59:49 -07:00
|
|
|
const char *config_theme_path_default_get(const Config *config);
|
2012-06-17 13:24:23 -07:00
|
|
|
|
|
|
|
#endif
|