��ǰ�����ǿ�����Toolkit ���ṩ��ת��ṹ���������һ��Ӧ�ó�ʽ�ĸ���
��Ա��������ļ��̺ͻ����ڱ��£�����������һ�ֽϵͲ�εĶ��ƣ�����
��server����������֮Ϊ��Ӧ(mapping) ����ֻ��Ҫ����server��ļ�������
�IJ�ͬ�����ã����ͻᱻÿһ�����ӵ���server�ϵ�Ӧ�ó�ʽӦ�õ������磺
ȡ��ͨ����QWERTY���̣������ϣ�����°��ż�������Ӧ��Щ�Լ��̲�����Ϥ
��ʹ���� (����ܰѼ��̰�ABCDEF... �����Ź�����Ȼ���̰�ť����ӡ����Ҳ
����ij����)����Ҳ�ܶ�һЩControl��Shift�ȵȵ����μ���ָ�����Ի���
��ť��һ����һ����صĶ�Ӧ���ɽ� "����" ��ť��Ӧ��ʵ�ʶ����������
�ԣ���ʹ����Щ���̺ͻ���Ķ�Ӧ��Ƶ�ʣ���С�ת�롣
���⣬���зdz����õĵ�������̬�Ķ��ƿ��ã�������趨�й�����̺�
������ֲ�ͬ�IJ������������������Ĵ�С�����¼�ʱ�Ƿ��еδ����ȵȡ�
�ڱ��£��������������̡���������μ��Ķ�Ӧ�����������������ʹ��
xset��ʽ��������������������δ����IJ����趨��
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�������£�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 ���г����еĶ�Ӧ������ͬ�ı�����һ���������ָ����ͬ��
������ѡ���ѡ����Ҫӡ���IJ�ͬ�Ķ�Ӧ��
�г����м��Ķ�Ӧ��ָ�� -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 -
���Ķ�Ӧ) �������ڵ�����������֮�⣬��Ҳ���������������� -e ѡ��ֱ
��ָ�����ǣ�
xmodmap -e expression
xmodmap -e expression-1 -e expression-2
Ϊ�˵õ������й�xmodmap ���õ���Ѷ������ָ���� (verbose)ѡ�-v ��
-verbose������Խ���ʹ�� -n ѡ�ʵ�ʵĸı��Ӧ�������ͬ����ӡ���
(printout) �� (�˹��ܺ�Unix��make����� -n ѡ����ͬ������Ϊ "��װִ
����Ҫ���������£���ȷ�ĸ������㽫��ν��У�������ʵ�ʵ��������")��
���ѡ������ֻ�ȷ���Լ��Ƿ�������ȷ������dz����á�
ÿһ����ʽ���������ͬ����һ���Եĸ�ʽΪ��
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
������������һ����ƽ������ʩ������ļ��̡������өĻ�趨��ͬ�IJ�����
��ʩ����Щ����ʹ��xset��ʽ (����������������server��������Ѱ·��) ��
�趨�������µ�����������ֻ��һ��������չʾxset���������ͬʱָ������
����Ҫ�IJ�ͬ������趨��
�����ն˻�����
��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��һЩ�������������趨����
���ĵδ������ն˻������塢өĻ��Լ���ͻ�����ٶ� ("����")��