Aquí está el problema: quiero poder discernir si mi terminal es capaz de unicode decente o no, para usar algunos caracteres o no, al igual que las miradas, que a veces usan colores y otros subrayan.
La motivación surge porque en cualquier tipo de terminal virtual obtengo fuentes decentes, pero entiendo que la consola básica de Linux tiene un conjunto de caracteres de 256 o 512 símbolos simultáneos, por lo que no puede esperar un soporte completo de fuentes.
Al principio pensé que podría usar $TERMo tty, pero aquí está el truco: también estoy usando byobu, por $TERMlo que siempre es "screen.linux". El resultado de tty tampoco es muy revelador: /dev/pts/<some number>tanto en términos "reales" como virtuales.
$BYOBU_TTYtampoco es una ayuda, porque, por ejemplo, puede serlo /dev/tty1y cuando la sesión se abre en Ctrl+ Alt+ F1los caracteres no se muestran, pero cuando se adjuntan a la misma sesión desde un término X, se muestran correctamente y aún $BYOBU_TTYno cambian. Además, me gustaría poder detectar esto sin suponer que byobu está allí o no.
Además, la configuración regional se muestra en todos los casos en_US.UTF-8
Sin embargo, de alguna manera echa un vistazo (para nombrar una herramienta particular que veo detectar esto), incluso dentro de byobu, usa diferentes resultados dependiendo del terminal que estoy conectando a la sesión de byobu.
Tengo problemas con google porque terminal y tty parecen términos de búsqueda demasiado comunes. A lo sumo llego a soluciones recomendadas $TERMo tty.

La pregunta real de OP es: ¿qué valores Unicode admite la consola Linux? ¿Se pueden detectar estos durante la ejecución
screen? En principio, uno puede hacer esto recuperando el mapa Unicode para la consola.El
kbdárbol fuente contienegetunimap(y su página de manual). La página del manual dice quelo cual no es exactamente cierto.
setfonttiene una opción que hace aproximadamente lo mismo:Las diferencias:
setfontescribe en un archivo, mientrasgetunimapescribe en la salida estándargetunimapmuestra el carácter que se mapearía, como un comentario.Por ejemplo:
versus
Si está ejecutando
screen(o, por ejemplo, ejecutandoxtermy no en la consola), obtendrá un error de permisos que puede solucionar usandosudo.Si sé qué fuente se cargó, puedo verificar eso (sin permisos especiales) usando
psfgettable, por ejemplo,y vea los datos de mapeo que
setfontusaría para cargar la fuente (con el mapeo Unicode):Ambos
getunimapysetfontdan los datos sin clasificar, mientras quepsfgettableparecen estar ordenados (además de combinar líneas para valores Unicode que se asignan al mismo glifo). Entonces hay diferencias, pero la información es accesible.Lectura adicional (que ilustra por qué no puede usar
showconsolefontpara resolver este problema):fuente
sudono es un obstáculo para mi caso de uso.setfontno genera nada (no crea el archivo dado ni genera un error) dentro de terminales virtuales, pero funciona en terminales reales como se esperaba. Esto está en Ubuntu 16.04Me encontré con esta pregunta cuando intentaba lograr lo mismo, pero no quería dejar nada en la pantalla y configurar una variable, así que puse lo siguiente en un script de shell que obtuve:
fuente