川口です

だいぶ間が空いてしまいすみません.

Xorg 起動時に,ctrl キーなどの modifier が全うに扱えず,

 * kinput2 が起動できるが終了できない
 * window manager の keyboard shortcut (modifier + key)について,
   アプリケーションwindow上にカーソルがあると,shortcut操作ができない.
   (X11 root window 上に カーソルがある場合は操作できる)
 * 症状のまとめは [FreeBSD-users-jp 92648]
   (たぶん Xorg 7.4 以降で「ごく一部の人」に発生しているっぽい)

という問題関連の追加情報です

具体的には,以前 [FreeBSD-users-jp 92623] にて,私が
「Xorg を起動して終了して,もう一度Xorg起動するだけで
  上記の問題に対する対症療法的解決は出来る」
と言った件の,発生要件を絞りました.

以下に示す .xinitrc で当方の手元では
「xinit 2回実行で,key modifier が正常反応」になります.

最初の4行はまあ関係ないと思います(最小化の消し忘れ).
関係があるっぽいのが [xmodmap-*] と [xset-1]と
ラベルをつけている行です.

 * [xmodmap-*] の行だけでは起動・終了を繰り返しても×
 * [xset-1] (auto repeat設定)だけでの起動・終了の繰り返しも駄目

つまり,両方記述した xinitrc が,_なぜか_ 有効.
また,[xmodmap-2] ヌキも駄目みたいです.
([xmodmap-2] の記述内容は多分みなさんの好みで良いはずと思います)


なぜ,これで改善されるのか,は全く分かりません.
何かキーイベントを管理しているレイヤに,何らかの初期化処理を
繰り返すと復活するとかそんな感じっぽいですが…

怪しげな情報ですみませんが,とりあえず追加情報ということで.


P.S.

In Sat, Feb 13, 2010 at 10:39:59PM +0900,
Satoshi Kimura <satosi.kim...@nifty.com> wrote:
>   根拠の書かれた資料が見つからないのですが,.xinitrc って以下の
> ように,Window Manager は最後に exec で,って理解しておりました.
.snip.
> もちろん,川口さんも根拠があってそうしているのだと思いますが.

この辺は,太古の昔に「window manager を切り替えて遊ぶ」ことを
していた名残ですね.「wm を exec 方式」で困ることは
通常ほとんどありませんが,たまに wm がクラッシュすると
window manager だけ立ち上げ直せば X のセッションは生き残ることができる,
というのは今でも稀に発生します.

xinitrc/xsessionへの要求は,
「セッション継続の間,終了しないアプリケーションを最後にforeground実行」
以上の意味はないはずです.(xlogout なんてアプリケーションもありますね)


### .xinitrc ########################################
#!/bin/sh

trap '' hup
export LC_CTYPE=ja_JP.eucJP
export LC_TIME=C
export LANG=ja_JP.eucJP

xmodmap xmodmaprc.nocaps                # [xmodmap-1]
xmodmap xmodmaprc.keymap                # [xmodmap-2]
xmodmap xmodmaprc.addctrl               # [xmodmap-3]

kterm -geometry 115x48-0+0 &
xset r rate 500 40 &                    # [xset-1]

exec ctwm -display $DISPLAY  > /dev/null 2>&1

### xmodmaprc.nocaps ########################################
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L

### xmodmaprc.addctrl ########################################
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add Shift = Shift_R
add Shift = Shift_L
add Control = Control_R
add Control = Control_L
add Mod1 = Meta_L
add Mod1 = Alt_L
add Mod1 = Alt_R

