File: Visual-Bell.pl.html

package info (click to toggle)
doc-linux-pl 2002.06.14-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, jessie, jessie-kfreebsd, lenny, squeeze, wheezy
  • size: 6,900 kB
  • ctags: 968
  • sloc: makefile: 66
file content (235 lines) | stat: -rw-r--r-- 11,947 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>Alarm wizualny (mae JTZ)</TITLE>


</HEAD>
<BODY>
<H1><B>Alarm wizualny (mae JTZ)</B></H1>

<H2>Alessandro Rubini, rubini@linux.it<BR>
v2.3,  3 grudnia 2001<BR>
Wersja polska:Tomasz 'tsca' Sienicki, tsca@edb.dk<BR>
v1.01, 10 grudnia 2001</H2>
<P><HR>
<EM>Jak uciszy komputer: alarm wizualny zamiast dwikowego.</EM>
<HR>
<H2><A NAME="s1">1. Licencja oraz prawa autorskie                        </A></H2>

<P>Copyright (c) 1997, Alessandro Rubini
<P>Niniejszy dokument rozpowszechniany jest na warunkach okrelonych w licencji
<I>GNU Free Documentation License</I>.
Jeli nie otrzymae treci licencji FDL z tym dokumentem, zapozna si z ni
moesz pod adresem 
<A HREF="http://www.fsf.org/licenses/fdl.html">http://www.fsf.org/licenses/fdl.html</A>.
<P>
<H2><A NAME="s2">2. Wstp                                                </A></H2>

<P>Konsola Linuksa wydaje sygna dwikowy (brzczyk) po natrafieniu na znak BEL
(kod ascii 7). Jest to rozsdnie wybrana standardowa reakcja, jednak wielu
uytkownikw nie lubi, kiedy ich komputer wydaje dwiki. Niniejszy dokument 
opisuje sposb takiej konfiguracji programw, aby nie wysyay one kodu BEL
oraz takiej konfiguracji jdra i X, aby komputer milcza nawet wtedy, gdy kod
BEL zostanie wysany. Wikszo tekstu dotyczy konsoli, poniewa konfiguracja 
serwera X w tym zakresie nie powinna powodowa trudnoci.
<P>Wedug mnie temperowanie niesfornej maszyny naley rozpocz na poziomie 
sprztowym; np. w moim komputerze goniczka <EM>nie ma</EM>!
<P>
<H2><A NAME="s3">3. Goniczkotomia                                      </A></H2>

<P>Goniczkotomia jest najskuteczniejszym rozwizaniem problemu alarmu
dwikowego. Jak sama nazwa wskazuje, sposb polega na fizycznym odczeniu 
lub usuniciu goniczka. Operacja jest prosta -- mona si nawet oby bez
znieczulenia. 
<P>Istniej te sposoby nieco bardziej wyrafinowane. Pecety wyposaone s zwykle 
w przecznik TURBO. Podczas pracy w rodowisku wielozadaniowym guziczka tego 
nigdy si waciwie do spowalniania procesora nie uywa; nie ma takiej 
potrzeby nawet w przypadku gier opartych na programowych ptlach. Niestety,
przyspieszy komputera tym guziczkiem si nie da; mona go za to wykorzysta
do wczania/wyczania goniczka. Goniczek, cho generalnie irytujcy,
czasem jednak bywa przydatny np. do zaanonsowania zakoczenia dugiej 
kompilacji. <BR> 
Aby zmieni funkcj przecznika, po prostu odcz go od
pyty gwnej i pocz szeregowo z goniczkiem.
<P>W przypadku komputerw przenonych (laptopw), dostp do brzczyka jest
niestety ograniczony; brak te przecznika, ktremu monaby podporzdkowa
nowe zadanie. Uytkownicy takich komputerw musz ograniczy si do rozwiza
programowych, o czym poniej.
<P>
<H2><A NAME="s4">4. Konfiguracja dwiku na poszczeglnych konsolach     </A></H2>

