
Ubuntu日本語フォーラム

ログインしていません。
10.10をインストールしました。
X環境でのキーアサインを変更したく、調べております。
具体的には、'A'の左を'Ctrl’にしたいのです。
いろいろ調べてみると、今は、キーボードのドライバにevdevというものが使われているようで、
/etc/X11/xorg に
Option "XkbOptions" "ctrl:nocaps"
と記述しても有効になりません。
例えば、
http://raising-heart.blogspot.com/2008/11/ubuntu-810xorgctrlswapcaps.html
にあるように、/etc/X11/Xsession.d/10setxkbmap というファイルを作って、
#!/bin/sh
setxkbmap -option ctrl:nocaps
と書いておけば、ログイン後には所望の動作をしてくれます。
しかし、ログイン前、つまり、gdmの画面では、有効になりません。
これをなんとか、Xサーバが起動した時点で有効にしたいのですが、
なにか手立てはないものでしょうか?
よろしくお願いします。
オフライン
k1 による投稿:
X環境でのキーアサインを変更したく、調べております。
具体的には、'A'の左を'Ctrl’にしたいのです。
HHK Lite2だとaの左がControlキーなので検証できないのですが、「システム」->「設定」->「キーボード」で、「レイアウト」ボタン押し下げて出てくるウィンドウの「Ctrlキーの位置」に「At left of 'A'」というオプションがあるのですが、これではダメですか?
オフライン
zagan による投稿:
HHK Lite2だとaの左がControlキーなので検証できないのですが、「システム」->「設定」->「キーボード」で、「レイアウト」ボタン押し下げて出てくるウィンドウの「Ctrlキーの位置」に「At left of 'A'」というオプションがあるのですが、これではダメですか?
ありがとうございます。
しかし、それができるのは、「ログイン後」ですよね?
ログイン後であれば色々と手はあります。
私の希望は、「ログイン前」での設定です。
Xが立ち当たった時点ですでにこの状態にしておきたいのです。
※理由: Ctrl+Alt+F1 等でキャラクタコンソールに行くときにCtrlの位置が違うとややこしい。
/etc/X11/xorg.conf に書ければ解決するのでしょうが、
evdevになってから上手くいかないようでして。
余談ですが、Gnomeではなく、Xfce4を使っているので、
お教えいただいた設定項目はありません。
オフライン
失礼しました。gdmでなんですね。。。
/usr/share/X11/xkb/rules 辺りかなと覗いてみたのですが、手がつけられそうにありません。
ごめんなさい。
オフライン
もしかしたら他に良い方法があるのかも知れませんが、
/etc/gdm/Init/Default
あたりに設定コマンドを書いておくとgdmの起動時に適用されるのではないかと思います。
# その設定がユーザセッションに引き継がれるかは存じませんので、
# ユーザ毎の設定有/無で確認してみて下さい。
オフライン
hmatsue による投稿:
もしかしたら他に良い方法があるのかも知れませんが、
/etc/gdm/Init/Default
あたりに設定コマンドを書いておくとgdmの起動時に適用されるのではないかと思います。
ありがとうございます。結果から言うと上手くいきました。
/etc/gdm/Init/Default を見たところ、
/etc/X11/Xmodmap を読み込んでくれそうな雰囲気があったので、
このファイルに
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Caps_Lock
と記述してみたのですが、これはうまくいきませんでした。
しょうがないので、
/etc/gdm/Init/Default の一番最後、
exit 0
の直前に、
setxkbmap -option ctrl:nocaps
と書いてやったら期待通りの動作になりました。
また、この設定は、ログイン後も引き継いでくれるようです。
# ちなみに、exit 0 の直前に、
# xmodmap /etc/X11/Xmodemap
# と直書きしてみましたが、期待したキーマップにはなりませんでした。
# ログイン後に、このコマンドを実行すればキーマップは変更されるので、
# 記述内容は間違ってはいないと思います。
直書きで今ひとつスマートではありませんが、とりあえずは、期待した動作が得られました。
ありがとうございます。
オフライン