【Obsidian】Mac、Windows、iPhone でノートを同期する。

obsidian

自宅の Mac、出先の iPhone、職場の Windows PC でメモを共有したいなぁ、と思いつつ、なかなかいいソフトウェアに巡り会えないでいた。
 筆者は markdown でメモを取るので、出来れば markdown が反映されるメモアプリが欲しいなぁ……。
 アホ面でそんなこと考えていたら、あった。そんなノートアプリがあったのである。

Obsidian

Obsidian アプリアイコン

💎 Obsidian

Obsidian というのがそれだ。アブシディアン、あるいはオブシディアンみたいな読み方だろう、たぶん。黒曜石という意味だそうだ。
 macOS、Windows、Linux、iOS、Android、それぞれにクライアントがある。「Obsidian Sync」という機能を使うのでなければ、いまのところ、無料で利用できる(有料で使用するコースもある Pricing – Obsidian)。
 使用中のスクリーンショットはこんな感じ。

左にノートのリストがあり、右側でノートを編集する。きわめてシンプルな形式だ。

使いはじめる

Obsidian をダウンロードして起動すると、下のウィンドウがあらわれる。

保管庫を設定する

Obsidian で作成したノートは、md ファイルとして保存される。その保管庫をここで決めるわけだ。DropBox だの Google Drive だののフォルダに保管庫を作成すれば、クラウドでファイルを同期できるようになる。

また、下のほうにある Language で日本語を選択できるので、やっておくのが良いと思う。

iCloud Drive での同期に難ありか

最初にいっておくと、2022 年 12 月現在、iPhone での同期に難がある。iPhone の Obsidian は iCloud Drive とローカルにしかノートの保管庫を作成できない。その場合、iPhone と Mac での同期に問題はない。
 Windows PC から iCloud Drive のファイルを編集した時に問題が出てくる。
 たぶん自動保存のタイミングで、「タイトル」「タイトル(1)」「タイトル(2)」のように、カッコのついたファイルが増産されてしまうのだ。
 Windows で次回 Obsidian を起動しようとすると、このカッコつきのファイルが邪魔をして、ファイルのロードが出来なくなってしまう。起動しなくなるのだ。

しかたないので、筆者は保管庫を OneDrive に作成して、Mac と Windows でノートを同期している。iPhone にも OneDrive をインストールしておけば、ノートを閲覧できるようになる。

この不具合(?)はしかし、いつか修正されるのではないかと思っている。
 それまでの急場しのぎは、最後に書く。

メモを作成する

Obsidian はいろんなことが出来るようなのだが、基本はこれだけだ。
 

  1. command + O でクイックスイッチャーという、スポットライトみたいなやつを出す。
  2. ノートのタイトルを入力する。
  3. そのタイトルのファイルが生成されるので、内容を書く。
クイックスイッチャー

上述したように、markdown で、文書を構造化しながらノートを書ける。

🖋️ ノートをフォーマットする – Obsidian 日本語ヘルプ – Obsidian Publish

しかも、書いたそばからライブで markdown で指示したように表示される。ここがイカツい。
 例えば、左ペインにソースを書いて、右ペインに整形された文書が表示される、とかいうのではない──ないが、そういうのが好みであれば、そういうやり方も出来る。
 右上の開いた本みたいなアイコンを、command + クリック すれば以下のようになる。

2 ペインで編集することも出来る

同じように見えるが、左ペインで文書を編集すると、右ペインに整形された文書が表示される。

なお、クイックスイッチャーは、保存したノートのタイトルを検索して開く時にも使う。というかそっちがメインで、検索したタイトルがない場合は、ファイルを新規作成する。このへん、ちょっと Emacs を思い出させる。

ファイルは、先ほど作成した保管庫フォルダの直下に保存される。編集されるごとに自動で保存してくれて便利だ。
 また、左のファイルエクスプローラーで新規フォルダを作成できる。ファイルをフォルダ分けして整理できてしまうのだ。

リンクの作成

Obsidian の大きな特徴として、ノート同士のリンクを簡単に作成できる、というのがある。文書同士をリンクして、関連したノートをすぐに確認できるようになる。
 このへん、セカンドブレインを標榜する Obsidian の真骨頂だろう。それぞれのノートの関係性こそ大事、みたいな哲学なわけだ。

リンクの貼付は以下のように書く。

[[リンク先のタイトル]]

 
[[ と入力すれば、ただちに受けの ]] が生成され、ノートのリストがフローティングウィンドウにあらわれる。そこからリンクを張りたいタイトルを選択するだけだ。目当てのタイトルを 2、3 文字打ちこめば、リストが絞りこまれる。

リンク作成の挙動

また、単に左のリストから編集画面にノートをドラッグ&ドロップするだけでもいい。
 このリンクの記法はウィキリンクと呼ばれるもののようで、これを普通の markdown のリンクにしたい場合は、「設定>ファイルとリンク>ウィキリンクを使用」のスイッチを切る。

設定画面 1

また、command + G で文書の繋がりを図にしたグラフビューというのも見られる。

グラフビュー

画像の貼付

ネット上の画像などを右クリックでコピーして、Obsidian にペーストすると、画像を貼付できる。

画像の URL にリンクして、ネットから画像を呼び出している。これを、画像をダウンロードしてリンクする方法もある。

