[[Obs089-Quick Settings by QuickAdd Script]]では、QuickAddを使ってよく使う設定をまとめ、Advanced URIで設定ウィンドウを開く方法を紹介しました。しかし、QuickAddは概念と操作がやや複雑なため、正しく設定するのが難しかったかもしれません。新しいOpen Plugin Settingsプラグインを使えば同じ機能をより簡単に実現できるため、今回はその新しい方法を改めてご紹介します。

  1. 1つ目の方法は、Open Plugin Settingsでコマンドを生成し、Templater Hotkeysでホットキーを設定するものです。
  2. 2つ目の方法は、以前の方法と同様にAdvanced URIプラグインを使って設定ウィンドウを開きますが、QuickAddの代わりにTemplater Hotkeysを使用します。

まず、両方の方法で使用するTemplaterスクリプトを紹介し、最後にTemplater Hotkeysでのホットキー割り当て手順を説明します。

1. Open Plugin Settings プラグイン

1.1. Open Plugin Settingsのインストールと設定

  1. Open Settingsプラグインをインストールして有効化します。
  2. 素早くアクセスしたいプラグインを追加します。
  3. 追加した設定はコマンドとして登録され、よく使うプラグイン設定にコマンド経由でホットキーを割り当てられるようになります。

1.2. Templaterスクリプトの作成

  • Templaterフォルダ内に Cmd-open-settings.md を作成し、以下の内容を記述します。
  • 1行目の < の後のスペースは削除する必要があります。
  • JSON形式:{json} "表示するプラグイン名": "open-plugin-settings:プラグインのコマンドID"
< %*
// ホットキー: Alt+S
// Open Settingsプラグインを先に設定しておく必要があります
let oSettings = {
  "BRAT": "open-plugin-settings:obsidian42-brat", //"obsidian42-brat:BRAT-AddBetaPlugin",
  "QuickAdd": "open-plugin-settings:quickadd",
  "Open-plugin": "open-plugin-settings:open-plugin-settings",
  "Other settings":"open-plugin-settings:open-other-plugin-settings",
  "Commander": "cmdr:open-commander-settings",  //"open-plugin-settings:cmdr"
  "Keyshots": "keyshots:open-keyshots-settings-tab",
  "Style settings": "obsidian-style-settings:show-style-settings-leaf",
  "Settings": "app:open-settings"
};

let aKeys = Object.keys(oSettings);
let aValues = Object.values(oSettings);

let sValue = await tp.system.suggester(aKeys, aValues, false, "設定したいプラグインを選択");  // (displays, values,...)
if (!sValue) return;
// console.log(sValue);
await app.commands.executeCommandById(sValue);
-%>
+ 特定プラグインのコマンドIDを知るには?
  1. 方法1: vault/.obsidian/plugins/ フォルダ内にあるプラグインのフォルダ名を確認します。このフォルダ名がコマンドIDです。
  2. 方法2: vault/.obsidian/plugins/open-plugin-settings/data.json ファイル内の id フィールドの値がコマンドIDです。
+ ヒント:全てのコマンドを簡単にリストアップする方法
  1. <span class='keybs'>Ctrl+Shift+I</span>を押して開発者ツールのコンソールを開きます。
  2. {js} app.commands.listCommands() を入力して実行します。
  3. コンソールを確認し、クリックして展開します。
  4. クリックしてから<span class='keybs'>Ctrl+S</span>を押すとクリップボードにコピーされ、確認しやすくなります。

1.3. ホットキーの割り当て

  • 特定のOpen Plugin Settingコマンド: 設定 → ホットキー → Open Plugin Settings下の項目を検索し、ホットキー(例:<span class='keybs'>Alt+S</span>)を割り当てます。
  • 設定 → コミュニティプラグイン → Templater を検索 → Templater Hotkeys → 「Add hotkey」で Cmd-open-settings を見つけます。
  • 設定 → ホットキー → Cmd-open-settings を検索し、ホットキー(例:<span class='keybs'>Alt+S</span>)を割り当てます。

2. Advanced URI プラグイン

2.1. Templaterスクリプトの作成

  • Templatesフォルダ内に Cmd-open-settings-by-uri.md を作成し、以下の内容を記述します。
  • 1行目の < の後のスペースは削除する必要があります。
  • oSettingsJson のコロンの左側は、ダイアログに表示されるテキストです。
  • oSettingsJson のコロンの右側は、settingid、コマンドID、またはファイル名です。
    • settingid:{js} window.open("obsidian://advanced-uri?vault=VAULT&settingid=...") を使用して設定ウィンドウを開きます。
    • > を含む場合:右側は設定セクション(settingsection)です。例:エディター設定内の「Behavior」がセクションにあたります。画面上の表示と大文字・小文字を一致させる必要があります。
    • ! で始まる場合:右側はコマンドIDです({js} app.commands.executeCommandById() でコマンドを実行します)。
    • @ で始まる場合:右側はノートファイル名(パスを含む)です。
