From 1294bd21edf9727c5c814808fd6f96aeade7b64b Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Thu, 7 Jun 2012 21:05:31 -0400 Subject: [PATCH] move transparency setting to config file --- config.h | 3 --- termite.c | 30 +++++++++++++++++++----------- termite.cfg | 3 +++ 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/config.h b/config.h index 7483192..354c437 100644 --- a/config.h +++ b/config.h @@ -1,8 +1,5 @@ static const char *url_regex = "(ftp|http)s?://[-a-zA-Z0-9.?$%&/=_~#.,:;+()]*"; -// 0.0: opaque, 1.0: transparent -//#define TRANSPARENCY 0.2 - static const char *term = "vte-256color"; // keybindings diff --git a/termite.c b/termite.c index 85136fb..46edb9a 100644 --- a/termite.c +++ b/termite.c @@ -254,10 +254,11 @@ static bool get_config_ ## NAME (GKeyFile *config, const char *group, const char MAKE_GET_CONFIG_FUNCTION(boolean, gboolean) MAKE_GET_CONFIG_FUNCTION(integer, gint) MAKE_GET_CONFIG_FUNCTION(string, gchar *) +MAKE_GET_CONFIG_FUNCTION(double, gdouble) static void load_config(GtkWindow *window, VteTerminal *vte, gboolean *dynamic_title, gboolean *urgent_on_bell, - gboolean *clickable_url) { + gboolean *clickable_url, double *transparency) { static const char *filename = "termite.cfg"; const gchar *dir = g_get_user_config_dir(); @@ -335,6 +336,11 @@ static void load_config(GtkWindow *window, VteTerminal *vte, g_free(cfgstr); } + gdouble cfgdouble; + if (get_config_double(config, "options", "transparency", &cfgdouble)) { + *transparency = cfgdouble; + } + GdkColor foreground, background, cursor, palette[16]; static const char *color_names[8] = {"black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"}; @@ -467,18 +473,20 @@ int main(int argc, char **argv) { g_signal_connect(overlay, "get-child-position", G_CALLBACK(position_overlay_cb), NULL); gboolean dynamic_title = FALSE, urgent_on_bell = FALSE, clickable_url = FALSE; - load_config(GTK_WINDOW(window), VTE_TERMINAL(vte), &dynamic_title, &urgent_on_bell, &clickable_url); + double transparency = 0.0; + load_config(GTK_WINDOW(window), VTE_TERMINAL(vte), &dynamic_title, + &urgent_on_bell, &clickable_url, &transparency); -#ifdef TRANSPARENCY - GdkScreen *screen = gtk_widget_get_screen(window); - GdkVisual *visual = gdk_screen_get_rgba_visual(screen); - if (!visual) { - visual = gdk_screen_get_system_visual(screen); + if (transparency > 0.0) { + GdkScreen *screen = gtk_widget_get_screen(window); + GdkVisual *visual = gdk_screen_get_rgba_visual(screen); + if (!visual) { + visual = gdk_screen_get_system_visual(screen); + } + gtk_widget_set_visual(window, visual); + vte_terminal_set_background_saturation(VTE_TERMINAL(vte), transparency); + vte_terminal_set_opacity(VTE_TERMINAL(vte), (guint16)(0xffff * (1 - transparency))); } - gtk_widget_set_visual(window, visual); - vte_terminal_set_background_saturation(VTE_TERMINAL(vte), TRANSPARENCY); - vte_terminal_set_opacity(VTE_TERMINAL(vte), (guint16)(0xffff * (1 - TRANSPARENCY))); -#endif if (clickable_url) { int tmp = vte_terminal_match_add_gregex(VTE_TERMINAL(vte), diff --git a/termite.cfg b/termite.cfg index cf583a6..eac2dff 100644 --- a/termite.cfg +++ b/termite.cfg @@ -12,6 +12,9 @@ font = Monospace 9 scrollback_lines = 1000 #icon_name = terminal +# 0.0: opaque, 1.0: transparent +transparency = 0.0 + # SYSTEM, ON or OFF cursor_blink = SYSTEM