command + , で設定を呼び出し、
 「設定>ファイルとリンク>新規貼付ファイルの作成場所」を「以下で指定したフォルダ」にし、その下の「貼付ファイルフォルダのパス」に、保存したいフォルダの名前を入力する。

設定画面 2

保管庫のなかにその名前でフォルダを新規作成すれば、右クリック画像コピー、ペーストするだけで、ここに画像が保存されるようになる(画像のリンクがかかっているとうまくいかないことが多い)。

保管庫に画像を保存

タグ付け

おなじみ、#タグ で文書にタグをつけられる。
 タグをつけた文書は、command + shift + F で検索欄を出し、「tag:検索したいタグ」とやれば呼び出せる。

タグの検索

デイリーノート

左肩のカレンダーのアイコンをクリックすると、きょうの日付けでノートが作成される。すでにある場合は、そのノートに移動する。
 これがわりと便利で、業務記録とか日記とか、todo 管理なんかに力を発揮する。
 todo はちなみに以下のように書く。

- [ ] 酒と煙草を買う。
- [x] 漫画を買う。
ToDo リストの挙動

こんなふうに表示され、チェックは、マウスクリックで入れられるようになる。
 これだけでも使い道がたくさん出てきそうだ。

canvas

2022 年 12 月 20 日リリースの v1.1 から、canvas という機能も使えるようになった。

新機能 canvas

他にもいろいろある

  • プラグインがある。
  • CSS で外観をカスタマイズできたりする。
  • command + P で呼び出せるコマンドパレットで、キーボードから手を離さずにさまざまな操作を行える。
  • デイリーノートで、その日のノートを作成、移動できる。
  • テンプレートで今日の日付けを挿入したりができる。

みたいな感じ。
 詳しくは、ここからはじめる – Obsidian 日本語ヘルプ – Obsidian Publishなどを参考にするのがいいと思う。

正直、難しいことはわからない。ノート間のリンクとか、グラフビューとかの価値ももうひとつわかってない。使い続けてればわかってくるんだろうか。

筆者にとって重要なのは、Mac と Windows、少々難ありだが iPhone、試してないけど Android、Linux でもノートを共有できる、という点だ。もし仮に将来、Obsidian が使えなくなったとしても、markdown ファイルは残る。ファイルはしかも、ローカルとともにクラウド上にもバックアップされる。

markdown はテキストファイルなので、普通のテキストエディタであつかえる。その安心感があってこそ、この先、労力をかけてノートを書き溜めることが出来るというものである。保管庫のなかにすべてのノートを放りこむ、というファイル構成の単純さも好ましい。保管庫の引っ越しも、フォルダを移動するだけですむ。
 Obsidian というのは、黒曜石の矢尻みたいな、原始的だけど強力な道具という意味をこめたのかもしれない。この単純さこそ武器なのだ。ずっとこんな感じで進化して欲しいものである。

ただ、ノートが何千、とかいう規模になってくるとちょっとわかんねぇか。動作が鈍くなったりするのかも。ま、いまのところ、すごく気に入ってしまった。ノート書きまくてやろうと思っている。

iCloud と OneDrive の同期

上述したように、iCloud Drive に保管庫を作ると、Windows 上の Obsidian での同期に難が生じる。
 しょうがないので、Mac で Obsidian を開いた時に、rsync コマンドで iCloud と OneDrive の保管庫を同期することにした。使用したのは Mac のユーティリティアプリ、Hammerspoon と、シェルスクリプトである。

📝 mdsync.sh

#!/bin/sh

rsync -aru /Users/USERNAME/Library/CloudStorage/OneDrive-個人用/ドキュメント/md保管庫  /Users/USERNAME/Library/Mobile\ Documents/iCloud~md~obsidian/Documents

rsync -aru /Users/USERNAME/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/md保管庫  /Users/USERNAME/Library/CloudStorage/OneDrive-個人用/ドキュメント

rsync は、 rsync コピー元 コピー先 のように使用する。コピー先には親フォルダを指定する。 -u というオプションは新規ファイルや、更新したファイルだけを同期するものである。
 Hammerspoon の init.lua には以下のように書いた。

📝 init.lua

-- obsidian sync

function syncEvent(name, event, app)
    if event == hs.application.watcher.activated then
      --hs.alert.show(name)
        if name == 'Obsidian' then
            hs.execute("sh /Users/USERNAME/MyProgram/mdsync.sh")
            --hs.alert.show('sync')
        end
    else
        if name == 'Obsidian' then
            hs.execute("sh /Users/USERNAME/MyProgram/mdsync.sh")
            --hs.alert.show('sync')
        end
    end
end

mdWatch = hs.application.watcher.new(syncEvent)
mdWatch:start()

hs.execute で、先ほどのシェルスクリプトを実行している。
 タイミングは、Obsidian をアクティブにした時と、別のアプリに移ってディアクティブになった時とした。

いうまでもなく、これだけでは Windows と iPhone の同期は取れない。Mac が間に入ることで Windows も同期される。
 筆者は Mac がメインなのでこれで問題なしだが、Windows がメインのひとには、別の方法が必要になるだろう。たぶん、フォルダを同期するフリーウェアみたいなのがあると思う。