ラベル 日本語入力 の投稿を表示しています。 すべての投稿を表示
ラベル 日本語入力 の投稿を表示しています。 すべての投稿を表示

2017年6月26日月曜日

fcitx の profile か?

というわけで調べてみた。
全部を調べたわけではないが、まず引っ掛かったのは ~/.config/fcitx/profile というファイルだ。
こちらに、 IMName という設定がある。
これが、 gemini は mozc が指定されていて、cancer は fcitx-keyboard-jp が指定されている。
この違いだろうか?
これは恐らく、fcitx-configtool によって書き換えられたものと思われるけど、直接書き換えてみよう。
(cancer) $ vi ~/.config/fcitx/profile
--
IMName=fcitx-keyboard-jp

IMName=mozc
--
この状態でも日本語入力出来ない。

一度ログアウト・ログインし直してから試してみる。
(再ログイン後、環境変数 XMODIFIERS を設定するのを忘れないように。)
それでもダメな(日本語入力出来ない)ようだ。

う~ん…。
一旦、gemini / cancer に teraterm でログインし、fcitx を起動、fcitx-configtool を比較してみるか。
$ export XMODIFIERS=@im=fcitx
$ fcitx
$ fcitx-configtool

う~む。どうやら設定が違うな。
  • Default keyboard layout
    • gemini : 日本語 - 日本語 (OADG 109A)
    • cancer : Default
  • Mozc Keyboard layout
    • gemini : 日本語 - 日本語 (OADG 109A)
    • cancer : Default
この違いだろうか…。
一度、cancer の設定を gemini の設定と同じにして、確認してみよう。
やっぱりダメだった…。

と、ここで gemini / cancer と taurus の /etc/default/im-config に差異があることが分かった。
gemini / cancer の /etc/default/im-config は同じだった。
どういうことだ?
って当たり前だ。gemini / canccer は Ubuntu 16.04、taurus は 17.04 だ。バージョンが違えばパッケージも違うわ。ボケてた。

ただ、virt-manager を起動しようとするたびに
Gtk-message: Failed to load module "canberra-gtk-module"
というメッセージが出てくる。
今の現象には関係無いけど、gemini / cancer にインストールだけしておこう。
$ sudo apt-get update
$ sudo apt-get --simulate install libcanberra-gtk-module
$ sudo apt-get install libcanberra-gtk-module
あれ?コレじゃないのかな?virt-manager 起動しても同じメッセージが出る。

…気を取り直して…
virt-manager 側の問題の可能性もあるので、一度、別のアプリケーションで試してみたい。
とは言え、gemini / cancer には X アプリケーションは全然入っていないので、何かインストールしよう。
テキストエディタの gedit がいいかな?
$ sudo apt-get --simulate install gedit
$ sudo apt-get install gedit

gedit で試してみたところ、やっぱり gemini の方は日本語入力出来て、 cancer の方は入力出来ない。
ということは、virt-manager の設定ではないということだ。

ラチが開かないので、taurus から sagittarius にログインして、同じように試してみた…。
なんと、日本語入力出来る!
特に fcitx を導入したわけでも無く、環境変数 XMODIFIERS を設定しただけだ。

う~ん。 cancer の設定がおかしいとしか思えないな…。なんだろう…???

一度、cancer の個人環境をクリアしてみよう。
(cancer) $ cd
(cancer) $ rm -rf .config
(cancer) $ rm -rf .dbus
(cancer) $ rm -rf .mozc
(cancer) $ rm -rf .cache
(cancer) $ rm .xinputrc
ここで一旦ログインし直し。
これで、もう一度確認してみよう。
…やっぱりダメだ…。

色々調べてみたんだけど、結局ダメだった。

出来れば解決しておきたかったんだけど、解決出来ないので今回は諦め。
もし何かヒントが見つかれば、また挑戦しよう…。


2017年6月22日木曜日

ちょっと不思議な事象が…

というわけで、taurus から gemini / cancer への日本語入力のテストを実施してみる。

taurus のコンソール(Remote Viewer や virt-manager を使用してくれぃ)からログインし、デスクトップ上でマウス右クリックからの「端末を開く」で2枚の端末を開く。
それぞれの端末で日本語入力出来ることを確認したら、ssh の -X オプションつきで gemini / cancer にログインしよう。
(taurus) $ ssh -X (ユーザ名)@(geminiのIP)
(taurus) $ ssh -X (ユーザ名)@(cancerのIP)

そしたら、gemini / cancer ともに fcitx と mozc が動いていないことを確認。
(gemini) $ ps -ef | grep -e fcitx -e mozc | grep -v grep
(cancer) $ ps -ef | grep -e fcitx -e mozc | grep -v grep

