AndroidタブレットでLedger cli
家計簿のみならず全ての会計帳簿は 即時性 と 継続性 を基礎にした 正確さ が命です。
Ledgerには大きなメリットがたくさんありますが、その一つは、記帳にかかる時間が(他の会計ソフトに比べて)とても短いこと、つまり人間工学的に即時性と継続性を実現しやすくできている点を上げることができます。
しかし、人間は欲深いというか生来のなまけ者というか、Ledgerを使っていると、もっと即応的に、もっと簡便にという欲望が湧いてきます。たとえば、 (1) PCの無い(または使えない)状態で、今すぐファイナンスの状態をチェックしたい、とか (2) トランザクションが発生した現場で即時的に記帳したい、とかです。
(1)については、ボクの場合にはたとえば「先月のガソリン代は?」、「同じものを別のサイトで購入した時の値段は?」などの他、月ごとの支出額などの 統計的 な推移を確認したくなります。また、(2) については、たとえば冠婚葬祭などのように、そもそも領収書やレシートが発行されない場合があります。
つまり、すでに十分に簡便で高機能なLedgerも使い込んでくると、どうしても補助機として何らかの モバイル機器 が欲しくなってきます。実際、いろいろなフォーラムなどでも、mobile+Ledgerが繰り返し話題になっています。それらを見ると、便利に使えそうな多種多様な選択肢やアイデアが提案されています。しかし、Mobileギアに求めるものは、その人の置かれている環境によって個人ごとに大きく異なります。これに関しては、すべての人に共通する 最適解 は無いと思います。
ということで、ここではボクが個人的にもっとも快適・便利と思われる補助機の持ち方を紹介しますが、「こんな風な使い方をしているヤツもいるんだ」「人それぞれだね」程度にごらんください。
環境条件
補助機は次のような環境です。
- Android タブレット:HUAWAI MediaPad M5
- Android version:9
スミマセン、HUAWAIがここまで話題になる前のバージョンですw 母艦となるPCはデスクトップLinux(ubuntu16.04)ですが、ほとんどの仕事はThinkPad X230(ubuntu 16.04)で済ませています。
ポリシイ
次のような機能を実現することを目的としました。
- Androidタブレットで、できるだけPCと 同レベル のledger機能を使えるようにする
- Androidタブレットで、現場で 即時的 にトランザクションを書けるようにする
- PCとタブレットの間で 安全 に元帳データの共有ができる
実際にやったこと
- Playストアから AnLinux をインストールし、ubuntuを選択
- Playストアから Termux と Hacker’s Keyboard をインストール
- その他
$ pkg install
したものは- ledger
- emacs (自分の好みに調整された
init.el
も複写する)
基本的にはこれだけで、Termuxのターミナル上で次のようなコマンドが動きます:
$ ledger bal ガソリン -p jul -X JPY
$ ledger reg farming -p aug
$ mbal 交際費
最後の mbal
はこのシリーズ(4)で紹介したスクリプトです。上記コマンドを実行した時の画面イメージは図1のようになります。
画面下部のキーボードがHacker’s Keyboardです。これはLinuxターミナル用にはとても便利。ただ残念なことに日本語対応していません。日本語入力が必要になったら、その都度キーボードを切り替えなければなりません。だれか日本語対応版を作ってくれないでしょうか?
Termuxの細かい使い方はネット上によい紹介がたくさんありますので、そちらをごらんください。ここでは特に気に入っている機能(=同時に 複数のセッション を開く機能)だけ、紹介しておきます。
新しいセッションを開きたい時には、現在起動中のTermux画面を左端から右に向かって スワイプ します。すると図2のような窓が画面左上に開きます。既存のセッション名がこの窓に表示されます。新規セッションを開くには NEW SESSION をタップします。
この機能があるので、わりに込み入った作業もTermux上で何とかこなすことができます。もう少し早くから知っていれば人生が違ったものになったのに・・・(言い過ぎですw)
< おまけ > 細かいですが、
.bash_profile
とか.bashrc
とかもAnLinux/ubuntuのホームに複写しておくと楽。それから、Ledger関係では.ledgerrc
,.prices.db
,ledger-schedule.ledger
などをホームに複写しておきましょう。
ledgerファイルの共有のために・・・
母艦PCとタブレットの間でのデータ共有・交換は、gpgで暗号化したファイルだけにしたいので、 gnupg をインストール:
$ pkg install gnupg
これだけです。
あとは、 syncthing のインストール。これで、PCとタブレットなどの間でかなり自由度の高いファイル共有・同期が実現します。第1案ではDropbox経由での同期を考えたのですが、総合的に判断して、syncthingを使わせてもらっています。こんなに便利なものがフリーであって良いのか?と申し訳なく思いますが、この辺についてはネット上にたくさん情報がありますので、それをご覧ください。
使い方
以上の準備が終わると、PCが手元にない場合でも、トランザクションの発生時にただちにタブレットを使ってemacsで転記できます。その際、
(1)PCにある大元のledgerファイルをpgpで暗号化したファイルをsyncthingでタブレットの Sync
ディレクトリに持ってきて、それに追記する形にしても良いし、
(2)それが面倒なら、 Sync
ディレクトリ配下に、タブレットで緊急避難的にトランザクションをメモするための作業ファイルを用意しておいて、それに書き込んでも良いでしょう。
いずれにしても、ハンドリングするのは基本的に .gpg
ファイルと決めておいて、素の .ledger
ファイルはタブレットに残さないようにしています。
また、急にbalまたはregレポートでファイナンスの状況を確認することが必要になったときには、タブレット上でsyncthingを起動し、PC上の .gpg
ファイルを Sync
ディレクトリに読み込み復号化した後、ledgerで必要情報をチェックします。この場合にも、作業が終わったら、忘れずに素の .ledger
ファイルは削除しておきましょう(自分に言い聞かせています)。
いまのところ満足しています
マイAndroidタブレットでこの設定(AnLinux, Hacker’s Keyboard, syncthing, emacs, gnupg)が終わってからは、いつでもどこでもタブレットさえあれば、ある意味なんでもできるようになりました。なので、満足度はきわめて高いのですが、あえて言わせて貰えれば:
- タブレットの文字が小さくて、 老眼 には長時間の作業はきついです
- 加齢にともない 指先が乾燥気味 なので、細かいタッチ動作がタブレットに無視されることがあります。指先を舐めてタッチするのも人前ではできませんし・・・。
- Termuxに入ったemacsのバージョンが26.2、一方PCのほうは数カ月前にようやく25.3に上げたばかり。そのせいか、ちょくちょく細かいことですが想定外のことが起こります。
ま、これらはいずれもシステムの問題ではなくて、自分自身の問題ですね😅