Następna strona Poprzednia strona Spis treści

4. Kasowanie terminala

Na ekranie są śmieci, a wszystkie naciśnięcia klawiszy dają w efekcie znaki do rysowania ramek. Co robić?

Wiele programów przerysuje ekran po naciśnięciu ^L. Może to pomóc w sytuacji gdy na ekranie znajdują się śmieci z modemu lub nadany komunikat. Komenda clear czyści ekran.

Komenda reset kasuje sterownik konsoli. Pomaga to w sytuacji gdy ekran pełen jest dziwnych znaków graficznych, a także jeśli skurczy się do jednej linii na dole. Jeśli nie masz tej komendy, bądź jeśli robi ona coś innego, stwórz własną dodając poniższe dwie linie do pliku wykonywalnego reset w swojej ścieżce:

#!/bin/sh
echo -e \\033c

to jest, masz zamiar posłać dwa znaki: Esc-c, na konsolę.

Dlaczego ekran czasami się miesza i wyświetlane jest 24 lub jedna linia, zamiast zwykłych 25? Cóż, głównym winowajcą jest tutaj TERM=vt100 (albo jakiś inny terminal z 24 liniami) zamiast TERM= linux przy łączeniu się zdalnie. Jeśli stanie się to na /dev/tty2 napisz:

% cat > /dev/tty2
^[c
^D

na jakieś innej WK (gdzie wpisujesz cztery symbole do cat: Esc, c, Enter, Ctrl-D) i odśwież ekran na /dev/tty2 (możliwie używając ^L), co przywróci porządek. Oczywiście stałym rozwiązaniem jest używanie odpowiedniego kawałka termcap lub terminfo.

Dlaczego tak się dzieje że czasami dostajesz masę znaków do rysowania ramek, np. po wysłaniu na ekran pliku binarnego za pomocą cat ? Istnieje wiele Esc-sekwencji które zmieniają zestaw znaków, a twój plik może przypadkiem zawierać niektóre z nich. Esc c to ogólne przekasowanie, lekarstwo na wszystko, ale jeżeli wiesz dokładnie co poszło nie tak, możesz to naprawić bez kasowania innych atrybutów konsoli. Na przykład po

% cat
^N
^D

twój znak zachęty konsoli będzie się cały składał ze znaków do rysowania ramek. Napisz teraz (na ślepo):

% cat
^O
^D

I wszystko jest znów w porządku (wpisałeś trzy symbole do każdego cat: ^N lub ^O, Enter, ^D). Żeby zrozumieć co się dzieje, patrz "Zestawy znaków konsoli" poniżej.

Jeśli załadowałeś jakiś dziwną czcionkę i chcesz powrócić do domyślnej.

% setfont

wystarczy (założywszy że zachowałeś domyślną czcionke w domyślnym miejscu). Jeśli ta czcionka nie zawiera osadzonej mapy unikodowej (i wypisuje złe symbole dla znaków akcentowanych), wpisz

% loadunimap

Na przykład, jeśli wykonam

% loadkeys de-latin1

będę miał niemiecką klawiaturę, a klawisz na lewo od Enter wypisze mi a-umlaut. Działa to, ponieważ a-umlaut występuje na stronie kodowej 437, i mapa unikodowa jądra jest inicjalizowana dla CP 437, a moja karta graficzna ma wbudowaną czcionkę CP 437. Jeśli teraz załaduję czcionkę ISO-8859-1 używając

% setfont iso01.f16

nadal wszystko działa, bowiem setfont podstawia jądru ważną mapę unikodową (jeśli do czcionki nie jest dołączona mapa), a bez mapy jądro odwołuje się bezpośrednio do czcionki, a to jest zupełnie poprawne dla systemu ISO-8859-1 z czcionką iso01.f16. Ale przywrócenie poprzedniej czcionki za pomocą

% setfont

daje dużą sigmę zamiast a-umlaut - wszystkie akcentowane znaki są pomieszane, ponieważ ta czcionka również nie ma osadzonej mapy unikodowej. Po wykonaniu

% loadunimap

która ładuje domyślną mapę unikodową (prawidłową dla domyślnej czcionki), wszystko znów działa jak trzeba. Zwykle loadunimap nie jest wywoływane bezpośrednio, lecz przez setfont. Tak więc poprzednie dwie komendy można zastąpić przez

% setfont -u def

Czcionki etiopskie oraz lat1u*.psf mają osadzone tabele znaków Unicode. Większość pozostałych nie ma.

Na starych terminalach wydruk zawierający znaki tabulacji może wymagać opóźnienia, więc musisz napisać

% stty tab3

(patrz stty(1)).

Tryb graficzny zmienić możesz używając resizecons albo SVGATextMode. To zwykle załatwia aspekt wyświetlania. Po stronie wprowadzania może istnieć wiele potencjalnie niewłaściwych rzeczy. Jeśli X, DOOM, albo jakiś inny program używający trybu "surowego" pada, twoja konsola może ciągle znajdować się w stanie "surowym" (lub "półsurowym"), i trudno jest wydawać polecenia. Patrz "Jak wyjść z trybu surowego" poniżej. Jeśli załadowałeś zły układ klawiatury, to

% loadkeys -d

ładuje ponownie układ domyślny, ale może się okazać że trudno jest napisać "-" ! Alternatywa to:

% loadkeys defkeymap

Czasami nawet litery są poplątane. Warto wiedzieć że istnieją cztery główne typy klawiatur: QWERTY, QWERTZ, AZERTY i Dvoraka. Trzy pierwsze nazwane są od pierwszych sześciu klawiszy i z grubsza odpowiadają krajom angielsko-, niemiecko-, i francuskojęzycznym. W porównaniu z QWERTY, układ QWERTZ zamienia Y i Z. W porównaniu z QWERTY, układ AZERTY zamienia Q i A, W i Z, i ma M na prawo od L, na pozycji średnika. Układ Dvoraka ma zupełnie inny porządek liter.

4.1 Sprzętowe kasowanie klawiatury

Coś może być nie w porządku na poziomie niższym niż wie o tym Linux. Istnieją co najmniej dwa różne niższe poziomy (klawiatura i sterownik klawiatury) w których wydać można komendę "wyłącz klawiaturę" sprzętowi za nią odpowiedzialnemu. Klawiatury często można zaprogramować na używanie jednego z trzech różnych zestawów kodów skanowych.

Niemniej nie wiem o żadnym przypadku w którym okazałoby się to jakimś problemem.

Niektóre klawiatury mają wbudowaną zdolność zmiany układów. Stormy Henderson (stormy@ghost.net) pisze: "Jeśli twoja klawiatura przeprogramowała się przez przypadek, możesz (na klawiaturze Gateway AnyKey) nacisnąć control-alt-suspend_macro by skasować ustawienia klawiszy do stanu normalnego".


Następna strona Poprzednia strona Spis treści