🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.xwindow
Article #52

�� �ףɣΣģϣף� ϵͳʹ��ָ��--(18)

#52
From: �����ǡ�����������
Date: Fri, 02 Jan 1998 00:00
363 lines
24340 bytes
�ڣ�����  ���̺ͻ��� -- ��Ӧ�Ͳ���

��ǰ�����ǿ�����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 - <myfile

�ڶ��еĶ̺����DZ���ģ�����������ʽ��ֻ���Ԥ������� (�г�����
��Ķ�Ӧ) �������ڵ�����������֮�⣬��Ҳ���������������� -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��һЩ������������趨����
��ĵδ����ն˻�����塢өĻ��Լ���ͻ�����ٶ� ("����")��

=====

--
�� ��Դ:���������� cs3.xmu.edu.cn��[FROM: 210.34.6.201]
Technical Details
Message-ID: <3MN4hZ$X1W@cs3.xmu.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f71f9,551e7a79dbaef79e,start
X-Google-Attributes: gidf71f9,public
From: wlf.bbs@cs3.xmu.edu.cn (�����ǡ�����������)
Subject: ��  �ףɣΣģϣף�  ϵͳʹ��ָ��--(18)
Date: 1998/01/02
Message-ID: <3MN4hZ$X1W@cs3.xmu.edu.cn>
X-Deja-AN: 312073837
X-Filename: xwindow/M.883751987.A
Organization: XMU CS BBS
Newsgroups: cn.bbs.comp.xwindow