環境変数 XMODIFIERS を設定しよう。
(gemini) $ export XMODIFIERS=@im=fcitx
(gemini) $ env | grep XMODIFIERS
(cancer) $ export XMODIFIERS=@im=fcitx
(cancer) $ env | grep XMODIFIERS

設定されていることが確認できたら、 virt-manager を起動して日本語入力出来るか確認しよう。

というところでタイトルの「ちょっと不思議な現象が…」になる。
何故か、gemini から起動した virt-manager では日本語入力が可能で、cancer から起動した virt-manager では日本語入力が不可能なのだ。
両方共、fcitx / mozc は起動していないので、taurus のローカルで動いている fcitx / mozc を使っているはず。
gemini と cancer 、同じように作ったはずなんだが、何か違いがあるようだ。
この違いを追求しないと、ちょっと面倒なことになるかもしれない…。

というわけで、次回以降で調査を行おう。

Ubuntu Desktop 作ってみる

前回に引き続いて、日本語入力関連だ。
今までは Windows をメインマシンに据えて、そこから ssh で Ubuntu マシンにログイン、操作するというやり方だった。
この Windows の部分を、Ubuntu Desktop に置き換えてみようというのが今回の主旨。

まずは、Ubuntu Linux のサイトから、Ubuntu Desktop のメディアをダウンロードしよう。今回は 17.04 を入手した。

そしたら、仮想マシンの作成だ。
スペックは以下の通り。
  • 仮想マシン名 : taurus
  • ホスト名 : taurus
  • IP Address : 192.168.55.135 / 24
  • CPU : 4コア*1スレッド(4スレッド)
  • メモリ : 4GB
  • HDD : 72GB
  • ソフトウェア等構成 : デフォルト
  • ディスクレイアウト : お任せ&LVM
実は、この blog には記載していないけど、過去に taurus は作っている。
あくまでテスト的な存在だったので、今はもう不要だ。
これをバッサリ削除して、完全に新規に作成する。

ざっくりインストールして、taurus 上で日本語入力が出来ることを確認しておこう。
あとは、個人的に FireFox は利用していないので、chromium-browser を導入しようと思ったが、google から Debian / Ubuntu 用の chrome がリリースされているようなので、それだけ入れておいた。

導入が終わったら、taurus にログインして、ssh で gemini / cancer にログインできることを確認しておこう。

次回から、日本語入力周りを再確認する。

2017年6月20日火曜日

X から日本語入力(fcitx の起動)

今現在、日本語入力の環境を整えたのは gemini / cancer の2つだ。
これらを、Windows(pegasus)上の teraterm / VcXsrv から利用している。
イメージ的には以下のような状態だ。
pegasusからgemini/cancerを利用


そのため、gemini 上で動く virt-manager と、cancer 上で動く virt-manager、いずれも同じように pegasus には表示されるが、別アプリケーション(別マシンで動いているアプリケーション)だ。
それぞれのアプリケーションに日本語入力を行うためには、それぞれに fcitx と mozc が必要だと思…う…。

というわけで確認をしてみる。

まず、gemini / cancer で fcitx が動いていたら止める。
$ ps -ef | grep fcitx | grep -v grep
動いているプロセスを kill すること。

両方(gemini / cancer)のsshセッションで、環境変数 XMODIFERS が設定されているか確認。
$ env | grep XMODIFIERS

両方で virt-manager を起動し、それぞれ仮想マシンの設定を適当に開いておく。
$ virt-manager
まだ現時点では、日本語入力は出来ないはずだ。

この状態で、gemini で fcitx を起動する。
(gemini) $ fcitx

起動が出来たら、gemini / cancer 両方で起動した virt-manager に日本語入力を試してみる。
gemini のウィンドウには入力可能だけど、cancer のウィンドウには入力出来ない。

では、cancer 上で fcitx を起動してみる。
(cancer) $ fcitx
エラーが発生する。エラーメッセージは
--
(ERROR-NNNNN /build/fcitx-PSoVA1/fcitx-4.2.9.1/src/frontend/xim/xim.c:240) XIM  開始エラー: fcitx という他の XIM が動いていませんか?
(ERROR-NNNNN /build/fcitx-PSoVA1/fcitx-4.2.9.1/src/lib/fcitx/instance.c:440) Exiting.
--
というものだ。(NNNNN は fcitx のプロセスNo.のようだ)
cancer 上では fcitx は動かしていないにも関わらず、fcitx が動いていないか?というエラーが出るのだ。
しかし、エラーが出たにも関わらず、この状態で cancer 上で稼働させている virt-manager には日本語入力が出来る。
これは一体どういうことなんだろうか…?

今現在は、gemini / cancer いずれも fcitx は稼働している。
$ ps -ef | grep fcitx | grep -v grep

mozc は?
$ ps -ef | grep mozc | grep -v grep
両方のマシンで mozc_server が動いているようだ。

