blob: b74a4a9fadb7f86fdb73a45965073b39230e693a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#ifndef _CONFIG_H__
#define _CONFIG_H__ 1
#include <Evas.h>
typedef struct _Config Config;
typedef struct _Config_Color Config_Color;
typedef struct _Config_Keys Config_Keys;
struct _Config_Keys
{
const char *keyname;
Eina_Bool ctrl;
Eina_Bool alt;
Eina_Bool shift;
Eina_Bool win;
Eina_Bool meta;
Eina_Bool hyper;
const char *cb;
};
/* TODO: separate config per terminal (tab, window) and global. */
struct _Config_Color
{
unsigned char r, g, b, a;
};
typedef enum _Cursor_Shape
{
CURSOR_SHAPE_BLOCK = 0,
CURSOR_SHAPE_UNDERLINE = 1,
CURSOR_SHAPE_BAR = 2
} Cursor_Shape;
struct _Config
{
int version;
int scrollback;
struct {
const char *name;
const char *orig_name; /* not in EET */
int size;
int orig_size; /* not in EET */
unsigned char bitmap;
unsigned char orig_bitmap; /* not in EET */
unsigned char bolditalic;
} font;
struct {
const char *email;
struct {
const char *general;
const char *video;
const char *image;
} url, local;
Eina_Bool inline_please;
} helper;
const char *theme;
const char *background;
double tab_zoom;
double hide_cursor;
int vidmod;
int opacity;
int shine;
int cg_width;
int cg_height;
Eina_Bool jump_on_keypress;
Eina_Bool jump_on_change;
Eina_Bool flicker_on_key;
Eina_Bool disable_cursor_blink;
int cursor_shape;
Eina_Bool disable_visual_bell;
Eina_Bool bell_rings;
Eina_Bool active_links; /* DEPRECATED */
Eina_Bool active_links_email;
Eina_Bool active_links_file;
Eina_Bool active_links_url;
Eina_Bool active_links_escape;
Eina_Bool translucent;
Eina_Bool mute;
Eina_Bool visualize;
Eina_Bool urg_bell;
Eina_Bool multi_instance;
Eina_Bool xterm_256color;
Eina_Bool erase_is_del;
Eina_Bool custom_geometry;
Eina_Bool drag_links;
Eina_Bool login_shell;
Eina_Bool mouse_over_focus;
Eina_Bool disable_focus_visuals;
Eina_Bool colors_use;
Eina_Bool gravatar;
Eina_Bool notabs;
Eina_Bool mv_always_show;
Eina_Bool ty_escapes;
Eina_Bool changedir_to_current;
Eina_Bool emoji_dbl_width;
Config_Color colors[(4 * 12)];
Eina_List *keys;
Eina_Bool temporary; /* not in EET */
Eina_Bool font_set; /* not in EET */
};
void config_init(void);
void config_shutdown(void);
void config_sync(const Config *config_src, Config *config);
void config_save(Config *config);
Config *config_load(void);
Config *config_fork(const Config *config);
Config *config_new(void);
void config_del(Config *config);
void config_default_font_set(Config *config, Evas *evas);
void config_reset_keys(Config *config);
const char *config_theme_path_get(const Config *config);
const char *config_theme_path_default_get(const Config *config);
#define CONFIG_CURSOR_IDLE_TIMEOUT_MAX 60.0
#endif
|