]> git.sur5r.net Git - i3/i3/blob - include/config.h
updated doxygen docu, added FIXMEs, fixed headers to 80chars width.
[i3/i3] / include / config.h
1 /*
2  * vim:ts=8:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  *
6  * © 2009 Michael Stapelberg and contributors
7  *
8  * See file LICENSE for license information.
9  *
10  * include/config.h: Contains all structs/variables for
11  * the configurable part of i3
12  *
13  */
14
15 /* FIXME: this file lacks documentation */
16
17 #ifndef _CONFIG_H
18 #define _CONFIG_H
19
20 #include "queue.h"
21
22 typedef struct Config Config;
23 extern Config config;
24
25 struct Colortriple {
26         uint32_t border;
27         uint32_t background;
28         uint32_t text;
29 };
30
31 struct Variable {
32         char *key;
33         char *value;
34
35         SLIST_ENTRY(Variable) variables;
36 };
37
38 struct Config {
39         const char *terminal;
40         const char *font;
41
42         /** The modifier which needs to be pressed in combination with your mouse
43          * buttons to do things with floating windows (move, resize) */
44         uint32_t floating_modifier;
45
46         /* Color codes are stored here */
47         struct config_client {
48                 struct Colortriple focused;
49                 struct Colortriple focused_inactive;
50                 struct Colortriple unfocused;
51         } client;
52         struct config_bar {
53                 struct Colortriple focused;
54                 struct Colortriple unfocused;
55         } bar;
56 };
57
58 /**
59  * Reads the configuration from ~/.i3/config or /etc/i3/config if not found.
60  *
61  * If you specify override_configpath, only this path is used to look for a
62  * configuration file.
63  *
64  */
65 void load_configuration(xcb_connection_t *conn, const char *override_configfile);
66
67 #endif