はじめに
Obsidianのコミュニティプラグイン「Terminal」は、Obsidian内で直接コマンドを実行できる非常に便利なツールです。しかし、Windows環境で利用すると、ターミナルを開くたびに別ウィンドウでターミナルが起動してしまい、そちらを閉じるとObsidian内のターミナルも固まってしまうという厄介な問題がありました。
今回は、この問題を解決するためにプラグイン開発者が推奨している、Pythonを使ったスマートな公式解決策をご紹介します。
対象読者
- WindowsでObsidianを利用している方
- Terminalプラグインで別ウィンドウ問題に悩まされている方
- 標準のPowerShellやコマンドプロンプトを使い続けたい方
前提条件
この記事では、お使いのPCで以下の準備が完了していることを前提としています。
- Obsidianがインストール済みであること
- コミュニティプラグイン「Terminal」がインストール済みであること
-
Python 3.10以降がインストール済みで、コマンドプロンプトやPowerShellから
python
およびpip3
コマンドが利用できること
コマンドプロンプトやPowerShellを開き、以下のコマンドを実行してください。
python --version
Python 3.10.x
のようにバージョンが表示されればOKです。
問題の原因と解決策
この問題は、Obsidianがターミナルのプロセスをうまく管理できないために発生します。そこで、Pythonとそのライブラリの力を借りて、Obsidianにターミナルプロセスを直接制御させることで、別ウィンドウの起動を防ぎます。
手順は以下の2ステップです。
- 指定されたPythonライブラリをインストールする
- ObsidianのTerminalプラグイン設定でPythonのパスを構成する
ステップ1:必須ライブラリのインストール
まず、プラグインがターミナルを制御するために必要なPythonライブラリをインストールします。
コマンドプロンプトやPowerShellで、以下のコマンドをコピーして実行してください。開発者が指定するバージョンを正確にインストールします。
pip3 install psutil==5.9.5 pywinctl==0.0.50 typing_extensions==4.7.1
Successfully installed ...
のようなメッセージが表示されれば成功です。
ステップ2:ObsidianのTerminalプラグイン設定
次に、Obsidian側で設定を行います。
- Obsidianの
設定
を開きます
-
コミュニティプラグイン
のTerminal
内のProfiles
横のメニューアイコン をクリックします
-
win32IntegratedDefault
横の編集アイコンをクリックします
※Externalは外部ウィンドウとして開くため、Integratedを選択してください。
※Prepend(またはAppend)
でPowerShellやBashなどを選択することも可能です。
※利用しないターミナルは削除アイコン「ー」 をクリックして消しておくと後のメニュー表示で探しやすくなります。
-
Python executable
にPythonの実行ファイルパスを入力後、右のCheckアイコンをクリックして、右上のポップアップ表示にエラーが出ていなければ成功です
- 環境変数(PATH)に登録されていれば、
python
と入力するだけで動作することがあります
※うまくいかない場合は、where python
コマンドで表示されるフルパスを入力してください -
Name
を入力すると後のメニュー表示で探しやすくなります。
- 環境変数(PATH)に登録されていれば、
- 開いたダイアログをすべて閉じて、
terminal
を開いてください
- 先ほど設定したターミナルを選択してください
- ターミナルがObsidian内部で開き、外部ウィンドウは表示されないはずです
まとめ
ObsidianのTerminalプラグインがWindowsで別ウィンドウを起動してしまう問題に対し、Pythonを使った公式推奨の解決策を紹介しました。
ぜひお試しいただき、快適なObsidianライフをお送りください!