Linuxには純正のEvernoteアプリがないので、web版かNixNote2などの他者製アプリを使うしかない。他者製アプリは純正に比べればどれも今ひとつなのだが、いろいろ試して一番まともだったNixNote2を使っている。NixNote2自体の完成度が低いうえに、使い方の情報が余りないので、諦め・試行錯誤しつつ使っているのだが、たまに、それまで無理と思っていたことができることに気付いて驚く。ここではそういうものを紹介する。なお、対象のバージョンは2.1.4(現時点での最新版)である。

複数アカウント・ウインドウでの同時起動

NixNote2は複数のEvernoteのアカウントを切り替えて使うことができるが、(切り替えでなく)同時に使いたい。調べてみたところ、起動時のオプション(--configDirや--userDataDir)を指定すれば、別々の設定で起動できることが分かった。それを使えば、複数アカウント(例: 個人用と仕事用)のNixNote2を同時に起動することができる。ただし、アカウントごとに別のウインドウになる。

2つ目のアカウントで起動する例:

nixnote2 start --configDir=$HOME/work/Nixnote2 \
--userDataDir=$HOME/work/Nixnote2/data &

※2つ目のアカウントを完全に独立にしたいので、設定とデータのディレクトリ(上では$HOME/work/Nixnote2)を新しく作った。

2つのアカウントでNixnote2を同時起動した例

※純正アプリは複数アカウントの同時使用や同時起動はできなさそうなので、これはNixNote2の数少ない優位点なのかも知れない。

ノートをタブ・別ウインドウで開く。

タブで: (メニューバーの)メニューにないので気付かないが、ノート一覧でノートを右クリックして"Open Note In New Tab"を選択すればいい。

別ウインドウで: これもメニューにない。ノート一覧でノートを右クリックして「ノートを開く」を選択すればいい。右クリックメニュー(の翻訳)が分かりにくい。

※こういう機能はヘルプなどに書いてあるのかも知れないが、読んでもがっかりしそうだし、まさかできるとは思っていないので、気付きにくい。

[2019/9/13 19:34: 同期がうまくできなくなる可能性があることが分かったので、この項は無効にする] DBのwalファイルを小さく・サイズ制限する。

NixNote2はEvernoteのデータをSQLiteのDBとしてローカルに格納している。そのDBのwalファイル(書き込んだデータの一時保存用)が肥大化する(しかも、いつになったら本来のDBに書かれるか不明)ので、適宜DBに反映し、サイズを制限(、あるいは0に)したいと思った。というのは、walファイル自体は問題ではないのだが、本来のDBに反映される時期が不明なのが気持ち悪いし(NoxNote2がちゃんと処理していないせい?)、ファイルサイズが無制限に大きくなるのは気に入らないし、定期バックアップ時の更新データ量が増える気がするので、定期的に本来のDBへの反映を行い、更に、サイズを小さくすることで、定期バックアップ時の更新データ量を減らそうと思ったのだ。調べたら、SQLiteのコマンドでできることが分かった。

walファイルの中身をDBに書き込み、サイズを10MBに制限する例:

wcp_max_size=10485760; cd $HOME/.nixnote/db-1 && \
sqlite3 nixnote.db "pragma journal_size_limit=$wcp_max_size; \
pragma wal_checkpoint"

僕は、上記のような処理を定期的に(数時間に1回)実行している。

なお、walファイルのサイズが0でなくても、一時保存データは全部DBに反映されているようだ。サイズを0にすると、ファイルに追記するために、(SQLiteの)処理が遅くなるとのことである(おそらく、この用途では全く問題ないだろう)。逆に0にしなければ、walの先頭から再利用(上書き)されるようだ。

話は少し変わるが、SQLiteのDB(nixnote.db)にアクセスすれば、ローカルに格納されたノートに直接アクセスすることができる。例えば、間違ってノート名を変更してしまって、元のノート名が分からなくなってしまった時、あらかじめバックアップしていたDBを開いて、元のノート名を調べて復活することができた。この時、問題のノートのLID(ノートのID?)でバックアップのDBからそのノートを探した。有料会員だと履歴があるから、こういう時も安心なのだろう・・・

ちなみに、僕は、この「気付いたらノート名が変わっていた問題」などへの対処(予防)のため、Nixnote2のDBを、ある程度は履歴が残る定期バックアップの対象にすることにした。その時に、最初に書いたwalファイルのサイズが大きくて気になったので、小さくしようとした。

※いずれもNixNote2との競合が心配なので、自己責任で行うこと。SQLite自体は排他制御しているので問題ないが、NixNote2の内部処理がこのような外部での変更を許容するかは分からない。

ノートが編集不可になることの回避・復活

NixNote2のノートが突然編集不可になる(なっている)ことがある。それは、概ね、画像とテキストを一度にペーストしたためである(その時は問題ないのだが、次に開くと編集不可になっていて呆然とする)。なので、そういう操作をしないようにすれば(画像とテキストを別々にペーストする)回避できる。

また、もし編集不可になってしまったら、以下の手順で復活できる。

  1. 一時的に編集可能にする。: ツール → "Disable editing"を2回程度(編集可能な状態になるまで)実行する。
  2. 画像とテキストを一度にペーストしてしまった部分を(見当を付けて)削除またはカットし、どこか(ワープロなど)にペーストする。
  3. 画像とテキストを別々に再度挿入またはペーストする。

※おそらく、ノートのソース(HTML)を見れば、何が問題か(おそらく、ノートのタグ構造がNixNote2が理解できなくなっているのではないか)分かり、うまい復活手順も分かるだろうが、まだできていない。そもそも、NixNote2が悪いので、何とかして欲しい! (今までにさまざまな諦めをしていて、指摘しても対応してくれるか分からないので、していない)

メモリリークへの対処

NixNote2を使い続けると(特に、ノートのエクスポートを行うと)、メモリ使用量が数倍に増大する。これを減らす方法はなさそうなので、定期的(あるいは、エクスポート後)に再起動するしかない。

  •   0
  •   0

コメントを書く / Write a comment

名前 / Name    

メール / Mail 

URL