
Ubuntu日本語フォーラム

ログインしていません。
私は以下の ~/.Xmodmap を作って CapsLock に Esc を割り当てています。
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
そして、いくつかの問題に遭遇しています。
1. ログイン時点で上の ~/.Xmodmap のキーマップが有効になりません。
2. xmodmap ~/.Xmodmap を実行すれば有効になります。
ところが、サスペンドから復帰した後、Vim で日本語入力した後、
そのほか予期せぬタイミングでキーマップが元に戻ってしまいます。
この様な状態で、実際上 xmodmap が使えません。
どうすれば解決できるでしょうか。
Ubuntu は 13.10 日本語 Remix で、上の現象を確認しているのは i386 の方です。
amd64 では試していません。FEP は Mozc を使用しています。
また、特殊と思われる条件として、キーマップは en-us にしています。
目的としては、xmodmap を使う必要は必ずしもなくて、
CapsLock に Esc が安定して割り当てられさえすればよいです。
あるいは、CapsLock に Ctrl、左 Ctrl に Esc を割り当てるのでもよいです。
ただし Anthy はちょっと遠慮したいです。
オフライン
自動起動するアプリケーションに `xmodmap ~/.Xmodmap` を登録すれば、ログイン時の問題は解決できると思います。
予期せぬタイミングでキーマップが元に戻ってしまう件については、使っているvenuswinkさん本人が「予期せぬ」とおっしゃってるので、
挙げていただいた事例に何か共通するトリガーがあるのかどうかは、私にはもっとよくわからないのですが、私が遭遇したことがある例だと、
・ キーボードレイアウトを切り替えたとき
・ キーボードを抜き差ししたとき
は xmodmap で設定したマッピングが戻ってしまうことはありました。
サスペンドから復帰したあとやVimで日本語入力した後でそういう事例は経験したことがありませんね……。
もうちょっと聞かせていただければ、なにか分かるかも or 何か知ってる人が現れるかも知れませんね。
オフライン
popopopoon さん、ご回答ありがとうございます。
> 自動起動するアプリケーションに `xmodmap ~/.Xmodmap` を登録すれば、ログイン時の問題は解決できると思います。
これについては、一応 .tcshrc で実施してはいます。
xmodmap が効いている状態で端末を起動するとエラーが出ますが、無害ではあります。
「サスペンドから復帰した後」といいましたのは、実際にトリガーになっていたのはキーボードの物理的差換えでした。
ですので、「キーボードを抜き差ししたとき」と同じ現象だったようです。
「予期せぬタイミング」についてもこれに該当するケースの可能性が高そうです。
しかし、私はこの方法で CPU を頻繁に切換えるので、困った現象であることに変わりはありません。
もう一つ困った現象の「vim で日本語入力をした後」ですが、もう少し詳しく言いますと、
vim を立ち上げる→i (挿入モード)→Ctrl+Space (Mozc に入力切替)→a (「あ」の入力)→Ctrl+Space (直接入力に切替)→CapsLock
で、最後の CapsLock が Esc になることを期待しているわけですが、私の環境では必ず元の CapsLock になって、
その後再び xmodmap を実行するまでそのままです。
~/.vimrc を削除しても、gvim を使っても状況は全く変わりません。
入力する日本語の内容は「あ」でなくても同じです。
a (「あ」の入力) の直後(つまり Mozc の入力中)に押下した CapsLock は Esc になります。
しかしその後 Ctrl+Space した後は、やはり CapsLock に戻ります。
オフライン
ということは、1については解決でしょうか?
あと、venuswinkさんの投稿を見て思い出しましたが、Ubuntu 13.10からはiBusの仕様変更に伴い、
インプットメソッドとキーボードレイアウトが一緒くたになってしまいました。
詳細は、
https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCsQFjAA&url=http%3A%2F%2Fcpplover.blogspot.com%2F2013%2F10%2Fibus-15.html&ei=hT_AUqOYHNCtkgWfwoHACA&usg=AFQjCNEsFOX9BuufISbhkNx5u5u0pxPFLw&sig2=2tFefPDdelP5xLqKfXNRJw
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0296
をご覧いただくとして、今回の問題に関係するところだけ言えば、
Mozcをオンにすると、キーボードレイアウトを変更したのと同じ状態になってしまうのだと思います。
つまり、Mozcをオンオフするだけで、私の書いた「キーボードレイアウトを切り替えたとき」の状態が発生するのだと思います。
これについては、fcitxを導入すれば解決できると思います。
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0297
「キーボードを抜き差ししたとき」については、以前は私も困っていたのですが、残念ながら回答を持ち合わせていませんが、
こんなものを見つけました。
http://running-dog.net/2013/08/post_560.html
ざっとしか読んでないのですし、当然自分でやってみたわけでもないのですが、参考になるのではないでしょうか。
ご報告お待ちしてます。
オフライン
> Mozcをオンにすると、キーボードレイアウトを変更したのと同じ状態になってしまうのだと思います。
> つまり、Mozcをオンオフするだけで、私の書いた「キーボードレイアウトを切り替えたとき」の状態が発生するのだと思います。
> これについては、fcitxを導入すれば解決できると思います。
> http://gihyo.jp/admin/serial/01/ubuntu-recipe/0297
この方法で、日本語入力の後でキーマップが元に戻るということはなくなり、ログイン時に .Xmodmap の設定が反映するようにもなりました。
ただ、fcitx の挙動がおかしいですが、これは別件ですので、とりあえずこの件はクローズとさせていただきます。
なお、fcitx に切換えた後、ibus に戻そうとしたとき日本語入力ができなくなり、OS 再インストールでようやく回復したことを付け加えておきます。
> 「キーボードを抜き差ししたとき」については、以前は私も困っていたのですが、残念ながら回答を持ち合わせていませんが、
> こんなものを見つけました。
> http://running-dog.net/2013/08/post_560.html
こちらは、同様の方法で CapsLock に Esc を割り当ててみましたが、全く効きませんでした。
次のページ
https://coderwall.com/p/xepo2g
を参考に、
setxkbmap -option caps:escape
を使ってみましたが、状況は xmodmap と変わりませんでした。
結局、キーボードの抜き差しでキーマップが元に戻る現象は回避できていません。
オフライン
fcitxを記事の通り設定されて、問題があったのなら、 https://bugs.launchpad.net/ubuntu-jp-improvement/ にバグ報告してください。
ここで報告されても直るものも直りませんので。
(たまに、いくやさんを始めJapanese Team Memberの方が見てらっしゃることもありますけど、元来は適切な場所でバグ報告しなければ直りません。)
後続の方のためにもよろしくおねがいします。
CapsLockとEscの入れ替えですが、昔は「キーボードレイアウトのオプション」でCapsLockをEscに入れ替えるオプションがあったようです。
(私はCtrlに置き換えていたので、Escがあったことを知りませんでしたが……)
http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_XWindows
ここで、またまた、いくやさんの記事で見かけたなとふと思い出したら、ありました。
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0296?page=3
私も、gnome-tweak-toolをインストールしてみて、確認した所、CapsLockをEscで置き換えるオプションがありました。
(動作確認はしてませんが。)
これで、いけるような気がしますが、どうでしょうか?
オフライン
> fcitxを記事の通り設定されて、問題があったのなら、 https://bugs.launchpad.net/ubuntu-jp-improvement/ にバグ報告してください。
このリンクの情報は有益です。
ありがとうございました。
> http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_XWindows
このリンクは、私が最初に示した xmodmap の記述の参考にしたもので、基本的に xmodmap による方法が紹介されているものです。
私が読んだときよりコメントが増えていましたが、CapsLock に Esc を割り当てる方法についてはそれ以上の情報はありませんでした。
> http://gihyo.jp/admin/serial/01/ubuntu-recipe/0296?page=3
> 私も、gnome-tweak-toolをインストールしてみて、確認した所、CapsLockをEscで置き換えるオプションがありました。
これでいけました。
仮想端末から
gnome-tweak-tool &
で起動し、「Typing」 タブの 「Caps Lock キーの動作」 を 「Caps Lock を追加の ESC にする」 にしたところ、
(システムの再起動後も)ログイン時に CapsLock に Esc が割り当てられ、キーボードを抜き差ししても、
Mozc を ON から OFF にした時も(ということは、おそらくキーマップ変更時も)、元に戻りませんでした。
ありがとうございました。
オフライン