⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000007.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第18章&nbsp;&nbsp;键盘和滑鼠&nbsp;--&nbsp;对应和参数&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>在前章我们看到了Toolkit&nbsp;所提供的转译结构,它让你对一个应用程式的个别&nbsp;<BR>成员,定制你的键盘和滑鼠。在本章,我们来看另一种较低层次的定制,它是&nbsp;<BR>由server所管理,称之为对应(mapping)&nbsp;,你只需要告诉server你的键盘所需&nbsp;<BR>的不同的配置,它就会被每一个连接到你server上的应用程式应用到。例如:&nbsp;<BR>取代通常的QWERTY键盘,你可能希望重新安排键盘以适应那些对键盘并不熟悉&nbsp;<BR>的使用者&nbsp;(你可能把键盘按ABCDEF...&nbsp;重新排过,当然键盘按钮上所印的字也&nbsp;<BR>需更改成相符)。你也能对一些Control,Shift等等的修饰键作指定。对滑鼠&nbsp;<BR>按钮,一样有一个相关的对应,可将&nbsp;&quot;逻辑的&quot;&nbsp;按钮对应到实际动作。整体而&nbsp;<BR>言,你使用这些键盘和滑鼠的对应的频率,将小於转译。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;此外,尚有非常常用的第三种型态的定制可用:你可以设定有关你键盘和&nbsp;<BR>滑鼠各种不同的参数。例如响铃声音的大小,按下键时是否有滴答声等等。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在本章,我们先描述键盘、滑鼠和修饰键的对应,接下来描述你如何使用&nbsp;<BR>xset程式,来定义类似像键盘有无滴答声的参数设定。&nbsp;<BR>&nbsp;<BR>18.1&nbsp;键盘和滑鼠对应&nbsp;--&nbsp;xmodmap&nbsp;<BR>&nbsp;<BR>server本身处理一个层次的定制,它对於所有使用到此server或显示器的应用程&nbsp;<BR>式均发生效用:这就是键盘对应&nbsp;(keyboard&nbsp;mapping)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;每一个键,有一个单独的码对应它,称之为键码(keycode)。键和键码之间&nbsp;<BR>的关系是绝对固定的。&nbsp;(粗略来说,你可以说&nbsp;&quot;键码就是键&quot;)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;连接到每一个键码&nbsp;(或键)的是一个keysym的表列。一个keysym是一个代表&nbsp;<BR>印在键盘符号上的数字常数。在预设的情况,大多数的键只有一个keysym&nbsp;与之&nbsp;<BR>对应,例如&nbsp;SHIFT,A,B,Delete,Linefeed等等。keysym既非ASCII或EBCDIC&nbsp;<BR>字元,也非server用以维持keysym和字元的关系。你可以对每一个键有两个&nbsp;<BR>keysym。在预设对应中,有很多连接到两个keysym的键,例如冒号(:)&nbsp;和分号(;)&nbsp;<BR>,7&nbsp;和&nbsp;&amp;等等。对一个键附属的keysym表列中,第一个keysym是未按下修饰键&nbsp;<BR>的状况下的键。第二个keysym是指当SHIFT&nbsp;(或Lock)已被同时按下时的键,如&nbsp;<BR>果在表列中只有一项,且为字母,则系统自动假设第二项为相对的大写字母。&nbsp;<BR>超过两项的keysym并没有特别的意义,键盘和keysym之间的关系被称之为键盘&nbsp;<BR>对应。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;尽量地以server处理一般的键和keysyms&nbsp;。它对键码没有附属意义,且它&nbsp;<BR>自己本身不会使用对应从键码对应至keysyms&nbsp;:它只是传递资讯给client应用&nbsp;<BR>程式。特别的是,server对ASCII&nbsp;或其它的字元集合&nbsp;(character&nbsp;sets)&nbsp;毫无&nbsp;<BR>概念;它只是说明&nbsp;&quot;某键被按下,某修饰键也同时被按下,keysym表列中某&nbsp;<BR>keysym和某键相关&quot;&nbsp;。它是client&nbsp;(典型的使用标准的X&nbsp;Library)&nbsp;对keysym&nbsp;<BR>和修饰键附属的意义:例如,它决定如果keysym产生时ctrl也被按下,它必需&nbsp;<BR>被解释为ASCII&nbsp;字元&nbsp;hex&nbsp;0x1,也就是说ctl-A。&nbsp;特定的client可以决定特殊&nbsp;<BR>的修饰键的意义;例如在xterm&nbsp;中,当你和MTEA键同时按下一个键,程式将此&nbsp;<BR>转换为ESC&nbsp;後面跟随著被按下的字元。&nbsp;(也就是说,如果你按下meta-A,实际&nbsp;<BR>上会产生两个字元&nbsp;ASCII&nbsp;0x1b,&nbsp;ASCII&nbsp;0x41)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;server在此领域内提供一个额外的设施。你可以定义让server将键码解释&nbsp;<BR>成修饰键,例如&nbsp;&quot;当键码为若干的键被按下时,它相同於CONTROL修饰键被实际&nbsp;<BR>按下&quot;。这种定义并不互斥:如果你定义键F7为Shift&nbsp;修饰键,它并不会影响任&nbsp;<BR>何现存的修饰键。此种设施称之为修饰键对应&nbsp;(modifier&nbsp;mapping)。X提供八&nbsp;<BR>个修饰键:Shift、Lock(caps-lock)、Control、Mod1到Mod5。习惯上,Mod1被&nbsp;<BR>解释为Meta。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;最後,对滑鼠按钮有一个类似的指标对应&nbsp;(pointer&nbsp;mapping)。对每一个&nbsp;<BR>实际的按钮,你可以对它们指定一个相关的逻辑按钮数字。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;实际上,如果你改变你的键盘或滑鼠的对应,你相当於是说制造厂商对你&nbsp;<BR>的输入装置配置不当,你将把它修正为适合你所需要的。当然,如果你改变了&nbsp;<BR>对应,你应该把对应键上面所印的符号也随之修改;不过,通常更改的都是一&nbsp;<BR>些控制和修饰键,所以就不是那麽需要了。换句话说,如果你改变了对应,使&nbsp;<BR>得键盘配置和一个特定国家标准&nbsp;(例如:法国或德国)&nbsp;相符,你必需更换实际&nbsp;<BR>键盘上的符号。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;你可以预期得到,改变键盘对应是一件相当稀罕的事,你可能设定它一次&nbsp;<BR>之後就不再改变它。在以下几节,我们将很快的看一看如何使用程式xmodmap&nbsp;<BR>,查看现有的对应和修改它们。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;18.1.1&nbsp;查看现有的对应&nbsp;<BR>&nbsp;<BR>你使用xmodmap&nbsp;来列出现有的对应,就如同改变它们一样。你pi以指定不同的&nbsp;<BR>命令列选项,来选择想要印出的不同的对应:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;列出现有键的对应:指定&nbsp;-pk选项。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;列出现有修饰键的对应:指定&nbsp;-pm选项&nbsp;(或是什麽选项也不选,因为这是&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmodmap的预设作用)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;列出现有指标&nbsp;(按钮)的对应:指定&nbsp;-pp选项。&nbsp;<BR>&nbsp;<BR>例如,将所有的对应一起印出,使用命令:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-pm&nbsp;-pk&nbsp;-pp&nbsp;<BR>&nbsp;<BR>列出键、修饰键、指标的对应之□例如图18&nbsp;-&nbsp;1,18&nbsp;-&nbsp;2,18&nbsp;-&nbsp;3。(键对应只&nbsp;<BR>有列出一部份,因为完整的对应实在太长了。)&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌————————————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p228&nbsp;&nbsp;fig&nbsp;18.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;图18-1&nbsp;列出键盘对应的□例&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└————————————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌————————————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p229&nbsp;&nbsp;fig&nbsp;18.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;图18-2&nbsp;列出修饰键对应的□例&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└————————————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌————————————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p229&nbsp;&nbsp;fig&nbsp;18.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;图18-3&nbsp;列出指标对应的□例&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└————————————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;18.1.2&nbsp;执行&nbsp;xmodmap&nbsp;改变对应&nbsp;--&nbsp;一般性选项&nbsp;<BR>&nbsp;<BR>当xmodmap&nbsp;用来改变或设—对应,它可以处理一或多个表式&nbsp;(expression)&nbsp;的&nbsp;<BR>作用。你可以把这些输入在一个档案中,假设此档案名称叫myfile,可用下列&nbsp;<BR>命令两者之一:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;myfile&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-&nbsp;&lt;myfile&nbsp;<BR>&nbsp;<BR>第二列的短横线是必需的,如果少了它,程式将只完成预设的作用&nbsp;(列出修饰&nbsp;<BR>键的对应)&nbsp;。除了在档案中输入规格之外,你也可以在命令列中用&nbsp;-e&nbsp;选项直&nbsp;<BR>接指定它们:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-e&nbsp;expression&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-e&nbsp;expression-1&nbsp;&nbsp;-e&nbsp;expression-2&nbsp;<BR>&nbsp;<BR>为了得到更多有关xmodmap&nbsp;作用的资讯,可以指定冗赘&nbsp;(verbose)选项,-v&nbsp;或&nbsp;<BR>-verbose。你可以藉著使用&nbsp;-n&nbsp;选项不实际的改变对应而获得相同的列印输出&nbsp;<BR>&nbsp;(printout)&nbsp;。&nbsp;(此功能和Unix中make命令的&nbsp;-n&nbsp;选项相同,其意为&nbsp;&quot;假装执&nbsp;<BR>行我要求你做的事,正确的告诉我你将如何进行,但并不实际地完成作用&quot;)。&nbsp;<BR>这个选项对新手或不确定自己是否做的正确的情况非常有用。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;每一个表式的语法并不相同,但一般性的格式为:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;keyword&nbsp;target&nbsp;=&nbsp;value(s)&nbsp;<BR>&nbsp;<BR>&nbsp;(等号的两边均需为空白)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;18.1.3&nbsp;改变指标对应&nbsp;<BR>&nbsp;<BR>指标对应是一个逻辑按钮数字的表列。&nbsp;(逻辑的button-1我们称为LEFT,逻辑&nbsp;<BR>的&nbsp;button-2&nbsp;称为MIDDLE等等,实际的&nbsp;button-1&nbsp;是滑鼠左边的按钮,button-2&nbsp;<BR>是隔壁的按钮等等,所以预设的逻辑的按钮和实际的一致)。在表列中的第一个&nbsp;<BR>项目是逻辑的按钮和实际的&nbsp;button-1&nbsp;的关系,下一个则是对实际的&nbsp;button-2&nbsp;<BR>的关系,以此类推。例如,颠倒按钮的次序,使用命令:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-e&nbsp;&quot;pointer&nbsp;=&nbsp;3&nbsp;2&nbsp;1&nbsp;&quot;&nbsp;<BR>&nbsp;<BR>结果按下滑鼠右边的按钮,会被解释成LEFT。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;18.1.4&nbsp;改变键对应&nbsp;<BR>&nbsp;<BR>xmodmap&nbsp;让你将一个键&nbsp;(也就是说键码)&nbsp;连结到一个新的keysym表列,使用表&nbsp;<BR>式:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;keycode&nbsp;keycode&nbsp;=&nbsp;keysym-1&nbsp;[keysym-2&nbsp;...]&nbsp;<BR>&nbsp;<BR>安排keysym-1连结到键时没有修饰键,当SHIFT&nbsp;按下时keysym-2连结到键,如果&nbsp;<BR>还有下一个keysym的话,对keycode&nbsp;而言是第三顺位等等。&nbsp;(请记住,在前两个&nbsp;<BR>之後的keysym,系统并未附属特别的意义,应用程式如果需要的话可以附属意义&nbsp;<BR>)。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;让我们举实际的例子。一些键盘把一些非字母数字&nbsp;(alphanumeric)键放在&nbsp;<BR>不标准的地方,所以我们假设你要将F6键重定义当没有修饰键按下时为&nbsp;&quot;9&quot;,&nbsp;<BR>当SHIFT&nbsp;按下时为&nbsp;&quot;(&quot;。要写入这个xmodmap&nbsp;的表式,你需要知道三件事:F6&nbsp;<BR>的键码,和&nbsp;&quot;9&quot;与&nbsp;&quot;(&quot;的keysym。我们在第12章提到过,执行xev&nbsp;便可获得&nbsp;<BR>这些:分别按下&quot;F6&quot;,&nbsp;&quot;9&nbsp;&nbsp;&quot;,&nbsp;&quot;(&quot;三个键,你便可得到它们的键码和keysym。然&nbsp;<BR>後将它们放入你的表式中。例如在我们的系统中我们使用命令:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-e&nbsp;&quot;keycode&nbsp;21&nbsp;=&nbsp;9&nbsp;parenleft&quot;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;为了容易一些,你通常不需要查问键码,xmodmap&nbsp;允许你使用下列格式:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;keysym&nbsp;target-keysym&nbsp;=&nbsp;keysym-1&nbsp;[keysym-2&nbsp;...]&nbsp;<BR>&nbsp;<BR>它的意义为&nbsp;&quot;附属在此键的ysym-1表列现在改由target-keysym来附属&quot;。例如&nbsp;<BR>针对我们方才的□例,我们可以用:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmodmap&nbsp;-e&nbsp;&quot;keysym&nbsp;F6&nbsp;=&nbsp;9&nbsp;parenleft&quot;&nbsp;<BR>&nbsp;<BR>如果你将相同的keysym附属到数个键,xmodmap&nbsp;会搞混掉,像这种情况你应坚&nbsp;<BR>持使用keycode&nbsp;...&nbsp;这种符号表示法。&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -