XenialDog(Puppy Linux系)Anthyの辞書をできる限り強化してみた(かなり頭が良くなった)
XenialDogに、rootで使えるMozcをビルドしてインストールする試みは失敗した…。
原因がまだ分からないのでとりあえずはAnthyを使うことにした。
ここの記事にも書いてあるようにPuppy Linuxの日本語フォーラムでrootで使えるSCIM-Mozcがある。
これを使っても良いし、これまではこれを使っていたが、一度起動するとメモリ消費量が200MB近く大きくなるのがちょっと気になっていた。
今回は、Anthyを使い続けることを前提に辞書を強化することにした。
まず、Google日本語入力強化辞書をAnthy用に変換した。
変換するのにRubyというスクリプトを実行する環境が必要だ。
難しい場合はここは読み飛ばして、このあとの操作だけしてほしい。
https://www.mediafire.com/?cy1mxpjds5l5h
配布サイト自体はなくなってしまった様ですが、オンラインストレージは生きている。
ここからGoogle日本語入力強化辞書v5-1.7zをダウンロードして解凍する。
いろいろあるが、通常の文章を書く上で強化したい部分だけ考えると「Google日本語入力強化辞書.txt」だけで良いと思う。
どうもEUC-JPのようなので
nkf -e -w Google日本語入力強化辞書.txt > google_dic.txt
XenialDogにはnkfがなかったのでapt-getやSyanpticパッケージマネージャでインストールする必要がある。
次に、上のリンクからuserdicスクリプトをダウンロードする。
ruby userdic <変換元> <変換先> < 変換元ファイル名 > 変換先ファイル名
で変換できるとのことなので
ruby userdic mozc anthy < google_dic.txt > anthy_dic_unsort.t
などとしてMozc(Google日本語入力)用からAnthy用に変換。
これをソートする必要がある。
env LC_ALL=C sort anthy_dic_unsort.t > anthy_dic.t
追記
薬などの医学用語が変換できないので、ここの辞書も追加してみた。
テキスト形式辞書をダウンロードする。
MS-IME用でもATOKでも大丈夫だと思うが、今回はATOK用にした。
文字コードの変換は必要ないようだ。
上のGoogle日本語入力強化辞書と同じようにuserdicを使って変換する。
userdic atok anthy < meddic.txt > meddic_unsort.t
同じようにソートする。
env LC_ALL=C sort meddic_unsort.t > meddic.t
追記
一部がGoogle日本語入力強化辞書と重複しているようなので入れなくても良いかもしれない。
追記終わり
次にAnthyと同じくらい有名な変換エンジンで、Anthyと辞書の互換性のあるCannaの辞書を手に入れる。
cannadic改 Wiki - cannadic改 - OSDN
本当はAnthyのソースコードを手に入れてビルドが必要の様ですが今回は無理やりそのまま使ってみることにした。
ダウンロードファイル一覧 - cannadic改 - OSDN
ここからalt-cannadic-110208.tar.bz2をダウンロードして解凍する。
また、以下からも辞書ファイルをダウンロード。
GitHub - mt819/Canna-Dictionary: かんな辞書 / Dictionary for Canna
ページの右側にある「Clone or download」と書かれた緑のボタンを押して、現れたポップアップの右下の「Download ZIP」を押すとダウンロードできる。
これを解凍。
※注意
ここから先の操作が難しい場合は「~/.anthy/imported_words_default.d/」ディレクトリに「.t」ファイルを入れても辞書の登録ができる。
ただし、システム辞書の方が優先されるのできれいに変換できない場合もある。
「.ctd」ファイルを入れて有効になるかどうかは確認していないので分からない。
注意ここまで
二つのディレクトリの中にある「.t」ファイルと「.ctd」ファイルを「/usr/share/anthy/dic」へコピーする。
「katakana.t」ファイルは中身はコメントだけで変換語句は空だった。
それはコピーする必要はないが、コピーしても実害はないだろう。
これらのファイルはcanna用として作られているから、多分、ソートする必要は無いだろう。
最初に作ったGoogle日本語入力強化辞書をAnthyに変更した辞書ファイルも一緒にコピーする。
念のため、バックアップを取っておいた方が良いだろう。
同名ファイルがあるので上書きする。
これらのファイルの名前を/etc/anthy/diclistへ追加する。
diclistもバックアップをとっておいた方が良い。
ls -1 /usr/share/anthy/dic/ >> /etc/anthy/diclist
とすれば、辞書ファイル一覧が追加される。
このあと
update-anthy-dics
とすると辞書ファイルが更新される。
ログインしなおすかパソコンを再起動すれば、更新された辞書が使われるようになっているはずだ。
なお、これはroot環境で使われるPuppy LinuxやDebianDog系のディストリビューション(TahrPup,XenialPup,XenialDogなど)の話だ。
一般ユーザでログインして使うディストリビューションの場合は、各操作で「sudo」コマンドを頭につける必要があるだろう。
ディストリビューションによって場所は違うと思うが、Ubuntu系の場合は/var/lib/anthyディレクトリ以下にanthy.dicが、さらにmkworddic以下にanthy.wdicというファイルができる。
anthy.dicは40MB以上あり、強化前の2倍以上になった。
この文章もAnthyで書いている。
まだ使ってから間もないのでどの程度、良くなったのかわからないところもあるが、この記事を書いている分には不足はない。
不具合も今のところ出ていないのでうまくいっているのではないかと思う。
この程度使えるならMozcを使わなくても良いかもしれない。
Unified Anthyという改良版Anthyや、学習結果が消えてしまわないようにする方法もあるようだ。
くわしくはこちら。
医学関係の辞書の語句で試してみたが、どうもきちんと反映されていない様だ。
辞書はある程度以上、大きくしても効かないのかも知れない。
だとすると辞書を肥大化させても意味がないから、「~/.anthy/imported_words_default.d/」ディレクトリに入れておいた方が良いかもしれない。
update-anthy-dicsコマンドがおかしく、文字コードがUTF-8である辞書がきちんと読み込まれていないことがわかった。
修正してみた。
(Rootの方は不完全ながら成功)Rootで使えるMozc、あるいはMozc-UTをビルドするまでの長く険しい道のり
Mozcの辞書を強化する事を目的としたMozc UT2 Dictionary(元はMozc UT Dictionary)というものがある。
http://www.geocities.jp/ep3797/mozc-ut2.html
しかし、これはArch Linuxを想定しているため、他のディストリビューションには敷居が高い。
これをDebianやUbuntuで使えるdebパッケージを生成できるように改造して公開してくれている方がいる。
Ubuntu 16.10でibus-mozcを使用する - Sickly Life Blog
16.04なのでこちらも参考にした。
ほぼ同じ内容。
Ubuntu 16.04 LTS に Mozc UT Dictionary をインストールしてみた - 旧ID:itiriのブログ
XenialPupやXenialDogで動くMozcが欲しかったこともあり、ちょっと、ビルドに挑戦してみることにした。
必要なパッケージをインストールする。
sudo apt-get install -y clang libdbus-1-dev libglib2.0-dev libgtk2.0-dev subversion tegaki-zinnia-japanese debhelper libibus-1.0-dev build-essential libssl-dev libxcb-xfixes0-dev python-dev gyp protobuf-compiler libqt4-dev libuim-dev libzinnia-dev fcitx-libs-dev devscripts ninja-build
この時、以下のようなエラーが出た。
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移 動されていないことが考えられます。 以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
libgtk2.0-dev : 依存: libpango1.0-dev (>= 1.20) しかし、インストールされようとしていません
依存: libcairo2-dev (>= 1.6.4-6.1) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
そこで
sudo apt-get install libcairo2-dev
してみたところ
以下のパッケージには満たせない依存関係があります:
libcairo2-dev : 依存: libcairo2 (= 1.14.6-1) しかし、1.15.2-0intel1 はインストールされようとしています
依存: libcairo-gobject2 (= 1.14.6-1) しかし、1.15.2-0intel1 はインストールされようとしています
本来、調べたいエラーとは違いますがこれが出てきました。
Cannot Install Intel Proprietary Graphics Driver - elementary OS Stack Exchange
どうやらIntel HD Graphics DriverをプロプライエタリやPPAでアップデートしているのが原因のようです。
apt-getで特定のバージョンをインストールする - Qiita
上のページを参考にバージョンを指定してインストールする必要があるかも知れない。
ただこれだと現在のグラフィック環境で不整合が起きるだろう。
Chrootでビルド環境を別に作る必要があるかも知れない。
Hachulog: debianやubuntuでmikutterビルド環境を作る
ちょっと古い記事なのでそこを考えながら
sudo apt-get install debootstrap
でdebootstrapをインストール。
sudo -s
してroot環境に固定して
mkdir /var/root
cd /var/root
debootstrap xenial ./xenial http://jp.archive.ubuntu.com/ubuntu
でUbuntu 16.04のコアな環境を構築する。
http://ftp.jaist.ac.jp/pub/Linux/ubuntu でも良いと思う。
何も指定しないとhttp://archive.ubuntu.com/ubuntu/ になると思う。
apt-getが速いのが良いなら、jaistにすると良いかも。
cp -r mozc-2.18.2598.102+dfsg-1~ut2-20170529 /var/root/xenial/usr/src
などとしてMozc-UTのソースファイルが入ったディレクトリを適当なところにコピーする。
chroot /var/root/xenial /bin/bash
でルートディレクトリを変更。
apt-get update
して、データベースを更新して
ビルドに必要ないのではないかと思うが、日本語環境にする設定もしてみた。
apt-get install language-pack-ja-base language-pack-ja
パッケージ名の補完がないので手打ちかコピー&ペーストで行う。
echo "Asia/Tokyo" > /etc/timezone
cp /usr/share/zoneinfo/Japan /etc/localtime
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
source /etc/default/locale
timedatectlコマンドを使って設定する方法はsystemd-containerを入れるなどしないと駄目らしい。
上の方法が16.04でも有効なのかわからない。
下のものはエラーが出た時に一度、現在のルートディレクトリからexitして、適宜マウントする。
mount -t proc proc ./xenial/proc
mount -o bind /dev ./xenial/dev
mount -t devpts devpts ./xenial/dev/pts
mount -t sysfs sysfs ./xenial/sys
最初から入れたところ、「apt-get update」でエラーが出た。
これで改めて以下のパッケージのインストールを試みた。
apt-get install -y clang libdbus-1-dev libglib2.0-dev libgtk2.0-dev subversion tegaki-zinnia-japanese debhelper libibus-1.0-dev build-essential libssl-dev libxcb-xfixes0-dev python-dev gyp protobuf-compiler libqt4-dev libuim-dev libzinnia-dev fcitx-libs-dev devscripts ninja-build
すると以下のエラー。
パッケージ ninja-build は使用できませんが、別のパッケージから参照されます。
これは、パッケージが欠落しているか、廃止されたか、または別のソース
からのみ利用可能であることを意味します。
E: パッケージ clang が見つかりません
E: パッケージ gyp が見つかりません
E: パッケージ libuim-dev が見つかりません
E: パッケージ 'ninja-build' はインストール候補ではありません
/etc/apt/source.listを見たら
deb http://jp.archive.ubuntu.com/ubuntu xenial main
しか無かったので、試しに一度exitして、ホストのsource.listをコピーしてみた。
改めてchrootし、「apt-get update」したあとで、もういちど上記のコマンドを実行したところ成功。
ppa以外のリポジトリ、xenial-updatesやxenial-backports、xenial-securityが入ったのでどれが有効だったか分からないが、もしかしたら
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main restricted universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main multiverse restricted universe
とするだけでも良かったかも知れない。
ppaのリポジトリやプロプライエタリのリポジトリが入ると、ホストの環境と同じになってしまって冒頭のエラーが出て意味がなくなるので入れてはいけない。
updatesやbackportなども有効にしてしまったので、余計なもののアップデートもされてしまう。
かなり時間がかかるので気長に待つ。
Mozcをroot権限で動かすには、ダウンロードしたソースのうち
/mut/src/base/run_level.cc
の
geteuid() == 0
または
getuid() == 0
を調べている箇所で
RunLevel::DENY
となっているのを
RunLevel::NORMAL
に書き直すか、判定している部分全体を削除すると良いようだ。
ここまできたら、いよいよビルドである。
/usr/srcにMozcソースが入ったディレクトリをコピーしたのでそこへ移動する。
そして
./build_mozc_plus_utdict
を実行。
すると大量のエラーが。
後ろの方だけ書き出すと
debian/rules:33: ターゲット 'override_dh_auto_configure' のレシピで失敗しました
make[1]: *** [override_dh_auto_configure] エラー 1
make[1]: ディレクトリ '/usr/src/mozc-2.18.2598.102+dfsg-1~ut2-20170529/mut' から出ます
debian/rules:30: ターゲット 'build' のレシピで失敗しました
make: *** [build] エラー 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -d -us -uc -b failed
/usr/src/mozc-2.18.2598.102+dfsg-1~ut2-20170529
終了
こんな感じ。
/usr/src/以下のmozcを入れたフォルダを見てみたらなんと/mutディレクトリ以下全部が消えていた…。
build_mozc_plus_utdictを見てみたら、ビルドに成功しようと失敗しようとmutディレクトリ以下を消してしまうコマンドが。
なんで・・・。
#rm -rf ./mut/
当該箇所をコメントアウトする。
改めてやってみたら消えなくなったが、当たり前だがエラーはそのまま。
足りないパッケージがあるのかと思い確認。
libprotobuf-devが無いようだったのでインストール。
そのときapt-getに「保留: 78 個」とあったので
apt-get dist-upgrade
を実行してこれらをアップデート。
それでも駄目なのでもう少しエラーを良く見たら
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
LOSError: [Errno 38] Function not implemented
/dev/shmのマウントが必要らしい。
/devディレクトリ全ての方が良いのか/dev/shm限定の方が良いのかどちらだろう。
とりあえずexitで出て、/dev/shm限定にしてみた。
mount -o bind /dev/shm ./xenial/dev/shm
として再度、build_mozc_plus_utdictを実行。
今度は先へ進んだ。
しかし、
make[1]: desktop-file-install: コマンドが見つかりませんでした
でエラー。
command line - Eclipse installation question - .desktop file - Ask Ubuntu
apt-get install desktop-file-utils
を実行して、再び挑戦。
見事に成功!
emacs-mozc-bin_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
emacs-mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
fcitx-mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
ibus-mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
mozc-data_2.18.2598.102+dfsg-1~ut2-20170529_all.deb
mozc-server_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
mozc-utils-gui_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
uim-mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
ができた。
通常のUbuntu 16.04ではfcitxを使っているはずなので
fcitx-mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
mozc-data_2.18.2598.102+dfsg-1~ut2-20170529_all.deb
mozc-server_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
mozc-utils-gui_2.18.2598.102+dfsg-1~ut2-20170529_amd64.deb
のインストールだけで良いはずである。
できたdebファイルはどこか適当なところにコピーして保存しておくと良いのではないかと思う。
exit
でchrootから抜け出す。
umount ./xenial/dev/shm
でアンマウントする。
sudo -s
でroot権限になっているのでもう一度
exit
する。
一応、インストール前に
sudo apt-get remove mozc-data mozc-server mozc-utils-gui fcitx-mozc
しておいた方が良いと思う。
…と、ここで端末で変なエラーが出てしまったうえ、もう一度、端末を開き直したら
$の表示が出ず、何も入力できなくなった。
その上、メニューの「ログアウト」もタスクバーの電源マークのアイコンも効かなくなってしまった。
Ctrl + Alt + F1
でコンソール画面を開いても駄目だった。
これまでの試行錯誤でちょっとおかしくなってしまったようだ。
仕方がないので強制的に再起動する。
UbuntuTips/Others/MagicSysRq - Ubuntu Japanese Wiki
Alt+PrintScreen+R+S+E+I+U+B
で再起動できるはずだ。
キー入力も効かなくなってしまったら、仕方がないので電源ボタン長押しで電源を落とすしかない。
本当はやらないに越したことはない。
再起動したところで
上のコマンドでmozc-dataなどを削除。
mozc-dataを消すと辞書データが消えるのでバックアップが必要な場合はしておいた方が良いかと思ったが、どうやら~/.mozc以下のファイルは消えないようだ。
sudo dpkg -i mozc*.deb fcitx*.deb
をして、作ったパッケージをインストールする。
うちの環境ではそれまでのUbuntu公式(だと思う)のMozcのバージョンは「2.17.2116.102」だが、インストール後は、「2.18.2598.102」になった。
どうやら成功したようだ。
長い道のりだった。
Ubuntu(Lubuntu)ではこれで使えるようになったが、手を加えたのでroot環境のXenialDogでも使えるはずである。
後で試してみることにする。
ビルド環境を作るだけでも苦労するのに、元のMozcを作る人、変換辞書を作る人、各ディストリビューション向けに改造する人もすごいと思う。
XenialDogで試してみたがやっぱり動かないようだ…。
きちんと設定したはずなのだが。
もう一度、ソースを見直してみる。
ibus-mozcがnot rootだとできる問題を解決する - インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい
この人は成功しているのだが…。
バージョンが古い場合にしか当てはまらないのかとも思ったがこの記事の人は「2.18.2595.102」だから新しい。
RunLevel::DENYをRunLevel::NORMALに直しているのだが何故かRoot環境で動くようにならない…。
ユーザー名Puppyでログインすると使えるのでパッケージ自体はできあがっているようだ。
なぜ動かないのか分からない。
該当個所以外にもRunLevel::DENYの部分はあるが、これはWindows用の設定だから関係ないはずだ。
該当個所の判定部分を削除した方が良いんだろうか…。
でも、同じだと思うのだが。
誰かどこを変えれば良いか教えてほしい…。
コメントをもらったのでもう一度、試してみたがやっぱり使えない。
rootだとmozc_serverが起動されていないのだ。
端末を起動して/usr/lib/mozc/mozc_serverを実行することはできる。
エラーは出ないから端末内での起動はできているようだ。
でもuimからの呼び出しで起動されていないと意味が無い。
原因が分からない。
匿名さんのコメントを参考にInput Methodをuimからfcitxに変更した。
自動的に起動せず、スタートメニューからfcitxを選択して起動しないといけなかったので、PulseAudioのときと同じようにStartupディレクトリにシェルスクリプトを書いてXの起動時にスタートアップ起動されるようにした。
Startupにスクリプトを置くとstartxのたびにmozc_serverが起動される可能性があるのと、端末でenvを調べてみたらuimを消して、fcitxをインストールしたところ
CLUTTER_IM_MODULE=xim
QT_IM_MODULE=xim
QT4_IM_MODULE=xim
GTK_IM_MODULE=xim
XMODIFIERS=@im=uim
となっていた。
本当は大元を変更したいのだが、どこに設定があるのかわからなかったので、/root/.profileファイルに
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
とし、ついでに
fcitx -d
も追加して、Startupにスクリプトを置くのをやめた。
「Fcitxの設定」の「アドオンに」に「Fcitx XIM Frontend」というものがあるので、各IM_MODULEはximのままでも良いのかも知れないが。
CLUTTER_IM_MODULEはそのままにしておいた。
また、古い記事でibusに関するものではあるが
個人的Linux: 新ibusになって日本語入力が困ったことに
ブラウザに書き込みができず、GTK_IM_MODULEとQT_IM_MODULEをximにしたらうまくいったというのがあるので、変えないほうが良いのかも知れない。
ちなみに、「Fcitx XIM Frontend」の設定で「XIMで On The Spot スタイルを使う(起動中は変更できません)」という項目にチェックを入れないと入力途中の文字がテキスト入力欄に書き込まれず、ポップアップに表示され、変換決定後にテキスト入力欄に書かれることになる。
追記
実は/etc/X11/xinit/xinput.dディレクトリにfcitxファイルやja_JPというファイルがあり
XIM=fcitx
XIM_PROGRAM=/usr/bin/fcitx
XIM_ARGS=""
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
DEPENDS="fcitx"
と書かれている。
しかし、効いてないらしい。
また、/etc/X11/xinitディレクトリにxinputrcというファイルがあり、ここに
run_im uim
と書かれていた。
これを
run_im fcitx
とすれば、~/.profileに
fcitx -d
と書かなくても、自動的にFcitxが起動するかも知れない。
試して見たところ正解だった。
これで、.profileに書かなくて良くなった。
追記終わり
JWMではfcitxが起動されてもアイコンが出ない。
ただスペースはできるが、何も表示されず、右クリックなどでメニューも出ない。
アイコンがないのか何なのかよくわからない。
Openboxでは出るようだ。
それでもスタートメニューの「Fcitx設定」でMozcを一番上にしてもうまくいかないので、他の設定をいじってみることに。
「Fcitx設定」の「アドオン」にある「Classic」の設定を変えてみた。
「状態パネルを隠すモード」という項目を「表示」にするとWindowsなどでMS-IMEやATOKなどでも出てくるツールバーが出てくる。
これでタスクバーにアイコンがなくても入力メソッドの設定を変えられるようになる。
右クリックで「入力メソッド」を選んで「Mozc」を何回か選択していたら、いつの間にか使えるようになった。
ペンギンマークをクリックしても切り替わる。
起動し直して確認してみないことにはなんとも言えないが、多分、再起動するとまた最初のうちは使えないのではないかと思う。
ちょっとすっきりしないところはあるが、まあ、Mozcをrootで使うことには成功した。
このくらいで満足しようと思う。
アドバイスをしてくれた匿名さんには感謝したい。
その後、途中に追記した/etc/X11/xinit/xinputrcや~/.profileの設定がうまくいったのか、自動でMozcが起動するようになった。
しかも、Puppy Linux日本語フォーラムにあるscim-mozcをインストールしたときよりもメモリ消費量は小さい。
mozcを有効にしたあとでも250MB以下である。
かなり快適になったと思う。
Anthyを使っている場合は200MBよりも小さいメモリ消費量なので、そちらを使うのもなかなか魅力的だ。
辞書を強化するとかなり使える。
どちらを使うか悩ましくなってしまった。
うれしい悩みではある。
匿名さんから再びコメントをもらった。
/etc/apt/preferences
/var/lib/synaptic/preferences
にある
Package: jwm
Pin: version 2.1.0+svn579-2ubuntu1
Pin-Priority: 1001
というところのPin-Priorityを変えて、apt-getかSynapticパッケージマネージャでJWMをアップデートすると良いそうだ。
この値を100に変えて、
apt-get update
apt-get upgrade
でJWMがアップデートされる。
このPinとPin-Priorityの仕組みは、特定のバージョンのアプリを使い続けたい場合に指定するものだ。
XenialDogやPuppy Linuxは軽量化のためにウィンドウマネージャにJWMを使い、さらにアプリやフォントを必要最低限のもの以外を削るなど、最適化している。
JWMをアップデートすることでこの最適化した設定が変わったり、設定との齟齬が出てきて動かなくなると困るのでアップデートされないようにしているのだろう。
実際、JWMをアップデートすると/etc/jwm/system.jwmrcを書き換えるかどうかという質問がある。
バックアップを残して書き換えてみた。
メニューのフォント設定、色設定やメニューに表示するアプリの設定などが変わってしまう。
ただ、個人設定は~/.jwmrcに書かれてあり、こちらでいろいろな設定が上書きされているので影響は小さいかも知れない。
不具合が出たら元のファイルに戻そう。
タスクバーにfcitxのアイコンが表示されるのを確認したら、念のためそれ以上アップデートされないように再び
/etc/apt/preferences
/var/lib/synaptic/preferences
を書き換える。
アップデートされたJWMのバージョンは2.3.5-2なので
Package: jwm
Pin: version 2.3.5-2
Pin-Priority: 1001
にしておいた。
アップデートする際は使うツール、APTかSynapticパッケージマネージャの側のpreferencesだけを書き換えれば良かったが、この変更はどちらのpreferencesも書き換えないと、片方のツールを使ってアップグレードを実行した場合に、前のバージョンにダウングレードされてしまうだろう。
ちなみにpreferencesにはJWMの他にカーネルのPin情報がある。
これもXenialDogでapt-getやSynapticパッケージマネージャでアップグレードを行った場合に更新されないようにするためだ。
XenialDogやPuppy Linux(TahrPupやXenialPupなど)は通常のUbuntuとは構造やファイル群の読み込み方法が違うため、そのままアップグレードするとXenialDogが動かなくなる。
Puppy Linuxではカーネルアップグレードはほとんど行われないが、XenialDog(DebianDog)はカーネルアップグレードが頻繁に行われるのが利点だ。
APTやSynapticパッケージマネージャで行うのではなく、メニューの「Upgrade-Kernel(frugal install only)」で行う。
軽量Linuxは作ったときのアプリやカーネルのバージョンで最適化されているので、軽々しくアップデートされないように、こういうところにも気が使われているのだなと思った。
変更後のデスクトップ画面はこんな感じ。
右下のタスクバー、スピーカーアイコンの左側にキーボードアイコンが出ている。
タスクバーにこのfcitxのアイコンが出てきたので、デスクトップ右下、タスクバーの上にある「状態パネル」と呼ばれる変換エンジンのツールバーは必要なくなったのだが、とりあえずこのまま表示させておくことにした。
匿名さんには重ね重ねお礼を申し上げたい。
見た映画『プリディスティネーション』『グッドナイト・マミー』
とある酒場にやってきた男が、酒のボトル1本と引き換えにバーテンダーに、自分がかつて女性だったということから始まる数奇な人生を語る。
それを聞いたバーの店主は、実は時空を超えて犯罪者を追う捜査官で、男に捜査官の仕事を引き継ぐことを条件に彼の心残りを過去に戻って果たすことチャンスを持ちかける。
そんな感じのあらすじだ。
テーマとして感じたのはなんといっても輪廻。
話の大部分はバーに現れた元女性である男の半生なのだが、彼が恨みや心残りを感じているきっかけを作ったある男というのも、自分自身も、そして彼を過去へ連れていくバーテンダーで時空捜査官も、大きな時空の輪廻の中にいることが後半、一気に明らかになる。
オーストラリアのSF映画だそうだ。
1970年前後にタイムマシンができたようだが、タイムマシンが時刻設定が南京錠にあるようなダイヤル式でレトロな作りになっている。
その割に元女性だった男が女性時代に入った宇宙へ行ける人材を育てる組織の設備は、そのまま現在か少し先の未来の風景なのが不自然だった。
その組織は実は時空捜査官とつながりがあるので未来を見てきてその技術を取り入れたという理屈はつくのかも知れないがちょっと不釣り合いだ。
タイムマシンの方はバイオリンのケースを模してあるのでレトロな作りなのだという見方もできないわけではないが。
あとネタバレになるが、元女性の男をバーテンダーが見た時や、男が元は女性だったと告白したときのバーテンダーの反応がちょっと不自然。
秘密が後半一気に解明されるが、前半部分で見ている人に意識させるような伏線があるわけではないので、「なるほど」と思うような感じではなく、「そういう終わらせ方か」という感じだった。
でも、なかなか面白いので時間があったら見てみると良いと思う。
双子の兄弟ルーカスとエリアスは、顔に包帯を巻いて帰ってきた母親がエリアスにばかり優しいなど不審な点が気になり、母親が入れ替わっているのではないかと疑念を抱く。
包帯を外した彼女は整形をしていたせいで少し見た目が変わっており、そのことが更に疑念を深めていく。
ある時、母親が寝ているうちに彼女をベッドに縛り付け、偽物であることを白状するように拷問を加える。
しかし、実は母親は本物で…。
これは文句なく面白い。
そんなに盛り上がりがあるわけではないが、『シックス・センス』を思い出させる作品だった。
最後は残酷な結末だが、ああすることでエリアスにとっては自分が納得できる世界を手に入れることができた。
これはオーストラリアではなくオーストリアの作品である。