µ±Ç°Î»ÖãºLinux½Ì³Ì - Linux - £Ø £×£É£Î£Ä£Ï£×£Ó ϵͳʹÓÃÖ¸ÄÏ(Ê®Áù)

£Ø £×£É£Î£Ä£Ï£×£Ó ϵͳʹÓÃÖ¸ÄÏ(Ê®Áù)

µÚ£±£¸Õ ¼üÅ̺ͻ¬Êó -- ¶ÔÓ¦ºÍÈþÊý

ÔÚÇ°ÕÂÎÒÃÇ¿´µ½ÁËToolkit ËùÌṩµÄתÒë½á¹¹£¬ËüÈÃÄã¶ÔÒ»¸öÓ¦ÓóÌʽµÄ¸ö±ð
³ÉÔ±£¬¶¨ÖÆÄãµÄ¼üÅ̺ͻ¬Êó¡£ÔÚ±¾Õ£¬ÎÒÃÇÀ´¿´ÁíÒ»ÖֽϵͲã´ÎµÄ¶¨ÖÆ£¬ËüÊÇ
ÓÉserverËù¹ÜÀí£¬³Æ֮Ϊ¶ÔÓ¦(mapping) £¬ÄãÖ»ÐèÒª¸æËßserverÄãµÄ¼üÅÌËùÐè
µÄ²»Í¬µÄÅäÖã¬Ëü¾Í»á±»Ã¿Ò»¸öÁ¬½Óµ½ÄãserverÉϵÄÓ¦ÓóÌʽӦÓõ½¡£ÀýÈ磺
È¡´úͨ³£µÄQWERTY¼üÅÌ£¬Äã¿ÉÄÜÏ£¡¡ÖØа²ÅżüÅÌÒÔÊÊÓ¦ÄÇЩ¶Ô¼üÅ̲¢²»ÊìϤ
µÄʹÓÃÕß (Äã¿ÉÄܰѼüÅÌ°´ABCDEF... ÖØÐÂÅŹý£¬µ±È»¼üÅÌ°´Å¥ÉÏËùÓ¡µÄ×ÖÒ²
Ðè¸ü¸Ä³ÉÏà·û)¡£ÄãÒ²ÄܶÔһЩControl£¬ShiftµÈµÈµÄÐÞÊμü×÷Ö¸¶¨¡£¶Ô»¬Êó
°´Å¥£¬Ò»ÑùÓÐÒ»¸öÏà¹ØµÄ¶ÔÓ¦£¬¿É½« ""Âß¼­µÄ"" °´Å¥¶ÔÓ¦µ½Êµ¼Ê¶¯×÷¡£ÕûÌå¶ø
ÑÔ£¬ÄãʹÓÃÕâЩ¼üÅ̺ͻ¬ÊóµÄ¶ÔÓ¦µÄƵÂÊ£¬½«Ð¡ì¶×ªÒë¡£

´ËÍ⣬ÉÐÓзdz£³£ÓõĵÚÈýÖÖÐÍ̬µÄ¶¨ÖÆ¿ÉÓãºÄã¿ÉÒÔÉ趨ÓйØÄã¼üÅ̺Í
»¬Êó¸÷ÖÖ²»Í¬µÄÈþÊý¡£ÀýÈçÏìÁåÉùÒôµÄ´óС£¬°´Ï¼üʱÊÇ·ñÓеδðÉùµÈµÈ¡£

ÔÚ±¾Õ£¬ÎÒÃÇÏÈÃèÊö¼üÅÌ¡¢»¬ÊóºÍÐÞÊμüµÄ¶ÔÓ¦£¬½ÓÏÂÀ´ÃèÊöÄãÈçºÎʹÓÃ
xset³Ìʽ£¬À´¶¨ÒåÀàËÆÏñ¼üÅÌÓÐÎ޵δðÉùµÄÈþÊýÉ趨¡£

18.1 ¼üÅ̺ͻ¬Êó¶ÔÓ¦ -- xmodmap

server±¾Éí´¦ÀíÒ»¸ö²ã´ÎµÄ¶¨ÖÆ£¬Ëü¶Ôì¶ËùÓÐʹÓõ½´Ëserver»òÏÔʾÆ÷µÄÓ¦ÓóÌ
ʽ¾ù·¢ÉúЧÓãºÕâ¾ÍÊǼüÅ̶ÔÓ¦ (keyboard mapping)¡£

ÿһ¸ö¼ü£¬ÓÐÒ»¸öµ¥¶ÀµÄÂë¶ÔÓ¦Ëü£¬³Æ֮Ϊ¼üÂë(keycode)¡£¼üºÍ¼üÂëÖ®¼ä
µÄ¹ØϵÊǾø¶Ô¹Ì¶¨µÄ¡£ (´ÖÂÔÀ´Ëµ£¬Äã¿ÉÒÔ˵ ""¼üÂë¾ÍÊǼü"")¡£

