move transparency setting to config file
This commit is contained in:
parent
92c3e955a6
commit
1294bd21ed
3
config.h
3
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
|
||||
|
|
30
termite.c
30
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),
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue