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 I3_CONFIG_H
14
#define I3_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
/* defined in src/cfgparse.y */
28
extern
bool
force_old_config_parser
;
29
35
struct
context
{
36
bool
has_errors
;
37
bool
has_warnings
;
38
39
int
line_number
;
40
char
*
line_copy
;
41
const
char
*
filename
;
42
43
char
*
compact_error
;
44
45
/* These are the same as in YYLTYPE */
46
int
first_column
;
47
int
last_column
;
48
};
49
55
struct
Colortriple
{
56
uint32_t
border
;
57
uint32_t
background
;
58
uint32_t
text
;
59
uint32_t
indicator
;
60
};
61
67
struct
Variable
{
68
char
*
key
;
69
char
*
value
;
70
char
*
next_match
;
71
72
SLIST_ENTRY
(
Variable
) variables;
73
};
74
81
struct
Mode
{
82
char
*
name
;
83
struct
bindings_head *
bindings
;
84
85
SLIST_ENTRY
(Mode)
modes
;
86
};
87
93
struct
Config
{
94
const
char
*
terminal
;
95
i3Font
font
;
96
97
char
*
ipc_socket_path
;
98
const
char
*
restart_state_path
;
99
100
int
default_layout
;
101
int
container_stack_limit
;
102
int
container_stack_limit_value
;
103
int
default_border_width
;
104
106
int
default_orientation
;
107
112
bool
disable_focus_follows_mouse
;
113
118
adjacent_t
hide_edge_borders
;
119
124
bool
disable_workspace_bar
;
125
134
bool
force_focus_wrapping
;
135
144
bool
force_xinerama
;
145
147
char
*
fake_outputs
;
148
153
bool
workspace_auto_back_and_forth
;
154
160
float
workspace_urgency_timer
;
161
163
border_style_t
default_border
;
164
166
border_style_t
default_floating_border
;
167
170
uint32_t
floating_modifier
;
171
173
int32_t
floating_maximum_width
;
174
int32_t
floating_maximum_height
;
175
int32_t
floating_minimum_width
;
176
int32_t
floating_minimum_height
;
177
178
/* Color codes are stored here */
179
struct
config_client
{
180
uint32_t
background
;
181
struct
Colortriple
focused
;
182
struct
Colortriple
focused_inactive;
183
struct
Colortriple
unfocused;
184
struct
Colortriple
urgent;
185
} client;
186
struct
config_bar
{
187
struct
Colortriple
focused
;
188
struct
Colortriple
unfocused;
189
struct
Colortriple
urgent;
190
} bar;
191
193
enum
{
194
/* display (and focus) the popup when it belongs to the fullscreen
195
* window only. */
196
PDF_SMART = 0,
197
198
/* leave fullscreen mode unconditionally */
199
PDF_LEAVE_FULLSCREEN = 1,
200
201
/* just ignore the popup, that is, don’t map it */
202
PDF_IGNORE = 2,
203
} popup_during_fullscreen;
204
};
205
211
struct
Barconfig
{
214
char
*
id
;
215
217
int
num_outputs
;
220
char
**
outputs
;
221
224
char
*
tray_output
;
225
229
char
*
socket_path
;
230
232
enum
{ M_DOCK = 0, M_HIDE = 1 } mode;
233
235
enum
{
236
M_NONE = 0,
237
M_CONTROL = 1,
238
M_SHIFT = 2,
239
M_MOD1 = 3,
240
M_MOD2 = 4,
241
M_MOD3 = 5,
242
M_MOD4 = 6,
243
M_MOD5 = 7
244
} modifier;
245
247
enum
{ P_BOTTOM = 0, P_TOP = 1 } position;
248
252
char
*
i3bar_command
;
253
256
char
*
status_command
;
257
259
char
*
font
;
260
264
bool
hide_workspace_buttons
;
265
267
bool
verbose
;
268
269
struct
bar_colors
{
270
char
*
background
;
271
char
*
statusline
;
272
273
char
*
focused_workspace_border
;
274
char
*
focused_workspace_bg
;
275
char
*
focused_workspace_text
;
276
277
char
*
active_workspace_border
;
278
char
*
active_workspace_bg
;
279
char
*
active_workspace_text
;
280
281
char
*
inactive_workspace_border
;
282
char
*
inactive_workspace_bg
;
283
char
*
inactive_workspace_text
;
284
285
char
*
urgent_workspace_border
;
286
char
*
urgent_workspace_bg
;
287
char
*
urgent_workspace_text
;
288
}
colors
;
289
290
TAILQ_ENTRY
(
Barconfig
) configs;
291
};
292
300
void
load_configuration
(xcb_connection_t *
conn
, const
char
*override_configfile,
bool
reload);
301
306
void
translate_keysyms
(
void
);
307
313
void
ungrab_all_keys
(xcb_connection_t *conn);
314
319
void
grab_all_keys
(xcb_connection_t *conn,
bool
bind_mode_switch);
320
325
void
switch_mode
(const
char
*new_mode);
326
332
Binding
*
get_binding
(uint16_t modifiers,
bool
key_release, xcb_keycode_t keycode);
333
343
void
kill_configerror_nagbar
(
bool
wait_for_it);
344
345
/* prototype for src/cfgparse.y */
346
void
parse_file
(const
char
*f);
347
348
#endif
Generated by
1.8.3