Á¬½Óµ½Ã¿Ò»¸ö¼üÂë (»ò¼ü)µÄÊÇÒ»¸ökeysymµÄ±íÁС£Ò»¸ökeysymÊÇÒ»¸ö´ú±í
Ó¡ÔÚ¼üÅÌ·ûºÅÉϵÄÊý×Ö³£Êý¡£ÔÚÔ¤ÉèµÄÇé¿ö£¬´ó¶àÊýµÄ¼üÖ»ÓÐÒ»¸ökeysym ÓëÖ®
¶ÔÓ¦£¬ÀýÈç SHIFT£¬A£¬B£¬Delete£¬LinefeedµÈµÈ¡£keysym¼È·ÇASCII»òEBCDIC
×ÖÔª£¬Ò²·ÇserverÓÃÒÔά³ÖkeysymºÍ×ÖÔªµÄ¹Øϵ¡£Äã¿ÉÒÔ¶Ôÿһ¸ö¼üÓÐÁ½¸ö
keysym¡£ÔÚÔ¤Éè¶ÔÓ¦ÖУ¬ÓкܶàÁ¬½Óµ½Á½¸ökeysymµÄ¼ü£¬ÀýÈçðºÅ(:) ºÍ·ÖºÅ(;)
£¬7 ºÍ &µÈµÈ¡£¶ÔÒ»¸ö¼ü¸½ÊôµÄkeysym±íÁÐÖУ¬µÚÒ»¸ökeysymÊÇδ°´ÏÂÐÞÊμü
µÄ×´¿öϵļü¡£µÚ¶þ¸ökeysymÊÇÖ¸µ±SHIFT (»òLock)Òѱ»Í¬Ê±°´ÏÂʱµÄ¼ü£¬Èç
¹ûÔÚ±íÁÐÖÐÖ»ÓÐÒ»ÏÇÒΪ×Öĸ£¬Ôòϵͳ×Ô¶¯¼ÙÉèµÚ¶þÏîΪÏà¶ÔµÄ´óд×Öĸ¡£
³¬¹ýÁ½ÏîµÄkeysym²¢Ã»ÓÐÌرðµÄÒâÒ壬¼üÅ̺ÍkeysymÖ®¼äµÄ¹Øϵ±»³Æ֮Ϊ¼üÅÌ
¶ÔÓ¦¡£

¾¡Á¿µØÒÔserver´¦ÀíÒ»°ãµÄ¼üºÍkeysyms ¡£Ëü¶Ô¼üÂëûÓи½ÊôÒâÒ壬ÇÒËü
×Ô¼º±¾Éí²»»áʹÓöÔÓ¦´Ó¼üÂë¶ÔÓ¦ÖÁkeysyms £ºËüÖ»ÊÇ´«µÝ×ÊѶ¸øclientÓ¦ÓÃ
³Ìʽ¡£ÌرðµÄÊÇ£¬server¶ÔASCII »òÆäËüµÄ×ÖÔª¼¯ºÏ (character sets) ºÁÎÞ
¸ÅÄËüÖ»ÊÇ˵Ã÷ ""ij¼ü±»°´Ï£¬Ä³ÐÞÊμüҲͬʱ±»°´Ï£¬keysym±íÁÐÖÐij
keysymºÍij¼üÏà¹Ø"" ¡£ËüÊÇclient (µäÐ͵ÄʹÓñê×¼µÄ£Ø Library) ¶Ôkeysym
ºÍÐÞÊμü¸½ÊôµÄÒâÒ壺ÀýÈ磬Ëü¾ö¶¨Èç¹ûkeysym²úÉúʱctrlÒ²±»°´Ï£¬Ëü±ØÐè
±»½âÊÍΪASCII ×ÖÔª hex 0x1£¬Ò²¾ÍÊÇ˵ctl-A¡£ Ìض¨µÄclient¿ÉÒÔ¾ö¶¨ÌØÊâ
µÄÐÞÊμüµÄÒâÒ壻ÀýÈçÔÚxterm ÖУ¬µ±ÄãºÍMTEA¼üͬʱ°´ÏÂÒ»¸ö¼ü£¬³Ìʽ½«´Ë
ת»»ÎªESC ááÃæ¸úËæ×ű»°´ÏµÄ×ÖÔª¡£ (Ò²¾ÍÊÇ˵£¬Èç¹ûÄã°´ÏÂmeta-A£¬Êµ¼Ê
ÉÏ»á²úÉúÁ½¸ö×ÖÔª ASCII 0x1b, ASCII 0x41)¡£

serverÔÚ´ËÁìÓòÄÚÌṩһ¸ö¶îÍâµÄÉèÊ©¡£Äã¿ÉÒÔ¶¨ÒåÈÃserver½«¼üÂë½âÊÍ
³ÉÐÞÊμü£¬ÀýÈç ""µ±¼üÂëΪÈô¸ÉµÄ¼ü±»°´ÏÂʱ£¬ËüÏàͬì¶CONTROLÐÞÊμü±»Êµ¼Ê
°´ÏÂ""¡£ÕâÖÖ¶¨Òå²¢²»»¥³â£ºÈç¹ûÄ㶨Òå¼üF7ΪShift ÐÞÊμü£¬Ëü²¢²»»áÓ°ÏìÈÎ
ºÎÏÖ´æµÄÐÞÊμü¡£´ËÖÖÉèÊ©³Æ֮ΪÐÞÊμü¶ÔÓ¦ (modifier mapping)¡££ØÌṩ°Ë
¸öÐÞÊμü£ºShift¡¢Lock(caps-lock)¡¢Control¡¢Mod1µ½Mod5¡£Ï°¹ßÉÏ£¬Mod1±»
½âÊÍΪMeta¡£

×îáᣬ¶Ô»¬Êó°´Å¥ÓÐÒ»¸öÀàËƵÄÖ¸±ê¶ÔÓ¦ (pointer mapping)¡£¶Ôÿһ¸ö
ʵ¼ÊµÄ°´Å¥£¬Äã¿ÉÒÔ¶ÔËüÃÇÖ¸¶¨Ò»¸öÏà¹ØµÄÂß¼­°´Å¥Êý×Ö¡£

ʵ¼ÊÉÏ£¬Èç¹ûÄã¸Ä±äÄãµÄ¼üÅÌ»ò»¬ÊóµÄ¶ÔÓ¦£¬ÄãÏ൱ì¶ÊÇ˵ÖÆÔ쳧É̶ÔÄã
µÄÊäÈë×°ÖÃÅäÖò»µ±£¬Ä㽫°ÑËüÐÞÕýΪÊʺÏÄãËùÐèÒªµÄ¡£µ±È»£¬Èç¹ûÄã¸Ä±äÁË
¶ÔÓ¦£¬ÄãÓ¦¸Ã°Ñ¶ÔÓ¦¼üÉÏÃæËùÓ¡µÄ·ûºÅÒ²ËæÖ®Ð޸ģ»²»¹ý£¬Í¨³£¸ü¸ÄµÄ¶¼ÊÇÒ»
Щ¿ØÖƺÍÐÞÊμü£¬ËùÒԾͲ»ÊÇÄÇ÷áÐèÒªÁË¡£»»¾ä»°Ëµ£¬Èç¹ûÄã¸Ä±äÁ˶ÔÓ¦£¬Ê¹
µÃ¼üÅÌÅäÖúÍÒ»¸öÌض¨¹ú¼Ò±ê×¼ (ÀýÈ磺·¨¹ú»òµÂ¹ú) Ïà·û£¬Äã±ØÐè¸ü»»Êµ¼Ê
¼üÅÌÉϵķûºÅ¡£

Äã¿ÉÒÔÔ¤Æڵõ½£¬¸Ä±ä¼üÅ̶ÔÓ¦ÊÇÒ»¼þÏ൱ϡº±µÄÊ£¬Äã¿ÉÄÜÉ趨ËüÒ»´Î
Ö®áá¾Í²»ÔٸıäËü¡£ÔÚÒÔϼ¸½Ú£¬ÎÒÃǽ«ºÜ¿ìµÄ¿´Ò»¿´ÈçºÎʹÓóÌʽxmodmap
£¬²é¿´ÏÖÓеĶÔÓ¦ºÍÐÞ¸ÄËüÃÇ¡£

18.1.1 ²é¿´ÏÖÓеĶÔÓ¦

ÄãʹÓÃxmodmap À´ÁгöÏÖÓеĶÔÓ¦£¬¾ÍÈçͬ¸Ä±äËüÃÇÒ»Ñù¡£Äã¿ÉÒÔÖ¸¶¨²»Í¬µÄ
ÃüÁîÁÐÑ¡ÏÀ´Ñ¡ÔñÏëÒªÓ¡³öµÄ²»Í¬µÄ¶ÔÓ¦£º

ÁгöÏÖÓмüµÄ¶ÔÓ¦£ºÖ¸¶¨ -pkÑ¡Ïî¡£

ÁгöÏÖÓÐÐÞÊμüµÄ¶ÔÓ¦£ºÖ¸¶¨ -pmÑ¡Ïî (»òÊÇʲ÷áÑ¡ÏîÒ²²»Ñ¡£¬ÒòΪÕâÊÇ
xmodmapµÄÔ¤Éè×÷ÓÃ)¡£

ÁгöÏÖÓÐÖ¸±ê (°´Å¥)µÄ¶ÔÓ¦£ºÖ¸¶¨ -ppÑ¡Ïî¡£

ÀýÈ磬½«ËùÓеĶÔÓ¦Ò»ÆðÓ¡³ö£¬Ê¹ÓÃÃüÁ

xmodmap -pm -pk -pp

Áгö¼ü¡¢ÐÞÊμü¡¢Ö¸±êµÄ¶ÔÓ¦Ö®·¶ÀýÈçͼ18 - 1£¬18 - 2£¬18 - 3¡£(¼ü¶ÔÓ¦Ö»
ÓÐÁгöÒ»²¿·Ý£¬ÒòΪÍêÕûµÄ¶ÔӦʵÔÚÌ«³¤ÁË¡£)

©³£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©·
©¦ p228 fig 18.1 ©¦
©¦ ©¦
©¦ ͼ18-1 Áгö¼üÅ̶ÔÓ¦µÄ·¶Àý ©¦
©»£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©¿

©³£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©·
©¦ p229 fig 18.2 ©¦
©¦ ©¦
©¦ ͼ18-2 ÁгöÐÞÊμü¶ÔÓ¦µÄ·¶Àý ©¦
©»£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©¿

©³£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©·
©¦ p229 fig 18.3 ©¦
©¦ ©¦
©¦ ͼ18-3 ÁгöÖ¸±ê¶ÔÓ¦µÄ·¶Àý ©¦
©»£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­©¿

18.1.2 Ö´ÐÐ xmodmap ¸Ä±ä¶ÔÓ¦ -- Ò»°ãÐÔÑ¡Ïî

µ±xmodmap ÓÃÀ´¸Ä±ä»òÉ趨¶ÔÓ¦£¬Ëü¿ÉÒÔ´¦ÀíÒ»»ò¶à¸ö±íʽ (expression) µÄ
×÷Óá£Äã¿ÉÒÔ°ÑÕâЩÊäÈëÔÚÒ»¸öµµ°¸ÖУ¬¼ÙÉè´Ëµµ°¸Ãû³Æ½Ðmyfile£¬¿ÉÓÃÏÂÁÐ
ÃüÁîÁ½ÕßÖ®Ò»£º

xmodmap myfile
xmodmap -
µÚ¶þÁеĶ̺áÏßÊDZØÐèµÄ£¬Èç¹ûÉÙÁËËü£¬³Ìʽ½«Ö»Íê³ÉÔ¤ÉèµÄ×÷Óà (ÁгöÐÞÊÎ
¼üµÄ¶ÔÓ¦) ¡£³ýÁËÔÚµµ°¸ÖÐÊäÈë¹æ¸ñÖ®Í⣬ÄãÒ²¿ÉÒÔÔÚÃüÁîÁÐÖÐÓà -e Ñ¡ÏîÖ±
½ÓÖ¸¶¨ËüÃÇ£º

xmodmap -e expression
xmodmap -e expression-1 -e expression-2

ΪÁ˵õ½¸ü¶àÓйØxmodmap ×÷ÓõÄ×ÊѶ£¬¿ÉÒÔÖ¸¶¨Èß׸ (verbose)Ñ¡Ï-v »ò
-verbose¡£Äã¿ÉÒÔ½å×ÅʹÓà -n Ñ¡Ïʵ¼ÊµÄ¸Ä±ä¶ÔÓ¦¶ø»ñµÃÏàͬµÄÁÐÓ¡Êä³ö
(printout) ¡£ (´Ë¹¦ÄܺÍUnixÖÐmakeÃüÁîµÄ -n Ñ¡ÏîÏàͬ£¬ÆäÒâΪ ""¼Ù×°Ö´
ÐÐÎÒÒªÇóÄã×öµÄÊ£¬ÕýÈ·µÄ¸æËßÎÒÄ㽫ÈçºÎ½øÐУ¬µ«²¢²»Êµ¼ÊµØÍê³É×÷ÓÃ"")¡£
Õâ¸öÑ¡Ïî¶ÔÐÂÊÖ»ò²»È·¶¨×Ô¼ºÊÇ·ñ×öµÄÕýÈ·µÄÇé¿ö·Ç³£ÓÐÓá£

ÿһ¸ö±íʽµÄÓï·¨²¢²»Ïàͬ£¬µ«Ò»°ãÐԵĸñʽΪ£º

keyword target = value(s)

(µÈºÅµÄÁ½±ß¾ùÐèΪ¿Õ°×)¡£

18.1.3 ¸Ä±äÖ¸±ê¶ÔÓ¦

Ö¸±ê¶ÔÓ¦ÊÇÒ»¸öÂß¼­°´Å¥Êý×ֵıíÁС£ (Âß¼­µÄbutton-1ÎÒÃdzÆΪLEFT£¬Âß¼­
µÄ button-2 ³ÆΪMIDDLEµÈµÈ£¬Êµ¼ÊµÄ button-1 ÊÇ»¬Êó×ó±ßµÄ°´Å¥£¬button-2
ÊǸô±ÚµÄ°´Å¥µÈµÈ£¬ËùÒÔÔ¤ÉèµÄÂß¼­µÄ°´Å¥ºÍʵ¼ÊµÄÒ»ÖÂ)¡£ÔÚ±íÁÐÖеĵÚÒ»¸ö
ÏîÄ¿ÊÇÂß¼­µÄ°´Å¥ºÍʵ¼ÊµÄ button-1 µÄ¹Øϵ£¬ÏÂÒ»¸öÔòÊǶÔʵ¼ÊµÄ button-2
µÄ¹Øϵ£¬ÒÔ´ËÀàÍÆ¡£ÀýÈ磬µßµ¹°´Å¥µÄ´ÎÐò£¬Ê¹ÓÃÃüÁ

xmodmap -e ""pointer = 3 2 1 ""

½á¹û°´Ï»¬ÊóÓұߵİ´Å¥£¬»á±»½âÊͳÉLEFT¡£

18.1.4 ¸Ä±ä¼ü¶ÔÓ¦

xmodmap ÈÃÄ㽫һ¸ö¼ü (Ò²¾ÍÊÇ˵¼üÂë) Á¬½áµ½Ò»¸öеÄkeysym±íÁУ¬Ê¹Óñí
ʽ£º

keycode keycode = keysym-1 [keysym-2 ...]

