お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-12-14 13:21:33

k1
新しいメンバ
登録日: 2010-12-14

gdmでのキーマップの変更方法

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サーバが起動した時点で有効にしたいのですが、
なにか手立てはないものでしょうか?

よろしくお願いします。

オフライン

 

#2 2010-12-14 14:37:37

zagan
メンバ
登録日: 2008-08-12

Re: gdmでのキーマップの変更方法

k1 による投稿:

X環境でのキーアサインを変更したく、調べております。
具体的には、'A'の左を'Ctrl’にしたいのです。

HHK Lite2だとaの左がControlキーなので検証できないのですが、「システム」->「設定」->「キーボード」で、「レイアウト」ボタン押し下げて出てくるウィンドウの「Ctrlキーの位置」に「At left of 'A'」というオプションがあるのですが、これではダメですか?

オフライン

 

#3 2010-12-14 15:09:26

k1
新しいメンバ
登録日: 2010-12-14

Re: gdmでのキーマップの変更方法

zagan による投稿:

HHK Lite2だとaの左がControlキーなので検証できないのですが、「システム」->「設定」->「キーボード」で、「レイアウト」ボタン押し下げて出てくるウィンドウの「Ctrlキーの位置」に「At left of 'A'」というオプションがあるのですが、これではダメですか?

ありがとうございます。
しかし、それができるのは、「ログイン後」ですよね?
ログイン後であれば色々と手はあります。

私の希望は、「ログイン前」での設定です。
Xが立ち当たった時点ですでにこの状態にしておきたいのです。

※理由: Ctrl+Alt+F1 等でキャラクタコンソールに行くときにCtrlの位置が違うとややこしい。

/etc/X11/xorg.conf に書ければ解決するのでしょうが、
evdevになってから上手くいかないようでして。


余談ですが、Gnomeではなく、Xfce4を使っているので、
お教えいただいた設定項目はありません。

オフライン

 

#4 2010-12-14 16:46:00

zagan
メンバ
登録日: 2008-08-12

Re: gdmでのキーマップの変更方法

失礼しました。gdmでなんですね。。。

/usr/share/X11/xkb/rules 辺りかなと覗いてみたのですが、手がつけられそうにありません。
ごめんなさい。

オフライン

 

#5 2010-12-14 17:23:10

hmatsue
アドバイザ
登録日: 2009-03-10

Re: gdmでのキーマップの変更方法

もしかしたら他に良い方法があるのかも知れませんが、
/etc/gdm/Init/Default
あたりに設定コマンドを書いておくとgdmの起動時に適用されるのではないかと思います。
# その設定がユーザセッションに引き継がれるかは存じませんので、
# ユーザ毎の設定有/無で確認してみて下さい。

オフライン

 

#6 2010-12-15 00:49:13

k1
新しいメンバ
登録日: 2010-12-14

Re: 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
# と直書きしてみましたが、期待したキーマップにはなりませんでした。
# ログイン後に、このコマンドを実行すればキーマップは変更されるので、
# 記述内容は間違ってはいないと思います。

直書きで今ひとつスマートではありませんが、とりあえずは、期待した動作が得られました。
ありがとうございます。

オフライン

 

Board footer

Powered by FluxBB