Message ID | 20220324131344.b7608507865f.I4f78dca5973127790f8dc5757ff5f021078b2c62@changeid |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] um: xterm: make default terminal emulator configurable | expand |
On 24/03/2022 12:13, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@intel.com> > > Make the default terminal emulator configurable so e.g. > Debian can set it to x-terminal-emulator instead of the > current default of xterm. > > Signed-off-by: Johannes Berg <johannes.berg@intel.com> > --- > arch/um/drivers/Kconfig | 7 +++++++ > arch/um/drivers/Makefile | 2 ++ > arch/um/drivers/xterm.c | 7 ++++--- > 3 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig > index f145842c40b9..521ae0d46076 100644 > --- a/arch/um/drivers/Kconfig > +++ b/arch/um/drivers/Kconfig > @@ -64,6 +64,13 @@ config XTERM_CHAN > its own xterm. > It is safe to say 'Y' here. > > +config XTERM_CHAN_DEFAULT_EMULATOR > + string "xterm channel default terminal emulator" > + depends on XTERM_CHAN > + default "xterm" > + help > + This option allows changing the default terminal emulator. > + > config NOCONFIG_CHAN > bool > default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN) > diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile > index 803666e85414..e1dc4292bd22 100644 > --- a/arch/um/drivers/Makefile > +++ b/arch/um/drivers/Makefile > @@ -70,4 +70,6 @@ obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virt-pci.o > USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o vector_user.o > CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH) > > +CFLAGS_xterm.o += '-DCONFIG_XTERM_CHAN_DEFAULT_EMULATOR="$(CONFIG_XTERM_CHAN_DEFAULT_EMULATOR)"' > + > include arch/um/scripts/Makefile.rules > diff --git a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c > index 87ca4a47cd66..6918de5e2956 100644 > --- a/arch/um/drivers/xterm.c > +++ b/arch/um/drivers/xterm.c > @@ -42,7 +42,7 @@ static void *xterm_init(char *str, int device, const struct chan_opts *opts) > } > > /* Only changed by xterm_setup, which is a setup */ > -static char *terminal_emulator = "xterm"; > +static char *terminal_emulator = CONFIG_XTERM_CHAN_DEFAULT_EMULATOR; > static char *title_switch = "-T"; > static char *exec_switch = "-e"; > > @@ -79,8 +79,9 @@ __uml_setup("xterm=", xterm_setup, > " respectively. The title switch must have the form '<switch> title',\n" > " not '<switch>=title'. Similarly, the exec switch must have the form\n" > " '<switch> command arg1 arg2 ...'.\n" > -" The default values are 'xterm=xterm,-T,-e'. Values for gnome-terminal\n" > -" are 'xterm=gnome-terminal,-t,-x'.\n\n" > +" The default values are 'xterm=" CONFIG_XTERM_CHAN_DEFAULT_EMULATOR > + ",-T,-e'.\n" > +" Values for gnome-terminal are 'xterm=gnome-terminal,-t,-x'.\n\n" > ); > > static int xterm_open(int input, int output, int primary, void *d, > Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
On 24/03/2022 12:13, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@intel.com> > > Make the default terminal emulator configurable so e.g. > Debian can set it to x-terminal-emulator instead of the > current default of xterm. > > Signed-off-by: Johannes Berg <johannes.berg@intel.com> > --- > arch/um/drivers/Kconfig | 7 +++++++ > arch/um/drivers/Makefile | 2 ++ > arch/um/drivers/xterm.c | 7 ++++--- > 3 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig > index f145842c40b9..521ae0d46076 100644 > --- a/arch/um/drivers/Kconfig > +++ b/arch/um/drivers/Kconfig > @@ -64,6 +64,13 @@ config XTERM_CHAN > its own xterm. > It is safe to say 'Y' here. > > +config XTERM_CHAN_DEFAULT_EMULATOR > + string "xterm channel default terminal emulator" > + depends on XTERM_CHAN > + default "xterm" > + help > + This option allows changing the default terminal emulator. > + > config NOCONFIG_CHAN > bool > default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN) > diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile > index 803666e85414..e1dc4292bd22 100644 > --- a/arch/um/drivers/Makefile > +++ b/arch/um/drivers/Makefile > @@ -70,4 +70,6 @@ obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virt-pci.o > USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o vector_user.o > CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH) > > +CFLAGS_xterm.o += '-DCONFIG_XTERM_CHAN_DEFAULT_EMULATOR="$(CONFIG_XTERM_CHAN_DEFAULT_EMULATOR)"' > + > include arch/um/scripts/Makefile.rules > diff --git a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c > index 87ca4a47cd66..6918de5e2956 100644 > --- a/arch/um/drivers/xterm.c > +++ b/arch/um/drivers/xterm.c > @@ -42,7 +42,7 @@ static void *xterm_init(char *str, int device, const struct chan_opts *opts) > } > > /* Only changed by xterm_setup, which is a setup */ > -static char *terminal_emulator = "xterm"; > +static char *terminal_emulator = CONFIG_XTERM_CHAN_DEFAULT_EMULATOR; > static char *title_switch = "-T"; > static char *exec_switch = "-e"; > > @@ -79,8 +79,9 @@ __uml_setup("xterm=", xterm_setup, > " respectively. The title switch must have the form '<switch> title',\n" > " not '<switch>=title'. Similarly, the exec switch must have the form\n" > " '<switch> command arg1 arg2 ...'.\n" > -" The default values are 'xterm=xterm,-T,-e'. Values for gnome-terminal\n" > -" are 'xterm=gnome-terminal,-t,-x'.\n\n" > +" The default values are 'xterm=" CONFIG_XTERM_CHAN_DEFAULT_EMULATOR > + ",-T,-e'.\n" > +" Values for gnome-terminal are 'xterm=gnome-terminal,-t,-x'.\n\n" > ); > > static int xterm_open(int input, int output, int primary, void *d, > I was going to fw this to Debian as they patch this and integrate with Debian alternatives. I see Ritesh is already in the loop. Cool.
On Thu, 2022-03-24 at 12:18 +0000, Anton Ivanov wrote: > > I was going to fw this to Debian as they patch this and integrate with > Debian alternatives. I see Ritesh is already in the loop. Cool. > Yeah, it actually came up in an LWN discussion: https://lwn.net/Articles/888507/ johannes
On Thu, 2022-03-24 at 13:13 +0100, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@intel.com> > > Make the default terminal emulator configurable so e.g. > Debian can set it to x-terminal-emulator instead of the > current default of xterm. > > Signed-off-by: Johannes Berg <johannes.berg@intel.com> > --- > arch/um/drivers/Kconfig | 7 +++++++ > arch/um/drivers/Makefile | 2 ++ > arch/um/drivers/xterm.c | 7 ++++--- > 3 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig > index f145842c40b9..521ae0d46076 100644 > --- a/arch/um/drivers/Kconfig > +++ b/arch/um/drivers/Kconfig > @@ -64,6 +64,13 @@ config XTERM_CHAN > its own xterm. > It is safe to say 'Y' here. > > +config XTERM_CHAN_DEFAULT_EMULATOR > + string "xterm channel default terminal emulator" > + depends on XTERM_CHAN > + default "xterm" > + help > + This option allows changing the default terminal emulator. > + > config NOCONFIG_CHAN > bool > default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && > NULL_CHAN) > diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile > index 803666e85414..e1dc4292bd22 100644 > --- a/arch/um/drivers/Makefile > +++ b/arch/um/drivers/Makefile > @@ -70,4 +70,6 @@ obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virt-pci.o > USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o > pcap_user.o vde_user.o vector_user.o > CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH) > > +CFLAGS_xterm.o += '- > DCONFIG_XTERM_CHAN_DEFAULT_EMULATOR="$(CONFIG_XTERM_CHAN_DEFAULT_EMUL > ATOR)"' > + > include arch/um/scripts/Makefile.rules > diff --git a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c > index 87ca4a47cd66..6918de5e2956 100644 > --- a/arch/um/drivers/xterm.c > +++ b/arch/um/drivers/xterm.c > @@ -42,7 +42,7 @@ static void *xterm_init(char *str, int device, > const struct chan_opts *opts) > } > > /* Only changed by xterm_setup, which is a setup */ > -static char *terminal_emulator = "xterm"; > +static char *terminal_emulator = CONFIG_XTERM_CHAN_DEFAULT_EMULATOR; > static char *title_switch = "-T"; > static char *exec_switch = "-e"; > > @@ -79,8 +79,9 @@ __uml_setup("xterm=", xterm_setup, > " respectively. The title switch must have the form '<switch> > title',\n" > " not '<switch>=title'. Similarly, the exec switch must have the > form\n" > " '<switch> command arg1 arg2 ...'.\n" > -" The default values are 'xterm=xterm,-T,-e'. Values for gnome- > terminal\n" > -" are 'xterm=gnome-terminal,-t,-x'.\n\n" > +" The default values are 'xterm=" > CONFIG_XTERM_CHAN_DEFAULT_EMULATOR > + ",-T,-e'.\n" > +" Values for gnome-terminal are 'xterm=gnome-terminal,-t,- > x'.\n\n" > ); > > static int xterm_open(int input, int output, int primary, void *d, Thank you for the quick fixes. Tested-by: Ritesh Raj Sarraf <ritesh@collabora.com>
diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig index f145842c40b9..521ae0d46076 100644 --- a/arch/um/drivers/Kconfig +++ b/arch/um/drivers/Kconfig @@ -64,6 +64,13 @@ config XTERM_CHAN its own xterm. It is safe to say 'Y' here. +config XTERM_CHAN_DEFAULT_EMULATOR + string "xterm channel default terminal emulator" + depends on XTERM_CHAN + default "xterm" + help + This option allows changing the default terminal emulator. + config NOCONFIG_CHAN bool default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN) diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile index 803666e85414..e1dc4292bd22 100644 --- a/arch/um/drivers/Makefile +++ b/arch/um/drivers/Makefile @@ -70,4 +70,6 @@ obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virt-pci.o USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o vector_user.o CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH) +CFLAGS_xterm.o += '-DCONFIG_XTERM_CHAN_DEFAULT_EMULATOR="$(CONFIG_XTERM_CHAN_DEFAULT_EMULATOR)"' + include arch/um/scripts/Makefile.rules diff --git a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c index 87ca4a47cd66..6918de5e2956 100644 --- a/arch/um/drivers/xterm.c +++ b/arch/um/drivers/xterm.c @@ -42,7 +42,7 @@ static void *xterm_init(char *str, int device, const struct chan_opts *opts) } /* Only changed by xterm_setup, which is a setup */ -static char *terminal_emulator = "xterm"; +static char *terminal_emulator = CONFIG_XTERM_CHAN_DEFAULT_EMULATOR; static char *title_switch = "-T"; static char *exec_switch = "-e"; @@ -79,8 +79,9 @@ __uml_setup("xterm=", xterm_setup, " respectively. The title switch must have the form '<switch> title',\n" " not '<switch>=title'. Similarly, the exec switch must have the form\n" " '<switch> command arg1 arg2 ...'.\n" -" The default values are 'xterm=xterm,-T,-e'. Values for gnome-terminal\n" -" are 'xterm=gnome-terminal,-t,-x'.\n\n" +" The default values are 'xterm=" CONFIG_XTERM_CHAN_DEFAULT_EMULATOR + ",-T,-e'.\n" +" Values for gnome-terminal are 'xterm=gnome-terminal,-t,-x'.\n\n" ); static int xterm_open(int input, int output, int primary, void *d,