もう一度、cancer 上で fcitx を停止(kill)しておこう。
fcitx を kill したら、mozc_server も停止したはずだ。念のために確認し、もし mozc_server が稼働していたら kill しておこう。

これで今は、
  • gemini : fcitx 稼働 / mozc_server 稼働
  • cancer : fcitx 停止 / mozc_server 停止
の状態になった。
今の状態で、それぞれの virt-manager に日本語入力が可能か再確認を。
予想通り、gemini 側には入力可能、cancer 側には入力不可、だ。

では、cancer で mozc_server だけを起動してみたら…?
(cancer) $ /usr/lib/mozc/mozc_server &
(cancer) $ ps -ef | grep mozc | grep -v grep
これでも入力は出来ないな…。

cancer で fcitx を起動すれば、日本語入力は可能になる。
(相変わらずエラーは表示されるが…)

となると、先程出た
--
(ERROR-NNNNN /build/fcitx-PSoVA1/fcitx-4.2.9.1/src/frontend/xim/xim.c:240) XIM  開始エラー: fcitx という他の XIM が動いていませんか?
(ERROR-NNNNN /build/fcitx-PSoVA1/fcitx-4.2.9.1/src/lib/fcitx/instance.c:440) Exiting.
--
というエラーはどういう意味なんだろうか?

恐らくは、「gemini の fcitx」→「pegasus の VcXsrv」というセッションがあるのに、「cancer の fcitx」→「pegasus の VcXsrv」というセッションを作ろうとして、cancer が「あれ?pegasus の VcXsrv、既にセッションあるよ?」と言っているんだと思うんだが…。
であれば、cancer 上の virt-manager に対して、gemini の fcitx を使って日本語入力出来てもいいような気がするんだが…。

良くわからない。
まぁとりあえず、必要に応じて fcitx を起動すれば、とりあえず日本語入力出来るので、一旦はコレでヨシとしておくか…。

日本語入力に関しては、Xサーバ側をWindowsのVcXsrvで実装しているので、Linux Xサーバ(+GNOME)とかだったらどうなるんだろうか?
ちょっと気になる。
次回は、Ubuntu Desktop を作って、そちらから gemini / cancer にログインしてみることにしよう。

X から日本語入力(最小限パッケージ)

さて前回、日本語入力が出来ることは確認できた。
ただ、必要以上のパッケージが導入された気がするので、今回はパッケージの絞込をしてみたいと思う。

まず最低限、使うコマンドだけは絶対に必要なはずだ。
前回使ったのは、im-config / fcitx / fcitx-configtool の3つか。
それぞれ、dpkg -S で調べてみると…
  • im-config コマンド : im-config パッケージ
  • fcitx コマンド : fcitx-bin パッケージ
  • fcitx-configtool コマンド : fcitx-bin パッケージ
のようだ。

あと、mozc 関連も必要なはずだが…。
どうやら、fcitx-mozc、mozc-data、mozc-server、mozc-utils-gui というパッケージがあるようだ。
このうち、mozc-data と mozc-server は必要だろう。
fcitx-mozc も必要な気がするが、mozc-utils-gui は必要無い気がする。

さて、これを踏まえて、cancer 上で構築してみるか…。
im-config は fcitx-bin を入れると自動的にインストールされるな。

う~ん。fcitx-mozc を入れる(137個のパッケージ)のと、fcitx-bin と mozc-server を入れる(132個のパッケージ)のとで、導入されるパッケージに若干の差異があるみたいだな。
とりあえず、後者の方がパッケージ数が少ないので、後者を試してみよう。
(cancer) $ sudo apt-get update
(cancer) $ sudo apt-get --simulate install fcitx-bin mozc-server
(cancer) $ sudo apt-get install fcitx-bin mozc-server

導入終わったら、日本語入力の切り替えだ。
(cancer) $ im-config -n fcitx

後は fcitx 動かせば良いのかな?
(cancer) $ export XMODIFIERS=@im=fcitx
(cancer) $ fcitx

このまま、virt-manager で確認してみる。
(cancer) $ virt-manager
どうやら、中途半端のようだ。(mozc に接続出来ていない様子)

だったら、mozc に接続するようにいじってみる。
(cancer) $ fcitx-configtool
あれ?mozc がリストに表示されない。
ってことは、mozc との接続が出来る状態に無いってことか…。

ん?ちょっとマテよ…?まだ mozc-data がインストールされてないぞ?
これ、変換に必要なデータじゃないのか?
入れてみよう。
(cancer) $ sudo apt-get install mozc-data

そしたら、既に起動中の fcitx を kill して、再度実行だ。
(cancer) $ ps -ef | grep fcitx | grep -v grep
(出てきたプロセスのプロセスID に対して、kill プロセスID だ。)
(cancer) $ fcitx
(cancer) $ fcitx-configtool
やっぱりダメっぽいな。

