基本的なX端末(Xサーバ)の機能はxsetコマンドで設定します。現在の設定がどうなって いるかxset -qで問い合わせてみましょう。
%xset -q Keyboard Control: auto repeat: on key click percent: 60 LED mask: 00000000 auto repeating keys: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 bell percent: 60 bell pitch: 440 bell duration: 200 Pointer Control: acceleration: 2 = 2 / 1 threshold: 4 Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600 Colors: default colormap: 0x27 BlackPixel: 1 WhitePixel: 0 Font Path: /usr/lib/X11/fonts/rom/,/home/cit/r5/100dpi,/home/cit/r5/75dpi, /home/cit/r5/misc,/home/cit/r5/xesnfOPW
キーボード・マウス・スクリーンセーバ・色・フォント検索パスがこのように 設定されていることがわかります。各々の項目はxsetコマンドを使って設定で きます。manで見てください。
X端末によっては例えばデリートキーがうまく動作しないなど、キー動作がア プリケーションに正しく伝わらないことがあります。様々な種類の計算機や端 末がそれぞれ固有のキーボード配列を持っていますから、物理的にキーボード が送り出すコードと論理的にXが使うコードの間の対応を教えてやらなければ ならない場合があります。文字端末の設定ではsttyコマンドを使いましたが、 Xの場合はxmodmapというコマンドを使います。
% xmodmap -e 'keycode 50 = Delete' % xmodmap -e 'keysym BackSpace = Delete'
上の例ではキーコード50番のキーに論理キー(キーシムと呼ばれる)Deleteを 割り当てたものです。下の例では論理キーBackSpaceを論理キーDeleteで置き 換えました。-eは次の引数をコマンドとして実行しなさいという意味です。詳 しくはmanで見てください。キーコードや論理キー(キーシム)が実際のキーボー ドに割り付けられているかを調べるにはxevコマンドを使います。
% xev
とやると、小さなウインドウが表示されます。フォーカスをそのウインドウに 持っていきます。(フォーカスとはキーボードフォーカスのことです。端末に は1つしかキーボードがありませんからどれか一つのアプリケーションだけが キーボードを占有します。占有することをフォーカスといいます。通常あるウ インドウにマウスカーソルを持っていくかそのウインドウをクリックすること によってフォーカスは移動します。)その間にもxevを起動したウインドウには 色々なメッセージが表示されます。xevはXのイベントを通知するテストツール です。小さいウインドウにフォーカスが移ったところでキーを何か押してみま しょう。
KeyPress event, serial 17, synthetic NO, window 0xc00001, root 0x8006c, subw 0x0, time 4169328, (104,97), root:(199,214), state 0x0, keycode 50 (keysym 0xff08, BackSpace), same_screen YES, XLookupString gives 1 characters: " KeyRelease event, serial 17, synthetic NO, window 0xc00001, root 0x8006c, subw 0x0, time 4169448, (104,97), root:(199,214), state 0x0, keycode 50 (keysym 0xff08, BackSpace), same_screen YES, XLookupString gives 1 characters: "
バックスペースキーを押してみました。押したイベントと離したイベントが通 知されました。キーコードが50でキーシムがBackSpaceであることがわかりま す。
Xウインドウは通常灰色の愛想のない背景を表示します。何もウインドウの表 示されていない地面のスクリーンのことをルートウインドウと呼びます。様々 なアプリケーションがルートウインドウの上に色々なウインドウを表示してい くわけです。ルートウインドウの属性変更をするコマンドがxsetrootです。ルー トウインドウの色や柄を変えたりマウスの形状を変えたりできます。PCのウイ ンドウズの壁紙の様にカラーイメージをルートウインドウに表示させて気分を なごませたいこともあるでしょう。xloadimageコマンドがそれをやってくれま す。