°²ÅÅkeysym-1Á¬½áµ½¼üʱûÓÐÐÞÊμü£¬µ±SHIFT °´ÏÂʱkeysym-2Á¬½áµ½¼ü£¬Èç¹û
»¹ÓÐÏÂÒ»¸ökeysymµÄ»°£¬¶Ôkeycode ¶øÑÔÊǵÚÈý˳λµÈµÈ¡£ (Çë¼Çס£¬ÔÚÇ°Á½¸ö
Ö®ááµÄkeysym£¬ÏµÍ³²¢Î´¸½ÊôÌرðµÄÒâÒ壬ӦÓóÌʽÈç¹ûÐèÒªµÄ»°¿ÉÒÔ¸½ÊôÒâÒå
)¡£

ÈÃÎÒÃǾÙʵ¼ÊµÄÀý×Ó¡£Ò»Ð©¼üÅÌ°ÑһЩ·Ç×ÖĸÊý×Ö (alphanumeric)¼ü·ÅÔÚ
²»±ê×¼µÄµØ·½£¬ËùÒÔÎÒÃǼÙÉèÄãÒª½«F6¼üÖض¨Ò嵱ûÓÐÐÞÊμü°´ÏÂʱΪ ""9""£¬
µ±SHIFT °´ÏÂʱΪ ""(""¡£ÒªÐ´ÈëÕâ¸öxmodmap µÄ±íʽ£¬ÄãÐèÒªÖªµÀÈý¼þÊ£ºF6
µÄ¼üÂ룬ºÍ ""9""Óë ""(""µÄkeysym¡£ÎÒÃÇÔÚµÚ£±£²ÕÂÌáµ½¹ý£¬Ö´ÐÐxev ±ã¿É»ñµÃ
ÕâЩ£º·Ö±ð°´ÏÂ""F6"", ""9"", ""(""Èý¸ö¼ü£¬Äã±ã¿ÉµÃµ½ËüÃǵļüÂëºÍkeysym¡£È»
áὫËüÃÇ·ÅÈëÄãµÄ±íʽÖС£ÀýÈçÔÚÎÒÃǵÄϵͳÖÐÎÒÃÇʹÓÃÃüÁ

xmodmap -e ""keycode 21 = 9 parenleft""

ΪÁËÈÝÒ×һЩ£¬Äãͨ³£²»ÐèÒª²éÎʼüÂ룬xmodmap ÔÊÐíÄãʹÓÃÏÂÁиñʽ£º

keysym target-keysym = keysym-1 [keysym-2 ...]

ËüµÄÒâÒåΪ ""¸½ÊôÔڴ˼üµÄkeysym±íÁÐÏÖÔÚ¸ÄÓÉtarget-keysymÀ´¸½Êô""¡£ÀýÈç
Õë¶ÔÎÒÃÇ·½²ÅµÄ·¶Àý£¬ÎÒÃÇ¿ÉÒÔÓãº

xmodmap -e ""keysym F6 = 9 parenleft""

Èç¹ûÄ㽫ÏàͬµÄkeysym¸½Êôµ½Êý¸ö¼ü£¬xmodmap »á¸ã»ìµô£¬ÏñÕâÖÖÇé¿öÄãÓ¦¼á
³ÖʹÓÃkeycode ... ÕâÖÖ·ûºÅ±íʾ·¨¡£

18.1.5 ¸Ä±äÐÞÊμü¶ÔÓ¦

ÔÚserverÖÐÐÞÊμü¶ÔÓ¦ÊÇÒ»¸ö±íÁеļ¯ºÏ£¬Ã¿¸öÐÞÊμüÓÐÒ»¸ö±íÁС£¶ÔÒ»¸öÐÞ
ÊμüµÄ±íÁÐÖУ¬°üº¬ÁËËùÓе±´ËÐÞÊμü±»°´ÏÂʱ»áÓÐÒâÒåµÄ¼ü (¼üÂë) ¡£xmodmap
ÔÊÐíÄãÔÚÒ»¸ö±íÁÐÖÐÔö¼ÓÏîÄ¿£¬È¥³ýÏîÄ¿£¬»òÍêÈ«Çå³ýÒ»¸ö±íÁС£¶Ô´ËÈý¸ö²Ù
×÷µÄ¸ñʽΪ£º

add modifier = list-of-keysyms
remove modifier = list-of-keysyms
clear modifier

²»ÐÒµÄÊÇ£¬Óï·¨Óеã¶ù»ìÏý£¬ÒòΪȡ´úÄãËùÐèµÄ¼üÂ룬Äã±ØÐèÖ¸¶¨keysym¸½Êô
µ½¼üÂë¡£

¾ÙÒ»¸öÀý×Ó£º¼ÙÈçÄãÐèÒªÔÚÄã¼üÅ̵ÄÓÒ±ßÓÐÒ»¸öµÚ¶þ¸öµÄCtrl¼ü¡£ÔÚÎÒÃÇ
µÄ¼üÅÌÉÏÓÐÒ»¸öAlternate ¼üûÓб»ÓÃÀ´×öÈκÎÊ£¬ËùÒÔÎÒÃǽ«ÐÞ¸ÄËü£¬ÃüÁî
Ϊ£º

xmodmap -e ""add Control = Alt_R""

ΪÁ˶à½âÊÍһЩÇé¿ö£¬ÈÃÎÒÃǼÙÉèÄãûÓÐÒ»¸ö¶àâŵļü£¬µ«ÓÐÒ»¸öµÚ¶þ¸öµÄ
Meta¼üÔÚ¼üÅ̵ÄÓÒÊֱߣ¬¶øÎÒÃÇÒªÓÃËü¡£ÎÒÃÇÊ×ÏȱØÐèÈ¥³ýËüµÄMod1¶ÔÓ¦ (Äã
±ØÐëʹÓà ""Mod1"" £¬""Meta""ûÓÐÓÃ) £¬¶øáὫËü¼ÓÈëControl ¶ÔÓ¦¡£ (Èç¹ûÓÐ
ÐèÒªµÄ»°£¬ÎÒÃÇ¿ÉÒÔÓµÓÐË«ÖصĶÔÓ¦£¬ËùÒÔÔÚControl-Meta×éºÏ¼üʱ²Å»áÓÐ×÷
Óã¬ÔÚһЩ±à¼­Æ÷Öг£»áÓõ½)¡£ÃüÁîΪ£º

remove Mod1 = Meta_r
add Control = Meta_r

½«ÉÏÊöÃüÁîÁзÅÈëÒ»¸ö±È·½Ëµ½ÐmymapsµÄµµ°¸ÖУ¬Ö´ÐÐÃüÁîxmodmap mymaps¡£
Ëü¿ÉÒÔ¹¤×÷£¬µ«Èç¹ûÄãÓÃxmodmap -pm È¥²é¿´£¬Äã»á·¢¾õControl ºÍMeta»ìºÏ
ÔÚÒ»Æð£¬ËùÒÔ×îºÃ¸Ä±ä¼üÉϵÄkeysymΪ£º

remove Mod1 = Meta_R
add Control = Meta_R
keysym Meta_R = Control_R

ÔÚxmodmap µÄÖ¸ÄÏÒ³ÖУ¬Óм¸¸ö¸ü¶àµÄ½»»»ÐÞÊμüµÄ·¶Àý¡£

×¢Ò⣺µ±Ôö¼ÓÒ»¸ö¼üµ½ÐÞÊμü¶ÔÓ¦£¬keysymÖ»ÊÇÓÃÀ´Ö¸¶¨xmodmap Öеļü
¡£ËüÍêÈ«ÊÇxmodmap ±¾µØµÄ£¬ÇÒÖ»ÊÇÒ»¸ö·ûºÅ¶øÒÑ£ºÖ»Óе±Ïà¹ØµÄ¼üÂë´«µÝµ½
server£¬²Åʵ¼ÊÉϵĸıä¶ÔÓ¦¡£Í¬ÑùµØ£¬keysym ºÍ keycode ±íʽ¶ÔÐÞÊμü¶Ô
Ó¦¾ø¶ÔûÓÐÓ°Ïì¡£Ò»¸ö³£¼ûµÄ´íÎóÊÇÖ´ÐÐÏÂÃæÕâ¸öÃüÁ

xmodmap -e ""keysym F1 = Contrl_R""

ÆÚ¡¡F1¼üÄÜÏñÒ»¸öcontrol ¼ü°ã×÷Óá£Ëü²»»á -- ÒòΪÄãÏ൱춸æËßϵͳ ""ÎÒ
ÒѾ­°ÑÕâ¸ö·ûºÅÓ¡ÔÚF1¼üÉÏÃæ"" ¶øÒÑ¡£ÄãÓ¦¸ÃÕâÑù×÷£º

xmodmap -e ""add Control = F1""

Èç¹ûÄãºÏ²¢ÉÏÒ»ÁеÄÃüÁî»áʹµÃ¶ÔÓ¦±íÁп´ÆðÀ´Çå³þЩ¡£

ÎÒÃǶԲ»Í¬¶ÔÓ¦µÄ´¦ÀíµÄÃèÊöµ½´Ë¸æÒ»½áÊø¡£


18.2 ¼üÅ̺ͻ¬ÊóÈþÊýÉ趨 -- xset

×îááÎÒÃÇÀ´¿´Ò»¿´×îƽ³£µÄÉèÊ©£¬¶ÔÄãµÄ¼üÅÌ¡¢»¬ÊóºÍÓ©Ä»É趨²»Í¬µÄÈþÊýµÄ
ÉèÊ©¡£ÕâЩÈþÊýʹÓÃxset³Ìʽ (ÎÒÃÇÔø¾­ÓÃÀ´¿ØÖÆserverµÄ×ÖÐÍËÑѰ·¾¶) À´
É趨¡£ÔÚÒÔϵÄÐðÊö£¬ÎÒÃÇÖ»ÓÃÒ»×éÒýÊýÀ´Õ¹Ê¾xset£¬µ«Äã¿ÉÒÔͬʱָ¶¨¶à×é
ÄãËùÒªµÄ²»Í¬¶¨ÒåµÄÉ趨¡£

¿ØÖÆÖն˻úÏìÁå

ÓÃxsetÄã¿ÉÒÔÈÃÁåÉùÏì»ò²»Ï죬É趨ËüµÄÒôµ÷ (pitch)£¬ºÍËü³ÖÐøµÄʱ¼ä (¼Ù
ÉèÄãµÄ»úÆ÷ÌṩÕâЩ²Ù×÷)£º

ÈÃÁåÉù²»Ïì xset -b
xset b off

ÈÃÁåÉùÄÜÏì xset b
xset b on

É趨ÁåÉùµÄÒôÁ¿ xset b vol
(×î´óÒôÁ¿Ö®vol%) Àý£ºxset b 50

É趨ÁåÉùµÄÒôÁ¿£¬ºÍ xset b vol p
Òôµ÷(µ¥Î»Hertz(ºÕ)) Àý£ºxset b 50 300

É趨ÁåÉùµÄÒôÁ¿£¬Òôµ÷£¬ xset b vol p d
ºÍ³ÖÐøµÄʱ¼ä(µ¥Î»°ÙÍò Àý£ºxset b 50 300 100
·ÖÖ®Ò»Ãë)

¿ØÖƼüµÄµÎ´ð(click)

ÈüüµÄµÎ´ð²»×÷Óà xset -c
xset c off

ÈüüµÄµÎ´ð×÷Óà xset c
xset c on

É趨µÎ´ðÉùµÄÒôÁ¿ xset c vol
(×î´óÒôÁ¿Ö®vol%) Àý£ºxset c 50

¿ØÖƼüµÄ×Ô¶¯Öظ´(auto-repeat)

ÈüüµÄ×Ô¶¯Öظ´²»×÷Óà xset -r
xset r off

ÈüüµÄ×Ô¶¯Öظ´×÷Óà xset r
xset r on

»¬ÊóÈþÊý -- ¼ÓËÙºÍÃż÷

Ö¸±êÔÚÓ©Ä»ÉϵÄÒƶ¯ºÍ»¬ÊóµÄÒƶ¯ÊdzɱÈÀýµÄ¡£¼ÓËÙ (multiplier) ÊÇÓ¦ÓÃÔÚ
Ö¸±êÒƶ¯ÉϵÄÒ»¸ö³ËÊý£¬ÀýÈçÄãµÄ¼ÓËÙÊÇËÄ£¬µ±ÄãÒƶ¯»¬Êóʱ£¬Ö¸±ê½«ÒÔÕý³£
Ëı¶µÄËÙ¶ÈÒƶ¯¡£ (Èç¹ûÖ¸±êÕý³£Ê±Òƶ¯n ¸öÏñËØ£¬ÏÖÔÚÔò»áÒƶ¯ 4 X n¸öÏñ
ËØ)¡£

µ±ÄãÏ£¡¡ÔÚÓ©Ä»ÉϽ«Ö¸±êÒƶ¯Ò»¶Î³¤¾àÀëʱ£¬Ï൱¸ßµÄ¼ÓËÙÊǺܷ½±ã£¬µ«
µ±ÄãÒª×÷һЩϸ²¿µÄÖ¸Òýʱ£¬Ëü¿´ÆðÀ´¾ÍºÜ±¿×¾ -- Ö¸±ê¿´ÆðÀ´ÔÚÀ´»ØÌø¶¯¡£
ΪÁË¿Ë·þ´Ëµã£¬serverÌṩÁËÒ»¸öÃż÷ (threshold)£ºÈç¹ûµ±Ö¸±êÒ»´ÎÒƶ¯³¬
¹ýÃż÷¸öÏñËØ£¬¼ÓËÙÒ²»á±»´ø½øÀ´Ö´ÐС£

É趨»¬ÊóµÄ¼ÓËÙµ½a xset m a
Àý£ºxset m 5

É趨¼ÓËÙ£¬É趨Ãż÷µ½t xset m a t
Àý£ºxset m 5 10

¿ØÖÆÓ©Ä»½ÚÔ¼Æ÷½á¹¹

Ó©Ä»½ÚÔ¼Æ÷ (screen saver)ÊÇÒ»ÖÖÉèÊ©£¬ËüÒâͼ½µµÍÒ»¸ö¹Ì¶¨µÄͼÑù(pattern)
ÀÏÊÇȼÉÕÄãÓ©Ä»µÄÓ©¹âÌåµÄ»úÂÊ¡£ËüµÄÀíÄîΪөĻË𺦴ó¶¼ÆðÒòì¶ÈÃϵͳÏÐÖÃ
(idle)Ò»³¤¶Îʱ¼ä£¬ËùÒÔÓ©Ä»½ÚÔ¼Æ÷ÔÚÒ»¶ÎÌض¨µÄʱ¼äÄÚÈç¹ûûÓÐÊäÈ붯×÷áá
£¬²»ÊÇÕûÌåÐÔµÄÉÁ¶¯Ó©Ä»£¬±ãÊÇÏÔʾһ¸ö²»Í¬µÄͼÑù¡£

Èç¹ûÄãÑ¡ÔñµÄÊÇÏÔʾһ¸ö²»Í¬µÄͼÑù£¬¸ùÊÓ´°µÄ±³¾°º­¸ÇÕû¸öÓ©Ä»£¬Ò»¸ö
´óX µÄÓαê³öÏÖÔÚÓ©Ä»ÉÏ£¬ÇÒ»áÖÜÆÚÐÔµÄÒƶ¯¡£µ±´óX ÓαêÔÚÒƶ¯Ê±£¬»á¸Ä±ä
´óС£¬¶øÇÒ±³¾°Ò²»áËæ»úµÄ±ä¶¯¡£ (ÔÚ±³¾°Í¼Ñù½ÏСʱÄã¿ÉÄܲ»»á×¢Òâµ½£¬µ«
Èô±È½Ï´óʱ£¬Äã¿ÉÒÔ¿´µ½ËüÔÚÌø¶¯)¡£

µ±Ó©Ä»½ÚÔ¼Æ÷½áÊø×÷ÓÃáᣬÈç¹ûÒª»¨Ðí¶àµÄʱ¼ä²ÅÄÜÖØ»­Ó¦ÓÃÊÓ´°£¬Äã¿É
ÒÔÖ¸¶¨Ö»ÓÐÔÚÖØ»­Ó©Ä»¶ø²»Ðè²úÉúÈκÎÆعâ(exposure)ʼþ (Ò²¾ÍÊDz»±ØÒªÇó
Ó¦ÓóÌʽÖØ»­ËüÃÇ×Ô¼ºµÄÊÓ´°) µÄÇé¿öÏ£¬Ó©Ä»½ÚÔ¼Æ÷²Å»á×÷ÓᣠÕâÖ»Ó¦ÓÃ
ì¶ÏÔʾ²»Í¬µÄͼÑùµÄÇé¿ö£¬ÕûÌåÐÔµÄÉÁ¶¯Ó©Ä»´¿ÎªÓ²Ìå×÷Ó㬲»»áÓ°Ïìµ½Ó¦ÓÃ
³Ìʽ¡£

ÈÃÓ©Ä»½ÚÔ¼Æ÷ÄÜ×÷Óà xset s

ÈÃÓ©Ä»½ÚÔ¼Æ÷²»ÄÜ×÷Óà xset s off

ÓÃÓ©Ä»ÉÁ¶¯µÄ·½Ê½ xset s blank

Ö»ÓÐÔÚÎÞÆعâʼþϲÅ×÷Óà xset s noexpose

ÔÊÐíÓÐÆعâʼþÏÂÈÔÈ»×÷Óà xset s expose

Óò»Í¬Í¼ÑùµÄ·½Ê½ xset s noblank

µ±ÏµÍ³ÏÐÖÃt Ãëáá×÷Óà xset s t
Àý£ºxset s 600

ÿp ÃëÖ®áá¸Ä±äͼÑù xset s t p
Àý£ºxset s 600 10

ÈÃÎÒÃǽ«ÕâЩ×éºÏÆðÀ´£¬¼ÙÉèÎÒÃÇÏ£¡¡Ó©Ä»½ÚÔ¼Æ÷ÔÚϵͳÏÐÖÃ80ÃëáῪʼ×÷ÓÃ
£¬Óò»Í¬µÄͼÑùµÄ·½Ê½£¬ÖÜÆÚΪ3 Ã룬²»½éÒâÆعâʼþÊÇ·ñ·¢Éú£º

xset s noblank s 80 3 s expose

×¢Ò⣺xset s ²¢²»Ìṩ on Õâ¸öÖµ¡£


18.3 ½áÂÛ

±¾ÕµĵÚÒ»¸ö²¿·Ý£¬¸æËßÄãÈçºÎ¸Ä±ä´Óʵ¼ÊµÄµ½Âß¼­µÄ¼üºÍ°´Å¥µÄ¶ÔÓ¦£¬ÕâЩ
¶ÔÓ¦¿É±»clientÓ¦ÓóÌʽ½âÊÍ¡£Äã¿´µ½ÈçºÎʹÓÃxmodmap À´Áгö»ò¸Ä±äÿһ¸ö
¼üÅ̵ļü¡¢ÐÞÊμüºÍ»¬Êó°´Å¥µÄ¶ÔÓ¦¡£ÕâЩ¶ÔÓ¦ÓÉserverά»¤£¬ËùÒÔ¿ÉÒÔ±»Ã¿
Ò»¸öʹÓõ½´ËserverµÄÓ¦ÓóÌʽӦÓõ½¡£ÕâÖֽṹÈÃÄãÓиıä¼üÅÌÅäÖõÄ×ÔÓÉ
£¬²»ÂÛÊǸöÈ˵ÄϲºÃ»òÊÇÒ»¸ö¶îÍâµÄ±ê×¼¡£

ÔÚ±¾Õµĵڶþ¸ö²¿·Ý£¬Äã¿´µ½ÈçºÎʹÓÃxset¶ÔһЩ³£¼ûµÄÌØÐÔ×÷É趨£¬Èç
¼üµÄµÎ´ðÉù¡¢Öն˻úµÄÏìÁå¡¢Ó©Ä»½ÚÔ¼Æ÷ºÍ»¬ÊóµÄËÙ¶È (""¼ÓËÙ"")¡£