fcitx-mozc を導入する必要がありそうだ。
(cancer) $ sudo apt-get --simulate install fcitx-mozc
(cancer) $ sudo apt-get install fcitx-mozc

もう一度 fcitx を停止・起動させ、設定の確認
(cancer) $ ps -ef | grep fcitx | grep -v grep
(出てきたプロセスのプロセスID に対して、kill プロセスID だ。)
(cancer) $ fcitx
(cancer) $ fcitx-configtool
お!Mozc が出てきた。

ということは…
(cancer) $ virt-manager
あれ?まだ入力出来ないや。

fcitx-configtool で出てくるエントリのうち、Mozc を一番上に移動させれば、日本語入力出来るようになった!

ってことで、gemini に導入されたパッケージと cancer に導入されたパッケージ、比較してみたら5つだけ差異が。
fonts-takao-gothic, fonts-takao-mincho, fonts-takao-pgothic, wamerican, wbritish だ。
これらは今のところ gemini にも不要なので削除してしまおう。
(gemini) $ sudo apt-get purge fonts-takao-gothic \
fonts-takao-mincho \
fonts-takao-pgothic \
wamerican \
wbritish

これまでを整理すると…
  1. fcitx-mozc を導入
  2. 環境変数 XMODIFIERS を設定
  3. fcitx を起動
  4. fcitx-configtool を使って、Mozc を一番上に(最優先に)する
  5. 以後は、環境変数設定(2番)と fcitx の起動(3番)だけ
で、日本語入力が出来るようになるようだ。

実はココまで実行してみて、1つ気になる点が見つかった。
次回はそこを調査してみたい。
(gemini / cancer の両方で同時に fcitx を起動できないっぽい、ということ、どちらかで fcitx を起動していれば、もう片方マシンで動いているアプリケーションでも日本語入力出来るっぽい、ということ)

2017年6月19日月曜日

X から日本語入力

そういえば、virt-manager 等でコメントを入力する時、今はまだ日本語入力が出来ない。
その設定を施していないからだ。

入力できないことが今のところ不自由ではないが、出来れば日本語入力できるようにしておきたい。
というわけで、まずは gemini でテストしてみよう。

どうやら、必要なパッケージは check-language-support というコマンドで表示されるようだ。
(gemini) $ check-language-support

たくさん出て来るので、とりあえずそのまま apt-get に渡してみよう。
(gemini) $ sudo apt-get --simulate install `check-language-support`
かなりたくさんインストールされるな…。ホントにこんなに必要なのだろうか…。

まぁインストールしてみよう。
(gemini) $ sudo apt-get install `check-language-support`

そしたら、日本語入力を fcitx に切り替えるらしい。
(gemini) $ im-config -n fcitx

何もメッセージは出なかったけど、~/.xinputrc というファイルが出来上がってる。
中身はどうなってるんだろうか?
(gemini) $ cat ~/.xinputrc
大したこと書いてなかった…。

ログインセッションに関係あるはずなので、一旦ログアウト・再ログインしておこう。
その後、virt-manager を起動してみる。
(gemini) $ virt-manager
…ここまで書いて、やっぱりまだダメなことが分かった。

関係あるか分からないけど、一度 gemini を再起動してみよう。
仮想マシン leo が動いていると思うので、先に leo を止めておくこと。
(gemini) $ virsh shutdown leo
(gemini) $ virsh list --all
(gemini) $ sudo systemctl reboot

再起動が終わったら、日本語入力のテストだ。
環境変数を設定
(gemini) $ export XMODIFIERS=@im=fcitx

fcitx を起動
(gemini) $ fcitx

続いて、fcitx を設定する。(VcXsrv 等の X Window System が必要だぞ)
(gemini) $ fcitx-configtool

Input Method Configuration の画面が出て来る。
Input Method タブに、Mozc が出ていると思うので、それをダブルクリックだ。
Keyboard layout を選ぶダイアログが出て来るので、「日本語 - 日本語 (OADG 109A)」等、自分のキーボードに合わせたキーボードを選ぼう。
その他にも色々設定が出来るようだが、ヨクワカラン。日本語入力モードに入るためのキーバインディングの変更も可能。

ここまで出来たら、virt-manager から日本語入力が出来るか確認だ。
(gemini) $ virt-manager

適当に仮想マシンを開き、設定画面から「説明」欄等にカーソルを合わせてみよう。
その状態で、キーボードの「半角/全角」キーを押してみると、日本語入力が出来るようになったと思う。

以後は、環境変数 XMODFIERS の設定と、fcitx の起動で日本語入力出来るはずだ。

毎回、fcitx が起動しているか確認するのと、環境変数設定するのは、ちょっと面倒くさいな…。

とりあえず次回は、gemini に導入されたパッケージが本当に全て必要なのかの確認を含めて、cancer でパッケージ導入をしてみる。