vine-users ML アーカイブ



[vine-users:079328] Re: Vine Linux4.2 でPS/2キーボ ードの挙動が変です

  • From: 長南洋一 <cyoichi@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:079328] Re: Vine Linux4.2 でPS/2キーボ ードの挙動が変です
  • Date: Tue, 05 May 2009 23:02:25 +0900 (JST)
長南です。もうちょっとだけ続けます。

Itou さんのメールより [vine-users:079324]
> 
> Option "XkbDisable"を削除して起動してみますと、以前のように
> チャタリングが起こりました。
> 再び、Option "XkbDisable"を書き足して起動すると解決しました。

Driver "keyboard" と Option "XkbDisable" の両方が必要だったのですね。

XkbDisable を有効にするのは、X のキー設定を使わずに、コンソール上での
キーマップを引き継ぐということでもあります。そのため、X のデフォルト
で使えるキーが利用できないという現象が起こります。

たとえば、日本語の入力は Shift-Space か Ctrl-Space で始めると
思いますが、Vine のデフォルトでは「半角/全角」キー (キーシンボルは
Zenkaku_Hankaku) でも日本語を ON にできます。ところが、コンソールでは、
「半角/全角」のキーシンボルが Escape なのです。その結果、
Option "XkbDisable" を有効にしておくと、「半角/全角」で日本語入力を
開始することができません。そういう不便があるわけです。

# ほかのキーはだいたい大丈夫みたいですけれど。

なお、Driver "kbd" を使用したときは、"XkbDisable" というオプションを
使えないようです (書いても無効らしい)。

> /etc/X11/xinit/xinitrcの「# otherwise, take default action」下は
> if...then...fiの中に「exec」があります。if文が終わってから
> 「xset -r」を書きましたが、この場合も実行されないのでしょうか?

if の中で exec some-script が実行されると、制御が some-script に
移ってしまい、返って来ません。ですから、fi の下に書いたコマンドが
実行されるのは、if 中でひとつも exec が実行されなかったときだけに
なります。ちいさなシェルスクリプトを書いてお試しになってみてください。

ついでなので、もう一つ説明しておきます。/etc/X11/xinit/xinitrc を
ご覧になって、もう大体おわかりでしょうけれど。

startx で X を起動すると、$HOME/.xinitrc が存在すればそれが、
存在しない場合は、/etc/X11/xinit/xinitrc が最初に実行されます。
startx はシェルスクリプトなので、お読みになってみてください。

gdm でログインした場合、Vine 4.2 では (このへん、ディストリビュー
ションやバージョンによって違うことがあります) /etc/X11/xdm/Xsession が
最初に実行されます (/usr/share/gdm/defaults.conf の BaseXsession 参照)。

留意すべきは、この /etc/X11/xinit/xinitrc や /etc/X11/xdm/Xsession から
X の環境 (キーマップや日本語入力など) が設定されていることです。
つまり、/etc/X11/xinit/xinitrc や /etc/X11/xdm/Xsession を利用しない
場合は、自分で日本語入力の設定などをしなければなりません。

続いて、/etc/X11/xinit/xinitrc や /etc/X11/xdm/Xsession から、
$HOME/.xsession や $HOME/.Xclients が存在して実行可能であれば、
それが実行されます。存在しないときは、/etc/X11/xinit/Xclients が
実行される。この /etc/X11/xinit/Xclients から Gnome のような
デスクトップ環境やウィンドウマネージャが起動されるわけです。

-- 
長南洋一