config.h
1/**
2 * @file
3 * @brief Configuration file
4 *
5 * Copyright (C) 2023 Chris Noxz
6 * Author(s): Chris Noxz <chris@noxz.tech>
7 *
8 * This program is free software: you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the Free
10 * Software Foundation, either version 3 of the License, or (at your option)
11 * any later version.
12 *
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 * more details.
17 *
18 * You should have received a copy of the GNU General Public License along with
19 * this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#ifndef CONFIG_H
23#define CONFIG_H
24
25/**
26 * @brief Contains dynamically loaded configuration
27 */
28static Config cfg[CFN_LAST] = {
29 /* config name enviornment variable name webkit web view setting name config type invert default value */
30 [CFN_ACCEPTED_LANGUAGES] = { __NAME_UPPERCASE__"_ACCEPTED_LANGUAGES", NULL, CFG_LIST, FALSE, {.l = NULL }},
31 [CFN_BLOB_FILE] = { __NAME_UPPERCASE__"_BLOB_FILE", NULL, CFG_STRING, FALSE, {.s = "/tmp/." __NAME__ "_blob" }},
32 [CFN_CONSOLE_TO_STDOUT] = { __NAME_UPPERCASE__"_ENABLE_CONSOLE_TO_STDOUT", "enable-write-console-messages-to-stdout", CFG_BOOL, FALSE, {.b = FALSE }},
33 [CFN_COOKIE_FILE] = { __NAME_UPPERCASE__"_COOKIE_FILE", NULL, CFG_STRING, FALSE, {.s = NULL }},
34 [CFN_DNS_PREFETCHING] = { NULL, "enable-dns-prefetching", CFG_BOOL, FALSE, {.b = FALSE }},
35 [CFN_DEFAULT_CHARSET] = { __NAME_UPPERCASE__"_CHARSET", "default-charset", CFG_STRING, FALSE, {.s = "UTF-8" }},
36 [CFN_DEFAULT_FONT] = { __NAME_UPPERCASE__"_DEFAULT_FONT", "default-font-family", CFG_STRING, FALSE, {.s = "monospace" }},
37 [CFN_DEFAULT_FONT_SIZE] = { __NAME_UPPERCASE__"_DEFAULT_FONT_SIZE", "default-font-size", CFG_INT, FALSE, {.i = 12 }},
38 [CFN_DEVELOPER_EXTRAS] = { NULL, "enable-developer-extras", CFG_BOOL, FALSE, {.b = TRUE }},
39 [CFN_DISABLE_AUTOLOAD_IMAGES] = { __NAME_UPPERCASE__"_DISABLE_AUTO_LOAD_IMAGES", "auto-load-images", CFG_BOOL, TRUE, {.b = FALSE }},
40 [CFN_DISABLE_JAVASCRIPT] = { __NAME_UPPERCASE__"_DISABLE_JAVASCRIPT", "enable-javascript-markup", CFG_BOOL, TRUE, {.b = FALSE }},
41 [CFN_ENCRYPTED_MEDIA] = { NULL, "enable-encrypted-media", CFG_BOOL, FALSE, {.b = FALSE }},
42 [CFN_EXTERNAL_HANDLER_FILE] = { NULL, NULL, CFG_STRING, FALSE, {.s = "exthandler" }},
43 [CFN_EXTERNAL_HANDLER_KEYS] = { __NAME_UPPERCASE__"_EXTERNAL_HANDLER_KEYS", NULL, CFG_LIST, FALSE, {.l = NULL }},
44 [CFN_HISTORY_FILE] = { __NAME_UPPERCASE__"_HISTORY_FILE", NULL, CFG_STRING, FALSE, {.s = NULL }},
45 [CFN_HOME_URI] = { __NAME_UPPERCASE__"_HOME_URI", NULL, CFG_STRING, FALSE, {.s = "about:blank" }},
46 [CFN_HYPERLINK_AUDITING] = { NULL, "enable-hyperlink-auditing", CFG_BOOL, FALSE, {.b = FALSE }},
47 [CFN_JS_ACCESS_CLIPBOARD] = { NULL, "javascript-can-access-clipboard", CFG_BOOL, FALSE, {.b = FALSE }},
48 [CFN_JS_OPEN_WINDOWS] = { NULL, "javascript-can-open-windows-automatically",CFG_BOOL, FALSE, {.b = FALSE }},
49 [CFN_MONOSPACE_FONT] = { __NAME_UPPERCASE__"_MONOSPACE_FONT", "monospace-font-family", CFG_STRING, FALSE, {.s = "monospace" }},
50 [CFN_NORMAL_TAB_FORMAT] = { NULL, NULL, CFG_STRING, FALSE, {.s = "<span>%s</span>" }},
51 [CFN_PROXY_IGNORE] = { __NAME_UPPERCASE__"_PROXY_IGNORE", NULL, CFG_LIST, FALSE, {.l = NULL }},
52 [CFN_POPUP_POLICY] = { __NAME_UPPERCASE__"_POPUP_POLICY", NULL, CFG_INT, FALSE, {.i = PUP_ALLOW }},
53 [CFN_PROXY_URI] = { __NAME_UPPERCASE__"_PROXY_URI", NULL, CFG_STRING, FALSE, {.s = NULL }},
54 [CFN_SANS_SERIF_FONT] = { __NAME_UPPERCASE__"_SANS_SERIF_FONT", "sans-serif-font-family", CFG_STRING, FALSE, {.s = "sans-serif" }},
55 [CFN_SEARCH_ENGINE_URI_FORMAT] = { __NAME_UPPERCASE__"_SE_URI_FORMAT", NULL, CFG_STRING, FALSE, {.s = "https://ddg.gg?q=%s" }},
56 [CFN_SERIF_FONT] = { __NAME_UPPERCASE__"_SERIF_FONT", "serif-font-family", CFG_STRING, FALSE, {.s = "serif" }},
57 [CFN_SMOOTH_SCROLLING] = { __NAME_UPPERCASE__"_ENABLE_SMOOTH_SCROLLING", "enable-smooth-scrolling", CFG_BOOL, FALSE, {.b = FALSE }},
58 [CFN_STATE_FILE] = { __NAME_UPPERCASE__"_STATE_FILE", NULL, CFG_STRING, FALSE, {.s = NULL }},
59 [CFN_TAB_HOST] = { __NAME_UPPERCASE__"_TAB_HOST", NULL, CFG_STRING, FALSE, {.s = "_TABBED_HOST" }},
60 [CFN_USER_CSS_DIR] = { NULL, NULL, CFG_STRING, FALSE, {.s = "styles" }},
61 [CFN_URI_SCHEMES] = { NULL, NULL, CFG_LIST, FALSE, {.l = (gchar*[]){ "http", "https", "file", "about", __NAME__"-about", "data", "blob", "webkit", NULL } }},
62 [CFN_USER_SCRIPT_DIR] = { NULL, NULL, CFG_STRING, FALSE, {.s = "scripts" }},
63 [CFN_USER_AGENT] = { __NAME_UPPERCASE__"_USER_AGENT", "user-agent", CFG_STRING, FALSE, {.s = NULL }},
64 [CFN_WEB_EXTENSION_DIR] = { NULL, NULL, CFG_STRING, FALSE, {.s = "web_extensions" }},
65 [CFN_WEB_RTC] = { NULL, "enable-webrtc", CFG_BOOL, FALSE, {.b = FALSE }},
66 [CFN_XDG_SCHEMES] = { __NAME_UPPERCASE__"_XDG_SCHEMES", NULL, CFG_LIST, FALSE, {.l = NULL }},
67 [CFN_ZOOM_LEVEL] = { __NAME_UPPERCASE__"_ZOOM_LEVEL", NULL, CFG_FLOAT, FALSE, {.f = 1.0 }},
68};
69
70#endif /* !CONFIG_H */