Windowsでもデイリーノートのハードルを下げる
はじめに
前回のRaycastでObsidianのデイリーノートのハードルを更に下げるの続きです。
最後にwindowsでも同じことが実現できないかと悩んでいましたが、自分が満足できるそれっぽいものができたので共有したいと思います。
完成品
必要なもの
- Obsidian
- Advanced URI(コミュニティプラグイン)
- Obsidian Memos(コミュニティプラグイン)
- AutoHotkey
- PowerShell
- 前に出さないZ
コミュニティプラグイン
設定 > コミュニティプラグイン
の制限モードを有効化し、コミュニティプラグイン右側の閲覧
からAdvanced URI
とObsidian Memos
のプラグインを検索し、インストールと有効化をしてください。
Obsidianとコミュニティプラグインについての説明は割愛します。知りたい方は前回の記事を参照ください。
AutoHotkey
Powerful. Easy to learn.
The ultimate automation scripting language for Windows.
Deepl先生訳
パワフル。学びやすい。
Windowsのための究極の自動化スクリプト言語。
今回はショートカットキーを定義して、PowerShellを呼び出すために使用します。
PowerShell
Windowsに搭載されているコマンドシェル
前に出さないZ
特定のウィンドウを最背面に固定するためのソフトです。
やりかた
PowerAutomateでも実現できないかと模索しましたが、うまくいかなかったため、PowerShellのスクリプトをAutoHotkeyから起動するという方針をとります。
Scripts
Powershell
# アセンブリの読み込み
[void][System.Reflection.Assembly]::Load("Microsoft.VisualBasic, Version=8.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a")
# inputboxの表示
$input = [Microsoft.VisualBasic.Interaction]::InputBox("take a memo", "Take Obsidian Memos")
$memo = $input -replace ' ', '%20'
$now = Get-Date
$current_time = $now.ToString("HH:mm")
# MyVaultの部分を自身のvault名に書き換えてください。
Start-Process "obsidian://advanced-uri?vault=MyVault&daily=true&mode=append&data=-%20$current_time%20$memo"
雰囲気解説(AutoHotkey)
InputBoxの引数は、
メッセージ:テキストボックスの上のメッセージ
タイトル:ウィンドウのタイトル
です。
[Microsoft.VisualBasic.Interaction]::InputBox("メッセージ", "タイトル")
ターミナルでの実行方法は、Getting Started | Obsidian Advanced URIを参考に、Start-Process
コマンドを使います。
AutoHotkey
AutoHotkeyを起動し、左上のNew script
を選択してください。
好きな場所にスクリプトを作成して、下記のソースを貼り付けてください。
このとき、C:\to\your\ps1\path\takeAmemos.ps1
は先ほど作成したpowershellスクリプトのパスになります。
!m::
{
Run "powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Unrestricted C:\to\your\ps1\path\takeAmemos.ps1"
}
雰囲気解説(AutoHotkey)
1行目の!m
は!
がAlt
キーのことを指しており、Alt
+ m
でRun以下を実行します。今回はPowerShellのスクリプトを起動するようにしています。
-WindowStyle Hidden
をつけることで、実行時にPowerShellのウィンドウを閉じた状態で実行することができます。しかし、何故か不定期でウィンドウが開いたまま起動する問題があり正直謎です。
実行
作成した.ahk
ファイルをダブルクリックで実行して、前に出さないZとObsidianを起動してください。インジケーターから前に出さないZを右クリックし、ウィンドウ登録(W)
からObsidianを選択してくだい。
これで準備は完了です。
あとは、Alt
+ m
でpowershellスクリプトを起動しインプットボックスにテキストを入力するとObsidianに追記されます。
もし、PCを立ちあげる度に.ahk
ファイルと前に出さないZを起動するのが面倒な方がいれば、win
+r
でshell:startup
を実行し、スタートアップフォルダに.ahk
ファイルのショートカットと前に出さないZのショートカットを作成してください。これでPCを立ち上げる度に自動で起動してくれます。
認知している問題
- PowerShellのウィンドウが開いたままのことが多々ある。原因は分からないが、私はそこまで気にならないので無視。
- Inputboxが空のままでも書き込まれてしまう。こちらも自分は気にならないので無視。
おわりに
では、Windowsでも快適なObsidianライフをお過ごしください。
Discussion