<P>Od wersji jdra 1.3.43 wzwy, dziki atce Martina Maresa na <CODE>console.c</CODE>,
istnieje moliwo wyboru czstotliwoci i dugoci trwania alarmu dwikowego.
Wysyajc odpowiednie sekwencje znakw niedrukowalnych na poszczeglne konsole 
mona konsolom tym przypisa rne waciwoci dwiku (lub jego brak). Cao 
sprowadza si do umieszczenia polece konfigurujcych dwik w pliku 
<CODE>~/.login</CODE> lub <CODE>~/.profile</CODE>. Odpowiedzialne za waciwoci 
dwiku kody to:
<P>
<UL>
<LI>ESC-<CODE>[10;</CODE>xx<CODE>]</CODE> 
-- okrela czstotliwo dwiku w Hertzach. Dozwolone wartoci xx mieszcz 
si w zakresie od 21 do 32766; wynik dziaania wartoci przekraczajcych te 
granice nie jest zdefiniowany. W przypadku braku argumentu xx 
('ESC-<CODE>[10]</CODE>') stosowana jest warto domylna (750Hz)
</LI>
<LI>ESC-<CODE>[11;</CODE>xx<CODE>]</CODE> 
-- okrela dugo trwania dwiku w milisekundach. Warto domylna 
(125 ms) stosowana jest w przypadku wybrania czasu przekraczajcego 2 sekundy
oraz jeli argument xx nie jest podany ('ESC-<CODE>[10]</CODE>').</LI>
</UL>
<P>
<P><B>Przykad:</B>
Aby ustawi czstotliwo dwiku na 50Hz a jego dugo na 1 sek, wydaj w
bashu polecenie '<CODE>echo -e "\\33[10;50]\\33[11;1000]"</CODE>'
(argument -e oznacza 'interpretuj znaki niedrukowalne'). Odpowiednikiem tej
komendy dla tcsh jest '<CODE>echo "\\033[10;50]\\033[11;1000]"</CODE>'.
<P>adna ze znanych mi obecnie wersji polecenia <CODE>setterm</CODE>
nie potrafi konfigurowa dwiku, niewykluczone jednak, e w przyszoci
ta funkcjonalno zostanie dodana.
<P>Jeli uywasz jdra 1.3.43 lub nowszego i satysfakcjonuje ci powysze
rozwizanie, moesz tu zakoczy czytanie. Jeli jednak uywasz starszego
jdra lub chciaby stosowa alarm wizualny zamiast dwikowego, czytaj dalej.
<P>
<H2><A NAME="s5">5. Podstawowe wiadomoci o plikach termcap i terminfo/* </A></H2>

<P>Tekstowy plik <CODE>/etc/termcap</CODE> to baza danych o moliwociach terminali
(ang. <B>term</B>inal <B>cap</B>ablilities 
-- std nazwa). Wiele programw (np. <CODE>tcsh</CODE>, <CODE>bash</CODE>, <CODE>vi</CODE> 
i wszystkie korzystajce z <CODE>curses</CODE>)
korzysta przy przesuwaniu kursora i innych operacjach zwizanych z ekranem z 
zawartych w tym pliku informacji.
<P>Baza <CODE>/etc/termcap</CODE> opisuje poszczeglne rodzaje terminali. Do
odpowiedniej czci tej bazy kieruje aplikacje zmienna rodowiskowa <CODE>TERM</CODE>.
<P>Poszczeglne moliwoci terminali opisane s w termcap dwuliterowymi kodami,
po ktrych nastpuj sekwencje znakw wymaganych do osignicia danego efektu.
Kolejne wpisy przedzielone s dwukropkiem (":"). Na przykad alarm dwikowy
(kod "bl") zazwyczaj opisany jest jako "<CODE>bl=^G</CODE>".
Wpis taki oznacza, e brzczyk uzyskuje si sekwencj control-G (ascii BEL).
<P>Obok alarmu dwikowego ("bl") rozpoznawany jest rwnie wizualny ("vb" --
visual bell), jednak zazwyczaj brakuje tego wpisu w powiconej terminalowi
"linux" czci termcap.
<P>Wikszo nowszych aplikacji i bibliotek zamiast z <CODE>termcap</CODE>
korzysta z bazy danych <CODE>terminfo</CODE>.
W przeciwiestwie do <CODE>termcap</CODE>, <CODE>termifo</CODE> 
nie jest jednym wielkim plikiem, a katalogiem, w ktrym opisy poszczeglnych
terminali umieszczone s w osobnych plikach, a te z kolei w podkatalogach
o nazwach bdcych kolejnymi pierwszymi literami alfabetu. Na przykad
opis terminala "linux" znajdzie si w pliku <CODE>/usr/lib/terminfo/l/linux</CODE>
(lub <CODE>/usr/share/terminfo/l/linux</CODE> -- przyp. tum). Opisy terminali
w terminfo s plikami binarnymi, kompiluje je si programem <CODE>tic</CODE>
(patrz <CODE>man tic</CODE>).
<P>
<H2><A NAME="s6">6. Definiowanie alarmu wizualnego                       </A></H2>

<P>Dodanie brakujcej definicji alarmu wizualnego "vb" do <CODE>/etc/termcap</CODE>
nie jest trudne. Oto metoda Dennisa Henriksena (duke@diku.dk): naley odnale
sekcj "linux" (w starszych dystrybucjach sekcja ta nazywa si "console") i
doda w niej nastpujc lini:
<BLOCKQUOTE><CODE>
<PRE>
:vb=\E7\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E8:\
</PRE>
</CODE></BLOCKQUOTE>

Ostatni ukonik zapobiega zamaniu linii.<BR>
Wg opisu Dennisa powysza linia
<UL>
<LI>zapamituje pozycj kursora (na wszelki wypadek),</LI>
<LI>kilkakrotnie zmienia to konsoli (z normalnego na odwrcone i z powrotem)</LI>
<LI>i umieszcza kursor w zapamitanej pozycji.</LI>
</UL>
<P>
<H2><A NAME="s7">7. Wyczenie alarmu dwikowego na konsoli tekstowej   </A></H2>

<P>Jeli chcesz zmusi konsol do uywania alarmu wizualnego zamiast dwikowego
(bysk zamiast pisku) znajd w pliku <CODE>termcap</CODE>
w sekcji dla twojego terminala definicj efektu "bl" i zmie j na definicj 
bysku (podan w poprzednim rozdziale). To rozwizanie jest najwygodniejsze, 
jeli nie chcesz okrela osobno zachowania rnych aplikacji. Ja stosuj ten
sposb na wszystkich moich komputerach z Linuksem, w ktrych nie mog fizycznie
odczy goniczka.
<P>
<H2><A NAME="s8">8. Uciszanie aplikacji                                  </A></H2>

<P>Poniej podaj niekompletny spis programw, ktre mona przekona do uywania
podanej w <CODE>termcap</CODE> lub <CODE>terminfo</CODE>
definicji "vb" biecego terminala.
<P>
<UL>
<LI>Serwer X: konfiguracji brzczyka dokonuje si poleceniem "<CODE>xset b</CODE>".
Polecenie to przyjmuje trzy numeryczne argumenty: gono,
czstotliwo oraz dugo. "<CODE>xset -b</CODE>" 
cakowicie wycza brzczyk. Konfiguracja dziaa na wszystkie
programy uruchomione pod X.
</LI>
<LI><CODE>xterm</CODE>:
xterm umie zinterpretowa sygna BEL zarwno jako alarm dwikowy, jak
i wizualny. Jeli zdecydujesz si na alarm dwikowy, zadziaaj
ustawienia "xset" (patrz punkt "Serwer X"). Alarm wizualny uzyska
mona poprzez podanie opcji "-vb" przy uruchamianiu xterm-a lub
zdefiniowanie zasobw "<CODE>xterm*visualBell: true</CODE>".
Podczas dziaania xterma rodzaj alarmu przecza mona w menu
wywoywanym przez control+lewy_przycisk_myszy.<BR>
Jeli uywasz X, prawdopodobnie nie zainteresuj ci ponisze informacje.
</LI>
<LI><CODE>tcsh</CODE> (6.04 i nowsze): "<CODE>set visiblebell</CODE>".
Instrukcj t mona umieci w pliku <CODE>.cshrc</CODE>
lub poda interaktywnie. Wyczenie alarmu wizualnego: "<CODE>unset visiblebell</CODE>".
Wyczenie alarmu wizualnego oraz dwikowego: "<CODE>set nobeep</CODE>".
</LI>
<LI><CODE>bash</CODE> (o ile wiem wszystkie wersje): 
umie lini "<CODE>set bell-style visible</CODE>" w pliku <CODE>~/.bashrc</CODE>.
Zamiast "visible" (wizualny) moesz wpisa "audible" (dwikowy)
lub "none" (aden).
</LI>
<LI><CODE>bash</CODE> (z <CODE>readline</CODE>,
oraz inne aplikacje korzystajce z <CODE>readline</CODE>):
umie lini "<CODE>set prefer-visible-bell</CODE>" w pliku <CODE>~/.inputrc</CODE>.
</LI>
<LI><CODE>nvi</CODE> i <CODE>elvis</CODE>: umie lini "<CODE>set flash</CODE>" 
w pliku <CODE>~/.exrc</CODE> lub interaktywnie podaj "<CODE>:set flash</CODE>"
(pamitaj o dwukropku). Zamiana w powyszej linii sowa "flash" 
na "noflash" spowoduje wyczenie alarmu wizualnego.
</LI>
<LI><CODE>emacs</CODE>: umie lini "<CODE>(setq visible-bell t)</CODE>" w
pliku <CODE>~/.emacs</CODE>. Zamiana w powyszej komendzie kocowej litery
"t" na sowo "nil" spowoduje wyczenie alarmu wizualnego.
</LI>
<LI><CODE>less</CODE>: 
alarm wizualny wcza si podajc w linii polece opcj "<CODE>-q</CODE>",
natomiast wszystkie rodzaje alarmu wycza si opcj "<CODE>-Q</CODE>".
Opcje domylne mona umieci w zmiennej rodowiskowej "<CODE>LESS</CODE>".
</LI>
<LI><CODE>screen</CODE>: 
uyj kombinacji klawiszy CtrlA-CtrlG. Zmieni to zachowanie wszystkich
wirtualnych sesji. Wicej informacji na ten temat znajdziesz w
podrczniku systemowym ("man screen") w sekcji "CUSTOMIZATION".</LI>
</UL>
<P>
<H2><A NAME="s9">9. Ciemna strona zagadnienia                            </A></H2>

<P>Niestety nie wszystkie aplikacje korzystaj z informacji zawartych w bazach
<CODE>termcap</CODE> lub <CODE>terminfo</CODE>.
Wikszo maych programikw ma na sztywno w kodzie C zaszyte "\a" (alarm).
"\a" w cigach znakw w plikach binarnych interpretowane jest jako ascii BEL.
"Prawdziwych" aplikacji problem ten zazwyczaj nie dotyczy, ale uwaaj na
produkty pocztkujcych programistw C -- najgorsi s tu studenci informatyki!<BR>
Jedynym sposobem uciszenia takich programw jest goniczkotomia lub
wykorzystanie sekwencji kodw podanej przez Martina Maresa.
<P>
<H2><A NAME="s10">10. Od tumacza                                           </A></H2>

<P>
<P>Wersja oryginalna dokumentu: 
<A HREF="http://sunsite.unc.edu/LDP/">http://sunsite.unc.edu/LDP/</A>.<BR>
Tumaczenia pozostaych dokumentw HOWTO na jzyk polski:<BR>
<A HREF="http://www.jtz.org.pl">http://www.jtz.org.pl</A>.
<P>Copyright for the translation<BR>
(c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk
<P>
</BODY>
</HTML>