AeroSpace / NeovimでObsidianに一発メモを書く環境を作った

はじめに

Obsidianを最近使い始めたのですがメモを取る際に、Obsidianを開く->デイリーのノートを開くという手順を億劫に感じていました。またNeovimをIME代わりに使うという記事を思い出したのでメモを取りたい時にNeovimを開きその内容をObsidianに追記できたら便利そうだと思ったのでやってみました。以下がこの記事で構築するものです。(alt+mでNeovimが出てきます。) menuconfig

Obsidianの設定

プラグインの

  • QuickAdd を入れます。

QuickAdd

add_memoというキャプチャを作成し、以下を設定します。 menuconfig

  • Capture to active file: off
  • File Path/FormatのPreview: daily/{{DATE:YYYY-MM-DD}}.md
  • Write position: After line
  • Insert After: メモ用のセクション

menuconfig

  • Insert at end of section: on
  • Capture formatのPreview: - <% tp.date.now("HH:mm") %> {{VALUE:data}}

AeroSpaceの設定

HyprlandのSpecial Window的なものはAeroSpaceにないっぽいので以下のプラグインを使用します。README.md通りにインストールしてください。

スクリプトの作成

好きな場所でadd-obsidian-memoを作り以下を記述します。[[VAULT]] は使っているvaultの名前を指定してください。また、私はAlacrittyを使用しているのでAlacrittyを指定していますが別のターミナルの場合は読み替えてください。保存後に実行権限を付与してください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash

tmpfile=$(mktemp -t obsidian_memo).md

alacritty \
  --class "obsidian-memo,obsidian-memo" \
  --title "Obsidian Memo" \
  -e zsh -lc 'nvim -n "$1"' sh "$tmpfile"

[ ! -s "$tmpfile" ] && rm -f "$tmpfile" && exit 0

memo=$(cat "$tmpfile")
rm -f "$tmpfile"

encoded=$(python3 -c 'import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1]))' "$memo")

open --background "obsidian://quickadd?vault=[[VAULT]]&choice=add_to_memo&value-data=$encoded"

設定ファイルの変更

以下を~/.aerospace.toml に記述してください。

1
2
3
4
5
6
[mode.main.binding]
salt-m = 'exec-and-forget 上のスクリプトのパス'
[[on-window-detected]]
if.app-name-regex-substring = "Alacritty"
if.window-title-regex-substring = "Obsidian Memo"
run = "layout floating"
Licensed under CC BY-NC-SA 4.0
Hugo で構築されています。
テーマ StackJimmy によって設計されています。