- commit
- 89031e54ef373f36e0e76b861487a48b916c081d
- parent
- c47f3000c99fc77828006b1a7fdb126887e43eda
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-10-25 16:00
use default_cmd on new tabs
Diffstat
| M | xiterm.c | 19 | ++++++++++--------- |
1 files changed, 10 insertions, 9 deletions
diff --git a/xiterm.c b/xiterm.c
@@ -15,7 +15,8 @@ VteRegex *url_regex; 15 15 GdkRGBA palette[16]; 16 16 double font_scale = 1; 17 1718 -1 char *cmd[4] = {"/bin/bash", NULL, NULL, NULL};-1 18 char *default_cmd[2] = {"/bin/bash", NULL}; -1 19 char *initial_cmd[4] = {"/bin/bash", NULL, NULL, NULL}; 19 20 const char *colors[16] = { 20 21 "#000", "#c00", "#591", "#b71", "#16c", "#96a", "#299", "#ccc", 21 22 "#333", "#f33", "#7c0", "#ed0", "#6ad", "#c8b", "#0dd", "#fff", @@ -102,7 +103,7 @@ const char* get_cwd(VteTerminal *term) { 102 103 return NULL; 103 104 } 104 105105 -1 void setup_terminal(VteTerminal *term) {-1 106 void setup_terminal(VteTerminal *term, char **cmd) { 106 107 int tag; 107 108 const char *cwd; 108 109 @@ -122,7 +123,7 @@ void setup_terminal(VteTerminal *term) { 122 123 g_signal_connect(term, "child-exited", G_CALLBACK(on_term_exit), NULL); 123 124 } 124 125125 -1 void add_tab(void) {-1 126 void add_tab(char **cmd) { 126 127 GtkWidget *page, *label; 127 128 int page_num; 128 129 @@ -142,7 +143,7 @@ void add_tab(void) { 142 143 // needs to execute after gtk_widget_show() (for proper dimensions) 143 144 // and before gtk_notebook_get_current_page() (so we can access the 144 145 // previous term to get cwd)145 -1 setup_terminal(VTE_TERMINAL(page));-1 146 setup_terminal(VTE_TERMINAL(page), cmd); 146 147 147 148 gtk_notebook_set_current_page(notebook, page_num); 148 149 gtk_widget_grab_focus(page); @@ -165,7 +166,7 @@ gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { 165 166 if (!(modifiers & GDK_CONTROL_MASK)) { 166 167 return FALSE; 167 168 } else if (KEY(GDK_KEY_T, GDK_SHIFT_MASK)) {168 -1 add_tab();-1 169 add_tab(default_cmd); 169 170 } else if (KEY(GDK_KEY_Page_Up, 0)) { 170 171 gtk_notebook_prev_page(notebook); 171 172 } else if (KEY(GDK_KEY_Page_Down, 0)) { @@ -209,9 +210,9 @@ int main(int argc, char **argv) { 209 210 strncat(command, " ", 128 - 1 - strlen(command)); 210 211 } 211 212 }212 -1 cmd[0] = "/bin/sh";213 -1 cmd[1] = "-c";214 -1 cmd[2] = command;-1 213 initial_cmd[0] = "/bin/sh"; -1 214 initial_cmd[1] = "-c"; -1 215 initial_cmd[2] = command; 215 216 } 216 217 217 218 url_regex = vte_regex_new_for_match(REGEX_URL, -1, PCRE2_MULTILINE, &err); @@ -237,7 +238,7 @@ int main(int argc, char **argv) { 237 238 gtk_notebook_set_show_border(notebook, FALSE); 238 239 gtk_widget_show_all(GTK_WIDGET(window)); 239 240240 -1 add_tab();-1 241 add_tab(initial_cmd); 241 242 gtk_main(); 242 243 vte_regex_unref(url_regex); 243 244