i3
Main Page
Data Structures
Files
File List
Globals
include
config.h
Go to the documentation of this file.
1
/*
2
* vim:ts=4:sw=4:expandtab
3
*
4
* i3 - an improved dynamic tiling window manager
5
* © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
6
*
7
* include/config.h: Contains all structs/variables for the configurable
8
* part of i3 as well as functions handling the configuration file (calling
9
* the parser (src/cfgparse.y) with the correct path, switching key bindings
10
* mode).
11
*
12
*/
13
#ifndef _CONFIG_H
14
#define _CONFIG_H
15
16
#include <stdbool.h>
17
#include "
queue.h
"
18
#include "
i3.h
"
19
#include "
libi3.h
"
20
21
typedef
struct
Config
Config
;
22
typedef
struct
Barconfig
Barconfig
;
23
extern
char
*
current_configpath
;
24
extern
Config
config
;
25
extern
SLIST_HEAD
(modes_head,
Mode
)
modes
;
26
extern
TAILQ_HEAD
(barconfig_head,
Barconfig
)
barconfigs
;
27
33
struct
context
{
34
bool
has_errors
;
35
bool
has_warnings
;
36
37
int
line_number
;
38
char
*
line_copy
;
39
const
char
*
filename
;
40
41
char
*
compact_error
;
42
43
/* These are the same as in YYLTYPE */
44
int
first_column
;
45
int
last_column
;
46
};
47
53
struct
Colortriple
{
54
uint32_t
border
;
55
uint32_t
background
;
56
uint32_t
text
;
57
uint32_t
indicator
;
58
};
59
65
struct
Variable
{
66
char
*
key
;
67
char
*
value
;
68
char
*
next_match
;
69
70
SLIST_ENTRY
(
Variable
) variables;
71
};
72
79
struct
Mode
{
80
char
*
name
;
81
struct
bindings_head *
bindings
;
82
83
SLIST_ENTRY
(Mode)
modes
;
84
};
85
91
struct
Config
{
92
const
char
*
terminal
;
93
i3Font
font
;
94
95
char
*
ipc_socket_path
;
96
const
char
*
restart_state_path
;
97
98
int
default_layout
;
99
int
container_stack_limit
;
100
int
container_stack_limit_value
;
101
103
int
default_orientation
;
104
109
bool
disable_focus_follows_mouse
;
110
115
bool
disable_workspace_bar
;
116
125
bool
force_focus_wrapping
;
126
135
bool
force_xinerama
;
136
138
char
*
fake_outputs
;
139
144
bool
workspace_auto_back_and_forth
;
145
147
border_style_t
default_border
;
148
150
border_style_t
default_floating_border
;
151
154
uint32_t
floating_modifier
;
155
157
int32_t
floating_maximum_width
;
158
int32_t
floating_maximum_height
;
159
int32_t
floating_minimum_width
;
160
int32_t
floating_minimum_height
;
161
162
/* Color codes are stored here */
163
struct
config_client
{
164
uint32_t
background
;
165
struct
Colortriple
focused
;
166
struct
Colortriple
focused_inactive;
167
struct
Colortriple
unfocused;
168
struct
Colortriple
urgent;
169
} client;
170
struct
config_bar
{
171
struct
Colortriple
focused
;
172
struct
Colortriple
unfocused;
173
struct
Colortriple
urgent;
174
} bar;
175
177
enum
{
178
PDF_LEAVE_FULLSCREEN = 0,
179
PDF_IGNORE = 1
180
} popup_during_fullscreen;
181
};
182
188
struct
Barconfig
{
191
char
*
id
;
192
194
int
num_outputs
;
197
char
**
outputs
;
198
201
char
*
tray_output
;
202
206
char
*
socket_path
;
207
209
enum
{ M_DOCK = 0, M_HIDE = 1 } mode;
210
212
enum
{
213
M_NONE = 0,
214
M_CONTROL = 1,
215
M_SHIFT = 2,
216
M_MOD1 = 3,
217
M_MOD2 = 4,
218
M_MOD3 = 5,
219
M_MOD4 = 6,
220
M_MOD5 = 7
221
} modifier;
222
224
enum
{ P_BOTTOM = 0, P_TOP = 1 } position;
225
229
char
*
i3bar_command
;
230
233
char
*
status_command
;
234
236
char
*
font
;
237
241
bool
hide_workspace_buttons
;
242
244
bool
verbose
;
245
246
struct
bar_colors
{
247
char
*
background
;
248
char
*
statusline
;
249
250
char
*
focused_workspace_border
;
251
char
*
focused_workspace_bg
;
252
char
*
focused_workspace_text
;
253
254
char
*
active_workspace_border
;
255
char
*
active_workspace_bg
;
256
char
*
active_workspace_text
;
257
258
char
*
inactive_workspace_border
;
259
char
*
inactive_workspace_bg
;
260
char
*
inactive_workspace_text
;
261
262
char
*
urgent_workspace_border
;
263
char
*
urgent_workspace_bg
;
264
char
*
urgent_workspace_text
;
265
}
colors
;
266
267
TAILQ_ENTRY
(
Barconfig
) configs;
268
};
269
277
void
load_configuration
(xcb_connection_t *
conn
, const
char
*override_configfile,
bool
reload);
278
283
void
translate_keysyms
(
void
);
284
290
void
ungrab_all_keys
(xcb_connection_t *conn);
291
296
void
grab_all_keys
(xcb_connection_t *conn,
bool
bind_mode_switch);
297
302
void
switch_mode
(const
char
*new_mode);
303
309
Binding
*
get_binding
(uint16_t modifiers, xcb_keycode_t keycode);
310
320
void
kill_configerror_nagbar
(
bool
wait_for_it);
321
322
/* prototype for src/cfgparse.y */
323
void
parse_file
(const
char
*f);
324
325
#endif
Generated by
1.8.1.1