Index: src/actions.c =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/actions.c,v retrieving revision 1.125 diff -c -r1.125 actions.c *** src/actions.c 6 Jul 2002 21:28:05 -0000 1.125 --- src/actions.c 3 Sep 2002 09:19:01 -0000 *************** *** 86,91 **** --- 86,93 ---- {"unalias", cmd_unalias, arg_STRING}, {"prevscreen", cmd_prevscreen, arg_VOID}, {"nextscreen", cmd_nextscreen, arg_VOID}, + {"term", cmd_term, arg_VOID}, + {"termexec", cmd_termexec, arg_STRING}, /address@hidden (tag required for genrpbindings) */ /* Commands to set default behavior. */ *************** *** 105,110 **** --- 107,113 ---- {"deffgcolor", cmd_deffgcolor, arg_STRING}, {"defbgcolor", cmd_defbgcolor, arg_STRING}, {"defbarpadding", cmd_defbarpadding, arg_STRING}, + {"defterm", cmd_defterm, arg_STRING}, /* Commands to help debug ratpoison. */ #ifdef DEBUG *************** *** 297,307 **** add_keybinding (XK_a, RP_CONTROL_MASK, "time"); add_keybinding (XK_b, 0, "banish"); add_keybinding (XK_b, RP_CONTROL_MASK, "banish"); ! add_keybinding (XK_c, 0, "exec " TERM_PROG); ! add_keybinding (XK_c, RP_CONTROL_MASK, "exec " TERM_PROG); add_keybinding (XK_colon, 0, "colon"); add_keybinding (XK_exclam, 0, "exec"); ! add_keybinding (XK_exclam, RP_CONTROL_MASK, "colon exec " TERM_PROG " -e "); add_keybinding (XK_i, 0, "info"); add_keybinding (XK_i, RP_CONTROL_MASK, "info"); add_keybinding (XK_k, 0, "delete"); --- 300,310 ---- add_keybinding (XK_a, RP_CONTROL_MASK, "time"); add_keybinding (XK_b, 0, "banish"); add_keybinding (XK_b, RP_CONTROL_MASK, "banish"); ! add_keybinding (XK_c, 0, "term"); ! add_keybinding (XK_c, RP_CONTROL_MASK, "term"); add_keybinding (XK_colon, 0, "colon"); add_keybinding (XK_exclam, 0, "exec"); ! add_keybinding (XK_exclam, RP_CONTROL_MASK, "termexec"); add_keybinding (XK_i, 0, "info"); add_keybinding (XK_i, RP_CONTROL_MASK, "info"); add_keybinding (XK_k, 0, "delete"); *************** *** 967,973 **** --- 970,1010 ---- return NULL; } + char * + cmd_term (int interactive, void *data) + { + spawn (defaults.term); + + return NULL; + } + + char * + cmd_termexec (int interactive, void *data) + { + char *cmd, *tcmd; + + tcmd = xmalloc (strlen (defaults.term) + strlen (" -e ") + 1); + + strcpy (tcmd, defaults.term); + strcat (tcmd, (" -e ")); + + if (data == NULL) + cmd = get_input (tcmd); + else + cmd = xstrdup ((char *) data); + + tcmd = xrealloc (tcmd, strlen (tcmd) + strlen (cmd) + 1 ); + + strcat (tcmd, cmd); + spawn (tcmd); + + free(cmd); + free(tcmd); + + return NULL; + } + void spawn(void *data) { *************** *** 1971,1976 **** --- 2008,2028 ---- free (defaults.window_fmt); defaults.window_fmt = xstrdup (data); + + return NULL; + } + + char * + cmd_defterm (int interactive, void *data) + { + if (data == NULL && !interactive) + return xstrdup (defaults.term); + + if (data == NULL) + return NULL; + + free (defaults.term); + defaults.term = xstrdup (data); return NULL; } Index: src/actions.h =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/actions.h,v retrieving revision 1.49 diff -c -r1.49 actions.h *** src/actions.h 24 Mar 2002 06:05:03 -0000 1.49 --- src/actions.h 3 Sep 2002 09:19:01 -0000 *************** *** 111,116 **** --- 111,119 ---- char *cmd_prevscreen (int interactive, void *data); char *cmd_nextscreen (int interactive, void *data); char *cmd_unalias (int interactive, void *data); + char *cmd_defterm (int interactive, void *data); + char *cmd_term (int interactive, void *data); + char *cmd_termexec (int interactive, void *data); void initialize_default_keybindings (void); rp_action* find_keybinding (KeySym keysym, int state); Index: src/data.h =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/data.h,v retrieving revision 1.37 diff -c -r1.37 data.h *** src/data.h 13 Mar 2002 08:23:30 -0000 1.37 --- src/data.h 3 Sep 2002 09:19:02 -0000 *************** *** 156,161 **** --- 156,163 ---- char *window_fmt; + char *term; + /* Which name to use: wm_name, res_name, res_class. */ int win_name; Index: src/main.c =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/main.c,v retrieving revision 1.59 diff -c -r1.59 main.c *** src/main.c 28 Jul 2002 23:07:04 -0000 1.59 --- src/main.c 3 Sep 2002 09:19:05 -0000 *************** *** 447,452 **** --- 447,454 ---- defaults.window_fmt = xstrdup ("%n%s%t"); + defaults.term = xstrdup ( TERM_PROG ); + defaults.win_name = 0; defaults.startup_message = 1; }