[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:47672] Re: xkbの設定をコンソールに合わせるには



長南です。

梶川さんのメールより [debian-users:47667]
> 
> ~/.Xmodmapに以下の記述をし、
> 
> clear    control
> keycode 130 = F1
> keycode 126 = Control_L
> add    control = Control_L
> 
> 設定したとおりのkeysymがxevで表示されるのは確認できました。
> しかし、apple+control+F1は効きません。
> 
> もちろんappleはAlt_Lになっています。

一筋縄ではいきませんね。私は Mac ユーザではないので、試したくても
試せませんし、ろくな考えも浮かばないのですが、以下のようなことを
調べてみたらどうでしょうか。

1) Control-Alt-F1 以外のキーの組合せも試してみる(たとえば、
   Control-C とか、Emacs の M-q とか、その他思いつくものを)。
   それで、どのキーがうまく働いていないか、特定できないでしょうか。

   # もっとも、xev で正しい keysym が表示されるのなら、意味が
   # ないような気もしますけれど。

   # Control、Alt、Fn がそれぞれ単独(ってことはないか)または
   # ほかの組合せできちんと働くとすると、Control-Alt-Fn の
   # 組合せを X server が何故か認識しないということになりそう
   # ですが、どうしてなんだろう。

2) XkbdDisable を有効にした場合と、無効にした場合とで、keycode と
   keysym の組合せが、どんなふうに違うかを確認する。

3) XF86Config-4 で「Option    "XkbModel"    "macintosh_old"」
   とのことでした。釈迦に説法でしょうが、Machintosh のキーボード
   にもいろいろあるんでしょう。ほかのモデルを試してみたら。

4) まさかとは思いますが、Control-Alt-Fn が無効になっていないか。
   XF86Config(-4) で "DontVTSwitch というオプションを使うと、
   Control-Alt-Fn が使えなくなるそうです(man XF86Config-4 かな)。

5) これもまさかですが、そもそも仮想端末(と言うんでしたっけ)が
   使用できないようになっていないか。/etc/inittab を見るか、
   ps ax をやってみれば、わかると思います。コンソールから
   Alt-Fn でもよいでしょうし。

6) xmodmap -pm で現在の modifier map がどうなっているか調べる。
   たとえば、私のところでは次のようになります(Default 状態)。

   $ xmodmap -pm
   xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

   shift       Shift_L (0x32),  Shift_R (0x3e)
   lock        Caps_Lock (0x42)
   control     Control_L (0x25),  Control_R (0x6d)
   mod1        Alt_L (0x40),  Alt_R (0x71)
   mod2        Num_Lock (0x4d)
   mod3      
   mod4      
   mod5        Scroll_Lock (0x4e)

参考にはならないでしょうが、おまけです。
当方ではこんなふうにしたところ、左 Shift と左 Control がたしかに
入れ換わりました。ただし、gdm のログイン画面では、まだ Shift は
Shift、Control は Control のままです。考えてみれば、~/.Xmodmap
をまだ読んでいないのですから、当り前ですね。

  $ cat .Xmodmap
  clear Control
  clear Shift
  keycode 37 = Shift_L
  keycode 50 = Control_L
  add shift = Shift_L Shift_R
  add control = Control_L Control_R

-- 
長南洋一