xiterm

simple vte terminal emulator
git clone https://git.ce9e.org/xiterm.git

commit
1cb1de73c0e84a29f76366689278b5a095138001
parent
5dac7f43ca41d2862d59ed5fc98c362567255819
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2020-09-18 18:12
allow to scale fonts

Diffstat

M xiterm.c 21 +++++++++++++++++++++

1 files changed, 21 insertions, 0 deletions


diff --git a/xiterm.c b/xiterm.c

@@ -11,6 +11,7 @@ GtkWidget *window;
   11    11 GtkNotebook *notebook;
   12    12 VteRegex *url_regex;
   13    13 GdkRGBA palette[16];
   -1    14 double font_scale = 1;
   14    15 
   15    16 char *cmd[2] = {"/bin/bash", NULL};
   16    17 const char *colors[16] = {
@@ -22,6 +23,19 @@ gboolean match_key(GdkEventKey *event, int state, int keyval) {
   22    23 	return event->state == state && event->keyval == keyval;
   23    24 }
   24    25 
   -1    26 void set_font_scale(double value) {
   -1    27 	int i, n;
   -1    28 	GtkWidget *page;
   -1    29 
   -1    30 	font_scale = value;
   -1    31 
   -1    32 	n = gtk_notebook_get_n_pages(notebook);
   -1    33 	for (i = 0; i < n; i++) {
   -1    34 		page = gtk_notebook_get_nth_page(notebook, i);
   -1    35 		vte_terminal_set_font_scale(VTE_TERMINAL(page), font_scale);
   -1    36 	}
   -1    37 }
   -1    38 
   25    39 void update_show_tabs() {
   26    40 	if (gtk_notebook_get_n_pages(notebook) > 1) {
   27    41 		gtk_notebook_set_show_tabs(notebook, TRUE);
@@ -80,6 +94,7 @@ void setup_terminal(VteTerminal *term) {
   80    94 	vte_terminal_match_set_cursor_name(term, tag, "pointer");
   81    95 	vte_terminal_set_colors(term, &palette[15], NULL, palette, 16);
   82    96 	vte_terminal_set_bold_is_bright(term, TRUE);
   -1    97 	vte_terminal_set_font_scale(term, font_scale);
   83    98 
   84    99 	g_signal_connect(term, "button-press-event", G_CALLBACK(on_term_click), NULL);
   85   100 	g_signal_connect(term, "child-exited", G_CALLBACK(on_term_exit), NULL);
@@ -118,6 +133,12 @@ gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
  118   133 	} else if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_V)) {
  119   134 		term = get_current_term();
  120   135 		vte_terminal_paste_clipboard(term);
   -1   136 	} else if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_plus)) {
   -1   137 		set_font_scale(font_scale * 1.2);
   -1   138 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_minus)) {
   -1   139 		set_font_scale(font_scale / 1.2);
   -1   140 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_0)) {
   -1   141 		set_font_scale(1);
  121   142 	} else {
  122   143 		return FALSE;
  123   144 	}