Oto problem: chcę być w stanie rozpoznać, czy mój terminal jest w stanie przyzwoicie unicode, czy nie, aby użyć niektórych znaków, czy nie, podobnie jak spojrzenia, które czasami używają kolorów, a inne podkreślają.
Motywacja wynika z tego, że na dowolnym terminalu wirtualnym dostaję przyzwoite czcionki, ale rozumiem, że podstawowa konsola Linux ma zestaw znaków 256 lub 512 symultanicznych symboli, więc nie można oczekiwać pełnej obsługi czcionek.
Na początku myślałem, że mogę użyć $TERM
lub tty, ale oto haczyk: ja też używam byobu, więc $TERM
zawsze jest to „screen.linux”. Wyniki tty również nie są zbyt wymowne: /dev/pts/<some number>
zarówno w kategoriach „rzeczywistych”, jak i wirtualnych.
$BYOBU_TTY
też nie jest pomocne, ponieważ np. może być /dev/tty1
i kiedy sesja jest otwarta w Ctrl+ Alt+, F1znaki nie pokazują się, ale podczas dołączania do tej samej sesji z jakiegoś X terminu, pokazują się poprawnie i nadal $BYOBU_TTY
się nie zmieniają. Poza tym chciałbym móc to wykryć bez zakładania, że byobu jest, czy nie.
Ponadto ustawienia regionalne pokazują się we wszystkich przypadkach en_US.UTF-8
Jednak w jakiś sposób spogląda (aby wymienić konkretne narzędzie, które to wykrywam), nawet wewnątrz byobu, używa różnych danych wyjściowych w zależności od terminala, który podłączam do sesji byobu.
Mam problem z Google, ponieważ terminale i tty wydają się zbyt częstymi wyszukiwanymi hasłami. Co najwyżej docieram do rozwiązań polecających $TERM
lub tty.