Konsole muestra «not directly running in terminology» y caracteres extraños en AV Linux MXe (Solución)
En mi caso, el problema más molesto era B4445, porque
aparecía automáticamente en la línea de comandos y tenía que borrarlo
manualmente antes de poder escribir.
En este tutorial veremos cuál es la causa y cómo solucionarlo sin desactivar las personalizaciones de AV Linux para Terminology.
¿Por qué instalar Konsole en AV Linux MXe?
AV Linux MXe incluye Terminology como uno de sus terminales. Sin embargo, puede resultar conveniente instalar Konsole, especialmente si utilizamos aplicaciones de línea de comandos que generan bastante información, como Codex CLI, herramientas de desarrollo, compilaciones, registros, etc. Konsole permite utilizar cómodamente el historial o scrollback de la terminal para revisar texto que apareció anteriormente.
Podemos instalarlo en AV Linux MXe con:
El problema
Después de instalar Konsole, al abrir una nueva terminal podía aparecer algo parecido a:
El primer mensaje ya nos da una pista importante:
Algún componente configurado para Terminology se está intentando ejecutar también dentro de Konsole.
Comprobar si el
problema está en .bashrc
Una manera muy sencilla de comprobar si el comportamiento procede de
nuestra configuración de Bash es iniciar una instancia de Bash que no
cargue el archivo .bashrc:
En mi caso apareció:
Entonces hice una prueba:
y obtuve:
Ya no aparecía el problema.
Esto era una señal clara de que había que revisar la configuración cargada normalmente por Bash.
Buscar referencias a Terminology
Podemos buscar algunas instrucciones relacionadas con terminales dentro de nuestros archivos de configuración:
En mi instalación de AV Linux MXe apareció, entre otras cosas:
Aquí encontramos una pista especialmente importante:
El origen del problema:
tycat
tycat es una herramienta relacionada con
Terminology que permite mostrar contenido gráfico
dentro de esa terminal.
AV Linux MXe tiene en el archivo:
una personalización que ejecuta:
El problema es que .bashrc también se carga cuando
abrimos Konsole.
Por lo tanto, la instrucción diseñada para Terminology termina ejecutándose dentro de Konsole.
Podemos comprobar también algunas variables de nuestro terminal con:
En Konsole, en mi caso, obtuve algo parecido a:
La parte interesante es:
La variable está vacía porque estamos ejecutando Konsole, no Terminology.
Podemos aprovechar precisamente esto para solucionar el problema.
Solución
Primero es recomendable crear una copia de seguridad de nuestro
.bashrc:
Ahora lo editamos:
Buscamos estas líneas:
y las reemplazamos por:
Guardamos el archivo
¿Qué hace esta modificación?
La condición:
comprueba si la variable TERMINOLOGY contiene algún
valor.
Si estamos dentro de Terminology, se ejecutará:
y después finalizará la condición:
Por el contrario, si abrimos Konsole y la variable
TERMINOLOGY está vacía, Bash simplemente omitirá la
ejecución de tycat.
De esta manera no necesitamos eliminar la personalización que AV Linux MXe preparó para Terminology.
Aplicar los cambios
Podemos aplicar inmediatamente la nueva configuración ejecutando:
También podemos cerrar completamente Konsole y volver a abrirlo.
Ahora debería aparecer el prompt normalmente:
sin:
y, especialmente, sin los caracteres extraños como:
¿Por qué no simplemente
eliminar tycat?
También podríamos comentar la línea:
pero eso desactivaría esa personalización también cuando utilizáramos Terminology.
La solución condicional es más limpia:
Así podemos utilizar Terminology y Konsole en el mismo sistema, y cada terminal recibe únicamente la configuración que le corresponde.
Restaurar la configuración anterior
Si cometimos algún error o queremos volver al .bashrc
original, podemos utilizar la copia de seguridad:
y recargarla:
Conclusión
El problema no estaba realmente en Konsole, sino en
una personalización incluida en el .bashrc de AV Linux MXe
para Terminology.
La instrucción:
se ejecutaba también al iniciar Konsole, aunque tycat
está pensado para trabajar con Terminology.
La solución consiste en ejecutarla condicionalmente:
Después de realizar este cambio, Konsole puede abrirse normalmente sin mostrar:
ni dejar B4445 escrito en la línea de comandos.
Esta solución resulta especialmente útil si queremos mantener Terminology instalado y conservar las personalizaciones de AV Linux MXe, pero utilizar Konsole como nuestro terminal habitual.

Comentarios
Publicar un comentario