< %*
/**
 * Using Advanced URI Plugin to open specified settings.
 * settingid: Normally the plugin's folder name. We can find the correct id in plugin's manifest.json
 * Hotkey: Alt+S
 * Ref: Obsidian Advanced URI: https://vinzent03.github.io/obsidian-advanced-uri/actions/settings_navigation
 */
let oSettingsJson = {
  "Core: Appearance": "appearance",
  "Core: Community plugins": "community-plugins",
  "Core: Plugin browser": "plugin-browser",
  "Core: Theme browser": "theme-browser",
  "Core: Hotkeys": "hotkeys",
  "Core: Editor > Behavior": "editor>Behavior",  // ">" は設定セクションを示します; Behavior
  "Plugin: BRAT": "obsidian42-brat>Beta Plugin List",
  "Plugin: QuickAdd": "quickadd",
  "Plugin: Open-plugin settings": "open-plugin-settings",
  "Plugin: Commander": "cmdr",
  "Plugin: Keyshots": "keyshots",
  "Plugin: Soundscapes": "soundscapes",
  "Plugin: Style settings": "obsidian-style-settings",
  "Plugin: Settings": "app:open-settings",
  "Plugin: Other settings":"!obsidian42-brat:opentPluginSettings",  // "!" はコマンドIDによる実行を示します
  "File: Cmd-open-settings-by-uri.md":"@010-Templates/Cmd-open-settings-by-uri.md",  // "@" はファイル(パス付き)を開くことを示します
  //"Other settings":"!open-plugin-settings:open-other-plugin-settings"
};

let aDisplays = Object.keys(oSettingsJson);
let aValues = Object.values(oSettingsJson);

let sValue = await tp.system.suggester(aDisplays, aValues, false, "設定したい項目を選択");  // (displays, values,...)
if (!sValue) return;
const VAULT = "あなたのVault名"; // あなたの実際のVault名に置き換えてください
//console.log(sValue);
if (sValue.startsWith("!")) { // Command ID
  sValue = sValue.substring(1);
  await app.commands.executeCommandById(sValue);
} else if (sValue.startsWith("@")) { // Open file
  sValue = sValue.substring(1);
  const oFile = await app.vault.getAbstractFileByPath(sValue)
  await app.workspace.getLeaf("tab").openFile(oFile);
} else if (sValue.includes(">")) {  // Handle settingsection
  let iIndex = sValue.indexOf(">");
  let sID = sValue.substring(0, iIndex);
  let sSection = sValue.substring(iIndex+1);
  window.open("obsidian://advanced-uri?vault=" + VAULT + "&settingid=" + sID + "&settingsection=" + sSection);
} else {
  window.open("obsidian://advanced-uri?vault=" + VAULT + "&settingid=" + sValue);
}
-%>

2.2. ホットキーの割り当て

  • 設定 → コミュニティプラグイン → Templater を検索 → Templater Hotkeys → 「Add hotkey」で Cmd-open-settings-by-uri を見つけます。
  • 設定 → ホットキー → Cmd-open-settings-by-uri を検索し、ホットキー(例:<span class='keybs'>Alt+S</span>)を割り当てます。

3. 操作

  • <span class='keybs'>Alt+S</span>を押すと、設定項目を選択するダイアログが表示されるので、いずれかを選択して実行します。
  • 「Other settings」を選択すると、Open Settings以外のプラグインメニューがさらに表示されます。

4. 💡 関連リンク

💡 解説記事: https://jdev.tw/blog/8340/
✅ obsidian-open-settings: https://github.com/Lisandra-dev/obsidian-open-settings
✅ Obsidian Advanced URI > Settings Navigation https://vinzent03.github.io/obsidian-advanced-uri/actions/settings_navigation

✅ Script 1: https://gist.githubusercontent.com/emisjerry/0a1d859d5ea961f21b68ad6025e1b6a3/raw/9e50b1cfdf89c236d70d2a2e3d88991f1c4b1a58/Cmd-open-settings.md

✅ Script 2: https://gist.githubusercontent.com/emisjerry/5fecaae7a72a72b15daf263c8f6e49a4/raw/6b353707840b6f7116e55abdcc9c674d9c1147c5/Cmd-open-settings-by-uri.md

5. チュートリアル動画