0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu20.04 + US キーボードで日本語入力を非トグル操作

Last updated at Posted at 2021-11-29

日本語変換モードキーの割当設定

「トグルキー操作なしで日本語入力を」
https://qiita.com/nanbuwks/items/d53911b0b8bfd8c6c548
は日本語キーボードでの設定でしたが、これを英語キーボードでもできるように考えてみます。

記事の設定では、「変換」「無変換」キーを IMEON/IMEOFF に割り当てています。
image.png

このキーボードには日本語キーボードのように、変換のためのキーは用意されていませんが、ALT キーが右と左にあるので、これを「変換」「無変換」に、そしてALTの機能は悪の CapsLock キーに割り当てるようにしてみます。

なお、Ubuntu で US キーボードの設定を行う記事
「Ubuntu20.04 で US キーボードに変更」
https://qiita.com/nanbuwks/items/bcd6c838487c906a70e1
も併せてご覧ください。

環境

  • Ubuntu 20.04 JTS Japanese
  • Iiyama 15GSX8050-i7-YFB (Clevo P151SM)
  • Mosc 2.23.2815.102
  • IBus
    image.png

巷の解説では、IBus ではなく fcitx を使って設定していることが多いようだ。しかしながらキッズPC環境への応用のために、日本語Limix版 Ubuntu20.04 になるべく近い環境にすることにした。

準備

まず、先の「トグルキー操作なしで日本語入力を」記事の通り設定を済ませておきます。
image.png

HenkanやMuhenkanキーはありませんが、そのまま設定します。

本来であれば、ここで右Altや左Altが設定できればいいのですが、これらは「modifier key」というものらしく、ここでは設定できません。これらの設定のために、以下を行っていきます。

キーコードの割当の変更

次に、
「キーバインドの変更 Xmodmapの基本的な設定方法」
https://qiita.com/macinjoke/items/746c0c0adb74cfdeb9e7
を元に、以下のように設定しました。

キーコードの調査

xev を使って関係しそうなキーのキーコードを調べておきます。

Caps Lock 66
左 Ctrl 37
左 Shift 50
左 Alt 64
Windows -
Fn -
menu 135
右 Ctrl 105
右 Shift -
右 Alt 108

ー とあるのはxev で取得できなかったものです。Fnはハードウェア処理でしょうから取れないのでしょう。Windowsキーはxevからフォーカスが外れて取得できませんでした。右Shiftは壊れているようです。

これを元に、以下のように設定するようにしてします。

Caps Lock キーを Alt キーとして設定
左 Alt キーを無変換キーとして設定
右 Altキーを変換キーとして設定

デフォルト設定を保存する

設定を変更する前に、現在の設定を保存し簡単に戻せるようにしておきます。

先の

「キーバインドの変更 Xmodmapの基本的な設定方法」
https://qiita.com/macinjoke/items/746c0c0adb74cfdeb9e7

の通り以下のように作業します。


$ xmodmap -pke > ~/.Xmodmap_default


$ vim  ~/.Xmodmap_default

として、冒頭に以下を追加します。


clear shift
clear lock
clear control 
clear mod1
clear mod2 
clear mod3 
clear mod4 
clear mod5

また、末尾に以下を追加します。


add shift = Shift_L Shift_R
add lock = Caps_Lock
add control = Control_L Control_R
add mod1 = Alt_L Alt_R Meta_L 
add mod2 = Num_Lock 
add mod4 = Super_L Super_R Super_L Hyper_L 
add mod5 = ISO_Level3_Shift Mode_switch 

このファイルを使って、設定を復元するには以下のようにします。


$ xmodmap ~/.Xmodmap_default    

キー設定変更ファイルを作る

以下のようにして定義ファイルを作る。


$ vim  ~/.Xmodmap

中身は以下の通り


clear lock
clear mod1

keycode 64 = Muhenkan
keycode 66 = Alt_L
keycode 108 = Henkan_Mode

add mod1 = Alt_L Meta_L

設定の変更を反映する

以下のようにすると、現在のセッションでの設定が有効になる。


$ xmodmap ~/.Xmodmap

先の記事
「キーバインドの変更 Xmodmapの基本的な設定方法」
https://qiita.com/macinjoke/items/746c0c0adb74cfdeb9e7

では以下のように記述してますが、再起動時に元に戻ってしまいました。

これで設定したキーバインドが有効になっているはずです。PCを再起動しても設定が反映されます。
元に戻すには下記を実行します。

いろいろ調べて、
「Ubuntu20.04でマシン起動時、サスペンド復帰時にスクリプトを実行する」
https://zenn.dev/jnuank/articles/8a616e539109cb
のように、

/usr/local/etc/rc.d

に記述したりしましたがうまくいきませんでした。

結局以下のようにGUIで設定しました。
「設定」-「アプリケーション」-「自動起動するアプリケーション」-「"ソフトウェア"で開く」-「起動」-「自動起動するアプリケーションの設定」で「追加」

image.png

以下のように設定しました。 nanbuwks は自分の名前です。これが xmodmap ~/.Xmodmap だとうまく動きませんでした。

image.png

問題点

先の
「Ubuntu20.04でマシン起動時、サスペンド復帰時にスクリプトを実行する」
https://zenn.dev/jnuank/articles/8a616e539109cb

ではサスペンド復帰時に元に戻るそうですが、このPCはサスペンドがそもそもうまく動いていないのでチェックができていません。

また、Ctrl+Alt+F3 などでコンソールを使った後、Ctrl+Alt+F2で元に戻っても変更が元に戻ってしまいます。これについては今の所以下をタイプインすることで対処するようにしています。


$ xmodmap ~/.Xmodmap
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?