お知らせ

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

#1 2009-03-25 17:02:11

avidya
ゲスト

【済】キーバインドの変更方法

 お久しぶりです。avidya です。
 実はキーボードを新調しまして、より使い易いようにキーバインドを変更したいと考えています。
 それで gnome-keyboard-properties を使って「Caps Lock」キーを「Ctrl」キーに変更しました。それは良いのですが、他の左「Ctrl」「Fn」「Win」「Alt」「無変換」キーを他のキーにバインドしたいのですが、検索しても方法が分かりませんでした。xmodmap の設定ファイルを作成して、起動時に自動実行させればよい、というところまでは調べたのですが、その設定ファイルの書き方を理解するところで挫折してしまいました。
 なにかキーバインドを変更するようなユーティリティなどはないでしょうか?

最後の編集者: avidya (2009-03-26 06:55:13)

 

#2 2009-03-25 17:30:00

hito
管理者
登録日: 2007-03-18

Re: 【済】キーバインドの変更方法

xmodmapファイルを作る場合、xkeycapsというGUIなユーティリティが転がっているはずです。

# モダンな方法もあるのかもしれませんが知りませんorz

オフライン

 

#3 2009-03-25 18:06:55

avidya
ゲスト

Re: 【済】キーバインドの変更方法

 hito さん、いつもありがとうございます。
 xkeycaps を入れて試してみます。

 

#4 2009-03-25 18:29:56

avidya
ゲスト

Re: 【済】キーバインドの変更方法

 結果報告です。xkeycaps では日本語キーボードがリストされませんでした。やはり直接設定ファイルを作成しなければならないのでしょうか?もし、そうならわかりやすいページを教えていただけると幸いです。一応自分でも検索してはみたのですが、Caps Lock と Left Ctrl キーを入れ替える例ばかりで参考にならないんです。
 コマンドの意味自体を理解しないといけないことは、わかってはいるのですが。

 

#5 2009-03-25 18:34:10

hito
管理者
登録日: 2007-03-18

Re: 【済】キーバインドの変更方法

あああそうでした。日本語キーボードは対応していません。

xmodmap 無変換、とかで検索してみて出てくるページでは不足だったりしますか?

オフライン

 

#6 2009-03-25 19:06:31

avidya
ゲスト

Re: 【済】キーバインドの変更方法

 中間報告です。http://d.hatena.ne.jp/higepon/20070421/1177119842http://x68000.q-e-d.net/~68user/unix/pickup?xmodmap を参考にこれからチャレンジしてみます。
 問題は xev が「Fn」キーのコードを拾わないことですが。

 

#7 2009-03-25 19:50:19

avidya
ゲスト

Re: 【済】キーバインドの変更方法

中間報告です。
 .Xmodmap ファイルの中身を以下のようにして、xmodmap に渡してやりました。

コード:

keycode 37 = Alt_L Meta_L Alt_L Meta_L Alt_L Meta_L
keycode 49 = Escape NoSymbol Escape NoSymbol Escape
keycode 64 = Control_L Control_L Control_L Control_L Control_L Control_L

 すると keycode 49 の半角全角キーは Esc キーとして機能するようになりましたが、Ctrl キー (37) と Alt キー (64) の入れ替えがうまくいきません。このキーの入れ替えで現在つまづいています。
 なにかいいアドバイスはないでしょうか?

 

#8 2009-03-26 06:54:00

avidya
ゲスト

Re: 【済】キーバインドの変更方法

最終報告です。キーバインドの変更が完了しました。以下、私の例です。

1..ファイル ".xinitrc" を以下の内容で作成する。

コード:

xmodmap $HOME/.Xmodmap

2.ファイル ".Xmodmap" を以下の内容で作成する。

コード:

! 半角全角キーを Esc に変換
keycode  49 = Escape NoSymbol Escape NoSymbol Escape
!
! Caps Lock キーを無効化
keycode  64 =
!
! Win キーを左 Alt に変換
keycode 133 = Alt_L
!
! 修飾子マップ mod4 から Win キーのコードを削除
remove mod4 = Super_L
!
! 無変換キーに Win キーを割り当て
keysym Muhenkan = Super_L
!
! 修飾子マップ mod4 にWin キーのコードを再割り当て
add Mod4 = Super_L
!
! 修飾子マップ Control から右 Ctrl を削除
remove Control = Control_R
!
! 修飾子マップ Mod1 から右 Alt を削除
remove Mod1 = Alt_R
!
! 旧右 Alt キーに、右 Ctrl を割り当て
keysym Alt_R = Control_R
!
! 旧右 Ctrl キーに、右 Alt を割り当て
keysym Control_R = Alt_R
!
! 修飾子マップ Control に 右 Ctrl を再割り当て
add Control = Control_R
!
! 修飾子マップ Mod1 に 右 Alt を再割り当て
add Mod1 = Alt_R

 キーの入れ替えの場合、各コマンドの順序が重要になってきます。注意してください。
 また、あらかじめ "xkeymap -pke"、"xkeymap -grammer"、"xkeymap -pm" の出力をファイルに落としておくと、参照する時に便利です。
 なお、上記 ".Xkeymap" の内容はあくまで私が使用しているキーボードを私が使い易くするための設定です。キーボードや環境によってキーコード等が異なる場合があります。各キーコードは  "xev" コマンドで、現在のキーマップは "xkeymap -pke" で調べてください。

 

Board footer

Powered by FluxBB