Přístup přes putty: maglajz ve znacích, (čáry a oddělovače)

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Pozoruji, že při ssh přístupu z Putty na ssh server debianu mi v některých aplikacích blbne vykreslování a to tak, že v místo čar se objevují znaky "qqqqqqq" a nebo série "└────────────"

locale hlásí u všeho cs_CZ.UTF-8. Přístupový PC má windows 7 v češtině.




Jaká nastavení jsem zkoušel:
Window - Translation: Remote Character set  = UTF-8 nebo Use font encoding
Window - Translation: Enable VT100 line drawing in UTF-8
Connection - Data - terminal-type string=putty


Na stroji mi to funguje OK.
Přes Putty:
Bohužel ne  všechny změny fungují a u všech programů.

Jak docílit, aby v putty vše fungovalo? Nastavil jsem UTF, což je podmínka pro české písmo. A Ještě jsem nastavil VT100 lines, aby se mi ukazovaly čáry. Bohužel iftop je furt rozhozený..


(Uplně nerozumím všem funkcím terminálu a co se odehrává na pozadí a všemi těmi různými nastaveními.)

O jaké jde utility:
ncurses dialogy (raspi-config)
htop
wavemon
iftop
cokoli co vypisuje češtinu - na to má vliv Language



Vše mi funguje, když spustím programy s LC_ALL=en, ale je to správné řešení?
« Poslední změna: 09. 11. 2020, 19:29:42 od Hamparle »



Re:Přístup přes putty: maglajz ve znacích, (čáry a oddělovače)
« Odpověď #2 kdy: 11. 11. 2020, 10:15:11 »
@IDontCare : hezky. Děkuju.

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Přístup přes putty: maglajz ve znacích, (čáry a oddělovače)
« Odpověď #3 kdy: 11. 11. 2020, 10:33:38 »
Ano, tento thread jsem taky četl, pochází z něj ty úpravy PUTTYklienta, aby aspoň něco šlo (čáry v htop a  ncurses)...
Ale nefunguje to na všechno.


Mě jde o takové řešení nastavení, abych nemusel každý program řešit zvlášť, což je případ toho LC_ALL=en wavemon + iftop. Protože když pro změnu spustím LC_ALL=en htop, tak pro změnu tam mám místo svislých čar apostrofy. (čož podle mě není chyba, htop zjistí jaké je locale a zachová se podle toho a zkusí nejlepší možný způsob, což jsou apostrofy jako nejlepší aproximaci svislé čáry ale nativní vertikální čáry je správně.)

Re:Přístup přes putty: maglajz ve znacích, (čáry a oddělovače)
« Odpověď #4 kdy: 11. 11. 2020, 10:43:56 »
Ano, tento thread jsem taky četl, pochází z něj ty úpravy PUTTYklienta, aby aspoň něco šlo (čáry v htop a  ncurses)...
Ale nefunguje to na všechno.


Mě jde o takové řešení nastavení, abych nemusel každý program řešit zvlášť, což je případ toho LC_ALL=en wavemon + iftop. Protože když pro změnu spustím LC_ALL=en htop, tak pro změnu tam mám místo svislých čar apostrofy. (čož podle mě není chyba, htop zjistí jaké je locale a zachová se podle toho a zkusí nejlepší možný způsob, což jsou apostrofy jako nejlepší aproximaci svislé čáry ale nativní vertikální čáry je správně.)

Korektní vykreslování dekorací (rámečků) rámečků záleží na několika faktorech: 1. zda jsou tištěné skrz alternativní charset terminálu nebo skrze UTF8, 2) jestli aplikace přímo posílá znaky na tty nebo používá ncurses. Minimálně ncurses pro svoje korektní fungování vyžaduje správné nastavení language - tj LC_ALL=en.UTF8 nebo LANG a ncurses musí být zkompilováno s podporou širokých znaků - tj musí být nainstalována knihovna ncursesw. A do toho ještě vstupuje vlastní konfigurace terminálu, i to, co si o terminálu myslí ncurses. A ještě tam jsou priority -  místo LC_ALL mám nastavenou proměnnou LANG a také to funguje.

Celé to může vypadat zmateně, protože dekoraci lze vykreslit různými způsoby, které mohou a nemusí fungovat v různých konfiguracích terminálu - a samozřejmě, že každá aplikace používá svůj vlastní způsob, který je ale pro běžného uživatele transparentní, což vede k tomu, že je uživatel zmatený, protože něco mu funguje a něco ne. Při správné konfiguraci funguje všechno.
« Poslední změna: 11. 11. 2020, 10:48:58 od Pavel Stěhule »