Add -n option for setting WM_CLASS instance name

Signed-off-by: Christoph Lohmann <20h@r-36.net>
master
Quentin Rameau 2016-01-29 22:03:01 +01:00 committed by Christoph Lohmann
parent bd5fdbe64c
commit 0cd5117a2c
2 changed files with 26 additions and 15 deletions

7
st.1
View File

@ -10,6 +10,8 @@ st \- simple terminal
.IR font ] .IR font ]
.RB [ \-g .RB [ \-g
.IR geometry ] .IR geometry ]
.RB [ \-n
.IR name ]
.RB [ \-o .RB [ \-o
.IR iofile ] .IR iofile ]
.RB [ \-T .RB [ \-T
@ -32,6 +34,8 @@ st \- simple terminal
.IR font ] .IR font ]
.RB [ \-g .RB [ \-g
.IR geometry ] .IR geometry ]
.RB [ \-n
.IR name ]
.RB [ \-o .RB [ \-o
.IR iofile ] .IR iofile ]
.RB [ \-T .RB [ \-T
@ -68,6 +72,9 @@ for further details.
.B \-i .B \-i
will fixate the position given with the -g option. will fixate the position given with the -g option.
.TP .TP
.BI \-n " name"
defines the window instance name (default $TERM).
.TP
.BI \-o " iofile" .BI \-o " iofile"
writes all the I/O to writes all the I/O to
.I iofile. .I iofile.

34
st.c
View File

@ -524,14 +524,15 @@ static int cmdfd;
static pid_t pid; static pid_t pid;
static Selection sel; static Selection sel;
static int iofd = 1; static int iofd = 1;
static char **opt_cmd = NULL; static char **opt_cmd = NULL;
static char *opt_io = NULL;
static char *opt_title = NULL;
static char *opt_embed = NULL;
static char *opt_class = NULL; static char *opt_class = NULL;
static char *opt_font = NULL; static char *opt_embed = NULL;
static char *opt_line = NULL; static char *opt_font = NULL;
static int oldbutton = 3; /* button event on startup: 3 = release */ static char *opt_io = NULL;
static char *opt_line = NULL;
static char *opt_name = NULL;
static char *opt_title = NULL;
static int oldbutton = 3; /* button event on startup: 3 = release */
static char *usedfont = NULL; static char *usedfont = NULL;
static double usedfontsize = 0; static double usedfontsize = 0;
@ -3240,7 +3241,8 @@ xclear(int x1, int y1, int x2, int y2)
void void
xhints(void) xhints(void)
{ {
XClassHint class = {termname, opt_class ? opt_class : termname}; XClassHint class = {opt_name ? opt_name : termname,
opt_class ? opt_class : termname};
XWMHints wm = {.flags = InputHint, .input = 1}; XWMHints wm = {.flags = InputHint, .input = 1};
XSizeHints *sizeh = NULL; XSizeHints *sizeh = NULL;
@ -4332,13 +4334,12 @@ run(void)
void void
usage(void) usage(void)
{ {
die("usage: %s [-aiv] [-c class] [-f font] [-g geometry]" die("usage: %s "
" [-o file] [-T title]\n" "[-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o file]\n "
" [-t title] [-w windowid] [[-e] command [args ...]]\n" " [-T title] [-t title] [-w windowid] [[-e] command [args ...]\n "
" %s [-aiv] [-c class] [-f font] [-g geometry]" " %s [-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o file]\n "
" [-o file] [-T title]\n" " [-o file] [-T title] [-t title] [-w windowid] -l line"
" [-t title] [-w windowid] -l line [stty_args ...]\n", " [stty_args ...]\n", argv0, argv0);
argv0, argv0);
} }
void void
@ -4383,6 +4384,9 @@ main(int argc, char *argv[])
case 'l': case 'l':
opt_line = EARGF(usage()); opt_line = EARGF(usage());
break; break;
case 'n':
opt_name = EARGF(usage());
break;
case 't': case 't':
case 'T': case 'T':
opt_title = EARGF(usage()); opt_title = EARGF(usage());