Twitter や facebook ではそれなりの頻度で触れている話題なのですが、9月末にキングジムのポメラ DM200 を購入しました:
1 開封


小型 PC(といっていいのか?)の中では抜群のキーボード操作性を持ち、テキスト入力作業中心に使う人からの人気が高い機種です。ただ自分の場合は購入当初から普通にテキスト入力機として使うつもりはなく、Linux(Debian) 化できることを理解して、Linux 化して使うつもりで購入しました。DM200 の Linux 化手順や Linux 化直後の各種ツールの導入については以下の2つのサイトが有名で、実際に自分も大変お世話になりました。先人たちの努力で Linux 化は非常に簡単でした。感謝を意を表すと同時に、DM200 の Linux 化についてはこちらを参照いただけると一連の手順が非常にわかりやすくまとまっています:
pomera DM200 の Linux 化のメモ
KING JIM ポメラDM200でEmacs、Vim、Ruby、Pythonが動くなんて素敵すぎる!


実際に自分も日本語環境を含めて X Window 対応を行い、普段使いの PC でも使っている開発者エディタである VSCode を導入したり、オフィススイートである LibreOffice を導入したりしてみました。DM200 はメモリが 0.5GB しかないこともあり、正直なところ VSCode や LibreOffice はちと重すぎで、軽快な作業というわけにはいかないアプリでした:
3 vscode


一方で X Window を使わなければ充分に軽快なテキスト編集マシンとして使えそうだという感触は持っています。ただ X Window 自体が悪というわけではなく、「重さを感じるかどうかは X Window 上で動かすアプリケーション次第」だと思っています。画像編集アプリとか、FireFox のような重めのアプリだと厳しそうですが、軽いアプリなら X Window でもまあ苦にはならないな、という印象です:
6 scratch


この DM200 の Linux 化環境、なんといっても(アーキテクチャが同じなので)「ラズベリーパイ向けの資産の多くが使える」のです。重い X Window アプリだから使わない、というのはあまりにもったいないと思いました。今の所の自分の感覚では
・テキスト入力
・コーディングや動作確認を含めたプログラミング
・SSH などによるリモート操作端末
としての利用であれば、最高に使いやすい物理キーボードと合わせて快適に使える環境だと思っています。

そんな自分が現時点で DM200 に導入してよく使っているアプリケーションをいくつか紹介させていただきます。なお特にリンクをつけていないものは上述のページの手順内で紹介されているものか、標準作業で導入されるものです。


【日本語テキスト入力用】
- uim-fep
- IBus
- vi/vim

日本語FEPとテキストエディタという、本来のポメラが得意とする使い方を Linux でも使う、というものです。この使い方に限っては Linux 環境ではなく、普通のポメラとして使ったほうが(便利な各種辞書なども併用できるなど)便利であるとは思います。 ただ入力したテキストをインターネットを使って外部とやりとりする段になった時に Linux 環境であったほうが断然便利で、自分はそのように使うことが多いので、困らない限りは Linux 環境で入力も行っています。

また当初は screen や tmux といったターミナルマルチプレクサーも使っていましたが、ALT + Fn キーで端末を切り替えたり、X Window であればターミナルを複数起動したりすることで同様の操作ができるのであまり使わなくなりました。ちなみにターミナルが複数必要な理由ですが、DM200 の Linux で無線LANやBluetooth(外部マウス)の有効化/無効化時に root 権限での作業が必要※になり、切り替えが面倒だったのでターミナルごとわけて使っている、という背景があります。

※普通の PC のように両方ともはじめから有効にしておけばいい、という声もあると思いますが、この2つはどうも互いに干渉するようで、なるべくなら両方有効にはしたくないという事情と、無線 LAN については使う環境で接続先を切り替えて使うことになるのですが、その切替にコマンドライン操作が必要という事情があるのでした。


【プログラミング用】
- Node.js
- Uzbl
- ngrok
- cf cli

ある意味「このためにポメラ DM200 を購入した」という使いみちでもあります。まず自分の普段のメイン開発言語が Node.js なため、Node.js & npm を導入しています。またウェブアプリケーション開発時の動作確認用にウェブブラウザが必要なのですが、FireFox が重いので Uzbl という軽量ブラウザを使っています。軽量で便利な一方、JavaScript の互換性が充分ではないので、多少苦労することもあります。

ngrok はローカルで開発したアプリケーションを一時的にインターネットに公開する IP フォワードツールです。一時的とはいえ、外部の人にも使ってもらえるようになるのがとても便利。

で、ある程度動くようになったらサービスとして公開するのですが、その際に安価な IBM Cloud の Cloud Foundry 環境で公開することが多く、その時に cf cli ツールを使います。

その他 git なども使ってますが、ほぼ最初から導入済みの環境なので割愛します。

おまけでプログラミング環境として Node-RED や Scratch も導入できました($ sudo npm install -g nodered や $ sudo apt-get install scratch で導入できます)。ただ自分自身がこの環境をあまり使うわけではないのと、Node-RED を localhost で動かす際のブラウザが Uzbl だとちゃんと動かない箇所があったりしてイマイチな感じ(FireFox とか使えばいいんでしょうけど重くて・・):
5 nodered


【リモート操作端末用】
- SSH
- OpenVPN クライアント
- VNC Viewer
- x3270

DM200 購入時点ではあまり想定してなかった使いみちでしたが、使い勝手のいいキーボードや、DM200 の(Linux としての)非力さを補う使い方という相性の良さもあって、使いみちの中心がこのリモート操作端末に移行しつつあります。

リモート操作のほとんどは SSH で済ませています。ただその際に VPN 接続が必要な場合もあり、その場合は OpenVPN クライアントで接続しています(普通に $ sudo apt-get install openvpn で導入できます):

(↓ 右のターミナルで OpenVPN して、左のターミナルで SSH 接続してます)
8 ssh


また VNC Viewer を使ってデスクトップ環境へリモート接続も可能です。このあたりはラズベリーパイと同じアーキテクチャであることで、多くのツールが DM200 でも使えるメリットを生かしています:
s4QNvdc


ほとんどの人は不要だと思いますが、3270 と呼ばれるホスト端末のエミュレーターを使うことがあります。自分は上述の x3270 のフリーソフトを使っています。ソースコードからビルドする必要がありますが、普通に $ ./configure && make して、 $ sudo make install で導入できます。



といった具合で使っています。もともとは出先でのプログラミングマシンとして購入したのですが、クラウドなどの各種サーバーにログインして操作するための環境としての便利さにも気づき、今は利用用途が半々くらいになっています。なんといってもキーボードで不便さを感じずに使えることがストレス無く利用できて、素晴らしく便利です。