Visual Bell pl


AAllaarrmm wwiizzuuaallnnyy ((mmaaÅ‚Å‚ee JJTTZZ)) 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 dźwiÄ™kowego. ______________________________________________________________________ Spis treÅ›ci 1. Licencja oraz prawa autorskie 2. WstÄ™p 3. GÅ‚oÅ›niczkotomia 4. Konfiguracja dźwiÄ™ku na poszczególnych konsolach 5. Podstawowe wiadomoÅ›ci o plikach termcap i terminfo/* 6. Definiowanie alarmu wizualnego 7. WyÅ‚Ä…czenie alarmu dźwiÄ™kowego na konsoli tekstowej 8. Uciszanie aplikacji 9. Ciemna strona zagadnienia 10. Od tÅ‚umacza ______________________________________________________________________ 11.. LLiicceennccjjaa oorraazz pprraawwaa aauuttoorrsskkiiee Copyright (c) 1997, Alessandro Rubini Niniejszy dokument rozpowszechniany jest na warunkach okreÅ›lonych 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. JeÅ›li nie otrzymaÅ‚eÅ› treÅ›ci licencji FDL z tym dokumentem, zapoznać siÄ™ z niÄ… możesz pod adresem . 22.. WWssttęępp Konsola Linuksa wydaje sygnaÅ‚ dźwiÄ™kowy (brzÄ™czyk) po natrafieniu na znak BEL (kod ascii 7). Jest to rozsÄ…dnie wybrana standardowa reakcja, jednak wielu użytkowników nie lubi, kiedy ich komputer wydaje dźwiÄ™ki. Niniejszy dokument opisuje sposób takiej konfiguracji programów, aby nie wysyÅ‚aÅ‚y one kodu BEL oraz takiej konfiguracji jÄ…dra i X, aby komputer milczaÅ‚ nawet wtedy, gdy kod BEL zostanie wysÅ‚any. WiÄ™kszość tekstu dotyczy konsoli, ponieważ konfiguracja serwera X w tym zakresie nie powinna powodować trudnoÅ›ci. WedÅ‚ug mnie temperowanie niesfornej maszyny należy rozpocząć na poziomie sprzÄ™towym; np. w moim komputerze gÅ‚oÅ›niczka _n_i_e _m_a! 33.. GGÅ‚Å‚oośśnniicczzkkoottoommiiaa GÅ‚oÅ›niczkotomia jest najskuteczniejszym rozwiÄ…zaniem problemu alarmu dźwiÄ™kowego. Jak sama nazwa wskazuje, sposób polega na fizycznym odÅ‚Ä…czeniu lub usuniÄ™ciu gÅ‚oÅ›niczka. Operacja jest prosta -- można siÄ™ nawet obyć bez znieczulenia. IstniejÄ… też sposoby nieco bardziej wyrafinowane. Pecety wyposażone sÄ… zwykle w przeÅ‚Ä…cznik TURBO. Podczas pracy w Å›rodowisku wielozadaniowym guziczka tego nigdy siÄ™ wÅ‚aÅ›ciwie do spowalniania procesora nie używa; nie ma takiej potrzeby nawet w przypadku gier opartych na programowych pÄ™tlach. Niestety, przyspieszyć komputera tym guziczkiem siÄ™ nie da; można go za to wykorzystać do wÅ‚Ä…czania/wyÅ‚Ä…czania gÅ‚oÅ›niczka. GÅ‚oÅ›niczek, choć generalnie irytujÄ…cy, czasem jednak bywa przydatny np. do zaanonsowania zakoÅ„czenia dÅ‚ugiej kompilacji. Aby zmienić funkcjÄ™ przeÅ‚Ä…cznika, po prostu odÅ‚Ä…cz go od pÅ‚yty głównej i poÅ‚Ä…cz szeregowo z gÅ‚oÅ›niczkiem. W przypadku komputerów przenoÅ›nych (laptopów), dostÄ™p do brzÄ™czyka jest niestety ograniczony; brak też przeÅ‚Ä…cznika, któremu możnaby podporzÄ…dkować nowe zadanie. Użytkownicy takich komputerów muszÄ… ograniczyć siÄ™ do rozwiÄ…zaÅ„ programowych, o czym poniżej. 44.. KKoonnffiigguurraaccjjaa ddźźwwiięękkuu nnaa ppoosszzcczzeeggóóllnnyycchh kkoonnssoollaacchh Od wersji jÄ…dra 1.3.43 wzwyż, dziÄ™ki Å‚atce Martina Maresa na console.c, istnieje możliwość wyboru czÄ™stotliwoÅ›ci i dÅ‚ugoÅ›ci trwania alarmu dźwiÄ™kowego. WysyÅ‚ajÄ…c odpowiednie sekwencje znaków niedrukowalnych na poszczególne konsole można konsolom tym przypisać różne wÅ‚aÅ›ciwoÅ›ci dźwiÄ™ku (lub jego brak). CaÅ‚ość sprowadza siÄ™ do umieszczenia poleceÅ„ konfigurujÄ…cych dźwiÄ™k w pliku ~/.login lub ~/.profile. Odpowiedzialne za wÅ‚aÅ›ciwoÅ›ci dźwiÄ™ku kody to: · ESC-[10;xx] -- okreÅ›la czÄ™stotliwość dźwiÄ™ku w Hertzach. Dozwolone wartoÅ›ci xx mieszczÄ… siÄ™ w zakresie od 21 do 32766; wynik dziaÅ‚ania wartoÅ›ci przekraczajÄ…cych te granice nie jest zdefiniowany. W przypadku braku argumentu xx ('ESC-[10]') stosowana jest wartość domyÅ›lna (750Hz) · ESC-[11;xx] -- okreÅ›la dÅ‚ugość trwania dźwiÄ™ku w milisekundach. Wartość domyÅ›lna (125 ms) stosowana jest w przypadku wybrania czasu przekraczajÄ…cego 2 sekundy oraz jeÅ›li argument xx nie jest podany ('ESC-[10]'). PPrrzzyykkÅ‚Å‚aadd:: Aby ustawić czÄ™stotliwość dźwiÄ™ku na 50Hz a jego dÅ‚ugość 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ć dźwiÄ™ku, niewykluczone jednak, że w przyszÅ‚oÅ›ci ta funkcjonalność zostanie dodana. JeÅ›li używasz jÄ…dra 1.3.43 lub nowszego i satysfakcjonuje ciÄ™ powyższe rozwiÄ…zanie, możesz tu zakoÅ„czyć czytanie. JeÅ›li jednak używasz starszego jÄ…dra lub chciaÅ‚być stosować alarm wizualny zamiast dźwiÄ™kowego, czytaj dalej. 55.. PPooddssttaawwoowwee wwiiaaddoommoośśccii oo pplliikkaacchh tteerrmmccaapp ii tteerrmmiinnffoo//** Tekstowy plik /etc/termcap to baza danych o możliwoÅ›ciach terminali (ang. tteerrmminal ccaappablilities -- stÄ…d nazwa). Wiele programów (np. tcsh, bash, vi i wszystkie korzystajÄ…ce z curses) korzysta przy przesuwaniu kursora i innych operacjach zwiÄ…zanych z ekranem z zawartych w tym pliku informacji. Baza /etc/termcap opisuje poszczególne rodzaje terminali. Do odpowiedniej części tej bazy kieruje aplikacje zmienna Å›rodowiskowa TERM. Poszczególne możliwoÅ›ci terminali opisane sÄ… w termcap dwuliterowymi kodami, po których nastÄ™pujÄ… sekwencje znaków wymaganych do osiÄ…gniÄ™cia danego efektu. Kolejne wpisy przedzielone sÄ… dwukropkiem (":"). Na przykÅ‚ad alarm dźwiÄ™kowy (kod "bl") zazwyczaj opisany jest jako "bl=^G". Wpis taki oznacza, że brzÄ™czyk uzyskuje siÄ™ sekwencjÄ… control-G (ascii BEL). Obok alarmu dźwiÄ™kowego ("bl") rozpoznawany jest również wizualny ("vb" -- visual bell), jednak zazwyczaj brakuje tego wpisu w poÅ›wiÄ™conej terminalowi "linux" części termcap. WiÄ™kszość nowszych aplikacji i bibliotek zamiast z termcap korzysta z bazy danych terminfo. W przeciwieÅ„stwie do termcap, termifo nie jest jednym wielkim plikiem, a katalogiem, w którym opisy poszczególnych terminali umieszczone sÄ… w osobnych plikach, a te z kolei w podkatalogach o nazwach bÄ™dÄ…cych kolejnymi pierwszymi literami alfabetu. Na przykÅ‚ad opis terminala "linux" znajdzie siÄ™ w pliku /usr/lib/terminfo/l/linux (lub /usr/share/terminfo/l/linux -- przyp. tÅ‚um). Opisy terminali w terminfo sÄ… plikami binarnymi, kompiluje je siÄ™ programem tic (patrz man tic). 66.. DDeeffiinniioowwaanniiee aallaarrmmuu wwiizzuuaallnneeggoo Dodanie brakujÄ…cej definicji alarmu wizualnego "vb" do /etc/termcap nie jest trudne. Oto metoda Dennisa Henriksena (duke@diku.dk): należy odnaleźć sekcjÄ™ "linux" (w starszych dystrybucjach sekcja ta nazywa siÄ™ "console") i dodać w niej nastÄ™pujÄ…cÄ… liniÄ™: :vb=\E7\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E8:\ Ostatni ukoÅ›nik zapobiega zÅ‚amaniu linii. Wg opisu Dennisa powyższa linia · zapamiÄ™tuje pozycjÄ™ kursora (na wszelki wypadek), · kilkakrotnie zmienia tÅ‚o konsoli (z normalnego na odwrócone i z powrotem) · i umieszcza kursor w zapamiÄ™tanej pozycji. 77.. WWyyÅ‚Å‚Ä…Ä…cczzeenniiee aallaarrmmuu ddźźwwiięękkoowweeggoo nnaa kkoonnssoollii tteekkssttoowweejj JeÅ›li chcesz zmusić konsolÄ™ do używania alarmu wizualnego zamiast dźwiÄ™kowego (bÅ‚ysk zamiast pisku) znajdź w pliku termcap w sekcji dla twojego terminala definicjÄ™ efektu "bl" i zmieÅ„ jÄ… na definicjÄ™ bÅ‚ysku (podanÄ… w poprzednim rozdziale). To rozwiÄ…zanie jest najwygodniejsze, jeÅ›li nie chcesz okreÅ›lać osobno zachowania różnych aplikacji. Ja stosujÄ™ ten sposób na wszystkich moich komputerach z Linuksem, w których nie mogÄ™ fizycznie odÅ‚Ä…czyć gÅ‚oÅ›niczka. 88.. UUcciisszzaanniiee aapplliikkaaccjjii Poniżej podajÄ™ niekompletny spis programów, które można przekonać do używania podanej w termcap lub terminfo definicji "vb" bieżącego terminala. · Serwer X: konfiguracji brzÄ™czyka dokonuje siÄ™ poleceniem "xset b". Polecenie to przyjmuje trzy numeryczne argumenty: gÅ‚oÅ›ność, czÄ™stotliwość oraz dÅ‚ugość. "xset -b" caÅ‚kowicie wyÅ‚Ä…cza brzÄ™czyk. Konfiguracja dziaÅ‚a na wszystkie programy uruchomione pod X. · xterm: xterm umie zinterpretować sygnaÅ‚ BEL zarówno jako alarm dźwiÄ™kowy, jak i wizualny. JeÅ›li zdecydujesz siÄ™ na alarm dźwiÄ™kowy, zadziaÅ‚ajÄ… ustawienia "xset" (patrz punkt "Serwer X"). Alarm wizualny uzyskać można poprzez podanie opcji "-vb" przy uruchamianiu xterm-a lub zdefiniowanie zasobów "xterm*visualBell: true". Podczas dziaÅ‚ania xterma rodzaj alarmu przeÅ‚Ä…czać można w menu wywoÅ‚ywanym przez control+lewy_przycisk_myszy. JeÅ›li używasz X, prawdopodobnie nie zainteresujÄ… ciÄ™ poniższe informacje. · tcsh (6.04 i nowsze): "set visiblebell". InstrukcjÄ™ tÄ™ można umieÅ›cić w pliku .cshrc lub podać interaktywnie. WyÅ‚Ä…czenie alarmu wizualnego: "unset visiblebell". WyÅ‚Ä…czenie alarmu wizualnego oraz dźwiÄ™kowego: "set nobeep". · bash (o ile wiem wszystkie wersje): umieść liniÄ™ "set bell-style visible" w pliku ~/.bashrc. Zamiast "visible" (wizualny) możesz wpisać "audible" (dźwiÄ™kowy) lub "none" (żaden). · bash (z readline, oraz inne aplikacje korzystajÄ…ce 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" (pamiÄ™taj o dwukropku). Zamiana w powyższej linii sÅ‚owa "flash" na "noflash" spowoduje wyÅ‚Ä…czenie alarmu wizualnego. · emacs: umieść liniÄ™ "(setq visible-bell t)" w pliku ~/.emacs. Zamiana w powyższej komendzie koÅ„cowej litery "t" na sÅ‚owo "nil" spowoduje wyÅ‚Ä…czenie alarmu wizualnego. · less: alarm wizualny wÅ‚Ä…cza siÄ™ podajÄ…c w linii poleceÅ„ opcjÄ™ "-q", natomiast wszystkie rodzaje alarmu wyÅ‚Ä…cza siÄ™ opcjÄ… "-Q". Opcje domyÅ›lne można umieÅ›cić w zmiennej Å›rodowiskowej "LESS". · screen: użyj kombinacji klawiszy CtrlA-CtrlG. Zmieni to zachowanie wszystkich wirtualnych sesji. WiÄ™cej informacji na ten temat znajdziesz w podrÄ™czniku systemowym ("man screen") w sekcji "CUSTOMIZATION". 99.. CCiieemmnnaa ssttrroonnaa zzaaggaaddnniieenniiaa Niestety nie wszystkie aplikacje korzystajÄ… z informacji zawartych w bazach termcap lub terminfo. WiÄ™kszość maÅ‚ych programików ma na sztywno w kodzie C zaszyte "\a" (alarm). "\a" w ciÄ…gach znaków w plikach binarnych interpretowane jest jako ascii BEL. "Prawdziwych" aplikacji problem ten zazwyczaj nie dotyczy, ale uważaj na produkty poczÄ…tkujÄ…cych programistów C -- najgorsi sÄ… tu studenci informatyki! Jedynym sposobem uciszenia takich programów jest gÅ‚oÅ›niczkotomia lub wykorzystanie sekwencji kodów podanej przez Martina Maresa. 1100.. OOdd ttÅ‚Å‚uummaacczzaa Wersja oryginalna dokumentu: . TÅ‚umaczenia pozostaÅ‚ych dokumentów HOWTO na jÄ™zyk polski: . Copyright for the translation (c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk

Wyszukiwarka

Podobne podstrony:
visual bell pl 8
visual bell pl
visual bell pl 1
visual bell pl 2
visual bell pl 3
visual bell pl 6
visual bell pl 10
visual bell pl 9
visual bell pl 9
Visual Bell pl (2)
visual bell pl 4
visual bell pl 7
visual bell pl 5
visual bell 4 5pkniwehhw3htpsc6sytlupziuazr6mxnuhcr7q 5pkniwehhw3htpsc6sytlupziuazr6mxnuhcr7q
visual bell 8 q46jeyxjx4qlbajrd4coeh5h6xkzndblpvkx7aa q46jeyxjx4qlbajrd4coeh5h6xkzndblpvkx7aa
visual bell 2 7uyeu6iv7q23ovlwq52gke36yt46jiydylcpjsi 7uyeu6iv7q23ovlwq52gke36yt46jiydylcpjsi
visual bell 5 oovhlxjlj2wr6izrt7p7ax6okno2ccmjiaiuy4a oovhlxjlj2wr6izrt7p7ax6okno2ccmjiaiuy4a
visual bell 7 7mwbuybvfgv36u6kcnegjnm3ph7stetaj7rf7by 7mwbuybvfgv36u6kcnegjnm3ph7stetaj7rf7by
visual bell 1 yg6ecaysoyqc6jbkj4f6geboudcm422f72rl7ri yg6ecaysoyqc6jbkj4f6geboudcm422f72rl7ri

więcej podobnych podstron