¿Cómo elimino una traducción predeterminada de xterm X11 en particular?

¿Cómo elimino una traducción predeterminada de xterm X11 en particular?

Estoy usando xterm que viene con un conjunto de traducciones predeterminadas como se enumeran en la página de manual. Para #augmento #overridelas traducciones edito mi $XAPPLRESDIR/XTermarchivo; esto funciona como se esperaba.

Sin embargo, no puedo encontrar una manera deeliminaruna traducción predeterminada particular (y pasar el evento a la aplicación que se ejecuta en xterm).

Específicamente, quiero que el Meta <Btn2Down>evento se pase a la aplicación. Las traducciones predeterminadas de xterm vinculan esto a la clear-saved-lines()acción con

COMUNICACIONES DE TECLAS PREDETERMINADAS
[...]
Meta <Btn2Down>:clear-saved-lines() \n\

¿Qué debo hacer para que la aplicación reciba el evento Meta-Btn2Down?

Respuesta1

Según tengo entendido, no hay ninguna función en X Toolkit que puedaeliminaruna traduccion. Puedeanularoaumentarpero no eliminar selectivamente una parte de una tabla de traducción.

Ésa fue una de las razones para añadir elomitirTraducciónrecurso enparche #269. Con esa versión, la tabla de traducciones se divide en partes más manejables, lo que permite una personalización algo mejor:

Omita selectivamente una o más partes de las traducciones predeterminadas de xterm al inicio. El valor del recurso es una lista de palabras clave separadas por comas, que pueden abreviarse: "pantalla completa","bloqueo de desplazamiento","fuentes-shift"o"ratón con rueda". Xterm también reconoce"por defecto", pero omitirlo hará que el programa sea inutilizable a menos que proporcione una definición similar en la configuración de recursos.

Sin embargo, coincidiendo con StéphaneChazelas, no está claro cómo se utilizaría efectivamente el cambio propuesto porque las secuencias de escape que se pasan a la aplicación se construyen dentro de xterm en función de eventos de botón. Quizás podrías hacer una traducción especial que utilizara una acción de cadena.

Respuesta2

Si está buscando claves ya vinculadas para pasar sin que xterm las maneje, probablemente esté buscando acciones insert()o .insert-eight-bit()

Desde la página de manual de xterm:

insert()
Esta acción inserta el carácter o cadena asociada con la tecla que se presionó.

insert-eight-bit()
Esta acción inserta una versión de ocho bits (Meta) del carácter o cadena asociada con la tecla que se presionó. Sólo los valores de un solo byte reciben un tratamiento especial. La acción exacta depende del valor de laaltEnvíaEscapey elmetaEnvíosEscapey elentrada de ocho bitsrecursos. ElmetaEnvíosEscapeEl recurso se prueba primero. Ver elentrada de ocho bitsrecurso para una discusión completa.

El término "ocho bits" es engañoso:xtermcomprueba si la clave está en el rango de 128 a 255 (el octavo bit está configurado). Si el valor está en ese rango, dependiendo de los valores de los recursos,xtermEntonces puede hacer una de las siguientes cosas:

  • agregue 128 al valor, configurando su octavo bit,
  • enviar un byte ESC antes de la clave, o
  • enviar la clave sin modificaciones.

Por ejemplo,

Meta <Btn2Down>:insert-eight-bit() \n\

PD: Acabo de solucionar el mismo problema para evitar el biding Alt <Key>Return:fullscreen() \n\, para poder pasar Alt-return a una aplicación.

información relacionada