Merge lp:~kyleb/sakura/custom-palette into lp:~dabisu/sakura/sakura
- custom-palette
- Merge into sakura
Proposed by
Kyle Brady
Status: | Rejected |
---|---|
Rejected by: | David Gómez |
Proposed branch: | lp:~kyleb/sakura/custom-palette |
Merge into: | lp:~dabisu/sakura/sakura |
Diff against target: |
492 lines (+91/-66) 1 file modified
src/sakura.c (+91/-66) |
To merge this branch: | bzr merge lp:~kyleb/sakura/custom-palette |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
David Gómez | Disapprove | ||
Review via email: mp+73968@code.launchpad.net |
Commit message
Description of the change
This branch adds the ability to use a custom palette in sakura. This is done by adding a new section in the config file that stores the options color0-color15, similar to .Xdefaults. The default values for this are pulled from the Linux palette.
To post a comment you must log in.
Revision history for this message
David Gómez (dabisu) wrote : | # |
Revision history for this message
David Gómez (dabisu) : | # |
review:
Disapprove
Unmerged revisions
- 357. By Kyle Brady
-
Add the ability to use a custom palette.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/sakura.c' |
2 | --- src/sakura.c 2011-07-31 00:45:30 +0000 |
3 | +++ src/sakura.c 2011-09-03 21:24:23 +0000 |
4 | @@ -136,6 +136,8 @@ |
5 | { 0, 0xffff, 0xffff, 0xffff } |
6 | }; |
7 | |
8 | +static GdkColor custom_palette[PALETTE_SIZE]; |
9 | + |
10 | static struct { |
11 | GtkWidget *main_window; |
12 | GtkWidget *notebook; |
13 | @@ -236,6 +238,7 @@ |
14 | #define DEFAULT_FULLSCREEN_KEY GDK_F11 |
15 | #define ERROR_BUFFER_LENGTH 256 |
16 | const char cfg_group[] = "sakura"; |
17 | +const char palette_cfg_group[] = "custom palette"; |
18 | |
19 | static GQuark term_data_id = 0; |
20 | #define sakura_get_page_term( sakura, page_idx ) \ |
21 | @@ -247,18 +250,18 @@ |
22 | G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)sakura.notebook, page_idx) ), \ |
23 | term_data_id, term, (GDestroyNotify)g_free); |
24 | |
25 | -#define sakura_set_config_integer(key, value) do {\ |
26 | - g_key_file_set_integer(sakura.cfg, cfg_group, key, value);\ |
27 | - sakura.config_modified=TRUE;\ |
28 | - } while(0); |
29 | - |
30 | -#define sakura_set_config_string(key, value) do {\ |
31 | - g_key_file_set_value(sakura.cfg, cfg_group, key, value);\ |
32 | - sakura.config_modified=TRUE;\ |
33 | - } while(0); |
34 | - |
35 | -#define sakura_set_config_boolean(key, value) do {\ |
36 | - g_key_file_set_boolean(sakura.cfg, cfg_group, key, value);\ |
37 | +#define sakura_set_config_integer(key, value, group) do {\ |
38 | + g_key_file_set_integer(sakura.cfg, group, key, value);\ |
39 | + sakura.config_modified=TRUE;\ |
40 | + } while(0); |
41 | + |
42 | +#define sakura_set_config_string(key, value, group) do {\ |
43 | + g_key_file_set_value(sakura.cfg, group, key, value);\ |
44 | + sakura.config_modified=TRUE;\ |
45 | + } while(0); |
46 | + |
47 | +#define sakura_set_config_boolean(key, value, group) do {\ |
48 | + g_key_file_set_boolean(sakura.cfg, group, key, value);\ |
49 | sakura.config_modified=TRUE;\ |
50 | } while(0); |
51 | |
52 | @@ -743,7 +746,7 @@ |
53 | sakura.font=pango_font_description_from_string(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog))); |
54 | sakura_set_font(); |
55 | sakura_set_size(sakura.columns, sakura.rows); |
56 | - sakura_set_config_string("font", pango_font_description_to_string(sakura.font)); |
57 | + sakura_set_config_string("font", pango_font_description_to_string(sakura.font), cfg_group); |
58 | } |
59 | |
60 | gtk_widget_destroy(font_dialog); |
61 | @@ -874,15 +877,15 @@ |
62 | gchar *cfgtmp; |
63 | cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.forecolor.red >>8, |
64 | sakura.forecolor.green>>8, sakura.forecolor.blue>>8); |
65 | - sakura_set_config_string("forecolor", cfgtmp); |
66 | + sakura_set_config_string("forecolor", cfgtmp, cfg_group); |
67 | g_free(cfgtmp); |
68 | |
69 | cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.backcolor.red >>8, |
70 | sakura.backcolor.green>>8, sakura.backcolor.blue>>8); |
71 | - sakura_set_config_string("backcolor", cfgtmp); |
72 | + sakura_set_config_string("backcolor", cfgtmp, cfg_group); |
73 | g_free(cfgtmp); |
74 | |
75 | - sakura_set_config_integer("backalpha", sakura.backalpha); |
76 | + sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group); |
77 | |
78 | } |
79 | |
80 | @@ -981,7 +984,7 @@ |
81 | vte_terminal_set_opacity(VTE_TERMINAL (term->vte), sakura.backalpha); |
82 | vte_terminal_set_colors(VTE_TERMINAL(term->vte), &sakura.forecolor, &sakura.backcolor, |
83 | sakura.palette, PALETTE_SIZE); |
84 | - sakura_set_config_integer("backalpha", sakura.backalpha); |
85 | + sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group); |
86 | sakura.fake_transparency = TRUE; |
87 | } else { |
88 | /* Fake transparency, there is no composite manager */ |
89 | @@ -989,7 +992,7 @@ |
90 | vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), sakura.opacity_level); |
91 | vte_terminal_set_background_tint_color(VTE_TERMINAL(term->vte), &sakura.backcolor); |
92 | sakura.fake_transparency = TRUE; |
93 | - sakura_set_config_string("fake_transparency", "Yes"); |
94 | + sakura_set_config_string("fake_transparency", "Yes", cfg_group); |
95 | } |
96 | } |
97 | |
98 | @@ -1000,12 +1003,12 @@ |
99 | term = sakura_get_page_term(sakura, i); |
100 | vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), FALSE); |
101 | sakura.fake_transparency = FALSE; |
102 | - sakura_set_config_string("fake_transparency", "No"); |
103 | + sakura_set_config_string("fake_transparency", "No", cfg_group); |
104 | } |
105 | |
106 | } |
107 | |
108 | - sakura_set_config_string("opacity_level", sakura.opacity_level_percent); |
109 | + sakura_set_config_string("opacity_level", sakura.opacity_level_percent, cfg_group); |
110 | } |
111 | |
112 | gtk_widget_destroy(opacity_dialog); |
113 | @@ -1141,7 +1144,7 @@ |
114 | |
115 | // FIXME: is this really needed? IMHO, this should be done just before |
116 | // dumping the config to the config file. |
117 | - sakura_set_config_string("background", "none"); |
118 | + sakura_set_config_string("background", "none", cfg_group); |
119 | |
120 | g_free(sakura.background); |
121 | sakura.background=NULL; |
122 | @@ -1159,13 +1162,13 @@ |
123 | |
124 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
125 | gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), TRUE); |
126 | - sakura_set_config_string("show_always_first_tab", "Yes"); |
127 | + sakura_set_config_string("show_always_first_tab", "Yes", cfg_group); |
128 | } else { |
129 | /* Only hide tabs if the notebook has one page */ |
130 | if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(sakura.notebook)) == 1) { |
131 | gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), FALSE); |
132 | } |
133 | - sakura_set_config_string("show_always_first_tab", "No"); |
134 | + sakura_set_config_string("show_always_first_tab", "No", cfg_group); |
135 | } |
136 | } |
137 | |
138 | @@ -1180,9 +1183,9 @@ |
139 | term = sakura_get_page_term(sakura, page); |
140 | |
141 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
142 | - sakura_set_config_boolean("closebutton", TRUE); |
143 | + sakura_set_config_boolean("closebutton", TRUE, cfg_group); |
144 | } else { |
145 | - sakura_set_config_boolean("closebutton", FALSE); |
146 | + sakura_set_config_boolean("closebutton", FALSE, cfg_group); |
147 | } |
148 | } |
149 | |
150 | @@ -1203,10 +1206,10 @@ |
151 | |
152 | if (!g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL)) { |
153 | sakura.show_scrollbar=true; |
154 | - sakura_set_config_boolean("scrollbar", TRUE); |
155 | + sakura_set_config_boolean("scrollbar", TRUE, cfg_group); |
156 | } else { |
157 | sakura.show_scrollbar=false; |
158 | - sakura_set_config_boolean("scrollbar", FALSE); |
159 | + sakura_set_config_boolean("scrollbar", FALSE, cfg_group); |
160 | } |
161 | |
162 | /* Toggle/Untoggle the scrollbar for all tabs */ |
163 | @@ -1231,10 +1234,10 @@ |
164 | |
165 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
166 | vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), TRUE); |
167 | - sakura_set_config_string("audible_bell", "Yes"); |
168 | + sakura_set_config_string("audible_bell", "Yes", cfg_group); |
169 | } else { |
170 | vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), FALSE); |
171 | - sakura_set_config_string("audible_bell", "No"); |
172 | + sakura_set_config_string("audible_bell", "No", cfg_group); |
173 | } |
174 | } |
175 | |
176 | @@ -1250,10 +1253,10 @@ |
177 | |
178 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
179 | vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), TRUE); |
180 | - sakura_set_config_string("visible_bell", "Yes"); |
181 | + sakura_set_config_string("visible_bell", "Yes", cfg_group); |
182 | } else { |
183 | vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), FALSE); |
184 | - sakura_set_config_string("visible_bell", "No"); |
185 | + sakura_set_config_string("visible_bell", "No", cfg_group); |
186 | } |
187 | } |
188 | |
189 | @@ -1269,10 +1272,10 @@ |
190 | |
191 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
192 | vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_ON); |
193 | - sakura_set_config_string("blinking_cursor", "Yes"); |
194 | + sakura_set_config_string("blinking_cursor", "Yes", cfg_group); |
195 | } else { |
196 | vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_OFF); |
197 | - sakura_set_config_string("blinking_cursor", "No"); |
198 | + sakura_set_config_string("blinking_cursor", "No", cfg_group); |
199 | } |
200 | } |
201 | |
202 | @@ -1282,10 +1285,10 @@ |
203 | { |
204 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
205 | gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), FALSE); |
206 | - sakura_set_config_string("borderless", "Yes"); |
207 | + sakura_set_config_string("borderless", "Yes", cfg_group); |
208 | } else { |
209 | gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), TRUE); |
210 | - sakura_set_config_string("borderless", "No"); |
211 | + sakura_set_config_string("borderless", "No", cfg_group); |
212 | } |
213 | } |
214 | |
215 | @@ -1295,10 +1298,10 @@ |
216 | { |
217 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { |
218 | gtk_window_maximize (GTK_WINDOW(sakura.main_window)); |
219 | - sakura_set_config_string("maximized", "Yes"); |
220 | + sakura_set_config_string("maximized", "Yes", cfg_group); |
221 | } else { |
222 | gtk_window_unmaximize (GTK_WINDOW(sakura.main_window)); |
223 | - sakura_set_config_string("maximized", "No"); |
224 | + sakura_set_config_string("maximized", "No", cfg_group); |
225 | } |
226 | } |
227 | |
228 | @@ -1320,8 +1323,10 @@ |
229 | sakura.palette=tango_palette; |
230 | } else if (strcmp(palette, "xterm")==0) { |
231 | sakura.palette=xterm_palette; |
232 | + } else if (strcmp(palette, "rxvt")==0) { |
233 | + sakura.palette=xterm_palette; |
234 | } else { |
235 | - sakura.palette=rxvt_palette; |
236 | + sakura.palette=custom_palette; |
237 | } |
238 | |
239 | for (i = (n_pages - 1); i >= 0; i--) { |
240 | @@ -1330,7 +1335,7 @@ |
241 | sakura.palette, PALETTE_SIZE); |
242 | } |
243 | |
244 | - sakura_set_config_string("palette", palette); |
245 | + sakura_set_config_string("palette", palette, cfg_group); |
246 | } |
247 | } |
248 | |
249 | @@ -1600,7 +1605,7 @@ |
250 | */ |
251 | |
252 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "forecolor", NULL)) { |
253 | - sakura_set_config_string("forecolor", "#c0c0c0"); |
254 | + sakura_set_config_string("forecolor", "#c0c0c0", cfg_group); |
255 | } |
256 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "forecolor", NULL); |
257 | gdk_color_parse(cfgtmp, &sakura.forecolor); |
258 | @@ -1608,7 +1613,7 @@ |
259 | |
260 | |
261 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "backcolor", NULL)) { |
262 | - sakura_set_config_string("backcolor", "#000000"); |
263 | + sakura_set_config_string("backcolor", "#000000", cfg_group); |
264 | } |
265 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "backcolor", NULL); |
266 | gdk_color_parse(cfgtmp, &sakura.backcolor); |
267 | @@ -1616,13 +1621,13 @@ |
268 | |
269 | |
270 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "backalpha", NULL)) { |
271 | - sakura_set_config_integer("backalpha", 65535); |
272 | + sakura_set_config_integer("backalpha", 65535, cfg_group); |
273 | } |
274 | sakura.backalpha = g_key_file_get_integer(sakura.cfg, cfg_group, "backalpha", NULL); |
275 | |
276 | |
277 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "opacity_level", NULL)) { |
278 | - sakura_set_config_string("opacity_level", "80"); |
279 | + sakura_set_config_string("opacity_level", "80", cfg_group); |
280 | } |
281 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "opacity_level", NULL); |
282 | sakura.opacity_level_percent=cfgtmp; |
283 | @@ -1631,7 +1636,7 @@ |
284 | |
285 | |
286 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "fake_transparency", NULL)) { |
287 | - sakura_set_config_string("fake_transparency", "No"); |
288 | + sakura_set_config_string("fake_transparency", "No", cfg_group); |
289 | } |
290 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "fake_transparency", NULL); |
291 | if (strcmp(cfgtmp, "Yes")==0) { |
292 | @@ -1643,7 +1648,7 @@ |
293 | |
294 | |
295 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "background", NULL)) { |
296 | - sakura_set_config_string("background", "none"); |
297 | + sakura_set_config_string("background", "none", cfg_group); |
298 | } |
299 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "background", NULL); |
300 | if (strcmp(cfgtmp, "none")==0) { |
301 | @@ -1655,65 +1660,78 @@ |
302 | |
303 | |
304 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "font", NULL)) { |
305 | - sakura_set_config_string("font", DEFAULT_FONT); |
306 | + sakura_set_config_string("font", DEFAULT_FONT, cfg_group); |
307 | } |
308 | |
309 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "show_always_first_tab", NULL)) { |
310 | - sakura_set_config_string("show_always_first_tab", "No"); |
311 | + sakura_set_config_string("show_always_first_tab", "No", cfg_group); |
312 | } |
313 | |
314 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar", NULL)) { |
315 | - sakura_set_config_boolean("scrollbar", FALSE); |
316 | + sakura_set_config_boolean("scrollbar", FALSE, cfg_group); |
317 | } |
318 | sakura.show_scrollbar = g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL); |
319 | |
320 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "closebutton", NULL)) { |
321 | - sakura_set_config_boolean("closebutton", FALSE); |
322 | + sakura_set_config_boolean("closebutton", FALSE, cfg_group); |
323 | } |
324 | sakura.show_closebutton = g_key_file_get_boolean(sakura.cfg, cfg_group, "closebutton", NULL); |
325 | |
326 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "audible_bell", NULL)) { |
327 | - sakura_set_config_string("audible_bell", "Yes"); |
328 | + sakura_set_config_string("audible_bell", "Yes", cfg_group); |
329 | } |
330 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "audible_bell", NULL); |
331 | sakura.audible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0; |
332 | g_free(cfgtmp); |
333 | |
334 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "visible_bell", NULL)) { |
335 | - sakura_set_config_string("visible_bell", "No"); |
336 | + sakura_set_config_string("visible_bell", "No", cfg_group); |
337 | } |
338 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "visible_bell", NULL); |
339 | sakura.visible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0; |
340 | g_free(cfgtmp); |
341 | |
342 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "blinking_cursor", NULL)) { |
343 | - sakura_set_config_string("blinking_cursor", "No"); |
344 | + sakura_set_config_string("blinking_cursor", "No", cfg_group); |
345 | } |
346 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "blinking_cursor", NULL); |
347 | sakura.blinking_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0; |
348 | g_free(cfgtmp); |
349 | |
350 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "borderless", NULL)) { |
351 | - sakura_set_config_string("borderless", "No"); |
352 | + sakura_set_config_string("borderless", "No", cfg_group); |
353 | } |
354 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "borderless", NULL); |
355 | sakura.borderless= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0; |
356 | g_free(cfgtmp); |
357 | |
358 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "maximized", NULL)) { |
359 | - sakura_set_config_string("maximized", "No"); |
360 | + sakura_set_config_string("maximized", "No", cfg_group); |
361 | } |
362 | cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "maximized", NULL); |
363 | sakura.maximized= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0; |
364 | g_free(cfgtmp); |
365 | |
366 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "word_chars", NULL)) { |
367 | - sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS); |
368 | + sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS, cfg_group); |
369 | } |
370 | sakura.word_chars = g_key_file_get_value(sakura.cfg, cfg_group, "word_chars", NULL); |
371 | |
372 | + gchar *paltmp = NULL; |
373 | + for(int i=0; i<PALETTE_SIZE; i++) |
374 | + { |
375 | + paltmp = g_strdup_printf("color%i", i); |
376 | + if (!g_key_file_has_key(sakura.cfg, palette_cfg_group, paltmp, NULL)) { |
377 | + sakura_set_config_string(paltmp, gdk_color_to_string(&linux_palette[i]), palette_cfg_group); |
378 | + } |
379 | + cfgtmp = g_key_file_get_value(sakura.cfg, palette_cfg_group, paltmp, NULL); |
380 | + gdk_color_parse(cfgtmp, &custom_palette[i]); |
381 | + g_free(paltmp); |
382 | + g_free(cfgtmp); |
383 | + } |
384 | + |
385 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "palette", NULL)) { |
386 | - sakura_set_config_string("palette", DEFAULT_PALETTE); |
387 | + sakura_set_config_string("palette", DEFAULT_PALETTE, cfg_group); |
388 | } |
389 | cfgtmp = g_key_file_get_string(sakura.cfg, cfg_group, "palette", NULL); |
390 | if (strcmp(cfgtmp, "linux")==0) { |
391 | @@ -1722,38 +1740,40 @@ |
392 | sakura.palette=tango_palette; |
393 | } else if (strcmp(cfgtmp, "xterm")==0) { |
394 | sakura.palette=xterm_palette; |
395 | - } else { |
396 | + } else if (strcmp(cfgtmp, "rxvt")==0) { |
397 | sakura.palette=rxvt_palette; |
398 | + } else { |
399 | + sakura.palette=custom_palette; |
400 | } |
401 | g_free(cfgtmp); |
402 | |
403 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "add_tab_accelerator", NULL)) { |
404 | - sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR); |
405 | + sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR, cfg_group); |
406 | } |
407 | sakura.add_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "add_tab_accelerator", NULL); |
408 | |
409 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "del_tab_accelerator", NULL)) { |
410 | - sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR); |
411 | + sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR, cfg_group); |
412 | } |
413 | sakura.del_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "del_tab_accelerator", NULL); |
414 | |
415 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL)) { |
416 | - sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR); |
417 | + sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR, cfg_group); |
418 | } |
419 | sakura.switch_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL); |
420 | |
421 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "copy_accelerator", NULL)) { |
422 | - sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR); |
423 | + sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR, cfg_group); |
424 | } |
425 | sakura.copy_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "copy_accelerator", NULL); |
426 | |
427 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL)) { |
428 | - sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR); |
429 | + sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR, cfg_group); |
430 | } |
431 | sakura.scrollbar_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL); |
432 | |
433 | if (!g_key_file_has_key(sakura.cfg, cfg_group, "open_url_accelerator", NULL)) { |
434 | - sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR); |
435 | + sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR, cfg_group); |
436 | } |
437 | sakura.open_url_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "open_url_accelerator", NULL); |
438 | |
439 | @@ -1891,7 +1911,7 @@ |
440 | *item_opacity_menu, *item_show_first_tab, *item_audible_bell, *item_visible_bell, |
441 | *item_blinking_cursor, *item_borderless_maximized, |
442 | *item_palette, *item_palette_tango, *item_palette_linux, *item_palette_xterm, *item_palette_rxvt, |
443 | - *item_show_close_button; |
444 | + *item_palette_custom, *item_show_close_button; |
445 | GtkAction *action_open_link, *action_copy_link, *action_new_tab, *action_set_name, *action_close_tab, |
446 | *action_new_window, |
447 | *action_copy, *action_paste, *action_select_font, *action_select_colors, |
448 | @@ -1945,6 +1965,7 @@ |
449 | item_palette_linux=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Linux"); |
450 | item_palette_xterm=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "xterm"); |
451 | item_palette_rxvt=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "rxvt"); |
452 | + item_palette_custom=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Custom"); |
453 | item_options=gtk_menu_item_new_with_label(_("Options")); |
454 | item_palette=gtk_menu_item_new_with_label(_("Set palette")); |
455 | |
456 | @@ -1994,8 +2015,10 @@ |
457 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_tango), TRUE); |
458 | } else if (strcmp(cfgtmp, "xterm")==0) { |
459 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_xterm), TRUE); |
460 | - } else { |
461 | + } else if (strcmp(cfgtmp, "rxvt")==0) { |
462 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_rxvt), TRUE); |
463 | + } else { |
464 | + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_custom), TRUE); |
465 | } |
466 | g_free(cfgtmp); |
467 | |
468 | @@ -2045,6 +2068,7 @@ |
469 | gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_linux); |
470 | gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_xterm); |
471 | gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_rxvt); |
472 | + gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_custom); |
473 | gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), gtk_separator_menu_item_new()); |
474 | gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_input_methods); |
475 | |
476 | @@ -2080,6 +2104,7 @@ |
477 | g_signal_connect(G_OBJECT(item_palette_linux), "activate", G_CALLBACK(sakura_set_palette), "linux"); |
478 | g_signal_connect(G_OBJECT(item_palette_xterm), "activate", G_CALLBACK(sakura_set_palette), "xterm"); |
479 | g_signal_connect(G_OBJECT(item_palette_rxvt), "activate", G_CALLBACK(sakura_set_palette), "rxvt"); |
480 | + g_signal_connect(G_OBJECT(item_palette_custom), "activate", G_CALLBACK(sakura_set_palette), "custom"); |
481 | |
482 | g_signal_connect(G_OBJECT(action_open_link), "activate", G_CALLBACK(sakura_open_url), NULL); |
483 | g_signal_connect(G_OBJECT(action_copy_link), "activate", G_CALLBACK(sakura_copy_url), NULL); |
484 | @@ -2501,7 +2526,7 @@ |
485 | vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), TRUE); |
486 | vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte),FALSE); |
487 | |
488 | - sakura_set_config_string("background", infile); |
489 | + sakura_set_config_string("background", infile, cfg_group); |
490 | } |
491 | } |
492 | } |
Palette customization is something i don't want to be in sakura. But if you have a custom palette to propose, please submit it. And sorry for the long long time to answer this.