aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-30 01:35:33 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-30 01:35:33 -0400
commit256c8128f7138808a3e7ec0a667fe6aee4db0ccf (patch)
treee63d77f02482adf66d4018b0a8fdf5e20a575599
parent9d5d2348b5e8cecd3ccfb15e32e8d83f0b765f04 (diff)
downloadrunes-256c8128f7138808a3e7ec0a667fe6aee4db0ccf.tar.gz
runes-256c8128f7138808a3e7ec0a667fe6aee4db0ccf.zip
move config stuff out to a separate struct
-rw-r--r--src/config.c598
-rw-r--r--src/config.h20
-rw-r--r--src/display.c26
-rw-r--r--src/parser.c2
-rw-r--r--src/parser.l2
-rw-r--r--src/pty-unix.c2
-rw-r--r--src/runes.h4
-rw-r--r--src/term.c4
-rw-r--r--src/term.h19
-rw-r--r--src/window-xlib.c14
10 files changed, 351 insertions, 340 deletions
diff --git a/src/config.c b/src/config.c
index d81f93e..1179a3d 100644
--- a/src/config.c
+++ b/src/config.c
@@ -25,291 +25,291 @@ void runes_config_cleanup(RunesTerm *t)
{
int i;
- free(t->font_name);
- cairo_pattern_destroy(t->cursorcolor);
- cairo_pattern_destroy(t->mousecursorcolor);
- cairo_pattern_destroy(t->fgdefault);
- cairo_pattern_destroy(t->bgdefault);
+ free(t->config.font_name);
+ cairo_pattern_destroy(t->config.cursorcolor);
+ cairo_pattern_destroy(t->config.mousecursorcolor);
+ cairo_pattern_destroy(t->config.fgdefault);
+ cairo_pattern_destroy(t->config.bgdefault);
for (i = 0; i < 256; ++i) {
- cairo_pattern_destroy(t->colors[i]);
+ cairo_pattern_destroy(t->config.colors[i]);
}
}
static void runes_config_set_defaults(RunesTerm *t)
{
- memset((void *)t, 0, sizeof(*t));
-
- t->font_name = strdup("monospace 10");
- t->bold_is_bright = 1;
- t->bold_is_bold = 1;
- t->audible_bell = 1;
- t->bell_is_urgent = 1;
-
- t->cursorcolor = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
- t->mousecursorcolor = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
-
- t->fgdefault = cairo_pattern_create_rgb(0.827, 0.827, 0.827);
- t->bgdefault = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
-
- t->colors[0] = cairo_pattern_create_rgb(0.000, 0.000, 0.000);
- t->colors[1] = cairo_pattern_create_rgb(0.804, 0.000, 0.000);
- t->colors[2] = cairo_pattern_create_rgb(0.000, 0.804, 0.000);
- t->colors[3] = cairo_pattern_create_rgb(0.804, 0.804, 0.000);
- t->colors[4] = cairo_pattern_create_rgb(0.000, 0.000, 0.804);
- t->colors[5] = cairo_pattern_create_rgb(0.804, 0.000, 0.804);
- t->colors[6] = cairo_pattern_create_rgb(0.000, 0.804, 0.804);
- t->colors[7] = cairo_pattern_create_rgb(0.898, 0.898, 0.898);
- t->colors[8] = cairo_pattern_create_rgb(0.302, 0.302, 0.302);
- t->colors[9] = cairo_pattern_create_rgb(1.000, 0.000, 0.000);
- t->colors[10] = cairo_pattern_create_rgb(0.000, 1.000, 0.000);
- t->colors[11] = cairo_pattern_create_rgb(1.000, 1.000, 0.000);
- t->colors[12] = cairo_pattern_create_rgb(0.000, 0.000, 1.000);
- t->colors[13] = cairo_pattern_create_rgb(1.000, 0.000, 1.000);
- t->colors[14] = cairo_pattern_create_rgb(0.000, 1.000, 1.000);
- t->colors[15] = cairo_pattern_create_rgb(1.000, 1.000, 1.000);
- t->colors[16] = cairo_pattern_create_rgb(0.000, 0.000, 0.000);
- t->colors[17] = cairo_pattern_create_rgb(0.000, 0.000, 0.373);
- t->colors[18] = cairo_pattern_create_rgb(0.000, 0.000, 0.529);
- t->colors[19] = cairo_pattern_create_rgb(0.000, 0.000, 0.686);
- t->colors[20] = cairo_pattern_create_rgb(0.000, 0.000, 0.843);
- t->colors[21] = cairo_pattern_create_rgb(0.000, 0.000, 1.000);
- t->colors[22] = cairo_pattern_create_rgb(0.000, 0.373, 0.000);
- t->colors[23] = cairo_pattern_create_rgb(0.000, 0.373, 0.373);
- t->colors[24] = cairo_pattern_create_rgb(0.000, 0.373, 0.529);
- t->colors[25] = cairo_pattern_create_rgb(0.000, 0.373, 0.686);
- t->colors[26] = cairo_pattern_create_rgb(0.000, 0.373, 0.843);
- t->colors[27] = cairo_pattern_create_rgb(0.000, 0.373, 1.000);
- t->colors[28] = cairo_pattern_create_rgb(0.000, 0.529, 0.000);
- t->colors[29] = cairo_pattern_create_rgb(0.000, 0.529, 0.373);
- t->colors[30] = cairo_pattern_create_rgb(0.000, 0.529, 0.529);
- t->colors[31] = cairo_pattern_create_rgb(0.000, 0.529, 0.686);
- t->colors[32] = cairo_pattern_create_rgb(0.000, 0.529, 0.843);
- t->colors[33] = cairo_pattern_create_rgb(0.000, 0.529, 1.000);
- t->colors[34] = cairo_pattern_create_rgb(0.000, 0.686, 0.000);
- t->colors[35] = cairo_pattern_create_rgb(0.000, 0.686, 0.373);
- t->colors[36] = cairo_pattern_create_rgb(0.000, 0.686, 0.529);
- t->colors[37] = cairo_pattern_create_rgb(0.000, 0.686, 0.686);
- t->colors[38] = cairo_pattern_create_rgb(0.000, 0.686, 0.843);
- t->colors[39] = cairo_pattern_create_rgb(0.000, 0.686, 1.000);
- t->colors[40] = cairo_pattern_create_rgb(0.000, 0.843, 0.000);
- t->colors[41] = cairo_pattern_create_rgb(0.000, 0.843, 0.373);
- t->colors[42] = cairo_pattern_create_rgb(0.000, 0.843, 0.529);
- t->colors[43] = cairo_pattern_create_rgb(0.000, 0.843, 0.686);
- t->colors[44] = cairo_pattern_create_rgb(0.000, 0.843, 0.843);
- t->colors[45] = cairo_pattern_create_rgb(0.000, 0.843, 1.000);
- t->colors[46] = cairo_pattern_create_rgb(0.000, 1.000, 0.000);
- t->colors[47] = cairo_pattern_create_rgb(0.000, 1.000, 0.373);
- t->colors[48] = cairo_pattern_create_rgb(0.000, 1.000, 0.529);
- t->colors[49] = cairo_pattern_create_rgb(0.000, 1.000, 0.686);
- t->colors[50] = cairo_pattern_create_rgb(0.000, 1.000, 0.843);
- t->colors[51] = cairo_pattern_create_rgb(0.000, 1.000, 1.000);
- t->colors[52] = cairo_pattern_create_rgb(0.373, 0.000, 0.000);
- t->colors[53] = cairo_pattern_create_rgb(0.373, 0.000, 0.373);
- t->colors[54] = cairo_pattern_create_rgb(0.373, 0.000, 0.529);
- t->colors[55] = cairo_pattern_create_rgb(0.373, 0.000, 0.686);
- t->colors[56] = cairo_pattern_create_rgb(0.373, 0.000, 0.843);
- t->colors[57] = cairo_pattern_create_rgb(0.373, 0.000, 1.000);
- t->colors[58] = cairo_pattern_create_rgb(0.373, 0.373, 0.000);
- t->colors[59] = cairo_pattern_create_rgb(0.373, 0.373, 0.373);
- t->colors[60] = cairo_pattern_create_rgb(0.373, 0.373, 0.529);
- t->colors[61] = cairo_pattern_create_rgb(0.373, 0.373, 0.686);
- t->colors[62] = cairo_pattern_create_rgb(0.373, 0.373, 0.843);
- t->colors[63] = cairo_pattern_create_rgb(0.373, 0.373, 1.000);
- t->colors[64] = cairo_pattern_create_rgb(0.373, 0.529, 0.000);
- t->colors[65] = cairo_pattern_create_rgb(0.373, 0.529, 0.373);
- t->colors[66] = cairo_pattern_create_rgb(0.373, 0.529, 0.529);
- t->colors[67] = cairo_pattern_create_rgb(0.373, 0.529, 0.686);
- t->colors[68] = cairo_pattern_create_rgb(0.373, 0.529, 0.843);
- t->colors[69] = cairo_pattern_create_rgb(0.373, 0.529, 1.000);
- t->colors[70] = cairo_pattern_create_rgb(0.373, 0.686, 0.000);
- t->colors[71] = cairo_pattern_create_rgb(0.373, 0.686, 0.373);
- t->colors[72] = cairo_pattern_create_rgb(0.373, 0.686, 0.529);
- t->colors[73] = cairo_pattern_create_rgb(0.373, 0.686, 0.686);
- t->colors[74] = cairo_pattern_create_rgb(0.373, 0.686, 0.843);
- t->colors[75] = cairo_pattern_create_rgb(0.373, 0.686, 1.000);
- t->colors[76] = cairo_pattern_create_rgb(0.373, 0.843, 0.000);
- t->colors[77] = cairo_pattern_create_rgb(0.373, 0.843, 0.373);
- t->colors[78] = cairo_pattern_create_rgb(0.373, 0.843, 0.529);
- t->colors[79] = cairo_pattern_create_rgb(0.373, 0.843, 0.686);
- t->colors[80] = cairo_pattern_create_rgb(0.373, 0.843, 0.843);
- t->colors[81] = cairo_pattern_create_rgb(0.373, 0.843, 1.000);
- t->colors[82] = cairo_pattern_create_rgb(0.373, 1.000, 0.000);
- t->colors[83] = cairo_pattern_create_rgb(0.373, 1.000, 0.373);
- t->colors[84] = cairo_pattern_create_rgb(0.373, 1.000, 0.529);
- t->colors[85] = cairo_pattern_create_rgb(0.373, 1.000, 0.686);
- t->colors[86] = cairo_pattern_create_rgb(0.373, 1.000, 0.843);
- t->colors[87] = cairo_pattern_create_rgb(0.373, 1.000, 1.000);
- t->colors[88] = cairo_pattern_create_rgb(0.529, 0.000, 0.000);
- t->colors[89] = cairo_pattern_create_rgb(0.529, 0.000, 0.373);
- t->colors[90] = cairo_pattern_create_rgb(0.529, 0.000, 0.529);
- t->colors[91] = cairo_pattern_create_rgb(0.529, 0.000, 0.686);
- t->colors[92] = cairo_pattern_create_rgb(0.529, 0.000, 0.843);
- t->colors[93] = cairo_pattern_create_rgb(0.529, 0.000, 1.000);
- t->colors[94] = cairo_pattern_create_rgb(0.529, 0.373, 0.000);
- t->colors[95] = cairo_pattern_create_rgb(0.529, 0.373, 0.373);
- t->colors[96] = cairo_pattern_create_rgb(0.529, 0.373, 0.529);
- t->colors[97] = cairo_pattern_create_rgb(0.529, 0.373, 0.686);
- t->colors[98] = cairo_pattern_create_rgb(0.529, 0.373, 0.843);
- t->colors[99] = cairo_pattern_create_rgb(0.529, 0.373, 1.000);
- t->colors[100] = cairo_pattern_create_rgb(0.529, 0.529, 0.000);
- t->colors[101] = cairo_pattern_create_rgb(0.529, 0.529, 0.373);
- t->colors[102] = cairo_pattern_create_rgb(0.529, 0.529, 0.529);
- t->colors[103] = cairo_pattern_create_rgb(0.529, 0.529, 0.686);
- t->colors[104] = cairo_pattern_create_rgb(0.529, 0.529, 0.843);
- t->colors[105] = cairo_pattern_create_rgb(0.529, 0.529, 1.000);
- t->colors[106] = cairo_pattern_create_rgb(0.529, 0.686, 0.000);
- t->colors[107] = cairo_pattern_create_rgb(0.529, 0.686, 0.373);
- t->colors[108] = cairo_pattern_create_rgb(0.529, 0.686, 0.529);
- t->colors[109] = cairo_pattern_create_rgb(0.529, 0.686, 0.686);
- t->colors[110] = cairo_pattern_create_rgb(0.529, 0.686, 0.843);
- t->colors[111] = cairo_pattern_create_rgb(0.529, 0.686, 1.000);
- t->colors[112] = cairo_pattern_create_rgb(0.529, 0.843, 0.000);
- t->colors[113] = cairo_pattern_create_rgb(0.529, 0.843, 0.373);
- t->colors[114] = cairo_pattern_create_rgb(0.529, 0.843, 0.529);
- t->colors[115] = cairo_pattern_create_rgb(0.529, 0.843, 0.686);
- t->colors[116] = cairo_pattern_create_rgb(0.529, 0.843, 0.843);
- t->colors[117] = cairo_pattern_create_rgb(0.529, 0.843, 1.000);
- t->colors[118] = cairo_pattern_create_rgb(0.529, 1.000, 0.000);
- t->colors[119] = cairo_pattern_create_rgb(0.529, 1.000, 0.373);
- t->colors[120] = cairo_pattern_create_rgb(0.529, 1.000, 0.529);
- t->colors[121] = cairo_pattern_create_rgb(0.529, 1.000, 0.686);
- t->colors[122] = cairo_pattern_create_rgb(0.529, 1.000, 0.843);
- t->colors[123] = cairo_pattern_create_rgb(0.529, 1.000, 1.000);
- t->colors[124] = cairo_pattern_create_rgb(0.686, 0.000, 0.000);
- t->colors[125] = cairo_pattern_create_rgb(0.686, 0.000, 0.373);
- t->colors[126] = cairo_pattern_create_rgb(0.686, 0.000, 0.529);
- t->colors[127] = cairo_pattern_create_rgb(0.686, 0.000, 0.686);
- t->colors[128] = cairo_pattern_create_rgb(0.686, 0.000, 0.843);
- t->colors[129] = cairo_pattern_create_rgb(0.686, 0.000, 1.000);
- t->colors[130] = cairo_pattern_create_rgb(0.686, 0.373, 0.000);
- t->colors[131] = cairo_pattern_create_rgb(0.686, 0.373, 0.373);
- t->colors[132] = cairo_pattern_create_rgb(0.686, 0.373, 0.529);
- t->colors[133] = cairo_pattern_create_rgb(0.686, 0.373, 0.686);
- t->colors[134] = cairo_pattern_create_rgb(0.686, 0.373, 0.843);
- t->colors[135] = cairo_pattern_create_rgb(0.686, 0.373, 1.000);
- t->colors[136] = cairo_pattern_create_rgb(0.686, 0.529, 0.000);
- t->colors[137] = cairo_pattern_create_rgb(0.686, 0.529, 0.373);
- t->colors[138] = cairo_pattern_create_rgb(0.686, 0.529, 0.529);
- t->colors[139] = cairo_pattern_create_rgb(0.686, 0.529, 0.686);
- t->colors[140] = cairo_pattern_create_rgb(0.686, 0.529, 0.843);
- t->colors[141] = cairo_pattern_create_rgb(0.686, 0.529, 1.000);
- t->colors[142] = cairo_pattern_create_rgb(0.686, 0.686, 0.000);
- t->colors[143] = cairo_pattern_create_rgb(0.686, 0.686, 0.373);
- t->colors[144] = cairo_pattern_create_rgb(0.686, 0.686, 0.529);
- t->colors[145] = cairo_pattern_create_rgb(0.686, 0.686, 0.686);
- t->colors[146] = cairo_pattern_create_rgb(0.686, 0.686, 0.843);
- t->colors[147] = cairo_pattern_create_rgb(0.686, 0.686, 1.000);
- t->colors[148] = cairo_pattern_create_rgb(0.686, 0.843, 0.000);
- t->colors[149] = cairo_pattern_create_rgb(0.686, 0.843, 0.373);
- t->colors[150] = cairo_pattern_create_rgb(0.686, 0.843, 0.529);
- t->colors[151] = cairo_pattern_create_rgb(0.686, 0.843, 0.686);
- t->colors[152] = cairo_pattern_create_rgb(0.686, 0.843, 0.843);
- t->colors[153] = cairo_pattern_create_rgb(0.686, 0.843, 1.000);
- t->colors[154] = cairo_pattern_create_rgb(0.686, 1.000, 0.000);
- t->colors[155] = cairo_pattern_create_rgb(0.686, 1.000, 0.373);
- t->colors[156] = cairo_pattern_create_rgb(0.686, 1.000, 0.529);
- t->colors[157] = cairo_pattern_create_rgb(0.686, 1.000, 0.686);
- t->colors[158] = cairo_pattern_create_rgb(0.686, 1.000, 0.843);
- t->colors[159] = cairo_pattern_create_rgb(0.686, 1.000, 1.000);
- t->colors[160] = cairo_pattern_create_rgb(0.843, 0.000, 0.000);
- t->colors[161] = cairo_pattern_create_rgb(0.843, 0.000, 0.373);
- t->colors[162] = cairo_pattern_create_rgb(0.843, 0.000, 0.529);
- t->colors[163] = cairo_pattern_create_rgb(0.843, 0.000, 0.686);
- t->colors[164] = cairo_pattern_create_rgb(0.843, 0.000, 0.843);
- t->colors[165] = cairo_pattern_create_rgb(0.843, 0.000, 1.000);
- t->colors[166] = cairo_pattern_create_rgb(0.843, 0.373, 0.000);
- t->colors[167] = cairo_pattern_create_rgb(0.843, 0.373, 0.373);
- t->colors[168] = cairo_pattern_create_rgb(0.843, 0.373, 0.529);
- t->colors[169] = cairo_pattern_create_rgb(0.843, 0.373, 0.686);
- t->colors[170] = cairo_pattern_create_rgb(0.843, 0.373, 0.843);
- t->colors[171] = cairo_pattern_create_rgb(0.843, 0.373, 1.000);
- t->colors[172] = cairo_pattern_create_rgb(0.843, 0.529, 0.000);
- t->colors[173] = cairo_pattern_create_rgb(0.843, 0.529, 0.373);
- t->colors[174] = cairo_pattern_create_rgb(0.843, 0.529, 0.529);
- t->colors[175] = cairo_pattern_create_rgb(0.843, 0.529, 0.686);
- t->colors[176] = cairo_pattern_create_rgb(0.843, 0.529, 0.843);
- t->colors[177] = cairo_pattern_create_rgb(0.843, 0.529, 1.000);
- t->colors[178] = cairo_pattern_create_rgb(0.843, 0.686, 0.000);
- t->colors[179] = cairo_pattern_create_rgb(0.843, 0.686, 0.373);
- t->colors[180] = cairo_pattern_create_rgb(0.843, 0.686, 0.529);
- t->colors[181] = cairo_pattern_create_rgb(0.843, 0.686, 0.686);
- t->colors[182] = cairo_pattern_create_rgb(0.843, 0.686, 0.843);
- t->colors[183] = cairo_pattern_create_rgb(0.843, 0.686, 1.000);
- t->colors[184] = cairo_pattern_create_rgb(0.843, 0.843, 0.000);
- t->colors[185] = cairo_pattern_create_rgb(0.843, 0.843, 0.373);
- t->colors[186] = cairo_pattern_create_rgb(0.843, 0.843, 0.529);
- t->colors[187] = cairo_pattern_create_rgb(0.843, 0.843, 0.686);
- t->colors[188] = cairo_pattern_create_rgb(0.843, 0.843, 0.843);
- t->colors[189] = cairo_pattern_create_rgb(0.843, 0.843, 1.000);
- t->colors[190] = cairo_pattern_create_rgb(0.843, 1.000, 0.000);
- t->colors[191] = cairo_pattern_create_rgb(0.843, 1.000, 0.373);
- t->colors[192] = cairo_pattern_create_rgb(0.843, 1.000, 0.529);
- t->colors[193] = cairo_pattern_create_rgb(0.843, 1.000, 0.686);
- t->colors[194] = cairo_pattern_create_rgb(0.843, 1.000, 0.843);
- t->colors[195] = cairo_pattern_create_rgb(0.843, 1.000, 1.000);
- t->colors[196] = cairo_pattern_create_rgb(1.000, 0.000, 0.000);
- t->colors[197] = cairo_pattern_create_rgb(1.000, 0.000, 0.373);
- t->colors[198] = cairo_pattern_create_rgb(1.000, 0.000, 0.529);
- t->colors[199] = cairo_pattern_create_rgb(1.000, 0.000, 0.686);
- t->colors[200] = cairo_pattern_create_rgb(1.000, 0.000, 0.843);
- t->colors[201] = cairo_pattern_create_rgb(1.000, 0.000, 1.000);
- t->colors[202] = cairo_pattern_create_rgb(1.000, 0.373, 0.000);
- t->colors[203] = cairo_pattern_create_rgb(1.000, 0.373, 0.373);
- t->colors[204] = cairo_pattern_create_rgb(1.000, 0.373, 0.529);
- t->colors[205] = cairo_pattern_create_rgb(1.000, 0.373, 0.686);
- t->colors[206] = cairo_pattern_create_rgb(1.000, 0.373, 0.843);
- t->colors[207] = cairo_pattern_create_rgb(1.000, 0.373, 1.000);
- t->colors[208] = cairo_pattern_create_rgb(1.000, 0.529, 0.000);
- t->colors[209] = cairo_pattern_create_rgb(1.000, 0.529, 0.373);
- t->colors[210] = cairo_pattern_create_rgb(1.000, 0.529, 0.529);
- t->colors[211] = cairo_pattern_create_rgb(1.000, 0.529, 0.686);
- t->colors[212] = cairo_pattern_create_rgb(1.000, 0.529, 0.843);
- t->colors[213] = cairo_pattern_create_rgb(1.000, 0.529, 1.000);
- t->colors[214] = cairo_pattern_create_rgb(1.000, 0.686, 0.000);
- t->colors[215] = cairo_pattern_create_rgb(1.000, 0.686, 0.373);
- t->colors[216] = cairo_pattern_create_rgb(1.000, 0.686, 0.529);
- t->colors[217] = cairo_pattern_create_rgb(1.000, 0.686, 0.686);
- t->colors[218] = cairo_pattern_create_rgb(1.000, 0.686, 0.843);
- t->colors[219] = cairo_pattern_create_rgb(1.000, 0.686, 1.000);
- t->colors[220] = cairo_pattern_create_rgb(1.000, 0.843, 0.000);
- t->colors[221] = cairo_pattern_create_rgb(1.000, 0.843, 0.373);
- t->colors[222] = cairo_pattern_create_rgb(1.000, 0.843, 0.529);
- t->colors[223] = cairo_pattern_create_rgb(1.000, 0.843, 0.686);
- t->colors[224] = cairo_pattern_create_rgb(1.000, 0.843, 0.843);
- t->colors[225] = cairo_pattern_create_rgb(1.000, 0.843, 1.000);
- t->colors[226] = cairo_pattern_create_rgb(1.000, 1.000, 0.000);
- t->colors[227] = cairo_pattern_create_rgb(1.000, 1.000, 0.373);
- t->colors[228] = cairo_pattern_create_rgb(1.000, 1.000, 0.529);
- t->colors[229] = cairo_pattern_create_rgb(1.000, 1.000, 0.686);
- t->colors[230] = cairo_pattern_create_rgb(1.000, 1.000, 0.843);
- t->colors[231] = cairo_pattern_create_rgb(1.000, 1.000, 1.000);
- t->colors[232] = cairo_pattern_create_rgb(0.031, 0.031, 0.031);
- t->colors[233] = cairo_pattern_create_rgb(0.071, 0.071, 0.071);
- t->colors[234] = cairo_pattern_create_rgb(0.110, 0.110, 0.110);
- t->colors[235] = cairo_pattern_create_rgb(0.149, 0.149, 0.149);
- t->colors[236] = cairo_pattern_create_rgb(0.188, 0.188, 0.188);
- t->colors[237] = cairo_pattern_create_rgb(0.227, 0.227, 0.227);
- t->colors[238] = cairo_pattern_create_rgb(0.267, 0.267, 0.267);
- t->colors[239] = cairo_pattern_create_rgb(0.306, 0.306, 0.306);
- t->colors[240] = cairo_pattern_create_rgb(0.345, 0.345, 0.345);
- t->colors[241] = cairo_pattern_create_rgb(0.376, 0.376, 0.376);
- t->colors[242] = cairo_pattern_create_rgb(0.400, 0.400, 0.400);
- t->colors[243] = cairo_pattern_create_rgb(0.463, 0.463, 0.463);
- t->colors[244] = cairo_pattern_create_rgb(0.502, 0.502, 0.502);
- t->colors[245] = cairo_pattern_create_rgb(0.541, 0.541, 0.541);
- t->colors[246] = cairo_pattern_create_rgb(0.580, 0.580, 0.580);
- t->colors[247] = cairo_pattern_create_rgb(0.620, 0.620, 0.620);
- t->colors[248] = cairo_pattern_create_rgb(0.659, 0.659, 0.659);
- t->colors[249] = cairo_pattern_create_rgb(0.698, 0.698, 0.698);
- t->colors[250] = cairo_pattern_create_rgb(0.737, 0.737, 0.737);
- t->colors[251] = cairo_pattern_create_rgb(0.776, 0.776, 0.776);
- t->colors[252] = cairo_pattern_create_rgb(0.816, 0.816, 0.816);
- t->colors[253] = cairo_pattern_create_rgb(0.855, 0.855, 0.855);
- t->colors[254] = cairo_pattern_create_rgb(0.894, 0.894, 0.894);
- t->colors[255] = cairo_pattern_create_rgb(0.933, 0.933, 0.933);
-
- t->default_rows = 24;
- t->default_cols = 80;
+ RunesConfig *config = &t->config;
+
+ config->font_name = strdup("monospace 10");
+ config->bold_is_bright = 1;
+ config->bold_is_bold = 1;
+ config->audible_bell = 1;
+ config->bell_is_urgent = 1;
+
+ config->cursorcolor = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
+ config->mousecursorcolor = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
+
+ config->fgdefault = cairo_pattern_create_rgb(0.827, 0.827, 0.827);
+ config->bgdefault = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
+
+ config->colors[0] = cairo_pattern_create_rgb(0.000, 0.000, 0.000);
+ config->colors[1] = cairo_pattern_create_rgb(0.804, 0.000, 0.000);
+ config->colors[2] = cairo_pattern_create_rgb(0.000, 0.804, 0.000);
+ config->colors[3] = cairo_pattern_create_rgb(0.804, 0.804, 0.000);
+ config->colors[4] = cairo_pattern_create_rgb(0.000, 0.000, 0.804);
+ config->colors[5] = cairo_pattern_create_rgb(0.804, 0.000, 0.804);
+ config->colors[6] = cairo_pattern_create_rgb(0.000, 0.804, 0.804);
+ config->colors[7] = cairo_pattern_create_rgb(0.898, 0.898, 0.898);
+ config->colors[8] = cairo_pattern_create_rgb(0.302, 0.302, 0.302);
+ config->colors[9] = cairo_pattern_create_rgb(1.000, 0.000, 0.000);
+ config->colors[10] = cairo_pattern_create_rgb(0.000, 1.000, 0.000);
+ config->colors[11] = cairo_pattern_create_rgb(1.000, 1.000, 0.000);
+ config->colors[12] = cairo_pattern_create_rgb(0.000, 0.000, 1.000);
+ config->colors[13] = cairo_pattern_create_rgb(1.000, 0.000, 1.000);
+ config->colors[14] = cairo_pattern_create_rgb(0.000, 1.000, 1.000);
+ config->colors[15] = cairo_pattern_create_rgb(1.000, 1.000, 1.000);
+ config->colors[16] = cairo_pattern_create_rgb(0.000, 0.000, 0.000);
+ config->colors[17] = cairo_pattern_create_rgb(0.000, 0.000, 0.373);
+ config->colors[18] = cairo_pattern_create_rgb(0.000, 0.000, 0.529);
+ config->colors[19] = cairo_pattern_create_rgb(0.000, 0.000, 0.686);
+ config->colors[20] = cairo_pattern_create_rgb(0.000, 0.000, 0.843);
+ config->colors[21] = cairo_pattern_create_rgb(0.000, 0.000, 1.000);
+ config->colors[22] = cairo_pattern_create_rgb(0.000, 0.373, 0.000);
+ config->colors[23] = cairo_pattern_create_rgb(0.000, 0.373, 0.373);
+ config->colors[24] = cairo_pattern_create_rgb(0.000, 0.373, 0.529);
+ config->colors[25] = cairo_pattern_create_rgb(0.000, 0.373, 0.686);
+ config->colors[26] = cairo_pattern_create_rgb(0.000, 0.373, 0.843);
+ config->colors[27] = cairo_pattern_create_rgb(0.000, 0.373, 1.000);
+ config->colors[28] = cairo_pattern_create_rgb(0.000, 0.529, 0.000);
+ config->colors[29] = cairo_pattern_create_rgb(0.000, 0.529, 0.373);
+ config->colors[30] = cairo_pattern_create_rgb(0.000, 0.529, 0.529);
+ config->colors[31] = cairo_pattern_create_rgb(0.000, 0.529, 0.686);
+ config->colors[32] = cairo_pattern_create_rgb(0.000, 0.529, 0.843);
+ config->colors[33] = cairo_pattern_create_rgb(0.000, 0.529, 1.000);
+ config->colors[34] = cairo_pattern_create_rgb(0.000, 0.686, 0.000);
+ config->colors[35] = cairo_pattern_create_rgb(0.000, 0.686, 0.373);
+ config->colors[36] = cairo_pattern_create_rgb(0.000, 0.686, 0.529);
+ config->colors[37] = cairo_pattern_create_rgb(0.000, 0.686, 0.686);
+ config->colors[38] = cairo_pattern_create_rgb(0.000, 0.686, 0.843);
+ config->colors[39] = cairo_pattern_create_rgb(0.000, 0.686, 1.000);
+ config->colors[40] = cairo_pattern_create_rgb(0.000, 0.843, 0.000);
+ config->colors[41] = cairo_pattern_create_rgb(0.000, 0.843, 0.373);
+ config->colors[42] = cairo_pattern_create_rgb(0.000, 0.843, 0.529);
+ config->colors[43] = cairo_pattern_create_rgb(0.000, 0.843, 0.686);
+ config->colors[44] = cairo_pattern_create_rgb(0.000, 0.843, 0.843);
+ config->colors[45] = cairo_pattern_create_rgb(0.000, 0.843, 1.000);
+ config->colors[46] = cairo_pattern_create_rgb(0.000, 1.000, 0.000);
+ config->colors[47] = cairo_pattern_create_rgb(0.000, 1.000, 0.373);
+ config->colors[48] = cairo_pattern_create_rgb(0.000, 1.000, 0.529);
+ config->colors[49] = cairo_pattern_create_rgb(0.000, 1.000, 0.686);
+ config->colors[50] = cairo_pattern_create_rgb(0.000, 1.000, 0.843);
+ config->colors[51] = cairo_pattern_create_rgb(0.000, 1.000, 1.000);
+ config->colors[52] = cairo_pattern_create_rgb(0.373, 0.000, 0.000);
+ config->colors[53] = cairo_pattern_create_rgb(0.373, 0.000, 0.373);
+ config->colors[54] = cairo_pattern_create_rgb(0.373, 0.000, 0.529);
+ config->colors[55] = cairo_pattern_create_rgb(0.373, 0.000, 0.686);
+ config->colors[56] = cairo_pattern_create_rgb(0.373, 0.000, 0.843);
+ config->colors[57] = cairo_pattern_create_rgb(0.373, 0.000, 1.000);
+ config->colors[58] = cairo_pattern_create_rgb(0.373, 0.373, 0.000);
+ config->colors[59] = cairo_pattern_create_rgb(0.373, 0.373, 0.373);
+ config->colors[60] = cairo_pattern_create_rgb(0.373, 0.373, 0.529);
+ config->colors[61] = cairo_pattern_create_rgb(0.373, 0.373, 0.686);
+ config->colors[62] = cairo_pattern_create_rgb(0.373, 0.373, 0.843);
+ config->colors[63] = cairo_pattern_create_rgb(0.373, 0.373, 1.000);
+ config->colors[64] = cairo_pattern_create_rgb(0.373, 0.529, 0.000);
+ config->colors[65] = cairo_pattern_create_rgb(0.373, 0.529, 0.373);
+ config->colors[66] = cairo_pattern_create_rgb(0.373, 0.529, 0.529);
+ config->colors[67] = cairo_pattern_create_rgb(0.373, 0.529, 0.686);
+ config->colors[68] = cairo_pattern_create_rgb(0.373, 0.529, 0.843);
+ config->colors[69] = cairo_pattern_create_rgb(0.373, 0.529, 1.000);
+ config->colors[70] = cairo_pattern_create_rgb(0.373, 0.686, 0.000);
+ config->colors[71] = cairo_pattern_create_rgb(0.373, 0.686, 0.373);
+ config->colors[72] = cairo_pattern_create_rgb(0.373, 0.686, 0.529);
+ config->colors[73] = cairo_pattern_create_rgb(0.373, 0.686, 0.686);
+ config->colors[74] = cairo_pattern_create_rgb(0.373, 0.686, 0.843);
+ config->colors[75] = cairo_pattern_create_rgb(0.373, 0.686, 1.000);
+ config->colors[76] = cairo_pattern_create_rgb(0.373, 0.843, 0.000);
+ config->colors[77] = cairo_pattern_create_rgb(0.373, 0.843, 0.373);
+ config->colors[78] = cairo_pattern_create_rgb(0.373, 0.843, 0.529);
+ config->colors[79] = cairo_pattern_create_rgb(0.373, 0.843, 0.686);
+ config->colors[80] = cairo_pattern_create_rgb(0.373, 0.843, 0.843);
+ config->colors[81] = cairo_pattern_create_rgb(0.373, 0.843, 1.000);
+ config->colors[82] = cairo_pattern_create_rgb(0.373, 1.000, 0.000);
+ config->colors[83] = cairo_pattern_create_rgb(0.373, 1.000, 0.373);
+ config->colors[84] = cairo_pattern_create_rgb(0.373, 1.000, 0.529);
+ config->colors[85] = cairo_pattern_create_rgb(0.373, 1.000, 0.686);
+ config->colors[86] = cairo_pattern_create_rgb(0.373, 1.000, 0.843);
+ config->colors[87] = cairo_pattern_create_rgb(0.373, 1.000, 1.000);
+ config->colors[88] = cairo_pattern_create_rgb(0.529, 0.000, 0.000);
+ config->colors[89] = cairo_pattern_create_rgb(0.529, 0.000, 0.373);
+ config->colors[90] = cairo_pattern_create_rgb(0.529, 0.000, 0.529);
+ config->colors[91] = cairo_pattern_create_rgb(0.529, 0.000, 0.686);
+ config->colors[92] = cairo_pattern_create_rgb(0.529, 0.000, 0.843);
+ config->colors[93] = cairo_pattern_create_rgb(0.529, 0.000, 1.000);
+ config->colors[94] = cairo_pattern_create_rgb(0.529, 0.373, 0.000);
+ config->colors[95] = cairo_pattern_create_rgb(0.529, 0.373, 0.373);
+ config->colors[96] = cairo_pattern_create_rgb(0.529, 0.373, 0.529);
+ config->colors[97] = cairo_pattern_create_rgb(0.529, 0.373, 0.686);
+ config->colors[98] = cairo_pattern_create_rgb(0.529, 0.373, 0.843);
+ config->colors[99] = cairo_pattern_create_rgb(0.529, 0.373, 1.000);
+ config->colors[100] = cairo_pattern_create_rgb(0.529, 0.529, 0.000);
+ config->colors[101] = cairo_pattern_create_rgb(0.529, 0.529, 0.373);
+ config->colors[102] = cairo_pattern_create_rgb(0.529, 0.529, 0.529);
+ config->colors[103] = cairo_pattern_create_rgb(0.529, 0.529, 0.686);
+ config->colors[104] = cairo_pattern_create_rgb(0.529, 0.529, 0.843);
+ config->colors[105] = cairo_pattern_create_rgb(0.529, 0.529, 1.000);
+ config->colors[106] = cairo_pattern_create_rgb(0.529, 0.686, 0.000);
+ config->colors[107] = cairo_pattern_create_rgb(0.529, 0.686, 0.373);
+ config->colors[108] = cairo_pattern_create_rgb(0.529, 0.686, 0.529);
+ config->colors[109] = cairo_pattern_create_rgb(0.529, 0.686, 0.686);
+ config->colors[110] = cairo_pattern_create_rgb(0.529, 0.686, 0.843);
+ config->colors[111] = cairo_pattern_create_rgb(0.529, 0.686, 1.000);
+ config->colors[112] = cairo_pattern_create_rgb(0.529, 0.843, 0.000);
+ config->colors[113] = cairo_pattern_create_rgb(0.529, 0.843, 0.373);
+ config->colors[114] = cairo_pattern_create_rgb(0.529, 0.843, 0.529);
+ config->colors[115] = cairo_pattern_create_rgb(0.529, 0.843, 0.686);
+ config->colors[116] = cairo_pattern_create_rgb(0.529, 0.843, 0.843);
+ config->colors[117] = cairo_pattern_create_rgb(0.529, 0.843, 1.000);
+ config->colors[118] = cairo_pattern_create_rgb(0.529, 1.000, 0.000);
+ config->colors[119] = cairo_pattern_create_rgb(0.529, 1.000, 0.373);
+ config->colors[120] = cairo_pattern_create_rgb(0.529, 1.000, 0.529);
+ config->colors[121] = cairo_pattern_create_rgb(0.529, 1.000, 0.686);
+ config->colors[122] = cairo_pattern_create_rgb(0.529, 1.000, 0.843);
+ config->colors[123] = cairo_pattern_create_rgb(0.529, 1.000, 1.000);
+ config->colors[124] = cairo_pattern_create_rgb(0.686, 0.000, 0.000);
+ config->colors[125] = cairo_pattern_create_rgb(0.686, 0.000, 0.373);
+ config->colors[126] = cairo_pattern_create_rgb(0.686, 0.000, 0.529);
+ config->colors[127] = cairo_pattern_create_rgb(0.686, 0.000, 0.686);
+ config->colors[128] = cairo_pattern_create_rgb(0.686, 0.000, 0.843);
+ config->colors[129] = cairo_pattern_create_rgb(0.686, 0.000, 1.000);
+ config->colors[130] = cairo_pattern_create_rgb(0.686, 0.373, 0.000);
+ config->colors[131] = cairo_pattern_create_rgb(0.686, 0.373, 0.373);
+ config->colors[132] = cairo_pattern_create_rgb(0.686, 0.373, 0.529);
+ config->colors[133] = cairo_pattern_create_rgb(0.686, 0.373, 0.686);
+ config->colors[134] = cairo_pattern_create_rgb(0.686, 0.373, 0.843);
+ config->colors[135] = cairo_pattern_create_rgb(0.686, 0.373, 1.000);
+ config->colors[136] = cairo_pattern_create_rgb(0.686, 0.529, 0.000);
+ config->colors[137] = cairo_pattern_create_rgb(0.686, 0.529, 0.373);
+ config->colors[138] = cairo_pattern_create_rgb(0.686, 0.529, 0.529);
+ config->colors[139] = cairo_pattern_create_rgb(0.686, 0.529, 0.686);
+ config->colors[140] = cairo_pattern_create_rgb(0.686, 0.529, 0.843);
+ config->colors[141] = cairo_pattern_create_rgb(0.686, 0.529, 1.000);
+ config->colors[142] = cairo_pattern_create_rgb(0.686, 0.686, 0.000);
+ config->colors[143] = cairo_pattern_create_rgb(0.686, 0.686, 0.373);
+ config->colors[144] = cairo_pattern_create_rgb(0.686, 0.686, 0.529);
+ config->colors[145] = cairo_pattern_create_rgb(0.686, 0.686, 0.686);
+ config->colors[146] = cairo_pattern_create_rgb(0.686, 0.686, 0.843);
+ config->colors[147] = cairo_pattern_create_rgb(0.686, 0.686, 1.000);
+ config->colors[148] = cairo_pattern_create_rgb(0.686, 0.843, 0.000);
+ config->colors[149] = cairo_pattern_create_rgb(0.686, 0.843, 0.373);
+ config->colors[150] = cairo_pattern_create_rgb(0.686, 0.843, 0.529);
+ config->colors[151] = cairo_pattern_create_rgb(0.686, 0.843, 0.686);
+ config->colors[152] = cairo_pattern_create_rgb(0.686, 0.843, 0.843);
+ config->colors[153] = cairo_pattern_create_rgb(0.686, 0.843, 1.000);
+ config->colors[154] = cairo_pattern_create_rgb(0.686, 1.000, 0.000);
+ config->colors[155] = cairo_pattern_create_rgb(0.686, 1.000, 0.373);
+ config->colors[156] = cairo_pattern_create_rgb(0.686, 1.000, 0.529);
+ config->colors[157] = cairo_pattern_create_rgb(0.686, 1.000, 0.686);
+ config->colors[158] = cairo_pattern_create_rgb(0.686, 1.000, 0.843);
+ config->colors[159] = cairo_pattern_create_rgb(0.686, 1.000, 1.000);
+ config->colors[160] = cairo_pattern_create_rgb(0.843, 0.000, 0.000);
+ config->colors[161] = cairo_pattern_create_rgb(0.843, 0.000, 0.373);
+ config->colors[162] = cairo_pattern_create_rgb(0.843, 0.000, 0.529);
+ config->colors[163] = cairo_pattern_create_rgb(0.843, 0.000, 0.686);
+ config->colors[164] = cairo_pattern_create_rgb(0.843, 0.000, 0.843);
+ config->colors[165] = cairo_pattern_create_rgb(0.843, 0.000, 1.000);
+ config->colors[166] = cairo_pattern_create_rgb(0.843, 0.373, 0.000);
+ config->colors[167] = cairo_pattern_create_rgb(0.843, 0.373, 0.373);
+ config->colors[168] = cairo_pattern_create_rgb(0.843, 0.373, 0.529);
+ config->colors[169] = cairo_pattern_create_rgb(0.843, 0.373, 0.686);
+ config->colors[170] = cairo_pattern_create_rgb(0.843, 0.373, 0.843);
+ config->colors[171] = cairo_pattern_create_rgb(0.843, 0.373, 1.000);
+ config->colors[172] = cairo_pattern_create_rgb(0.843, 0.529, 0.000);
+ config->colors[173] = cairo_pattern_create_rgb(0.843, 0.529, 0.373);
+ config->colors[174] = cairo_pattern_create_rgb(0.843, 0.529, 0.529);
+ config->colors[175] = cairo_pattern_create_rgb(0.843, 0.529, 0.686);
+ config->colors[176] = cairo_pattern_create_rgb(0.843, 0.529, 0.843);
+ config->colors[177] = cairo_pattern_create_rgb(0.843, 0.529, 1.000);
+ config->colors[178] = cairo_pattern_create_rgb(0.843, 0.686, 0.000);
+ config->colors[179] = cairo_pattern_create_rgb(0.843, 0.686, 0.373);
+ config->colors[180] = cairo_pattern_create_rgb(0.843, 0.686, 0.529);
+ config->colors[181] = cairo_pattern_create_rgb(0.843, 0.686, 0.686);
+ config->colors[182] = cairo_pattern_create_rgb(0.843, 0.686, 0.843);
+ config->colors[183] = cairo_pattern_create_rgb(0.843, 0.686, 1.000);
+ config->colors[184] = cairo_pattern_create_rgb(0.843, 0.843, 0.000);
+ config->colors[185] = cairo_pattern_create_rgb(0.843, 0.843, 0.373);
+ config->colors[186] = cairo_pattern_create_rgb(0.843, 0.843, 0.529);
+ config->colors[187] = cairo_pattern_create_rgb(0.843, 0.843, 0.686);
+ config->colors[188] = cairo_pattern_create_rgb(0.843, 0.843, 0.843);
+ config->colors[189] = cairo_pattern_create_rgb(0.843, 0.843, 1.000);
+ config->colors[190] = cairo_pattern_create_rgb(0.843, 1.000, 0.000);
+ config->colors[191] = cairo_pattern_create_rgb(0.843, 1.000, 0.373);
+ config->colors[192] = cairo_pattern_create_rgb(0.843, 1.000, 0.529);
+ config->colors[193] = cairo_pattern_create_rgb(0.843, 1.000, 0.686);
+ config->colors[194] = cairo_pattern_create_rgb(0.843, 1.000, 0.843);
+ config->colors[195] = cairo_pattern_create_rgb(0.843, 1.000, 1.000);
+ config->colors[196] = cairo_pattern_create_rgb(1.000, 0.000, 0.000);
+ config->colors[197] = cairo_pattern_create_rgb(1.000, 0.000, 0.373);
+ config->colors[198] = cairo_pattern_create_rgb(1.000, 0.000, 0.529);
+ config->colors[199] = cairo_pattern_create_rgb(1.000, 0.000, 0.686);
+ config->colors[200] = cairo_pattern_create_rgb(1.000, 0.000, 0.843);
+ config->colors[201] = cairo_pattern_create_rgb(1.000, 0.000, 1.000);
+ config->colors[202] = cairo_pattern_create_rgb(1.000, 0.373, 0.000);
+ config->colors[203] = cairo_pattern_create_rgb(1.000, 0.373, 0.373);
+ config->colors[204] = cairo_pattern_create_rgb(1.000, 0.373, 0.529);
+ config->colors[205] = cairo_pattern_create_rgb(1.000, 0.373, 0.686);
+ config->colors[206] = cairo_pattern_create_rgb(1.000, 0.373, 0.843);
+ config->colors[207] = cairo_pattern_create_rgb(1.000, 0.373, 1.000);
+ config->colors[208] = cairo_pattern_create_rgb(1.000, 0.529, 0.000);
+ config->colors[209] = cairo_pattern_create_rgb(1.000, 0.529, 0.373);
+ config->colors[210] = cairo_pattern_create_rgb(1.000, 0.529, 0.529);
+ config->colors[211] = cairo_pattern_create_rgb(1.000, 0.529, 0.686);
+ config->colors[212] = cairo_pattern_create_rgb(1.000, 0.529, 0.843);
+ config->colors[213] = cairo_pattern_create_rgb(1.000, 0.529, 1.000);
+ config->colors[214] = cairo_pattern_create_rgb(1.000, 0.686, 0.000);
+ config->colors[215] = cairo_pattern_create_rgb(1.000, 0.686, 0.373);
+ config->colors[216] = cairo_pattern_create_rgb(1.000, 0.686, 0.529);
+ config->colors[217] = cairo_pattern_create_rgb(1.000, 0.686, 0.686);
+ config->colors[218] = cairo_pattern_create_rgb(1.000, 0.686, 0.843);
+ config->colors[219] = cairo_pattern_create_rgb(1.000, 0.686, 1.000);
+ config->colors[220] = cairo_pattern_create_rgb(1.000, 0.843, 0.000);
+ config->colors[221] = cairo_pattern_create_rgb(1.000, 0.843, 0.373);
+ config->colors[222] = cairo_pattern_create_rgb(1.000, 0.843, 0.529);
+ config->colors[223] = cairo_pattern_create_rgb(1.000, 0.843, 0.686);
+ config->colors[224] = cairo_pattern_create_rgb(1.000, 0.843, 0.843);
+ config->colors[225] = cairo_pattern_create_rgb(1.000, 0.843, 1.000);
+ config->colors[226] = cairo_pattern_create_rgb(1.000, 1.000, 0.000);
+ config->colors[227] = cairo_pattern_create_rgb(1.000, 1.000, 0.373);
+ config->colors[228] = cairo_pattern_create_rgb(1.000, 1.000, 0.529);
+ config->colors[229] = cairo_pattern_create_rgb(1.000, 1.000, 0.686);
+ config->colors[230] = cairo_pattern_create_rgb(1.000, 1.000, 0.843);
+ config->colors[231] = cairo_pattern_create_rgb(1.000, 1.000, 1.000);
+ config->colors[232] = cairo_pattern_create_rgb(0.031, 0.031, 0.031);
+ config->colors[233] = cairo_pattern_create_rgb(0.071, 0.071, 0.071);
+ config->colors[234] = cairo_pattern_create_rgb(0.110, 0.110, 0.110);
+ config->colors[235] = cairo_pattern_create_rgb(0.149, 0.149, 0.149);
+ config->colors[236] = cairo_pattern_create_rgb(0.188, 0.188, 0.188);
+ config->colors[237] = cairo_pattern_create_rgb(0.227, 0.227, 0.227);
+ config->colors[238] = cairo_pattern_create_rgb(0.267, 0.267, 0.267);
+ config->colors[239] = cairo_pattern_create_rgb(0.306, 0.306, 0.306);
+ config->colors[240] = cairo_pattern_create_rgb(0.345, 0.345, 0.345);
+ config->colors[241] = cairo_pattern_create_rgb(0.376, 0.376, 0.376);
+ config->colors[242] = cairo_pattern_create_rgb(0.400, 0.400, 0.400);
+ config->colors[243] = cairo_pattern_create_rgb(0.463, 0.463, 0.463);
+ config->colors[244] = cairo_pattern_create_rgb(0.502, 0.502, 0.502);
+ config->colors[245] = cairo_pattern_create_rgb(0.541, 0.541, 0.541);
+ config->colors[246] = cairo_pattern_create_rgb(0.580, 0.580, 0.580);
+ config->colors[247] = cairo_pattern_create_rgb(0.620, 0.620, 0.620);
+ config->colors[248] = cairo_pattern_create_rgb(0.659, 0.659, 0.659);
+ config->colors[249] = cairo_pattern_create_rgb(0.698, 0.698, 0.698);
+ config->colors[250] = cairo_pattern_create_rgb(0.737, 0.737, 0.737);
+ config->colors[251] = cairo_pattern_create_rgb(0.776, 0.776, 0.776);
+ config->colors[252] = cairo_pattern_create_rgb(0.816, 0.816, 0.816);
+ config->colors[253] = cairo_pattern_create_rgb(0.855, 0.855, 0.855);
+ config->colors[254] = cairo_pattern_create_rgb(0.894, 0.894, 0.894);
+ config->colors[255] = cairo_pattern_create_rgb(0.933, 0.933, 0.933);
+
+ config->default_rows = 24;
+ config->default_cols = 80;
}
static FILE *runes_config_get_config_file()
@@ -423,52 +423,54 @@ static void runes_config_process_args(RunesTerm *t, int argc, char *argv[])
static void runes_config_set(RunesTerm *t, char *key, char *val)
{
+ RunesConfig *config = &t->config;
+
if (!strcmp(key, "font")) {
- free(t->font_name);
- t->font_name = runes_config_parse_string(val);
+ free(config->font_name);
+ config->font_name = runes_config_parse_string(val);
}
else if (!strcmp(key, "bold_is_bright")) {
- t->bold_is_bright = runes_config_parse_bool(val);
+ config->bold_is_bright = runes_config_parse_bool(val);
}
else if (!strcmp(key, "bold_is_bold")) {
- t->bold_is_bold = runes_config_parse_bool(val);
+ config->bold_is_bold = runes_config_parse_bool(val);
}
else if (!strcmp(key, "audible_bell")) {
- t->audible_bell = runes_config_parse_bool(val);
+ config->audible_bell = runes_config_parse_bool(val);
}
else if (!strcmp(key, "bell_is_urgent")) {
- t->bell_is_urgent = runes_config_parse_bool(val);
+ config->bell_is_urgent = runes_config_parse_bool(val);
}
else if (!strcmp(key, "bgcolor")) {
cairo_pattern_t *newcolor;
newcolor = runes_config_parse_color(val);
if (newcolor) {
- cairo_pattern_destroy(t->bgdefault);
- t->bgdefault = newcolor;
+ cairo_pattern_destroy(config->bgdefault);
+ config->bgdefault = newcolor;
}
}
else if (!strcmp(key, "fgcolor")) {
cairo_pattern_t *newcolor;
newcolor = runes_config_parse_color(val);
if (newcolor) {
- cairo_pattern_destroy(t->fgdefault);
- t->fgdefault = newcolor;
+ cairo_pattern_destroy(config->fgdefault);
+ config->fgdefault = newcolor;
}
}
else if (!strcmp(key, "cursorcolor")) {
cairo_pattern_t *newcolor;
newcolor = runes_config_parse_color(val);
if (newcolor) {
- cairo_pattern_destroy(t->cursorcolor);
- t->cursorcolor = newcolor;
+ cairo_pattern_destroy(config->cursorcolor);
+ config->cursorcolor = newcolor;
}
}
else if (!strcmp(key, "mousecursorcolor")) {
cairo_pattern_t *newcolor;
newcolor = runes_config_parse_color(val);
if (newcolor) {
- cairo_pattern_destroy(t->mousecursorcolor);
- t->mousecursorcolor = newcolor;
+ cairo_pattern_destroy(config->mousecursorcolor);
+ config->mousecursorcolor = newcolor;
}
}
else if (!strncmp(key, "color", 5)) {
@@ -482,18 +484,18 @@ static void runes_config_set(RunesTerm *t, char *key, char *val)
}
newcolor = runes_config_parse_color(val);
if (newcolor) {
- cairo_pattern_destroy(t->colors[i]);
- t->colors[i] = newcolor;
+ cairo_pattern_destroy(config->colors[i]);
+ config->colors[i] = newcolor;
}
}
else if (!strcmp(key, "rows")) {
- t->default_rows = runes_config_parse_uint(val);
+ config->default_rows = runes_config_parse_uint(val);
}
else if (!strcmp(key, "cols")) {
- t->default_cols = runes_config_parse_uint(val);
+ config->default_cols = runes_config_parse_uint(val);
}
else if (!strcmp(key, "command")) {
- t->cmd = runes_config_parse_string(val);
+ config->cmd = runes_config_parse_string(val);
}
else {
fprintf(stderr, "unknown option: '%s'\n", key);
diff --git a/src/config.h b/src/config.h
index 9789caa..3881eed 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,6 +1,26 @@
#ifndef _RUNES_CONFIG_H
#define _RUNES_CONFIG_H
+struct runes_config {
+ cairo_pattern_t *mousecursorcolor;
+ cairo_pattern_t *cursorcolor;
+
+ cairo_pattern_t *fgdefault;
+ cairo_pattern_t *bgdefault;
+ cairo_pattern_t *colors[256];
+
+ int default_rows;
+ int default_cols;
+
+ char *cmd;
+ char *font_name;
+
+ char bell_is_urgent;
+ char bold_is_bright;
+ char bold_is_bold;
+ char audible_bell;
+};
+
void runes_config_init(RunesTerm *t, int argc, char *argv[]);
void runes_config_cleanup(RunesTerm *t);
diff --git a/src/display.c b/src/display.c
index d1102f4..ad4253d 100644
--- a/src/display.c
+++ b/src/display.c
@@ -57,7 +57,7 @@ void runes_display_set_window_size(RunesTerm *t)
PangoFontDescription *font_desc;
attrs = pango_attr_list_new();
- font_desc = pango_font_description_from_string(t->font_name);
+ font_desc = pango_font_description_from_string(t->config.font_name);
t->layout = pango_cairo_create_layout(t->cr);
pango_layout_set_attributes(t->layout, attrs);
@@ -73,7 +73,7 @@ void runes_display_set_window_size(RunesTerm *t)
cairo_set_source_surface(t->cr, cairo_get_target(old_cr), 0.0, 0.0);
}
else {
- cairo_set_source(t->cr, t->bgdefault);
+ cairo_set_source(t->cr, t->config.bgdefault);
}
cairo_paint(t->cr);
@@ -112,7 +112,7 @@ void runes_display_draw_cursor(RunesTerm *t, cairo_t *cr)
}
cairo_save(cr);
- cairo_set_source(cr, t->cursorcolor);
+ cairo_set_source(cr, t->config.cursorcolor);
if (t->unfocused) {
cairo_set_line_width(cr, 1);
cairo_rectangle(
@@ -130,7 +130,7 @@ void runes_display_draw_cursor(RunesTerm *t, cairo_t *cr)
t->fontx, t->fonty);
cairo_fill(cr);
runes_display_draw_glyph(
- t, cr, t->bgdefault, cell->attrs,
+ t, cr, t->config.bgdefault, cell->attrs,
cell->contents, cell->len, row, col);
}
cairo_restore(cr);
@@ -156,7 +156,7 @@ static void runes_display_recalculate_font_metrics(RunesTerm *t)
context = pango_layout_get_context(t->layout);
}
else {
- desc = pango_font_description_from_string(t->font_name);
+ desc = pango_font_description_from_string(t->config.font_name);
context = pango_font_map_create_context(
pango_cairo_font_map_get_default());
}
@@ -184,10 +184,10 @@ static int runes_display_draw_cell(RunesTerm *t, int row, int col)
switch (cell->attrs.bgcolor.type) {
case RUNES_COLOR_DEFAULT:
- bg = t->bgdefault;
+ bg = t->config.bgdefault;
break;
case RUNES_COLOR_IDX:
- bg = t->colors[cell->attrs.bgcolor.idx];
+ bg = t->config.colors[cell->attrs.bgcolor.idx];
break;
case RUNES_COLOR_RGB:
bg = cairo_pattern_create_rgb(
@@ -200,15 +200,15 @@ static int runes_display_draw_cell(RunesTerm *t, int row, int col)
switch (cell->attrs.fgcolor.type) {
case RUNES_COLOR_DEFAULT:
- fg = t->fgdefault;
+ fg = t->config.fgdefault;
break;
case RUNES_COLOR_IDX: {
unsigned char idx = cell->attrs.fgcolor.idx;
- if (t->bold_is_bright && cell->attrs.bold && idx < 8) {
+ if (t->config.bold_is_bright && cell->attrs.bold && idx < 8) {
idx += 8;
}
- fg = t->colors[idx];
+ fg = t->config.colors[idx];
break;
}
case RUNES_COLOR_RGB:
@@ -222,8 +222,8 @@ static int runes_display_draw_cell(RunesTerm *t, int row, int col)
if (cell->attrs.inverse) {
if (cell->attrs.fgcolor.id == cell->attrs.bgcolor.id) {
- fg = t->bgdefault;
- bg = t->fgdefault;
+ fg = t->config.bgdefault;
+ bg = t->config.fgdefault;
}
else {
cairo_pattern_t *tmp = fg;
@@ -271,7 +271,7 @@ static void runes_display_draw_glyph(
PangoAttrList *pango_attrs;
pango_attrs = pango_layout_get_attributes(t->layout);
- if (t->bold_is_bold) {
+ if (t->config.bold_is_bold) {
pango_attr_list_change(
pango_attrs, pango_attr_weight_new(
attrs.bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
diff --git a/src/parser.c b/src/parser.c
index b9978a0..bf94340 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -2363,7 +2363,7 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
static void runes_parser_handle_bel(RunesTerm *t)
{
- if (t->audible_bell) {
+ if (t->config.audible_bell) {
runes_screen_audible_bell(t);
}
else {
diff --git a/src/parser.l b/src/parser.l
index f2682c8..7cecfac 100644
--- a/src/parser.l
+++ b/src/parser.l
@@ -233,7 +233,7 @@ static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len);
static void runes_parser_handle_bel(RunesTerm *t)
{
- if (t->audible_bell) {
+ if (t->config.audible_bell) {
runes_screen_audible_bell(t);
}
else {
diff --git a/src/pty-unix.c b/src/pty-unix.c
index c969394..3332535 100644
--- a/src/pty-unix.c
+++ b/src/pty-unix.c
@@ -44,7 +44,7 @@ void runes_pty_backend_spawn_subprocess(RunesTerm *t)
close(pty->slave);
- cmd = t->cmd;
+ cmd = t->config.cmd;
if (!cmd) {
cmd = getenv("SHELL");
}
diff --git a/src/runes.h b/src/runes.h
index d4e8d9f..d30bbba 100644
--- a/src/runes.h
+++ b/src/runes.h
@@ -11,12 +11,14 @@ struct runes_term;
struct runes_window;
struct runes_pty;
struct runes_screen;
+struct runes_config;
struct runes_loop_data;
typedef struct runes_term RunesTerm;
typedef struct runes_window RunesWindowBackend;
typedef struct runes_pty RunesPtyBackend;
typedef struct runes_screen RunesScreen;
+typedef struct runes_config RunesConfig;
typedef struct runes_loop_data RunesLoopData;
struct runes_loop_data {
@@ -28,9 +30,9 @@ struct runes_loop_data {
#include "pty-unix.h"
#include "screen.h"
+#include "config.h"
#include "term.h"
#include "display.h"
-#include "config.h"
#define UNUSED(x) ((void)x)
diff --git a/src/term.c b/src/term.c
index 6ca3db4..bb3a529 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1,7 +1,11 @@
+#include <string.h>
+
#include "runes.h"
void runes_term_init(RunesTerm *t, int argc, char *argv[])
{
+ memset((void *)t, 0, sizeof(*t));
+
runes_config_init(t, argc, argv);
runes_display_init(t);
diff --git a/src/term.h b/src/term.h
index 2af7bfb..5ab0a3a 100644
--- a/src/term.h
+++ b/src/term.h
@@ -5,6 +5,7 @@ struct runes_term {
RunesWindowBackend w;
RunesPtyBackend pty;
RunesScreen scr;
+ RunesConfig config;
cairo_t *cr;
cairo_t *backend_cr;
@@ -23,24 +24,6 @@ struct runes_term {
char visual_bell_is_ringing;
char unfocused;
-
- cairo_pattern_t *mousecursorcolor;
- cairo_pattern_t *cursorcolor;
-
- cairo_pattern_t *fgdefault;
- cairo_pattern_t *bgdefault;
- cairo_pattern_t *colors[256];
-
- int default_rows;
- int default_cols;
-
- char *cmd;
- char *font_name;
-
- char bell_is_urgent;
- char bold_is_bright;
- char bold_is_bold;
- char audible_bell;
};
void runes_term_init(RunesTerm *t, int argc, char *argv[]);
diff --git a/src/window-xlib.c b/src/window-xlib.c
index d46b415..4904f9c 100644
--- a/src/window-xlib.c
+++ b/src/window-xlib.c
@@ -132,10 +132,10 @@ void runes_window_backend_create_window(RunesTerm *t, int argc, char *argv[])
normal_hints.min_height = t->fonty + 4;
normal_hints.width_inc = t->fontx;
normal_hints.height_inc = t->fonty;
- normal_hints.base_width = t->fontx * t->default_cols + 4;
- normal_hints.base_height = t->fonty * t->default_rows + 4;
+ normal_hints.base_width = t->fontx * t->config.default_cols + 4;
+ normal_hints.base_height = t->fonty * t->config.default_rows + 4;
- cairo_pattern_get_rgba(t->bgdefault, &bg_r, &bg_g, &bg_b, NULL);
+ cairo_pattern_get_rgba(t->config.bgdefault, &bg_r, &bg_g, &bg_b, NULL);
bgcolor.red = bg_r * 65535;
bgcolor.green = bg_g * 65535;
bgcolor.blue = bg_b * 65535;
@@ -185,7 +185,7 @@ void runes_window_backend_create_window(RunesTerm *t, int argc, char *argv[])
cursor = XCreateFontCursor(w->dpy, XC_xterm);
cairo_pattern_get_rgba(
- t->mousecursorcolor, &mouse_r, &mouse_g, &mouse_b, NULL);
+ t->config.mousecursorcolor, &mouse_r, &mouse_g, &mouse_b, NULL);
cursor_fg.red = (unsigned short)(mouse_r * 65535);
cursor_fg.green = (unsigned short)(mouse_g * 65535);
cursor_fg.blue = (unsigned short)(mouse_b * 65535);
@@ -453,7 +453,7 @@ static void runes_window_backend_flush(RunesTerm *t)
static void runes_window_backend_visual_bell(RunesTerm *t)
{
- if (t->bell_is_urgent) {
+ if (t->config.bell_is_urgent) {
runes_window_backend_set_urgent(t);
}
@@ -462,7 +462,7 @@ static void runes_window_backend_visual_bell(RunesTerm *t)
uv_timer_t *timer_req;
t->visual_bell_is_ringing = 1;
- cairo_set_source(t->backend_cr, t->fgdefault);
+ cairo_set_source(t->backend_cr, t->config.fgdefault);
cairo_paint(t->backend_cr);
cairo_surface_flush(cairo_get_target(t->backend_cr));
XFlush(w->dpy);
@@ -494,7 +494,7 @@ static void runes_window_backend_audible_bell(RunesTerm *t)
{
RunesWindowBackend *w = &t->w;
- if (t->bell_is_urgent) {
+ if (t->config.bell_is_urgent) {
runes_window_backend_set_urgent(t);
}
XBell(w->dpy, 0);