![]() |
|
Poni�sze pakiety zawieraj� programy odnosz�ce si� do klawiatury lub konsoli:
kbd-0.90.tar.gz
zawiera loadkeys
, dumpkeys
, showkey
,
setmetamode
, setleds
, setfont
, showfont
, mapscrn
,
kbd_mode
, chvt
, resizecons
, disalloc
,
getkeycodes
, setkeycodes
.
util-linux-2.6
zawiera setterm
, kbdrate
. (Tak, more
w util-linux 2.6 zrzuca core
z powodu konfliktu nazw. Zachowaj swoj�
star� kopi�, albo u�ywaj util-linux-2.5, albo zmie� 'savetty' na
'my_savetty' w more.c).
shutils-1.12
zawiera stty
.
open-1.4.tgz
zawiera open
(kt�re powinno si� przemianowa�
na openvt
. Patrz te� dynamic-vc-1.1.tar.gz
).
SVGATextMode-1.6.tar.gz
zawiera SVGATextMode
, program kt�ry
zast�puje stare resizecons
Dystrybucja X zawiera xmodmap
, xset
, kbd_mode
(patrz te� X386keybd(1) co do sytuacji pod XFree86 1.3, oraz
Xserver(1) co do rozszerzenia XKEYBOARD pod X11R6).
termcap-2.0.8.tar.gz
zawiera termcap
, star� baz� danych w�a�ciwo�ci
terminala. ncurses-1.9.9e.tar.gz
zawiera baz� termlib kt�ra zast�puje
termcap (wiele program�w jednak ci�gle u�ywa termcap).
Patrz loadkeys(1), setleds(1), setmetamode(1) co do kod�w wysy�anych przez r�ne klawisze i ustawiania diod poza X. Pod X, u�yj xmodmap(1).
Patrz setfont(8) co do �adowania czcionek konsoli. Wielu ludzi woli za�adowa� jak�� czcionk� w rodzaju iso01.f16, poniewa� domy�lna jest czcionk� sprz�tow� karty graficznej, i cz�sto jest to czcionka "Code Page 437", w kt�rej brakuje akcentowanych znak�w i innych symboli z zestawu Latin-1.
Patrz setterm(1), kbdrate(8) co do w�a�ciwo�ci takich jak kolory t�a i pisma, wygaszanie ekranu, szybko�� powtarzania klawiszy - wszystko poza X. Pod X, patrz xset(1), te� co do d�wi�ku przy naci�ni�ciu klawisza i g�o�no�ci dzwonka.
Plik /etc/termcap
definiuje Esc-sekwencje dla wielu program�w
kt�re odnosz� si� do konsoli (lub innego terminala). Bardziej nowoczesna
wersja znajduje si� w /usr/lib/terminfo
. (Patrz terminfo(5).
Pliki terminfo s� kompilowane kompilatorem terminfo
/usr/lib/terminfo/tic
, patrz tic(1). Ich zawarto�� obejrze�
mo�na u�ywaj�c programu infocmp
, patrz infocmp(1). Sekwencje konsoli
linuxowej opisane s� w console_codes(4).
Naciskasz klawisz, a kontroler klawiatury wysy�a kody skanowe do
sterownika klawiatury j�dra. Niekt�re klawiatury mo�na programowa�,
ale przewa�nie kody klawiszy odpowiadaj�ce klawiszom s� sta�e.
Sterownik klawiatury j�dra przesy�a po prostu cokolwiek otrzymuje
do programu aplikacji, gdy ta jest w trybie skanowania kod�w,
na przyk�ad podczas dzia�ania X
. W przeciwnym razie przek�ada
on strumie� kod�w skanowych na kody klawiszy, odpowiadaj�ce zdarzeniom
naci�ni�cia i zwolnienia klawisza (pojedyncze naci�ni�cie klawisza
mo�e wytworzy� do sze�ciu kod�w skanowych).
Kody te [klawiszy] s� przesy�ane do programu aplikacji gdy znajduje
si� on w trybie kod�w klawiszy (u�ywane, na przyk�ad, przez
showkey
). W przeciwnym razie, owe kody klawiszy por�wnywane s�
z rozk�adem klawiatury, i znaleziony tam znak lub ci�g znak�w jest
przesy�any do aplikacji, b�d� nast�puje wykonanie opisanej tam
czynno�ci.
(Na przyk�ad, je�li naci�nie si� i zwolni klawisz a
, klawiatura
wysy�a kody skanowe 0x1e i 0x9e, przekszta�cane s� one na kody klawiszy
30 i 158, a potem przesy�ane jako 0141, kod ASCII lub Latin-1 litery 'a';
je�li naci�nie si� i zwolni Delete
, klawiatura wysy�a kody skanowe
0xe0 0x53 0xe0 0xd3, przekszta�cane na kody klawiszy 111 i 239, a potem
przesy�ane jako czterosymbolowa sekwencja ESC [ 3 ~
, wszystko
to zak�adaj�c ameryka�ski uk�ad klawiatury jako domy�lny (przyk�adem
kombinacji klawiszy kt�rej przypisana jest czynno�� jest Ctrl-Alt-Del).
T�umaczenia pomi�dzy niecz�stymi kodami skanowymi i klawiszy mo�na
dokona� u�ywaj�c narz�dzia setkeycodes
- tylko bardzo nieliczni
b�d� go potrzebowa�. T�umaczenia pomi�dzy kodami klawiszy i znakami b�d�
ci�gami znak�w lub czynno�ci, to jest uk�adem klawiatury, dokonuje si�
przy pomocy narz�dzia loadkeys
.
Po szczeg�y patrz getkeycodes(8), setkeycodes(8), dumpkeys(1), loadkeys(1).
Tam gdzie w powy�szym opisie pisz� "przes�ane do aplikacji", znaczy to rzeczywi�cie "przes�ane do sterownika terminala". To jest, dalsze przetwarzanie jest bardzo podobne do przetwarzania tekstu kt�ry odbierany jest na z��czu szeregowym. Szczeg�y tego przetwarzania ustala program .
I odwrotnie, kiedy wypisujesz co� na konsol�, najpierw podpada to pod
standardowe przetwarzanie tty, a potem dostarczane jest sterownikowi
konsoli. Sterownik konsoli emuluje vt100 i przek�ada dane wej�ciowe
aby rozpozna� Esc-sekwencje vt100 (ruchu kursora, czyszczenia ekranu itp.)
Znaki kt�re nie s� cz�ci� Esc-sekwencji s� najpierw przetwarzane na
Unicode, u�ywaj�c jednej z czterech tablic odwzorowa� je�li konsola
nie by�a od pocz�tku w trybie UTF-8, potem odnoszone do tabeli opisuj�cej
zale�no�� mi�dzy warto�ciami Unicode i pozycjami w czcionce, a uzyskane
o�mio- lub dziewi�ciobitowe indeksy zapisywane s� w pami�ci ekranu,
gdzie powoduj� wy�wietlenie kszta�t�w znak�w znalezionych w ROMie znakowym
karty graficznej. Do ROMu znakowego mo�na za�adowa� w�asne czcionki
u�ywaj�c setfont
, za�adowa� odpowiadaj�c� tablic� odwzorowa� Unicode
u�ywaj�c loadunimap
, i za�adowa� tablic� odwzorowa� u�ytkownika
u�ywaj�c mapscrn
. Wi�cej szczeg��w poni�ej.
Istnieje wiele konsol (zwanych Wirtualnymi Konsolami lub Wirtualnymi Terminalami) kt�re dziel� ten sam ekran. Mo�esz ich u�ywa� jako oddzielnych urz�dze�, albo uruchamiaj�c na nich oddzielne sesje logowania, albo po prostu przesy�aj�c na nie jakie� dane wyj�ciowe z pocz�tku czy ko�ca system log. Patrz ni�ej ("Prze��czanie konsol") co do tego jak je ustawia� i prze��cza� si� mi�dzy nimi.
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.
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".
Nak�onienie Delete i Backspace do prawid�owej pracy jest wcale trywialne,
zw�aszcza w �rodowisku mieszanym, gdzie komunikujesz si� z konsol�, z X
,
bash
, emacsem
, logujesz si� zdalnie itd. Mo�e b�dziesz musia�
wyedytowa� kilkana�cie plik�w konfiguracyjnych �eby powiedzie� wszystkim
konkretnym programom czego dok�adnie chcesz. Z jednej strony problemem
jest jakie klawisze wypisuj� jakie kody (i jak te kody przetrawia
kermit
czy emacs
), a z drugiej strony jakie funkcje s� przypisane
jakim klawiszom.
Ludzie cz�sto skar�� si� "m�j klawisz wstecznej spacji nie dzia�a", jak gdyby ten klawisz mia� wbudowan� funkcj� "skasuj poprzedni znak". Niestety wszystko co ten, albo ka�dy inny, klawisz robi to wypisanie kodu, i mo�na tylko mie� nadziej� �e sterownik tty j�dra i wszystkie aplikacje mo�na tak skonfigurowa� �e klawisz wstecznej spacji rzeczywi�cie dzia�a jako klawisz kasuj�cy poprzedni znak.
Wi�kszo�� unixowych program�w otrzymuj� swoje dane wej�ciowe tty przez
sterownik tty j�dra w trybie "niesurowym", i zwyk�e polecenie stty
ustala znak kasuj�cy. Jednak programy takie jak bash
, emacs
czy X
przetwarzaj� dane wej�ciowe w�asnymi metodami, i musz� by�
ka�de z osobna przekonane do w�a�ciwego dzia�ania.
% stty erase ^?
Je�li znak jest kasowany, ale w dziwny spos�b, co� jest nie w porz�dku
z twoimi ustawieniami tty. Je�li ustawione jest echoprt
, kasowane
znaki uj�te s� mi�dzy \
oraz /
.
Je�li echoe
nie jest ustawione, znak kasowania jest wypisywany
(co jest rozs�dne w przypadku gdy jest to znak drukuj�cy, jak #).
Wi�kszo�� ludzi woli stty echoe -echoprt
. Napisanie stty sane
zrobi to i wi�cej. Napisanie stty -a
pokazuje bie��ce ustawienia.
Jak to si� sta�o �e domy�lnie nie by�y poprawne? B�d�, je�eli u�yjesz
poprawnego getty
.
Zauwa� �e wiele program�w (jak bash
, emacs
itd.) maj� swoje
w�asne przypisania klawiszy (zdefiniowane w ~/.inputrc
,
~/.emacs
itd.) i nie wp�ywa na nie ustawienie znaku kasowania.
Standardowy unixowy sterownik tty nie rozpoznaje kursora, ani klawiszy
(takich jak klawiszy strza�ek) przesuwaj�cych bie��c� pozycj�, i st�d
nie ma te� komendy takiej jak "skasuj bie��cy znak". Ale na przyk�ad
mo�esz nauczy� bash
na konsoli rozpoznawania Delete wstawiaj�c
set editing-mode emacs
"\e[3~":delete-char
do ~/.inputrc
Dawniej, sterownik konsoli zwykle wypisywa� BS-spacja-BS
(\010\040\010
)
gdy otrzyma� znak DEL (\177
). Dzisiaj, znaki DEL s�
ignorowane (tak jak powinny, poniewa� sterownik emuluje vt100). Zdob�d�
lepsze getty, tj. takie kt�re nie wypisuje DEL.
Przy pierwszej pr�bie, komunikujesz si� z getty
. Przy drugiej
pr�bie, komunikujesz si� z login
, innym programem.
Na konsoli lub, �ci�lej, gdy nie jeste� w trybie (p�)surowym, u�yj
% loadkeys mykeys.map
A pod X u�yj
% xmodmap mykeys.xmap
[gdzie mykeys.(x)map to oczywi�cie konkretny plik definicji klawiatury - przyp. t�um.]
Zauwa� �e (od XFree86-2.1) X czyta linuxowe ustawienia uk�ad�w klawiatury
przy initializacji Xowego keymap. Chocia� oba systemy nie s� w 100%
kompatybilne, oznacza to �e w wielu przypadkach u�ywanie xmodmap>
sta�o si� zb�dne.
Za��my, na przyk�ad, �e chcesz �eby tw�j klawisz Backspace dawa�
wsteczn� spacj� (^H, �semkowe 010), a szary klawisz Delete DEL (�semkowe
012), dodaj poni�sze do
etc/rc.local (albo tam gdzie trzymasz swoje
pliki inicjalizacyjne).
/usr/bin/loadkeys << EOF
keycode 14 = BackSpace
keycode 111 = Delete
EOF
Zauwa� �e zmieni to funkcj� tych klawiszy tylko gdy nie u�ywa si� modyfikator�w. Domy�lnie j�dro Linuxa pozwala Ctrl-Backspace wypisywa� wsteczn� spacj� - czasami przydaje si� to jako zapasowe wyj�cie, gdy stwierdzisz �e mo�esz wypisywa� tylko znaki DEL.
Lewy klawisz Alt jest czasem zwany klawiszem Meta, a domy�lnie kombinacje AltL-X s� przypisane do symbolu Meta-X. Ale jakim ci�giem znak�w jest Meta-X? Ustalane jest to (via tty) przez znacznik Meta, ustawiony komend� setmetamode. Dwiema mo�liwo�ciami s�: Esc X albo X iloczyn logiczny 0200.
(i) Poniewa� vt100 mia� klawisz Delete nad klawiszem Enter.
(ii) Bo Linus tak postanowi�.
% xmodmap -e "keysym BackSpace = Delete" -e "keysym Delete = BackSpace"
Albo, je�li chcesz tylko �eby klawisz Backspace dawa� wsteczn� spacj�:
% xmodmap -e "keycode 22 = BackSpace"
Albo, je�li chesz tylko �eby klawisz Delete dawa� Delete:
% xmodmap -e "keycode 107 = Delete"
(ale zwykle takie jest ju� domy�lne przypisanie).
Wsad� do swojego pliku .emacs
linie jak ni�ej:
(global-set-key "\?" 'delete-backward-char)
(global-set-key "\C-h" 'help-command)
Oczywi�cie mo�esz w ten sam spos�b przypisa� inne polecenia innym klawiszom. Zauwa� �e niekt�re tryby g��wne i poboczne redefiniuj� przypisania klawiszy. Na przyk�ad w trybie szukania przyrostowego [incremental mode] mo�na znale�� kod:
(define-key map "\177" 'isearch-delete-char)
(define-key map "\C-h" 'isearch-mode-help)
Oznacza to �e u�ywanie dw�ch powy�szych komend globalnych mo�e nie
by� dobrym pomys�em. Za du�o jest miejsc z wbudowanym za�o�eniem ^H =
pomoc i Del = delete. Nie oznacza to �e musisz ustawi� klawisze tak
�eby Backspace dawa�o Del. Ale je�li tak nie jest, naj�atwiej jest
zmieni� ich uk�ad na najni�szym mo�liwym poziomie emacsa
.
Wsad� do swojego pliku .emacs
linie jak ni�ej:
(setq keyboard-translate-table (make-string 128 0))
(let ((i 0))
(while (< i 128)
(aset keyboard-translate-table i i)
(setq i (1+ i))))
(aset keyboard-translate-table ?\b ?\^?)
(aset keyboard-translate-table ?\^? ?\b)
Ostatnie wersje emacsa
maj� funkcj� keyboard-translate
, wi�c
mo�na upro�ci� powy�sze do
(keyboard-translate ?\C-h ?\C-?)
(keyboard-translate ?\C-? ?\C-h)
Zauwa� �e pod X
emacs
mo�e rozr�nia� Ctrl-h i klawisz
Backspace (niezale�nie od tego jakie kody oba wypisuj� na konsoli),
a domy�lnie emacs
b�dzie widzia� klawisz wstecznej spacji jako DEL
(wykonuj�cy polecenia kasowania, przypisane temu znakowi, a nie
polecenia pomocy, przypisane do ^H). Mo�na ro�r�nia� Backspace i Delete,
np. poprzez
(global-unset-key [backspace] )
(global-set-key [backspace] 'delete-backward-char)
(global-unset-key [delete] )
(global-set-key [delete] 'delete-char)
Wsad� do swojego pliku .kermrc
linie jak ni�ej:
set key \127 \8
set key \8 \127
Xterm dziedziczy zwykle tryby tty po programie kt�ry go wywo�a�.
W xdm
, domy�lne klawisze kasowania i usuwania to #
i @
, jak
w starej dobrej wersji 6 Unixa.
Je�li nie podoba ci si� to, mo�esz wsadzi� co� podobnego do
XTerm*ttymodes: erase ^? kill ^U intr ^C quit ^\ eof ^D susp ^Z start ^Q stop ^S eol ^@
do /usr/lib/X11/app-defaults/XTerm
albo do
$HOME/.Xresources
, zak�adaj�c �e masz lini�
xrdb $HOME/.Xresources
w swoim $HOME/.xinitrc
.
Wsadzenie
*XmText.translations: #override\n\
<Key>osfDelete: delete-previous-character()
*XmTextField.translations: #override\n\
<Key>osfDelete: delete-previous-character()
do twojego $HOME/.Xresources
pomo�e.
W Netscape FAQ mo�na jednak przeczyta�:
Dlaczego m�j klawisz Backspace nie dzia�a w polach tekstowych? Domy�lnie, Linux i XFree86 dostarczane s� ze �le skonfigurowanymi klawiszami Backspace i Delete. Wszystkie programy oparte na Motif (w tym oczywi�cie Netscape Navigator) b�d� w ten sam spos�b �le dzia�a�. Specyfikacja Motif m�wi �e Backspace ma kasowa� poprzedni znak a Delete ma kasowa� znak nast�pny. Linux i XFree86 s� dostarczane z takim ustawieniem �e oba klawisze - Backspace i Delete - wypisuj� Delete. Mo�esz to naprawi� u�ywaj�c kt�rego� z program�w xmodmap, xkeycaps b�d� loadkeys i sprawi� �e odpowiedni klawisz wypisuje klawsym wsteczna spacja, a nie Delete. Mo�esz to r�wnie� naprawi� u�ywaj�c pliku .motifbind; patrz strona man VirtualBindings(3). Uwaga: nie u�ywaj zasob�w *XmText.translations lub *XmTextField. translations pr�buj�c naprawi� ten problem. Je�li tak zrobisz, rozwalisz pozosta�e przypisania klawiszy w polach tekstowych NN.
Ted Kandell (ted@tcg.net) sugeruje co nast�puje:
Dodaj poni�sze gdzie� w swoim .profile
:
stty erase ^H
Je�li u�ywasz basha, dodaj poni�sze linie do swojego .inputrc
:
"\C-?": delete-char
"\C-h": backward-delete-char
Dodaj nast�puj�ce linie do swojego pliku .xinitrc
:
xmodmap <<-EOF
keycode 22 = BackSpace osfBackSpace
keycode 107 = Delete
EOF
# wystartuj tu swojego managera okien, np.
#(fvwm) 2>&1 | tee /dev/tty /dev/console
stty sane
stty erase ^H
loadmap <<-EOF
keycode 14 = BackSpace
keycode 111 = Delete
EOF
B�dzie to definitywnie dzia�a� dla klawiatury PC 101 lub 102-klawiszowej, z ka�dym rozk�adem Linuxa/XFree86.
Wa�n� cz�ci� uczenia aplikacji motifowych takich jak Netscape poprawnej pracy jest dodanie osfBackSpace do keycode 22, opr�cz BackSpace.
Zauwa� nie po obu stronach znaku = nie mog� si� znajdowa� spacje.
Gdy kto� ma problemy z wsteczn� spacj�, ma on tendencj� do patrzenia w sw�j kawa�ek termcap (lub terminfo) opisuj�cy terminal; i rzeczywi�cie, istnieje tam zdolno�� kb (lub kbs) opisuj�ca kod wypisywany przez klawisz Backspace. Niemniej niewiele program�w jej u�ywa, wi�c - chyba �e masz problemy z jednym konkretnym programem - prawdopodobnie b��d le�y gdzie indziej. Oczywi�cie poprawienie swojego kawa�ka termcap (terminfo) nie jest z�ym pomys�em tak czy owak. Patrz ni�ej pod "Zmienna TERM".
J�dro pr�buje wywnioskowa� najpierw jaki symbol rozumie� przez ka�dy podany przez u�ytkownika bajt, a nast�pnie gdzie ten symbol jest umieszczony w bie��cej czcionce.
J�dro wie o pi�ciu t�umaczeniach bajt�w na symbole konsoli-ekranu. W trybie Unicode (UTF-8) kod UTF-8 jest przekszta�acany bezpo�rednio na Unicode. Za�o�eniem jest �e prawie wszystkie potrzebne symbole w Unicode si� znajduj�, a w przypadkach gdzie nie jest to prawd� zarezerwowane s� kody 0x00ff* dla bezpo�redniego dost�pu do czcionki. Poza trybem Unicode, u�ywa si� jednej z tabeli t�umacze�. Te cztery tabele to: a) Latin1 -> Unicode, b) grafika vt100 -> Unicode, c) PC -> Unicode, d) zdefiniowane przez u�ytkownika.
Istniej� dwa zestawy znak�w, zwane G0 i G1, i jeden z nich jest zestawem bie��cym (pocz�tkowo G0). Wypisanie ^N spowoduje �e bie��cym zestawem b�dzie G1, ^O �e G0.
Zmienne G0 i G1 wskazuj� na tablice t�umacze�, i mog� by� zmienione przez u�ytkownika. Pocz�tkowo wskazuj� na tablice a) i b), odpowiednio. Sekwencje Esc(B, Esc(0, Esc(U, Esc(K powoduj� �e G0 wskazuje na tablice t�umacze� a), b), c), d), odpowiednio. Sekwencje Esc)B, Esc)0, Esc)U, Esc)K powoduj� �e G1 wskazuje na tablice t�umacze� a), b), c), d), odpowiednio.
Sekwencja Esc-c powoduje skasowanie terminala, czyli to czego chcesz
je�eli ekran jest ca�y za�miecony. Cz�sto doradzane echo ^V^O
spowoduje tylko �e zestawem bie��cym b�dzie G0, ale nie ma gwarancji �e
G0 pokazuje na tablic� a).
W niekt�rych dystrybucjach istnieje program reset(1), kt�ry wypisuje
po prostu echo ^[c. Je�li tw�j kawa�ek termcap dla konsoli jest
poprawny (i ma :rs=\Ec:
), wtedy zadzia�a tak�e
setterm -reset
.
Zdefiniowan� przez u�ytkownika tablic� odwzorowa� ustawi� mo�na
u�ywaj�c mapscrn(8). Rezultatem odwzorowania jest to �e je�eli
wypisywany jest symbol c, to wysy�any do pami�ci ekranu jest
symbol s = map[c]
. Obraz bitowy kt�ry odpowiada s
znajduje si� w ROMie znakowym, i mo�e zosta� zmieniony przy
pomocy setfont(8).
Domy�lnie prze��czania konsoli dokonuje Alt-Fn lub Ctrl-Alt-Fn. Pod
X
(lub nowszymi wersjami dosemu
) dzia�a tylko Ctrl-Alt-Fn.
Wiele uk�ad�w klawiatur pozwala na cykliczne przemieszczanie si�
mi�dzy konsolami przy u�yciu Alt-strza�ka_w_prawo i Alt-strza�ka_w_lewo.
XFree86 1.3 nie wie �e przyci�ni�ty jest Alt gdy prze��czasz si� do okienka X. Tak wi�c nie mo�esz prze��czy� si� natychmiast na jak�� innej WK, ale musisz najpierw zwolni� Alt. W drug� stron� powinno to dzia�a�; j�dro zawsze zanotowywuje stan g�ra/d� wszystkich klawiszy. (na tyle na ile mo�na; na niekt�rych klawiaturach cz�� klawiszy nie wysy�a kodu skanowego po naci�ni�ciu, np. klawisze PFn na FOCUS 9000) lub zwolnieniu (np. klawisz Pause na wielu klawiaturach).
XFree86 1.3 zapisuje czcionki za�adowane do ROMu znakowego przy starcie
i przywraca je przy prze��czaniu konsoli. Tak wi�c efekt setfont
na WK zostaje wymazany gdy prze��czasz si� mi�dzy X i zewn�trzem.
U�ywanie setfont
pod X mo�e doprowadzi� do dziwnych rezultat�w.
Pod kontrol� programow� WK mo�na zmienia� u�ywaj�c komendy chvt
.
To pytanie ci�gle pojawia si� od czasu do czasu, ale odpowied� brzmi:
ju� masz ich dosy�. Od wersji 1.54 j�dra istnieje od 1 do 63 wirtualnych
konsol. Nowa konsola tworzona jest natychmiast po otwarciu. Usuwa si�
j� narz�dziem disalloc
(ale mo�na j� usun�� tylko gdy nie ma z ni�
skojarzonych proces�w).
Dla starszych j�der, zmie� lini�
#define NR_CONSOLES 8
w include/linux/tty.h
(nie zwi�kszaj tej liczby powy�ej 63),
i zrekompiluj j�dro.
Je�li jeszcze nie istniej�, stw�rz urz�dzenia tty u�ywaj�c MAKEDEV
lub
mknod ttyN c 4
, gdzie N
oznacza numer tty. Na przyk�ad:
for i in 9 10 11 12; do mknod /dev/tty$i c 4 $i; done
albo, lepiej, (poniewa� zatroszczy si� to r�wnie� o w�a�ciciela i prawa dost�pu)
for i in 9 10 11 12; do /dev/MAKEDEV tty$i; done
Je�li chcesz �eby nowe WK uruchamia�y getty
, dodaj linie w
/etc/inittab
(ale jest znacznie lepiej mie� uruchomione tylko dwie
getty
, i tworzy� wi�cej konsol dynamicznie w razie potrzeby. W ten
spos�b b�dziesz mia� wi�cej pami�ci gdy nie u�ywasz wszystkich konsol, a
tak�e wi�cej konsol, w razie gdyby� naprawd� ich potrzebowa�. Wyedytuj
/etc/inittab
i wykomentuj wszystkie getty
pr�cz dw�ch
pierwszych).
Gdy konsole s� przydzielane dynamicznie, zazwyczaj naj�atwiej jest
mie� tylko jedn� czy dwie z uruchomionym getty. Wi�cej
otwiera si� za pomoc�
open -l -s bash
. Nieu�ywane konsole
(bez skojarzonych proces�w) usuwa si� za pomoc� disalloc
.
Ale, rzec mo�esz, zaj�ty jestem czynno�ciami w kt�rych nagle potrzebuj�
wi�cej konsol, a nie mam znaku zach�ty bash aby wyda� polecenie open
.
Na szcz�cie mo�liwe jest stworzenie nowej konsoli po naci�ni�ciu jednego
klawisza, bez wzgl�du na to co dzieje si� na konsoli bie��cej.
Je�li masz spawn_login
z kbd-0.90.tar.gz
i wstawisz
loadkeys << EOF
alt keycode 103 = Spawn_Console
EOF
spawn_login &
do
etc/rc.local, naci�ni�cie Alt-strza�ka_w_g�r� utworzy
now� WK z uruchomionym login
(i prze��czy si� na ni�). U�ywaj�c
spawn_console &
zamiast spawn_login &
uzyskasz
tam uruchomiony bash
. Patrz te� open-1.4.tgz
oraz
dynamic-vc-1.1.tar.gz
.
To jaka czynno�� winna by� podejmowana po naci�ni�ciu tego klawisza
Spawn_Console mo�na r�wnie� ustawi� w /etc/inittab
pod
kbrequest
, je�li masz �wie�y plik inicjalizacyjny. Patrz inittab(5)
(czynno�� ta mo�e by� czym� zupe�nie innym - nazwa�em ten klawisz
Spawn_Console po prostu dlatego �e do tego go wykorzystywa�em).
Na terminalach wyliczonych w /etc/securetty/ mo�esz zalogowa� si�
tylko jako root. Istniej� programy kt�re czytaj� ustawienia terminala
z plik�w
/etc/ttys/
i /etc/ttytype
. Je�li masz takie
pliki, i stworzysz dodatkowe konsole, dobrym pomys�em mog�oby by�
r�wnie� dodanie dla nich linii w tych plikach.
8. Ctrl-Alt-Del i inne specjalne kombinacje klawiszy
8.1 Ctrl-Alt-Del (prze�adowanie)
Je�li naci�niesz Ctrl-Alt-Del (albo ka�dy inny klawisz z przypisanym
przed loadkeys klawsymem Boot) komputer albo prze�aduje si� natychmiast
(bez sync), albo do init
wysy�a si� SIGINT. To pierwsze zachowanie
jest domy�lne. Mo�e je zmieni� root u�ywaj�c systemowego wywo�ania reboot(),
patrz ctrlaltdel(8). Niekt�re pliki init
zmieniaj� warto�� domy�ln�.
To co nast�pi gdy init
otrzyma SIGINT zale�y od u�ytej wersji tego� -
cz�sto okre�la to pole pf
w /etc/inittab
(co oznacza �e
mo�esz w tym przypadku uruchomi� dowolny program).
W obecnym j�drze Ctrl-AltGr-Del nie jest ju� domy�lnie przypisane do
Boot.
8.2 Inne kombinacje
Name Default binding
-------------------------------
Show_Memory Shift-Scrollock [pokazuje info o pami�ci]
Show_Registers AltGr-ScrollLock [pokazuje zawarto�� rejestr�w]
Show_State Ctrl-ScrollLock [pokazuje status]
Console_n Alt-Fn and Ctrl-Alt-Fn (1 <= n <= 12) [konsola nr n]
Console_{n+12} AltGr-Fn (1 <= n <= 12) [konsola nr n+12]
Incr_Console Alt-RightArrow [o konsol� w g�r�]
Decr_Console Alt-LeftArrow [o konsol� w d�]
Last_Console Alt[Gr]-PrintScreen [ostatnia konsola]
Scroll_Backward Shift-PageUp [przewija ekran w g�r�]
Scroll_Forward Shift-PageDown [przewija ekran w d�]
Caps_On [w��cza du�e litery. CapsLock dzia�a
jako prze��cznik]
Compose Ctrl-. [tryb sk�adania, np. '+e daje é]
8.3 Kombinacje w X
Ctrl-Alt-Fn Prze��cza na WK nr n
Ctrl-Alt-KP+ Nast�pny tryb
Ctrl-Alt-KP- Ostatni tryb
Ctrl-Alt-BS "zabija" X
[KP+ i KP- to szary plus i minus z klawiatury numerycznej - przyp. t�um.]
Na niekt�rych p�ytach g��wnych Ctrl-Alt-KP- i Ctrl-Alt-KP+ s� r�wnowa�ne
naci�ni�ciu przycisku Turbo. To jest, oba dadz� w wyniku kody skanowe
1d 38 4a ca b8 9d i 1d 38 4e ce b8 9d, i oba prze��cza� b�d� mi�dzy
trybem turbo (>= 25 Mhz) i nie-turbo (8/12 Mhz). (te kombinacje klawiszy
cz�sto dzia�aj� tylko po ustawieniu zworkami na p�ycie g��wnej).
Perry F. Nguyen (pfnguyen@netcom22.netcom.com) pisze:
AMI BIOS ma w�a�ciwo�� kt�ra blokuje klawiatur� i miga diodami
je�eli naci�ni�to kombinacj� Ctrl-Alt-Backspace w czasie pytania o
has�o BIOS, a� to has�o nie zostanie wpisane.
8.4 Kombinacje Dosemu
Ctrl-Alt-Fn Prze��cz na WK nr n (od wersji 0.50, wcze�niej Alt-Fn)
Ctrl-Alt-PgDn "zabij" dosemu (w trybie SUROWYM klawiatury)
(i wiele innych kombinacji - patrz dokumentacja dosemu)
8.5 Sk�adanie symboli
Jeden symbol mo�e by� z�o�ony przy u�yciu kilku klawiszy.
- lewyAlt-naci�ni�cie, plus numer dziesi�tny wpisany na klawiaturze
numerycznej, plus lewyAlt-zwolnienie daje symbol o kodzie o tym
numerze (w trybie Unicode ten sam mechanizm, ale wtedy z czterema
cyframi szesnastkowymi, mo�na wykorzysta� do zdefiniowania symbolu
Unicode).
- Klawisz diakrytyki plus symbol daje ten symbol z na�o�on� diakrytyk�.
Je�li kombinacja nie jest zdefiniowana, oba klawisze brane s� oddzielnie.
To kt�re klawisz� s� diakrytykami jest ustawialne przez u�ytkownika;
domy�lnie �aden. Mo�na zdefiniowa� pi�� (sze�� od 2.0.5) klawiszy diakrytyki
(za pomoc� loadkeys(1)); dead_grave, dead_acute, dead_circumflex, dead_tilde,
dead_diaeresis (te� dead_cedilla). Co dok�adnie oznacza owo na�o�enie r�wnie�
jest ustawialne przez u�ytkownika; np. klawisz diakrytyki + symbol jest
r�wnowa�ne Compose + diakrytyka + symbol.
- Compose plus dwa symbole daje symbol-z�o�enie. Ten kombinacje s�
ustawialne przez u�ytkownika. Dzisiaj istnieje 68 kombinacji zdefiniowanych
domy�lnie; mo�esz je zobaczy� pisz�c "dumpkeys | grep compose"
- Dalej id� owe klawisze modyfikuj�ce zwane "Sticky" (od 1.3.33). Na
przyk�ad mo�na napisa� ^C jako SControl, C i Ctrl-Alt-Backspace jako
SControl, SAlt, BackSpace
Zauwa� �e istniej� przynajmniej trzy takie mechanizmy z�o�e�:
- Mechanizm sterownika klawiatury Linuxa, u�ywany w po��czeniu z
loadkeys.
- Mechanizm X - patrz X386keybd(1), p�niej XFree86kbd(1).
Pod X11R6: zmodyfikuj
/usr/X11R6/lib/X11/locale/iso8859-1/Compose
.
- Mechanizm emacsowy uzyskiwany po za�adowaniu "iso-insert.el" lub
wywo�aniu iso-accents-mode.
W X porz�dek obu symboli jest dowolny; i Compose-,-c i Compose-c-, dadz�
dla Linuxa i emacsa domy�lnie dzia�a tylko ta pierwsza sekwencja.
Dla X lista kombinacji z�o�e� jest ustalona. Linux i emacs s� elastyczne.
Te trzy domy�lne listy s� nieco podobne, ale r�ni� si� szczeg�ami.
9. R�ne w�a�ciwo�ci konsoli
10. Jak wyj�� z trybu surowego
Je�li jaki� program u�ywaj�cy trybu klawiatury K_RAW zako�czy dzia�anie
bez przywr�cenia trybu klawiatury do K_XLATE, trudno jest co� zrobi� -
nie dzia�a nawet Ctrl-Alt-Del. Niemniej mo�na czasami unikn�� naciskania
przycisku Reset (co jest te� po��dane; twoi u�ytkownicy mog� si�
zdenerwowa� je�li przerwiesz im sesj� Hacka prze�adowaniem; mo�esz te�
uszkodzi� sw�j system plik�w).
Proste rozwi�zania opieraj� si� na zalogowaniu si� z innego terminalu
lub innego komputera i wykonania kbd_mode -a
.
Procedura poni�ej zak�ada �e nie jest uruchomiony X, i �e ekran znajduje
si� w trybie tekstowym, �e znajdujesz si� w znaku zach�ty bash, �e
u�ywasz ameryka�skiego uk�adu klawiatury i �e znakiem kt�ry przerywa
dzia�anie komendy jest u ciebie Ctrl-C.
Krok 1. Uruchom X.
Jak poni�ej: naci�nij 2 (nie zwalniaj), naci�nij F12 (nie zwalniaj)
i natychmiast potem naci�nij =. Uruchomi to X.
(Wyja�nienie: je�li naci�ni�cie klawisza wysy�a kod klawisza K, to
zwolnienie klawisza wysy�a kod K+128. By� mo�e twoja pow�oka nie
lubi tych znak�w powy�ej 128, wi�c unikamy wys�ania ich nie zwalniaj�c
�adnego z klawiszy. Musimy jednak by� szybcy, w przeciwnym razie
nast�pi powtarzanie klawiszy. Cyfra 2 daje Ctrl-C, kt�re usuwa poprzednie
�mieci, F12 daje X, a = Return).
Tw�j ekran mo�e by� teraz szary, poniewa� nie wskazano .xinitrc
.
Ctrl-Alt-Fn jednak dzia�a, mo�esz wi�c przej�� do innej WK (Ctrl-Alt-BS
tak�e dzia�a, ale zwraca ci� do poprzedniego stanu, a tego nie chcesz).
Step 2. Ustaw zmian� trybu klawiatury.
(Na przyk�ad poprzez sleep 5; kbd_mode -a
).
Step 3. Opu�� X.
Alt-Fx (cz�sto Alt-F7) przywraca X, a wtedy Ctrl-Alt-Backspace powoduje
wyj�cie z niego. W ci�gu pi�ciu sekund twoja klawiatura zn�w b�dzie
nadawa�a si� do u�ytku.
Je�li chcesz przygotowa� si� na t� okoliczno��, uczy�
\215A\301
(3 symbols) aliasem na kbd_mode -a
.
Teraz naci�ni�cie tylko = F7 = (trzy symbole) przywr�ci ci� do normalno�ci.
11. Diody na klawiaturze
1. S� to znaczniki klawiatury zale�ne od tty
; ka�da WK ma sw�j
NumLock, CapsLock i ScrollLock. Domy�lnie te znaczniki pokazywane s�
przez diody. Zwyk�ym sposobem ich zmiany jest naci�ni�cie odpowiedniego
klawisza (uwaga uboczna: naci�ni�cie klawisza NumLock w trybie klawiszy
aplikacji nie zmieni stanu NumLock, ale wypisze Esc-sekwencj�. Je�li
chcesz �eby klawisz NumLock zawsze zmienia� stan NumLock, przypisz go
do Bare_Num_Lock).
2. Nast�pnie, na ka�de tty
istniej� domy�lne znaczniki klawiatury,
aby zinicjalizowa� je gdy nast�pi przekasowanie. Tak wi�c je�li chcesz
�eby NumLock by� ca�y czas w��czony, jest to mo�liwe. Zwykle zmieni�
to mo�na przez setleds -D
.
3. Istnieje mo�liwo�� �e diody nie oddaj� stanu znacznik�w klawiatury,
ale co� innego.
3A. To co� innego mo�e by� jakimi� trzema bitami gdzie� w j�drze -
co mo�na wykorzysta� je�eli chcesz pilnowa� bit�w stanu jakiego�
sprz�tu czy programu. Je�li chcesz tego, zmodyfikuj �r�d�o j�dra
aby wywo�ywa�o gdzie� register_leds()
/
3B. To co� innego mo�e by� te� czymkolwiek co jaki� program chce
pokaza� za pomoc� diod. Tak wi�c osoby kt�re lubi� takie rzeczy mog�
u�o�y� ze �wiate�ek �adne wzorki. Je�li chcesz tego, u�yj ioctl KBSETLED.
To drugi spos�b nie jest "na tty", ale wyb�r pomi�dzy pierwszym a drugim
sposobem jest.
Podsumowuj�c: ka�de tty
ma znacznik kbd -> ledmode. Je�li ma
on warto�� LED_SHOW_FLAGS, wtdy pokazane s� znaczniki klawiatury (NumLock
itd.) konkretnego tty
. Je�li ma on warto�� LED_SHOW_IOCTL, wtedy
diody pokazuj� ka�d� warto�� kt�r� ostatnio im przypisano za pomoc�
ioctl KBSETLED.
Doda� mo�na �e X
u�ywa ioctl-�w aby ustawi� diody, ale nie
kasuje swojej WK przy wyj�ciu, tak wi�c po u�ywaniu X
istnie�
mo�e jedna WK kt�ra nie jest w domy�lnym stanie LED_SHOW_FLAGS. Mo�na
to naprawi� wykonuj�c setleds -L
na tej WK. Patrz setleds(1).
12. Zmienna TERM
Wiele program�w u�ywa zmiennej TERM
i bazy danych /etc/termcap
lub /usr/lib/terminfo/*
�eby zadecydowa� kt�re ci�gi znak�w
wys�a� by wyczy�ci� ekran, przesun�� kursor itd., i cz�sto tak�e by
zdecydowa� kt�ry ci�g znak�w wysy�any jest przez klawisz wstecznej
spacji [u�ytkownika], klawisze funkcyjne itp.
T� warto�� ustawia zrazu j�dro (dla konsoli).
Zwykle warto�� t� ponownie ustawia getty
, u�ywaj�c /etc/ttytype
lub argumentu podanego w /etc/inittab
.
Czasami jest ona r�wnie� ustawiana w /etc/profile
.
Starsze systemy u�ywaj� TERM=console
lub TERM=co80x25
. Nowsze
systemy (z ncurses 1.8.6) u�ywaj� bardziej dookre�lonego TERM=linux
lub TERM=linux-80x25
. Niemniej starsze wersje setterm
sprawdzaj�
obecno�� TERM
r�wnej con* i dlatego odmawiaj� pracy z TERM=linux
.
Od wersji j�dra 1.3.2, domy�ln� warto�ci� j�dra dla konsoli jest
TERM=linux
.
Je�li masz plik termcap bez kawa�ka opisuj�cego linux, dodaj s�owo
linux do kawa�ka dla konsoli:
console|con80x25|linux:\
i ustaw /usr/lib/terminfo/l/linux
jako kopi� lub odno�nik
symboliczny do /usr/lib/terminfo/c/console
.
12.1 Terminfo
W kawa�ku terminfo dla konsoli linuxowej od ncurses 1.8.6 brakuje
kich1=\E[2~
, czego potrzebuj� niekt�re programy.
Wyedytuj plik i skompiluj go tic
.
13. Jak zmusi� inne programy do dzia�ania ze znakami spoza ASCII
W dawnych z�ych czasach by�o to wcale nu��ce. Ka�dy program z osobna
musia� by� indywidualnie przekonywany do zostawienia twoich bit�w
w spokoju. Nie �eby dzisiaj wszystko by�o �atwe, ale ostatnio wiele
narz�dzi GNU nauczy�o si� reagowa� na LC_CTYPE=iso_8859_1
lub
LC_CTYPE=iso-8859-1
. Spr�buj najpierw tego; je�li nie pomo�e,
sp�jrz na podpowiedzi poni�ej. Zauwa� �e w nowszych wersjach libc
procedura setlocale()
dzia�a tylko je�eli zainstalowa�e� pliki
locale (tj. w /usr/lib/locale
).
Przede wszystkim �smy bit powinien przetrwa� przetwarzanie danych
wej�ciowych w j�drze, wi�c upewnij si� �e ustawi�e� stty cs8
-istrip -parenb
A. Dla emacsa
szczeg�y w du�ym stopniu zale�� od wersji. Informacja
poni�ej dotyczy wersji 19.34. Wstaw linie:
(set-input-mode nil nil 1)
(standard-display-european t)
(require 'iso-syntax)
do swojego $HOME/.emacs
. Pierwsza linia (m�wi�c �ci�lej -
ko�cowe 1) m�wi emacsowi
�eby nie obcina� �smego bitu ze wprowadzanych
znak�w. Druga linia m�wi emacsowi
�eby nie wy�wietla� znak�w spoza
ASCII jako warto�ci �semkowych. Trzecia linia wyszczeg�lnia w�a�ciwo�ci
sk�adni i tablic� konwersji ma�ych/du�ych liter dla zestawu znak�w Latin-1.
Dwie ostatnie linie s� zb�dne je�eli masz co� podobnego do
LC_TYPE=ISO-8859-1 w swoim �rodowisku (zmienna ta mo�e te� nazywa� si�
LC_ALL albo po prostu LANG. Jej warto�� mo�e by� czymkolwiek co zawiera
ci�g znak�w 88591, 8859-1 lub 8859_1).
To ju� dobry pocz�tek. Na terminalach kt�re nie potrafi� wy�wietla�
symboli ISO-8859-1 spoza ASCII, komenda
(load-library "iso-ascii")
spowoduje �e znaki akcentowane wy�wietlane b�d� jako {,c}a. Je�li twoja
klawiatura nie daje �atwego sposobu wprowadzania znak�w spoza ASCII, to
(load-library "iso-transl")
uczyni dwuznakow� sekwencj� ^X8 znakiem sk�adania [Compose], tak �e
czteroznakowa sekwencja ^X8,c daje c-cedilla. Bardzo niewygodne.
Komenda
(iso-accents-mode)
w��czy lub wy��czy tryb akcent�w ISO-8859-1, w kt�rym sze�c klawiszy:
`, ', ", ^, , / s� klawiszami diakrytyk kt�re modyfikuj� nast�puj�cy
po nich symbol. Kombinacje specjalne: c daje c z cedill�, d daje
islandzkie eth, t daje islandzkie thorn, "s daje niemieckie scharfes-s,
/a daje a z k�eczkiem, /e daje ligatur� ae, < i > daj� guillemoty,
! daje odwr�cony wykrzyknik, ? odwr�cony pytajnik. '' daje akcent acute.
Jest to uk�ad domy�lny. Zmienna iso-languages jest list� par (nazwa j�zyka,
uk�ad akcent�w), a uk�ad niedomy�lny wybra� mo�na poprzez
(iso-accents-customize LANGUAGE)
Tutaj LANGUAGE mo�e by� jednym z "portuguese", "irish", "french",
"latin-2", "latin-1".
Poniewa� domy�lnym klawiszem Compose w Linuxie jest Ctrl-., mo�e
by� wygodniej u�ywa� tego wsz�dzie. Spr�buj
(load-library "iso-insert.el")
(define-key global-map [?\C-.] 8859-1-map)
(Ta ostatnia linia nie b�dzie dzia�a� pod xterm
, je�li u�ywasz
emacs -nw
, ale w tym wypadku mo�esz wstawi�)
XTerm*VT100.Translations: #override\n\
Ctrl <KeyPress> . : string("\0308")
do swojego .Xresources
.)
B. Dla less
, ustaw zmienn� �rodowiskow� LESSCHARSET=latin1
Zr�b to r�wnie� je�li widzisz <255> lub <AD> w tym co
wypisuje man
; niekt�re wersje less
b�d� oddawa� "mi�kki"
my�lnik (�semkowo 0255, szesnastkowo 0xAD) w ten spos�b, je�li
nie pozwoli im si� wypisywa� Latin-1.
[je�li to nie pomo�e, wywo�uj less
z opcj� -r, b�d� ustaw alias.
Je�li nawet to nie pomo�e, albo masz pow�ok� kt�ra nie obs�uguje
alias�w, ustaw zmienn� LESSCHARDEF na warto�� 32.224c - przyp. t�um.]
C. Dla ls
, podaj opcj� -N
(by� mo�e zechcesz ustawi� alias)
D. Dla bash
(wersja 1.13.*), wstaw
set meta-flag on
set convert-meta off
i, wed�ug Danish HOWTO,
set output-meta on
do swojego $HOME/.inputrc
.
E. dla tcsh
, u�yj
setenv LANG US_en
setenv LC_CTYPE iso_8859_1
Je�li masz w swoim systemie nls
, u�ywane s� odpowiednie algorytmy.
W przeciwnym razie tcsh
za�o�y iso_8859_1, niezale�nie od warto�ci
podanych w zmiennych LANG i LC_TYPE. Patrz sekcja NATIVE LANGUAGE SYSTEM
w tcsh(1). Danish HOWTO twierdzi: setenv LC_CTYPE ISO-8859-1;
stty pass8
)
F. Dla flex
, podaj opcj� -8
, je�li program przetwarzaj�cy
kt�ry ono tworzy ma operowa� na o�miobitowych danych wej�ciowych
(oczywi�cie �e ma).
G. Dla elm
, ustaw displaycharset
na ISO-8859-1
.
(Danish HOWTO: LANG=C
i LC_CTYPE=ISO-8859-1
)
H. Dla program�w u�ywaj�cych curses (takich jak lynx
David
Sibley donosi: "Zwyk�y pakiet curses u�ywa �smego bitu dla odwr�cenia
kolor�w t�a i ekranu (patrz flaga _STANDOUT zdefiniowana w
/usr/include/curses.h
). Niemniej ncurses
zdaje si� by�
czyste o�miobitowo i wy�wietla iso-latin-8859-1 poprawnie.
I. Dla program�w u�ywaj�cych groff
(takich jak man
), upewnij
si� �e u�ywasz -Tlatin
zamiast -Tascii
. Stare wersje programu
man
u�ywaj� r�wnie� col
, wi�c nast�pny punkt stosuje si�
odpowiednio.
J. Dla col
, upewnij si� �e 1) ustawiony jest tak �eby wykonywa�
setlocale(LC_CTYPE,"");
i 2) ustawi�e� zmienn� �rodowiskow�
LC_CTYPE=ISO-8859-1
.
K. Dla rlogin
, u�yj opcji -8
.
L. Dla joe
,
sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz
dzia�a podobno po wyedytowaniu pliku konfiguracyjnego. Kto� inny powiedzia�:
"joe
: wstaw opcj� -asis
do /isr/lib/joerc
, w pierwszej
kolumnie.
M. Dla LaTeX: \documentstyle[isolatin]{article}
.
Dla LaTeX2e: \documentclass{article}\usepackage{isolatin}
gdzie isolatin.sty
jest dost�pny z
ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit
.
�adna dyskusja na temat ISO-8859-1 i tego jak zarz�dza� o�miobitowymi
znakami zawarta jest w pliku grasp.insa-lyon.fr:/pub/faq/fr/accents
(po francusku). Inn� �adn� dyskusj� (po angielsku) mo�na znale�� w
rtfm.mit.edu:pub/usenet-by-group/comp.answers/character-sets/iso-8859-1-faq
.
A jeszcze jedn� (?), w ftp.vlsivie.tuwien.ac.at:/pub/8bit/FAQ-ISO-8859-1
.
Je�li chcesz poprawi� program kt�ry �le zachowuje si� ze znakami
o�miobitowymi, musisz pami�ta� o tym �e je�li u�ywasz w nim typu
"signed char", znaki mog� mie� warto�ci ujemne, a u�ywanie ich jako
indeksu tablicy nie uda si�. Niekt�re programy mo�na poprawi� dodaj�c
rozs�dnie rzutowania na typ unsigned char.
14. Co dok�adnie robi XFree86-2.1 podczas inicjalizacji uk�adu klawiatury?
Od wersji 2.1 XFree86 zainicjuje sw�j uk�ad klawiatury z uk�adu linuxowego,
na tyle na ile mo�na. Linux jednak mia� 16 pozycji na klawisz (jedna na
ka�d� kombinacj� modyfikator�w Shift, AltGr, Ctrl, Alt) a obecnie 256
pozycji na klawisz, podczas gdy X ma cztery pozycje na klawisz (jedna
na ka�d� kombinacj� Shift i Mod), tak wi�c cz�� informacji musi si�
zgubi�.
X
najpierw czyta plik Xconfig
, gdzie mo�na znale�� definicje
klawiszy LeftAlt, RightAlt, RightCtl, ScrollLock keys takie jak Meta,
ModeShift, Compose, ModeLock czy ScrollLock - patrz X386keybd(1),
p�niej XFree86kbd(1).
Za Mod przyjmuje si� lewy Alt, chyba �e prawy Ctrl zdefiniowano jako
ModeShift lub ModeLock, w kt�rym to przypadku przyjmuje si� prawy Ctrl,
lub chyba �e tak zdefiniowano prawy Alt, w kt�rym to przypadku przyjmuje
si� prawy Alt.
Ustala to w jaki spos�b cztery znaczenia klawisza pod XFree86 s�
wybierane z szesnastu znacze� linuxowych.
Zauwa� �e dzisiaj Linux domy�lnie nie rozr�nia pomi�dzy dwoma klawiszami
Ctrl i Shift. X jednak rozr�nia.
Nast�pnie czytany jest uk�ad klawiatury z j�dra i poczynione zostaj�
oczywiste odpowiednie przypisania pod X. Przypisania "klawiszy
czynno�ciowych" - Show_Memory, Show_State, Show_Registers, Last_Console,
Console_n, Scroll_Backward, Scroll_Forward, Caps_On and Boot s�
ignorowane, tak samo jak klawisze diakrytyk i klawisze blokuj�ce
klawiatur� w okre�lonym trybie [locks] (z wyj�tkiem ShiftLock), oraz
klawisze "ASCII-x"
P�niej u�ywane s� definicje z pliku Xconfig
. Tak wi�c definicja
klawisza Compose z Xconfig
we�mie g�r� nad warto�ci� znajduj�c�
si� w uk�adzie klawiatury Linuxa.
Co dzieje si� z ci�gami znak�w skojarzonymi z klawiszami funkcyjnymi?
Nic. X nie posiada takiej koncepcji (ale mo�liwe jest zdefiniowanie
�a�cuch�w znak�w dla klawiszy funkcyjnych w xterm
- zauwa� jednak
�e najpierw otrzymuje te klawisze program zarz�dzaj�cy oknami).
Nie wiem jak przekona� xterm
�e powinien u�ywa� uk�adu klawiatury
X w czasie naciskania Alt; wydaje si� �e po prostu patrzy na sw�j zas�b
eightBitInput
, i zale�nie od tego jak� ma warto�� logiczn� albo
ustawia �smy bit znaku, albo wypisuje dodatkowy znak Escape (tak jak
setmetamode(1) robi na konsoli).
15. Niecodzienne klawisze i klawiatury
Dwa klawisze: PrintScrn/SysRq i Pause/Break s� szczeg�lne w tym �e
maj� one dwa kody klawiszy: pierwszy ma kody 84 z naci�ni�tym r�wnocze�nie
Alt, i kod 99 w przeciwnym razie; drugi ma kod klawisza 101 z naci�ni�tym
r�wnocze�nie Ctrl i kod 119 w przeciwnym razie. Tak wi�c nie ma sensu
przypisywa� funkcji Alt-kod 99 lub Ctrl-kod 119.
Je�li masz dziwne klawisze kt�re nie wypisuj� pod Linuxem �adnego kodu
lub wysy�aj� komunikaty takie jak "unrecognized scancode"), a twoje
j�dro to 1.1.63 lub p�niejsze, mo�esz u�y� setkeycodes(1) by powiedzie�
o nich [kodach] j�dru. Nie b�d� one jednak dzia�a� pod X.
Gdy przypisano im kod klawisza za pomoc� setkeycodes
, mo�na im
przypisa� funkcj� za pomoc� loadkeys
.
16. Przyk�ady u�ycia loadkeys i xmodmap
Zamiana Caps Lock i Control na klawiaturze (zak�adaj�c �e u�ywasz
uk�ad�w klawiatur 0-15; sprawd� przez dumpkeys | head -1
)
% loadkeys
keymaps 0-15
keycode 58 = Control
keycode 29 = Caps_Lock
%
Powy�sza zamiana tylko pod X:
% xmodmap .xmodmaprc
gdzie .xmodmaprc
zawiera linie
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
O co chodzi z tymi numerami klawiszy? Backspace ma 14 pod Linuxem,
a 22 pod X? No c�, numery najlepiej uwa�a� za przydzielone dowolnie;
linuxowy numer klawisza znale�� mo�na u�ywaj�c showkey(1), a numer
Xowy przez xev(1). Cz�sto numer Xowy b�dzie o 8 wi�kszy ni�
linuxowy.
Co� co ludzie chc� zmienia� to przypisania klawiszy funkcyjnych.
Za��my �e chcesz aby F12 wypisywa� ci�g znak�w "emacs". Wtedy
% loadkeys
keycode 88 = F12
string F12 = "emacs "
%
zrobi to. �ci�lej, procedura wygl�da mniej wi�cej tak: (i) znajd�
kody klawiszy kt�re maj� mie� zmienione przypisania, za pomoc� showkey(1),
(ii) zachowaj bie��cy uk�ad klawiatury, zr�b kopi� i j� edytuj.
% dumpkeys > my_keymap
% cp my_keymap trial_keymap
% emacs trial_keymap
% loadkeys trial_keymap
%
Format tablicy zgadn�� mo�na patrz�c na wynik dumpkeys
, a opisuje
go keytables(5). Gdy nowy uk�ad klawiatury dzia�a tak jak tego chcemy,
mo�esz wstawi� wywo�anie
loadkeys my_new_keymap
do /etc/rc.local
czy co� takiego, �eby wykonywa� je automatycznie
w czasie �adowania. Zauwa� �e zmiana klawiszy modyfikuj�cych jest
zawi�a, a nowicjusz mo�e �atwo wpl�ta� si� w sytuacj� z kt�rej
wydosta� si� mo�e tylko ekspert.
Domy�lnym katalogiem uk�ad�w klawiatur jest /usr/lib/kbd/keytables
.
Domy�lnym rozszerzeniem plik�w uk�ad�w jest .map. Tak wi�c loadkeys uk
za�aduje prawdopodobnie /usr/lib/kbd/keytables/uk.map
.
(Na moim komputerze) /dev/console
jest odno�nikiem symbolicznym
do /dev/tty0
, a j�dro uwa�a /dev/tty0
za synonim
bie��cej WK. XFree86 zmienia w�a�ciciela /dev/tty0
, ale nie
przywraca stanu poprzedniego po zako�czeniu. Tak wi�c polecenie dumpkeys
mo�e si� nie powie��, poniewa� kto� inny jest w�a�cicielem
/dev/tty0
; w takim przypadku mo�esz wpierw uruchomi� X.
16.1 "Mog� u�ywa� tylko jednego palca do pisania"
Czy klawisze Shift, Ctrl i Alt mog� si� zachowywa� jak prze��czniki?
Tak, po napisaniu:
% loadkeys
keycode 29 = Control_Lock
keycode 42 = Shift_Lock
keycode 56 = Alt_Lock
%
klawisze lewy Control, Shift i Alt b�d� dzia�a� jako prze��czniki.
Odpowiednie numery podaje showkey (zwykle s� to 29, 97, 42, 54, 56, 100
dla lewego i prawego Control, Shift i Alt odpowiednio), a funkcje to
Control_Lock, Shift_Lock, Alt_Lock, ALtGr_Lock.
Co z klawiszami "sticky" [zachowywanymi w buforze do naci�ni�cia
nast�pnego klawisza(y) - przyp. t�um.] ?
Od wersji 1.3.33, j�dro wie o modyfikatorach "sticky". Dzia�aj� one
na nast�pny naci�ni�ty klawisz. Tak wi�c, tam gdzie wcze�niej trzeba
by�o trzysymbolowej sekwencji Shift_Lock-a-Shift_Lock mo�na teraz u�ywa�
dwusymbolowej sekwencji SShift_Lock-a.
Bie��ca wersja pakietu kbd
nie zawiera jeszcze kodu dla "stickies",
tak wi�c trzeba je wywo�ywa� u�ywaj�c ich kod�w szesnastkowych. Na
przyk�ad:
% loadkeys
keymaps 0-15
keycode 54 = 0x0c00
keycode 97 = 0x0c02
keycode 100 = 0x0c03
%
uczyni prawe Shift, Ctrl i Alt wersjami "sticky" klawiszy lewych.
Od wersji 0.93 mo�na napisa�
% loadkeys
keymaps 0-15
keycode 54 = SShift
keycode 97 = SCtrl
keycode 100 = SAlt
%
by otrzyma� ten sam rezultat. Pozwoli to napisa� ci Ctrl-Alt-Del
trzema naci�ni�ciami klawiszy, u�ywaj�c jednej r�ki
to obtain the same result.
17. Zmiana trybu ekranowego
Jak dot�d wiem o sze�ciu sposobach zmiany rozdzielczo�ci:
1. W czasie kompilacji zmie� lini�
SVGA_MODE= -DSVGA_MODE=NORMAL_VGA
w /usr/src/linux/Makefile
.
1A. Po kompilacji u�yj rdev -v
- okropna �ata, ale istnieje.
2. W czasie �adowania systemu: wstaw vga=ask
do pliku
konfiguracyjnego lilo [zwykle /etc/lilo.conf - przyp. t�um.], a lilo
spyta si� jakiego trybu ekranowego u�y�. Kiedy ju� wiesz, wstaw tam
vga=mypreference
.
3.W czasie uruchamiania:
A. U�yj komendy resizecons
(jest to bardzo prymitywne opakowanie
ioctl VT_RESIZE).
B. U�yj komendy SVGATextMode
(jest to mniej prymitywne opakowanie
ioctl VT_RESIZE).
4. Nie "na konsoli":
Pod dosemu
, b�d� u�ywaj�c svgalib itd. mo�esz zmieni� sprz�towy
tryb ekranowy bez powiadamiania o tym konsoli. Czasami jest to u�yteczne
w ustawianiu resizecons
lub SVGATextMode
set up: u�yj dosemu
i jakiego� programu DOSowego by prze��czy� si� na po��dany tryb ekranowy,
zrzu� (powiedzmy z innej WK) zawarto�� wszystkich rejestr�w sprz�towych
karty graficznej, i u�yj ich w inicjalizacji kt�rej wymagaj� resizecons
i SVGATextMode
.
W niekt�rych przypadkach gdy tryb ekranowy prze��czy� si� na jaki�
stan nie do u�ytku, odpalenie dosemu
, poleganie na BIOSie co do
ustawienia trybu ekranowego i "zabicie" dosemu
u�ywaj�c kill -9
jest najprostsz� metod� przywr�cenia porz�dku.
17.1 Instrukcje co do u�ywania resizecons
Zdob�d� svgalib i skompiluj program restoretextmode
. Wystartuj
komputer we wszystkich mo�liwych trybach ekranowych (u�ywaj�c vga=ask
)
w pliku konfiguracyjnym lilo i zapisz zawarto�� rejestr�w sprz�towych
karty graficznej do plik�w KxW (K=kolumny, W=wiersze), np. 80x25, 132x44
itd. Wstaw te pliki do /usr/lib/kbd/videomodes
. Teraz
resizecons 132x44
zmieni tryb ekranowy za ciebie (i wy�le
SIGWINCH do wszystkich proces�w kt�re o tym wiedz�, oraz za�aduje
inn� czcionk� je�li to konieczne).
Obecnie wykonanie resizecons
ko�czy si� sukcesem wtedy tylko gdy
jest do�� pami�ci na star� i now� konsol� r�wnocze�nie.
18. Zmiana cz�sto�ci powtarzania klawiszy
Przy starcie j�dro Linuxa ustawia cz�sto�� powtarzania na warto��
maksymaln�. Dla wi�kszo�ci klawiatur jest to rozs�dne, ale dla niekt�rych
oznacza �e nie mo�esz dotkn�� klawisza �eby nie otrzyma� trzech kopii
odpowiadaj�cego mu symbolu. U�yj programu kbdrate(8) by zmieni�
cz�sto�� powtarzania lub, je�li to nie pomo�e, zmodyfikuj lub usu�
sekcj�
! ustaw cz�sto�� powtarzania klawiatury na maximum
mov ax,#0x0305
xor bx,bx ! clear bx
int 0x16
w /usr/src/linux/[arch/i386/]boot/setup.S
.
19. Przewijanie
Istniej� dwa sposoby zmuszenia ekranu do przewini�cia si�. Pierwsza,
zwana "twardym przewijaniem" to pozostawienie tekstu w pami�ci ekranu
w bie��cej postaci, ale zmienienie punktu ogl�dania. Jest to bardzo
szybkie. Druga, zwana "mi�kkim przewijaniem" polega na przesuwaniu
ca�ego ekranu tekstowego w g�r� lub d�. Jest to o wiele wolniejsze.
Sterownik konsoli j�dra wypisze tekst zaczynaj�cy si� u g�rnej granicy
pami�ci ekranu, kontynuuj�c a� do do�u, potem zn�w skopiuje cz��
doln� na g�rn�, i tak dalej, ca�y czas u�ywaj�c twardego przewijania
by pokaza� w�a�ciw� cz�� ekranu. Mo�esz przewija� w ty� a� do g�rnej
granicy pami�ci ekranu u�ywaj�c Shift-PageUp (szary PageUp) i z powrotem
w d� u�ywaj�c Shift-PageDown (szary PageDown), zak�adaj�c domy�lny uk�ad
klawiatury. Ile mo�na przewin�� w ty� wyznacza wi�c ilo�� pami�ci ekranu
kt�r� masz, i nie mo�esz jej zwi�kszy�. Je�li potrzebujesz przewin��
wi�cej, u�yj jakiego� programu kt�ry buforuje tekst, jak less czy
screen - u�ywaj�c bufora na dysku mo�esz wr�ci� do tego co robi�e�
tydzie� temu. (dla xterm
mo�na ustawi� mo�liwe przewijanie w ty�
dodaj�c lini� w rodzaju XTerm*saveLines: 2500 do .Xresources.)
Przy zmianie wirtualnych konsol zawarto�� ekranu starej WK jest kopiowana
do pami�ci j�dra, a zawarto�� ekranu nowej WK jest kopiowana z pami�ci
j�dra do pami�ci ekranu. Tylko ekran widzialny jest kopiowany, nie
ca�o�� pami�ci ekranu, tak wi�c zmiana konsoli powoduje utrat�
ca�ej informacji o przewijaniu.
Czasami twarde przewijanie nie jest po��dane, na przyk�ad gdy sprz�t
nie posiada mo�liwo�ci zmiany punktu ogl�dania ekranu. Pierwszym
przyk�adem by�� maszyna braillowska, kt�ra oddaje zawarto�� g�rnej
cz�ci pami�ci ekranu w braille'u. Istnieje opcja u�ywana w czasie
�adowania j�dra (no-scroll, kt�ra m�wi sterownikowi konsoli by nie
u�ywa� twardego przewijania. Patrz bootparam(7)).
20. Wygaszanie ekranu
setterm -blank
nn naka�e sterownikowi konsoli wygasi�
ekran po nn minutach bezczynno�ci. U�ywaj�c nn r�wnego 0,
wygaszanie mo�na wy��czy�. W niekt�rych starszych j�drach nabiera�o
to efektu dopiero po pierwszym przerwaniu klawiatury.
Opcja s
xset(1) ustawi parametry wygaszacza pod X.
Sprz�towe tryby ekranowe oszcz�dzaj�ce energi� mo�na w��czy�/wy��czy�
u�ywaj�c programu setvesablank
podanego w komentarzu na pocz�tku
/usr/src/linux/drivers/char/vesa_blank.c
.
21. Zrzuty ekranu
setterm -dump N
zrzuci zawarto�� eranu /dev/ttyN do pliku
screen.dump
w bie��cym katalogu. Patrz setterm(1).
Prawid�ow� zawarto�� ekranu /dev/ttyN
odczyta� mo�na u�ywaj�c
urz�dzenia /dev/vcsN
(gdzie "vcs" oznacza "virtual console
screen"). Na przyk�ad, m�g�by� uruchomiony zegar kt�ry wy�wietla
bie��cy czas w g�rnym prawym rogu konsoli (patrz program vcstime
w kbd-0.92.tar.gz
). Samo zrzucenie zawarto�ci nast�puje po
cat /dev/vcsN
. Owe urz�dzenia /dev/vcsN nie zawieraj� znak�w
LF (nowej linii), ani atrybut�w (jak kolory). We wn�trzu programu lepiej
jest zapewne zamiast tego u�y� /dev/vcsaN ("virtual console screen w/
attributes") - zaczyna si� ono nag��wkiem podaj�cym liczb� wierszy i
kolumn oraz po�o�enie kursora. Patrz vcs(4).
22. Niekt�re w�a�ciwo�ci vt100 - tryb klawiszy aplikacji
: Czasami moje klawisze kursora daj� dziwne kody.
Gdy terminal znajduje si� w trybie klawiszy aplikacji klawisze
kursora wypisuj� Esc O x, a w przeciwnym razie Esc [ x, gdzie x =
A, B, C, D. Niekt�re programy ustawiaj� terminal w tryb klawiszy aplikacji;
je�li przerwiesz je przez kill -9
, albo je�li padn�, tryb nie
zostanie przestawiony.
% echo -e '\033c'
Kasuje wszystkie w�a�ciwo�ci bie��cej WK do domy�lnych. Zmiany tylko
trybu klawiszy aplikacji dokonuje si� przez:
% echo -e '\033[?1h'
(ustawia) i
% echo -e '\033[?1l'
(kasuje).
23. Niekompatybilo�� sprz�towa
Niekt�re osoby zauwa�y�y �e trac� wpisywane znaki gdy aktywny jest
nap�d stacji dysk�w. Wygl�da na to �e mo�e to by� problem z p�ytami
g��wnymi Uni-486WB.
(prosz� napisa� do mnie �eby potwierdzi�: "tak, mam ten sam problem";
zaprzeczy� "nie, wszystko w porz�dku z moim Uni-486WB; zmieni�: "m�j
komputer Xyz ma ten sam problem").
Tjalling Tjalkens (tjalling@ei.ele.tue.nl) donosi o bardzo podobnych
problemach z "niemarkow� p�yt� g��wn� GMB-486 UNP VESA z procesorem
AMD 486DX2-66" - w czasie pracy stacji dyskietek niekt�re naci�ni�cia
klawiszy gubi� si�, w czasie pracy streamera (Conner C 250 MQ) traci
si� wiele naci�ni��.
Niekt�re osoby do�wiadcz�j� sporadycznych zawiesze� - czasami zwi�zanych
z prac� twardego dysku lub innego urz�dzenia I/O.
ulf@rio70.bln.sni.de (Ulf Tietz) pisze:
"Mia�em te same problemy gdy dostroi�em swoj� p�yt� g��wn� na zbyt
du�� szybko��. Ustawi�em wi�c wszystkie czasy oczekiwania (CLK, wait
statements) na bardziej konwencjonalne warto�ci, i problemy znikn�y".
bhogan@crl.com (Bill Hogan) pisze:
"Je�li masz AMI BIOS, mo�esz spr�bowa� ustawi� emulacj� Gate A20 na
"chipset" (je�li masz tak� opcj�). Za ka�dym razem gdy mia�em
ten parametr ustawiony na jak�� inn� opcj� ("fast", "both", "disabled"),
mia�em cz�ste zawieszenia si� klawiatury".
--------------------------------------------------------------------
Uprasza si� o dodatki i poprawki
Andries Brouwer - aeb@cwi.nl
# #
Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:23