Visible bell mini-Howto

Alessandro Rubini

rubini@linux.it

JF Project - {

JF@linux.or.jp

v2.2, 11 November 1997

̕ł́Atermcap gāAr[v炳ɎoIɒm点
(visible bell) 悤VXeݒ肷@܂B܂AKvɉ
ăr[v̂@ɂĂЉĂ܂B



Table of Contents
1. ͂߂
2. Xs[JO
3. R\[ƂɃr[v̉Fς
4. termcap  terminfo ̊{TO
5. r[vo
6. eLXgR\[̃r[v
7. AvP[Ṽr[v
8. _
9. {ɂ

1. ͂߂

Linux R\[hCóABEL  (ASCII code 7) o͂ہA
r[v炷悤ɂȂĂ܂B͏ݒł̐UƂĂ
Ȃ̂łA[ÛȂɂ́ARs[^̃r[v炳Ȃ
悤ɂƎvĂlł傤B mini-HOWTO ́AAvP
[V BEL R[ho͂Ȃ悤w@̂łB
AJ[l X Window System ݒ肵āABEL ̏o͂̍ۂɃr[v
炳Ȃ悤ɂ@Ă܂BÁ̕AeLXg
R\[Ɋւ唼ƂȂĂ܂BX T[o̐ݒ́AOtB
bNgĂ郆[UɁAtxĂȂ̂ŁA
B

vɁAƖʓ|ȂƂRs[^vʂɓŗǂ̕@
́An[hEFAiKőΏ邱ƂłB(r[v̌Ȃ킽) R
s[^Xs[ĴOĂ܂B



2. Xs[JO

Xs[JOȓIɎO (Speakerectomy [1] ) ƁAꂪr[v
̂ɍłȎiłB́A`ʂAr[v̔
OƂŃr[vȂ悤ɂ킯łB̎p͉
ǂȂAsvłAAȕ@ł͂̂Ő̗]
n͂܂B

ʏAPC ɂ́ACPU ᑬɂ邽߂̂܂ɗȂVXeNbN
؂ւXCb`tĂ܂B̃XCb`́A}`^XNœ
悤ȏꍇɂ́ASgp܂B\tgEFA[vŃ^C~O
ĂÂ DOS Q[ᑬœ悤ȏꍇłA͂g
܂BcOȂ炱̃XCb`găvZbTxグ邱Ƃ͂
܂񂪁A]păXs[J̗L؂ւ邱Ƃł܂
BmɁAr[v𗧂ꍇ܂BÂōȃ}VgĂ
āAႦ΁AԂ̃RpC̏Ir[vŒm点Ƃۂ
́AXs[J𗧂Ƃł傤B̃XCb`̋@\ύX
́AC{[h炻OāAzXs[Jƒɐڑ邾
łB (󒍁F́̕A1997 NɏĂ܂B݂ł́A
ႤƎv̂ŁAӂ)

bvgbvgĂꍇ́AcOȂAXs[JɃANZX邱
͊ȒPł͂܂񂵁A]ȃXCb`gĕʂ̖ړIɓ]p悤
Ƃł܂B[UɂƂāA悢́A\tgEF
AŐݒsăr[vƂłB@ȉŐ
B



3. R\[ƂɃr[v̉Fς

Linux 1.3.43 ł́AMartin Mares Aconsole.c ̕ύXɂāAr[v
̃sb`ƎԂݒł@\ǉ܂BR\[ƂɁA
Ȃsb`ƎԂ̉FŃr[v炷悤ݒ肷邱Ƃ\ł
B̃^XN̎sɂ́AR\[foCXɑGXP[vV[P
XgĂ܂B~/.profile  ~/.login t@C̐ݒɂAʁX
r[vX̃R\[Ŗ炷Ƃł܂(܂AKvɉāAr
[vƂł܂)B

GXP[vV[PX́Â悤ȓ܂B

 E ESC-[10;xx] ɂAwc(Hz)PʂŃr[v̎gݒ肵܂B
    ̒ĺA21-32766 ͈̔͂łȂ΂Ȃ炸AȊO̒l͖`Ɖ
    ߂܂B xx `ĂȂꍇAႦ ESC-[10] ƂȂ
    Ă悤ȏꍇ́AftHgl (750Hz) Kp܂B
   
 E ESC-[11;xx] ɂA~bPʂŃr[v̎Ԃݒ肵܂B2
    bȏw肷ƁAftHgl (125ms) Kp܂BLlA
     xx `ĂȂꍇ (ESC-[11] )AftHglg
    B
   
 

Ⴆ΁A50Hz ̃sb`ňbԎꍇAbash ȂA " echo -e "\
\33[10;50]\\33[11;1000]" " ƂȂ܂ [2] B("-e" ́AGXP[vV[P
X𗝉ƂӖłBtcsh ̏ꍇłAR}hXy͓ł
B)

setterm R}hɂ̂悤ȐݒT|[go[W邩ǂ
͒m܂񂪁AIɂ setterm ̃R}hCIvVŃr[v
̐ݒ肪ł悤ɂȂ邾낤Ǝv܂B

Linux J[l 1.3.43 ȍ~gĂȂÃGXP[vV[PX
gݒsΏ[Ȃ̂ŁA{ȏǂޕKv͂Ȃł傤B
AȑÕJ[lgĂ邩A̓r[voIɕ\
悤ƎvȂA͈ȉɗ܂B



4. termcap  terminfo ̊{TO

/etc/termcap t@ĆA^[~i̋@\ ( terminal capability ) 
LeLXgt@CłB̃AvP[V termcap t@C
gāAXN[ł̃J[\ړ₻̑̃XN[֌W̏s
Ă܂Btcsh  bashAvi AׂẴJ[\x[X̃AvP[V
́Atermcap f[^x[XgpĂ܂B

termcap f[^x[Xɂ́Aẽ^[~i^CvLqĂ܂B
sɂ́Aϐ TERM ɂă^[~i̐U镑I܂B
́Atermcap ̃GĝЂƂw肷邱ƂŁAAvP[V
ɋLqꂽf[^𗘗pƂdg݂ɂȂĂ܂B

̃f[^x[Xł́A^[~ǐX̋@\A񕶎̃R[hƁAK
vȌʂ𓾂邽߂̎ۂ̃GXP[vV[PXƂŕ\LĂ܂B
Ȃ@\ʂۂɂ́Ap̕ƂăR (":") gĂ
BႦ΁Ar[v́A"bl" ƂR[hŕ\LAʏ́A" bl=^G "
ƂӂɋLڂ܂B̃V[PẌӖ́A Ctrl-G Ƃ
(ASCII BEL) o͂ۂɃr[v炷Ƃ̂łB

bl @\ɉāAvb @\Ƃ̂܂BꂪAr[voI
\ (visible bell) ۂɎgR[hłBAvb ́AʏAtermcap
t@C linux Ggɂ͋LqĂ܂B

ŋ߂̃AvP[V⃉Cuł́Atermcap ̂ terminfo 
gĂ܂Bterminfo f[^x[Xł́A^[~i^CvƂɂЂƂ
̃t@Cg悤ɂȂĂāA /usr/lib/terminfo ȉɒu
Ă܂BāAfBNg\𕪂Ղ邽߂ɁAꂼ
^[~i^Cv̋Lqt@ĆÃ^[~i̓̕tfB
NgɕۑĂ܂B䂦Alinux GǵA/usr/lib/
terminfo/l/linux t@CƂȂ܂Bterminfo Gg\zɂ́A
termcap ̋Lqt@CuRpCvKv܂Bڍׂ́Atic
vOƂ̃}jAy[WB



5. r[vo

termcap t@C vb @\̃Gg[܂`ĂȂꍇ́A
ŃGgǉ邱Ƃł܂B Dennis Henriksen
(duke@diku.dk) ̒ĂȂ̂łAȉ̍s termcap t@C
linux GgɏނƂŁAvb @\p\ɂȂ܂ (ÂfB
Xgr[Vł́A linux Gg console ƂOɂȂ
Ă̂ŁAӂĂ)B


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


s̃obNXbV́Af[^x[Xł̉sGXP[v邽߂
̂łBL Dennis ̃R[h́A(ނ̌ɂ)̋@\
B

 E (SƂ)J[\ʒuۑ
   
 E wiFƑ΂ɂȂFgāAwi𐔉_ł
   
 E J[\ʒuɖ߂
   
 



6. eLXgR\[̃r[v

R\[Ńr[v̎oꍇ́Atermcap t@C bl
Gg̕O͂ vb ̕ɒuĂBAvP[V
Ƃ̃JX^}CY]܂ȂȂÃAv[`͔Ɏyȕ@
 (AvP[VƂ̃JX^}CÝA͂Ő܂)B킽́A
Xs[J̎OłȂ Linux }Vɂ́AׂẴIvVg
Ă܂B



7. AvP[Ṽr[v

̏͂ł́A (termcap  terminfo ɋLqĂg) ^[~
i^Cv𔻒fĂAvP[V̂A vb Ggg悤
w邱Ƃ\Ȃ̂グĐ܂B

 

 E X T[oFX T[oł́A"xset b" R}hgăr[v̉F
    ܂B̃R}h́Au{[vusb`vuԁvƂ
     3 l̈܂ [3] B܂A"xset -b" ŁAr[v
    ɂł܂B X T[o̐ݒ́AfBXvCœ삷邷ׂ
    ̃AvP[Vɉe^܂B
   
 E xtermFxterm ́ABEL 𒮊oMoM̂ǂɂłϊ
    邱Ƃł܂BoM(r[v)gꍇ́AL xset R}
    hł̐ݒ@̂܂ܓĂ͂܂܂Bxterm ł̏ݒ͒o
    MɂȂĂ܂AR}hCIvV "-vb" w肷邩
    A\[X (󒍁F~/.Xresources ̈ӖƎv܂)  "xterm*
    visualBell: true ƋLq邱ƂŁAʂtbV鎋oM
    ύXł܂B܂Asł Control--left-mouse-button ŒoM
    ƎoM؂ւ邱Ƃł܂B X sĂ̂ȂA
    炭̏񂪂΁Aȉ͕̐spƎv܂B
   
 E tcsh (6.04 ȍ~)F"set visiblebell" ƂĂB̐ݒ
    A.cshrc ɋLq邱Ƃł܂A蓮őłł܂܂
    B̃r[vɖ߂ۂ́A "unset visiblebell" Ƃ܂BVOi
    ؏ꍇ́A "set nobeep" g܂B
   
 E bash (҂̒mAo[W₢܂)F "set bell-style
    visible  ~/.bashrc ɋLqĂBbell-style ̃IvV
    AȊOɂ "none"  "audible" ܂B
   
 E bash (readline gĂ bashA readline x[Xׂ̂Ă
    AvP[V)F "set prefer-visible-bell"  ~/.inputrc ɋLq
    ܂B
   
 E nvi  elvisF "set flash"  ~/.exrc ɋLq邩A ":set flash"
    (RKvł)蓮őłłBoʂ𖳌ɂ
    ꍇ́Aflash ̕ noflash ɕύXĎgĂB
   
 E emacsF"(setq visible-bell t)"  ~/.emacs ɋLq܂Bɂ
    ɂ́A"(setq visible-bell nil) Ƃ܂B
   
 E lessFR}hC "-q" IvVtƃr[vo
    A"-Q" IvVŃVOî𖳌ɂł܂Bݒ
     LESS ɐݒ肵ĂƂ\łB
   
 E screenFCtrlA-CtrlG R}hg܂B̃R}hŁAׂẴo
    [`XN[̐U镑ύX邱Ƃł܂Bݒ̕
    XɂẮA}jAy[W "CUSTOMIZATION" ̍
    B
   
 



8. _

ƂȂ̂́AKׂẴAvP[V termcap  terminfo
gĂ킯ł͂ȂƂƂłBȃvȎ啔ł́AC
\[XR[hŁuobNXbV av(A[) gĂ܂B
́uA[v́AsoCił̂܂ ASCII  BEL ɂȂ
܂BƂvÓAʏ킱Ƃ͂Ȃ̂łAC ̏
S҂쐬vOɂ͋CtĂBRs[^TCGX
wюn߂΂̊ẃAɂЂǂ肵܂B

vÕr[vB̕@́AXs[ĴO
A Martin Mares 쐬GXP[vV[PXgƂłB



9. {ɂ

{ Linux-JF vWFNg̑̕XɃT|[g܂B
Ƃ܂B

AE󓙂ɂẮAJF [OXg <JF@linux.or.jp> A
<ysenda@pop01.odn.ne.jp> ܂ł肢܂B

                                (1996
F JG                       /10/ 
                                  06)  
X                                (2001
V UTi                       /08/ 
F                                28)  
Z                                     
 Seiji Kaneko                        
F                                     

Notes

[1] 󒍁F Speakerectomy ɂĒ҂̐łB                  
                                                                       
           Speakerectomy is a neologism, an invented word.             
           Taken from the surgical vocabulary, - ctomy means           
           cut-and-remove. It's (loud)speaker removal -- by            
           cutting wires.                                              
                                                                       
           ( Speakerectomy Ƃt́Aɍ        
           BOȓIȌtɗR܂B-ctomy Ƃ̂́A         
           fA͂ƂӖ܂B܂Aڑ        
           făXs[J[P邱ƂłB)                       
                                                                       
                                            --Alessandro Rubini        
                                                                       
[2] (󒍁F̃R}h́AX pł͂ȂA^[~ipłBeLXg[
    ʂŏLR}hłACtrl-G ł̃r[v炷Ƃł
    BX p̐ݒ́AB)                          
                                                                       
[3] (󒍁FႦ΁A"xset b 10 50 2000" ȂǁB)                         