### xmodmaprc.keymap ########################################
#### xmodmap -pke 出力まるごとを適当な配置に弄りなおしたもの.
#### 念のため,xmodmap.keymap の正体丸ごとを以下に示します
#############################################################
keycode   8 =
keycode   9 = grave asciitilde
keycode  10 = 1 exclam
keycode  11 = 2 at
keycode  12 = 3 numbersign
keycode  13 = 4 dollar
keycode  14 = 5 percent
keycode  15 = 6 asciicircum
keycode  16 = 7 ampersand
keycode  17 = 8 asterisk
keycode  18 = 9 parenleft
keycode  19 = 0 parenright
keycode  20 = minus underscore
keycode  21 = equal plus
!keycode  22 = BackSpace
keycode  22 = Delete
keycode  23 = Tab
keycode  24 = q Q
keycode  25 = w W
keycode  26 = e E
keycode  27 = r R
keycode  28 = t T
keycode  29 = y Y
keycode  30 = u U
keycode  31 = i I
keycode  32 = o O
keycode  33 = p P
keycode  34 = bracketleft braceleft
keycode  35 = bracketright braceright
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A
keycode  39 = s S
keycode  40 = d D
keycode  41 = f F
keycode  42 = g G
keycode  43 = h H
keycode  44 = j J
keycode  45 = k K
keycode  46 = l L
keycode  47 = semicolon colon
keycode  48 = apostrophe quotedbl
keycode  49 = Escape
keycode  50 = Shift_L
keycode  51 = backslash bar
keycode  52 = z Z
keycode  53 = x X
keycode  54 = c C
keycode  55 = v V
keycode  56 = b B
keycode  57 = n N
keycode  58 = m M
keycode  59 = comma less
keycode  60 = period greater
keycode  61 = slash question
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L Meta_L
keycode  65 = space
!!keycode  66 = Caps_Lock       ! no Caps_Lock needed.
keycode  66 = Control_L
keycode  67 = F1 NoSymbol Alt_R
keycode  68 = F2 NoSymbol Control_L
keycode  69 = F3 NoSymbol Control_R
keycode  70 = F4
keycode  71 = F5
keycode  72 = F6
keycode  73 = F7
keycode  74 = F8
keycode  75 = F9
keycode  76 = F10
keycode  77 = Num_Lock
keycode  78 = Multi_key
keycode  79 = KP_Home KP_7
keycode  80 = KP_Up KP_8
keycode  81 = KP_Prior KP_9
keycode  82 = KP_Subtract
keycode  83 = KP_Left KP_4
keycode  84 = NoSymbol KP_5
keycode  85 = KP_Right KP_6
keycode  86 = KP_Add
keycode  87 = KP_End KP_1
keycode  88 = KP_Down KP_2
keycode  89 = KP_Next KP_3
keycode  90 = KP_Insert KP_0
keycode  91 = KP_Delete KP_Decimal
keycode  92 = Sys_Req
keycode  93 =
keycode  94 =
keycode  95 = F11
keycode  96 = F12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
!keycode 107 = Delete
keycode 107 = BackSpace
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
keycode 113 = Alt_R Meta_R
keycode 114 = Break
keycode 115 = Meta_L
keycode 116 = Meta_R
keycode 117 = Menu
keycode 118 =
keycode 119 =
!keycode 120 =
! 120 = Hiragana Katakana
!keycode 120 = space
keycode 120 = Alt_L Meta_L
keycode 121 =
keycode 122 =
!keycode 123 =
!keycode 123 is left neighbour of Shift_R
!keycode 123 = grave asciitilde
keycode 123 = Shift_R
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
keycode 128 =
!keycode 129 =
! 129 = Henkan Zenkouho 
!keycode 129 = space
keycode 129 = Control_L
keycode 130 =
!keycode 131 =
! 131 = Muhenkan
keycode 131 = grave asciitilde
keycode 132 =
!keycode 133 =
! 133 (left neighbour of BS key) ==> Delete
keycode 133 = Delete
keycode 134 =
!! 208: Hiragana/Katakana
keycode 208 = Alt_R Meta_R
!! 211: Henkan
keycode 211 = Shift_R


-- 
       ∧∧
Zzz.. (- - )⌒⌒⊇〜           川口 銀河
      ##############   ginga-free...@ginganet.org

メールによる返信