  AAllaarrmm wwiizzuuaallnnyy ((mmaaee JJTTZZ))
  Alessandro Rubini, rubini@linux.it
  v2.3,  3 grudnia 2001
  Wersja polska: Tomasz 'tsca' Sienicki, tsca@edb.dk
  v1.01, 10 grudnia 2001


  Jak uciszy komputer: alarm wizualny zamiast dwikowego.
  ______________________________________________________________________

  Spis treci


  1. Licencja oraz prawa autorskie

  2. Wstp

  3. Goniczkotomia

  4. Konfiguracja dwiku na poszczeglnych konsolach

  5. Podstawowe wiadomoci o plikach termcap i terminfo/*

  6. Definiowanie alarmu wizualnego

  7. Wyczenie alarmu dwikowego na konsoli tekstowej

  8. Uciszanie aplikacji

  9. Ciemna strona zagadnienia

  10. Od tumacza



  ______________________________________________________________________

  11..  LLiicceennccjjaa oorraazz pprraawwaa aauuttoorrsskkiiee

  Copyright (c) 1997, Alessandro Rubini

  Niniejszy dokument rozpowszechniany jest na warunkach okrelonych w
  licencji _G_N_U _F_r_e_e _D_o_c_u_m_e_n_t_a_t_i_o_n _L_i_c_e_n_s_e.  Jeli nie otrzymae treci
  licencji FDL z tym dokumentem, zapozna si z ni moesz pod adresem
  <http://www.fsf.org/licenses/fdl.html>.


  22..  WWssttp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.

  Wedug mnie temperowanie niesfornej maszyny naley rozpocz na
  poziomie sprztowym; np. w moim komputerze goniczka _n_i_e _m_a!


  33..  GGoonniicczzkkoottoommiiaa

  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.

  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.
  Aby zmieni funkcj przecznika, po prostu odcz go od pyty gwnej
  i pocz szeregowo z goniczkiem.

  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.


  44..  KKoonnffiigguurraaccjjaa ddwwiikkuu nnaa ppoosszzcczzeeggllnnyycchh kkoonnssoollaacchh

  Od wersji jdra 1.3.43 wzwy, dziki atce Martina Maresa na
  console.c, 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 ~/.login lub
  ~/.profile. Odpowiedzialne za waciwoci dwiku kody to:


    ESC-[10;xx] -- 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-[10]') stosowana jest warto
     domylna (750Hz)

    ESC-[11;xx] -- 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-[10]').


  PPrrzzyykkaadd:: Aby ustawi czstotliwo dwiku na 50Hz a jego dugo na
  1 sek, wydaj w bashu polecenie 'echo -e "\\33[10;50]\\33[11;1000]"'
  (argument -e oznacza 'interpretuj znaki niedrukowalne').
  Odpowiednikiem tej komendy dla tcsh jest 'echo
  "\\033[10;50]\\033[11;1000]"'.

  adna ze znanych mi obecnie wersji polecenia setterm nie potrafi
  konfigurowa dwiku, niewykluczone jednak, e w przyszoci ta
  funkcjonalno zostanie dodana.

  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.


  55..  PPooddssttaawwoowwee wwiiaaddoommooccii oo pplliikkaacchh tteerrmmccaapp ii tteerrmmiinnffoo//**

  Tekstowy plik /etc/termcap to baza danych o moliwociach terminali
  (ang. tteerrmminal ccaappablilities -- std nazwa). Wiele programw (np.
  tcsh, bash, vi i wszystkie korzystajce z curses) korzysta przy
  przesuwaniu kursora i innych operacjach zwizanych z ekranem z
  zawartych w tym pliku informacji.
  Baza /etc/termcap opisuje poszczeglne rodzaje terminali. Do
  odpowiedniej czci tej bazy kieruje aplikacje zmienna rodowiskowa
  TERM.

  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 "bl=^G".  Wpis taki oznacza, e brzczyk uzyskuje si sekwencj
  control-G (ascii BEL).

  Obok alarmu dwikowego ("bl") rozpoznawany jest rwnie wizualny
  ("vb" -- visual bell), jednak zazwyczaj brakuje tego wpisu w
  powiconej terminalowi "linux" czci termcap.

  Wikszo nowszych aplikacji i bibliotek zamiast z termcap korzysta z
  bazy danych terminfo.  W przeciwiestwie do termcap, termifo 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
  /usr/lib/terminfo/l/linux (lub /usr/share/terminfo/l/linux -- przyp.
  tum). Opisy terminali w terminfo s plikami binarnymi, kompiluje je
  si programem tic (patrz man tic).


  66..  DDeeffiinniioowwaanniiee aallaarrmmuu wwiizzuuaallnneeggoo

  Dodanie brakujcej definicji alarmu wizualnego "vb" do /etc/termcap
  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:


       :vb=\E7\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E8:\




  Ostatni ukonik zapobiega zamaniu linii.
  Wg opisu Dennisa powysza linia

    zapamituje pozycj kursora (na wszelki wypadek),

    kilkakrotnie zmienia to konsoli (z normalnego na odwrcone i z
     powrotem)

    i umieszcza kursor w zapamitanej pozycji.


  77..  WWyycczzeenniiee aallaarrmmuu ddwwiikkoowweeggoo nnaa kkoonnssoollii tteekkssttoowweejj

  Jeli chcesz zmusi konsol do uywania alarmu wizualnego zamiast
  dwikowego (bysk zamiast pisku) znajd w pliku termcap 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.


  88..  UUcciisszzaanniiee aapplliikkaaccjjii

  Poniej podaj niekompletny spis programw, ktre mona przekona do
  uywania podanej w termcap lub terminfo definicji "vb" biecego
  terminala.
    Serwer X: konfiguracji brzczyka dokonuje si poleceniem "xset b".
     Polecenie to przyjmuje trzy numeryczne argumenty: gono,
     czstotliwo oraz dugo. "xset -b" cakowicie wycza brzczyk.
     Konfiguracja dziaa na wszystkie programy uruchomione pod X.

    xterm: 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 "xterm*visualBell:
     true".  Podczas dziaania xterma rodzaj alarmu przecza mona w
     menu wywoywanym przez control+lewy_przycisk_myszy.
     Jeli uywasz X, prawdopodobnie nie zainteresuj ci ponisze
     informacje.

    tcsh (6.04 i nowsze): "set visiblebell".  Instrukcj t mona
     umieci w pliku .cshrc lub poda interaktywnie. Wyczenie alarmu
     wizualnego: "unset visiblebell".  Wyczenie alarmu wizualnego oraz
     dwikowego: "set nobeep".

    bash (o ile wiem wszystkie wersje): umie lini "set bell-style
     visible" w pliku ~/.bashrc.  Zamiast "visible" (wizualny) moesz
     wpisa "audible" (dwikowy) lub "none" (aden).

    bash (z readline, oraz inne aplikacje korzystajce z readline):
     umie lini "set prefer-visible-bell" w pliku ~/.inputrc.

    nvi i elvis: umie lini "set flash" w pliku ~/.exrc lub
     interaktywnie podaj ":set flash" (pamitaj o dwukropku). Zamiana w
     powyszej linii sowa "flash" na "noflash" spowoduje wyczenie
     alarmu wizualnego.

    emacs: umie lini "(setq visible-bell t)" w pliku ~/.emacs.
     Zamiana w powyszej komendzie kocowej litery "t" na sowo "nil"
     spowoduje wyczenie alarmu wizualnego.

    less: alarm wizualny wcza si podajc w linii polece opcj "-q",
     natomiast wszystkie rodzaje alarmu wycza si opcj "-Q".  Opcje
     domylne mona umieci w zmiennej rodowiskowej "LESS".

    screen: 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".


  99..  CCiieemmnnaa ssttrroonnaa zzaaggaaddnniieenniiaa

  Niestety nie wszystkie aplikacje korzystaj z informacji zawartych w
  bazach termcap lub terminfo.  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!
  Jedynym sposobem uciszenia takich programw jest goniczkotomia lub
  wykorzystanie sekwencji kodw podanej przez Martina Maresa.


  1100..  OOdd ttuummaacczzaa


  Wersja oryginalna dokumentu:  <http://sunsite.unc.edu/LDP/>.
  Tumaczenia pozostaych dokumentw HOWTO na jzyk polski:
  <http://www.jtz.org.pl>.


  Copyright for the translation
  (c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk
































































