ubuntu 18.04 LTSのUS配列キーボードでの日本語入力

意外とハマる&情報が錯綜してる ubuntu でのUS配列キーボードでの日本語入力の件です。

一般的にはxmodmapやxcape、fcitxなどを使った設定方法が挙げられているようですが、18.04では割とシンプルな方法で対応できました。以前のubuntuだと結構苦労したんですけどね。(ご参考まで)

前提条件

  • ディストリビューションとバージョン:ubuntu 18.04 LTS
  • 日本語入力:mozc+ibus
  • キーボード:US配列
  • やりたい事:右ALTで日本語入力のon/offがしたい

手順

ibus-mozcインストール

まずibusでmozcを使用するためibus-mozcをインストールします。ibusは入力メソッドの一つ、mozcはいわゆる「Google日本語入力」のことです。マルチプラットフォームがサポートされているのでWindowsやMacでも使っている人が多いのではないかと思います。

$ sudo apt install ibus-mozc

関連パッケージ(mozc-data, mozc-server, mozc-utils-gui)が一緒にインストールされます。ちなみに ubuntu-default-ja をインストールしていれば、ibus-mozcも既にインストールされていると思います。(未確認ですが、dependedとなっていたので…)

mozcキー設定変更

文字入力のプロパティ画面を開きます。

mozcキー設定が表示されます。ここでIME有効化/IME無効化に好きなキーを割り当てるのですが、US配列には存在しないキーを割り当てるようにします。

「存在しないキーを割り当ててしまったら日本語変換できないじゃないか〜」

と思われるかもしれませんが大丈夫です。あとでその存在しないキーをUS配列の右ALTに再割当てしてしまおうというアプローチです。

とりあえずサクッと設定できる&本当に使わないキー(自分にとっては)なので、”Henkan”キーに割り当てることにしました。

モード入力キーコマンド
変換前入力中HenkanIMEを無効化
変換中HenkanIMEを無効化
直接入力HenkanIMEを有効化
入力文字なしHenkanIMEを無効化

こんな感じに設定する事で、JIS配列キーボードの変換キーでIMEの有効化/無効化ができるようになります。

US配列キーボードの右ALTに変換キー割り当て

最後にUS配列キーボードの右ALTに変換キーを割り当てます。これによって、右ALTを押すことで変換キーが押されたと判断されてIMEのon/offができる仕組みです。このマッピングにはxcapeを使うと簡単でした。

まずはxcapeのインストール。

$ sudo apt install xcape

次に本当に右ALTでIMEのon/offができるかを試します。

$ xcape -d -e 'Alt_R=Henkan_Mode'

(”Henkan”キーなのに、ここでの指定子は”Henkan_Mode”なんですよねぇ)

この状態でxcapeの動作確認モードに入りますので、右ALTを押して正常にIMEがOn/Offされる事を確認します。確認できたらCtrl+Cなどでxcapeを終了します。

xcapeを自動起動設定

上記までの動作はxcapeが起動している間だけ有効です。よってubuntu起動時にxcapeを起動させる必要があります。もちろん複数起動してしまってはトラブルの元ですので(キーイベントが複数発行されてしまうようで、正しくIMEがOn/Offできません)1インスタンスだけ起動するようにします。

最も簡単なのが「自動起動するプログラム」に追加してしまう事でしょうね。

メニューから「自動起動するアプリケーションの設定」を選び、「自動的に起動するプログラムの追加」画面で「追加」ボタンを押し、後は以下の通りに入力し保存します。

名前xcape
コマンドxcape -e ‘Alt_R=Henkan_Mode’
説明IME切り替え

あとはubuntuを再起動したあと、右ALTを押して正しくIMEがOn/Offされれば完了〜!

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください