📄 00000009.htm
字号:
完全由转译管理器处理,当时候到时,转译管理器会决定传递哪个值给 <BR> 由Resource Manager所造的widget。对Resource Manager而言,#override <BR> 只是传递给widget值的部份中的一个文字字串而已。 <BR> <BR> 因为你使用resource来指定转译,所以错误可能在两个领域均会发生。为 <BR>了减少错误的范围,当你对转译颇有经验时,在你已载入转译resource之後, <BR>最好能明确地列印出你的resource资料库。例如:如果你对xprog 写入转译, <BR>且转译在档案mytrans 中,以下列命令来执行程式: <BR> <BR> xrdb mytrans ; xrdb -q ; xprog ... <BR> <BR>17.4 结论 <BR> <BR> 这漫长的一章涵盖了被X Toolkit 所使用的标准转译结构,它让你指定 <BR>按下一个键或按钮会有什麽影响。这些转译指定到每一个widget,且你藉著使 <BR>用标准resource结构传送转译表给widget。你看到如何对一个键盘的键、滑鼠 <BR>按钮和其它像移动一个指标进入视窗的事件作指定转译。然後我们藉著指定不 <BR>同状态的修饰键所造成的影响,比较严谨地定义我们需要转译的事件。 <BR> <BR> 本章的第二个部份涵盖相同的领域,但较为正式,且详细解释在转译规格 <BR>中,可用到的语法,特别是修饰键。 <BR> <BR> 最後,我们简列使用转译常见的问题,及一些如何解决它们的建议。 <BR> <BR> 本章包含了许多材料。它们运用了极少的观念,但语法复杂,易生错误, <BR>且不显而易见。如果一开始觉得困难,不必担心。从一些简单的转译著手 (也 <BR>许是xterm),且以指南页中的范例或别人的转译表为基础来发展修改。当你有 <BR>经验之後会进展快速;你将洞悉语法且能看出其後会发生什麽状况。 <BR> <BR>===== <BR> <BR>第18章 键盘和滑鼠 -- 对应和参数 <BR> <BR>在前章我们看到了Toolkit 所提供的转译结构,它让你对一个应用程式的个别 <BR>成员,定制你的键盘和滑鼠。在本章,我们来看另一种较低层次的定制,它是 <BR>由server所管理,称之为对应(mapping) ,你只需要告诉server你的键盘所需 <BR>的不同的配置,它就会被每一个连接到你server上的应用程式应用到。例如: <BR>取代通常的QWERTY键盘,你可能希望重新安排键盘以适应那些对键盘并不熟悉 <BR>的使用者 (你可能把键盘按ABCDEF... 重新排过,当然键盘按钮上所印的字也 <BR>需更改成相符)。你也能对一些Control,Shift等等的修饰键作指定。对滑鼠 <BR>按钮,一样有一个相关的对应,可将 "逻辑的" 按钮对应到实际动作。整体而 <BR>言,你使用这些键盘和滑鼠的对应的频率,将小於转译。 <BR> <BR> 此外,尚有非常常用的第三种型态的定制可用:你可以设定有关你键盘和 <BR>滑鼠各种不同的参数。例如响铃声音的大小,按下键时是否有滴答声等等。 <BR> <BR> 在本章,我们先描述键盘、滑鼠和修饰键的对应,接下来描述你如何使用 <BR>xset程式,来定义类似像键盘有无滴答声的参数设定。 <BR> <BR>18.1 键盘和滑鼠对应 -- xmodmap <BR> <BR>server本身处理一个层次的定制,它对於所有使用到此server或显示器的应用程 <BR>式均发生效用:这就是键盘对应 (keyboard mapping)。 <BR> <BR> 每一个键,有一个单独的码对应它,称之为键码(keycode)。键和键码之间 <BR>的关系是绝对固定的。 (粗略来说,你可以说 "键码就是键")。 <BR> <BR> 连接到每一个键码 (或键)的是一个keysym的表列。一个keysym是一个代表 <BR>印在键盘符号上的数字常数。在预设的情况,大多数的键只有一个keysym 与之 <BR>对应,例如 SHIFT,A,B,Delete,Linefeed等等。keysym既非ASCII或EBCDIC <BR>字元,也非server用以维持keysym和字元的关系。你可以对每一个键有两个 <BR>keysym。在预设对应中,有很多连接到两个keysym的键,例如冒号(:) 和分号(;) <BR>,7 和 &等等。对一个键附属的keysym表列中,第一个keysym是未按下修饰键 <BR>的状况下的键。第二个keysym是指当SHIFT (或Lock)已被同时按下时的键,如 <BR>果在表列中只有一项,且为字母,则系统自动假设第二项为相对的大写字母。 <BR>超过两项的keysym并没有特别的意义,键盘和keysym之间的关系被称之为键盘 <BR>对应。 <BR> <BR> 尽量地以server处理一般的键和keysyms 。它对键码没有附属意义,且它 <BR>自己本身不会使用对应从键码对应至keysyms :它只是传递资讯给client应用 <BR>程式。特别的是,server对ASCII 或其它的字元集合 (character sets) 毫无 <BR>概念;它只是说明 "某键被按下,某修饰键也同时被按下,keysym表列中某 <BR>keysym和某键相关" 。它是client (典型的使用标准的X Library) 对keysym <BR>和修饰键附属的意义:例如,它决定如果keysym产生时ctrl也被按下,它必需 <BR>被解释为ASCII 字元 hex 0x1,也就是说ctl-A。 特定的client可以决定特殊 <BR>的修饰键的意义;例如在xterm 中,当你和MTEA键同时按下一个键,程式将此 <BR>转换为ESC 後面跟随著被按下的字元。 (也就是说,如果你按下meta-A,实际 <BR>上会产生两个字元 ASCII 0x1b, ASCII 0x41)。 <BR> <BR> server在此领域内提供一个额外的设施。你可以定义让server将键码解释 <BR>成修饰键,例如 "当键码为若干的键被按下时,它相同於CONTROL修饰键被实际 <BR>按下"。这种定义并不互斥:如果你定义键F7为Shift 修饰键,它并不会影响任 <BR>何现存的修饰键。此种设施称之为修饰键对应 (modifier mapping)。X提供八 <BR>个修饰键:Shift、Lock(caps-lock)、Control、Mod1到Mod5。习惯上,Mod1被 <BR>解释为Meta。 <BR> <BR> 最後,对滑鼠按钮有一个类似的指标对应 (pointer mapping)。对每一个 <BR>实际的按钮,你可以对它们指定一个相关的逻辑按钮数字。 <BR> <BR> 实际上,如果你改变你的键盘或滑鼠的对应,你相当於是说制造厂商对你 <BR>的输入装置配置不当,你将把它修正为适合你所需要的。当然,如果你改变了 <BR>对应,你应该把对应键上面所印的符号也随之修改;不过,通常更改的都是一 <BR>些控制和修饰键,所以就不是那麽需要了。换句话说,如果你改变了对应,使 <BR>得键盘配置和一个特定国家标准 (例如:法国或德国) 相符,你必需更换实际 <BR>键盘上的符号。 <BR> <BR> 你可以预期得到,改变键盘对应是一件相当稀罕的事,你可能设定它一次 <BR>之後就不再改变它。在以下几节,我们将很快的看一看如何使用程式xmodmap <BR>,查看现有的对应和修改它们。 <BR> <BR>18.1.1 查看现有的对应 <BR> <BR>你使用xmodmap 来列出现有的对应,就如同改变它们一样。你可以指定不同的 <BR>命令列选项,来选择想要印出的不同的对应: <BR> <BR> 列出现有键的对应:指定 -pk选项。 <BR> <BR> 列出现有修饰键的对应:指定 -pm选项 (或是什麽选项也不选,因为这是 <BR> xmodmap的预设作用)。 <BR> <BR> 列出现有指标 (按钮)的对应:指定 -pp选项。 <BR> <BR>例如,将所有的对应一起印出,使用命令: <BR> <BR> xmodmap -pm -pk -pp <BR> <BR>列出键、修饰键、指标的对应之范例如图18 - 1,18 - 2,18 - 3。(键对应只 <BR>有列出一部份,因为完整的对应实在太长了。) <BR> <BR> ┌————————————————————┐ <BR> │ p228 fig 18.1 │ <BR> │ │ <BR> │ 图18-1 列出键盘对应的范例 │ <BR> └————————————————————┘ <BR> <BR> ┌————————————————————┐ <BR> │ p229 fig 18.2 │ <BR> │ │ <BR> │ 图18-2 列出修饰键对应的范例 │ <BR> └————————————————————┘ <BR> <BR> ┌————————————————————┐ <BR> │ p229 fig 18.3 │ <BR> │ │ <BR> │ 图18-3 列出指标对应的范例 │ <BR> └————————————————————┘ <BR> <BR>18.1.2 执行 xmodmap 改变对应 -- 一般性选项 <BR> <BR>当xmodmap 用来改变或设定对应,它可以处理一或多个表式 (expression) 的 <BR>作用。你可以把这些输入在一个档案中,假设此档案名称叫myfile,可用下列 <BR>命令两者之一: <BR> <BR> xmodmap myfile <BR> xmodmap - <myfile <BR> <BR>第二列的短横线是必需的,如果少了它,程式将只完成预设的作用 (列出修饰 <BR>键的对应) 。除了在档案中输入规格之外,你也可以在命令列中用 -e 选项直 <BR>接指定它们: <BR> <BR> xmodmap -e expression <BR> xmodmap -e expression-1 -e expression-2 <BR> <BR>为了得到更多有关xmodmap 作用的资讯,可以指定冗赘 (verbose)选项,-v 或 <BR>-verbose。你可以藉著使用 -n 选项不实际的改变对应而获得相同的列印输出 <BR> (printout) 。 (此功能和Unix中make命令的 -n 选项相同,其意为 "假装执 <BR>行我要求你做的事,正确的告诉我你将如何进行,但并不实际地完成作用")。 <BR>这个选项对新手或不确定自己是否做的正确的情况非常有用。 <BR> <BR> 每一个表式的语法并不相同,但一般性的格式为: <BR> <BR> keyword target = value(s) <BR> <BR> (等号的两边均需为空白)。 <BR> <BR>18.1.3 改变指标对应 <BR> <BR>指标对应是一个逻辑按钮数字的表列。 (逻辑的button-1我们称为LEFT,逻辑 <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -