Graph Filter Chips

by Paulo Vianna
5
4
3
2
1
Score: 50/100

Description

Obsidian plugin: turn graph filter queries into removable chips. Esc leaves editing without clearing; Enter saves the filter as a chip.

Reviews

No reviews yet.

Stats

0
stars
329
downloads
0
forks
23
days
23
days
23
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
3
commits

README file from

Github

Graph Filter Chips

Turn the graph view filter into removable chips.

Today the graph filter is a single text field, and pressing Esc wipes it out. This plugin changes that:

Action Vanilla Obsidian With Graph Filter Chips
Esc clears the whole filter just leaves the text field, keeps the text
Enter only re-applies the filter turns the text into a chip
Remove a term edit the raw text click the x on the chip

Features

  • Enter commits the current query as a chip.
  • Esc only blurs the field; the filter stays.
  • Each chip has an x to remove just that term.
  • Click a chip's label to pull it back into the input for editing.
  • Works on the global graph and on local graphs.
  • The filter keeps being saved normally in graph.json, so it survives restarts.

Why

The graph filter is easy to lose: a single stray Esc erases a carefully built query. Chips make the filter explicit, visible, and individually removable.

Installation

Community plugins (after it is published)

Settings → Community plugins → Browse → search for Graph Filter Chips → Install → Enable.

BRAT (beta)

  1. Install the BRAT plugin.
  2. Run BRAT: Add a beta plugin for testing and paste the repository URL.

Manual

Copy main.js, manifest.json, and styles.css into <your-vault>/.obsidian/plugins/graph-filter-chips/ and enable the plugin.

Usage

  1. Open the graph view and expand the Filters section.
  2. Type a query, for example path:"Projects", -file:home, or tag:idea.
  3. Press Enter to turn it into a chip.
  4. Press Esc any time to leave the field without losing what you typed.
  5. Click the x on a chip to remove that filter.

How it works

The plugin relies on a few stable graph internals:

  • The filter input is .graph-controls .setting-item.mod-search-setting input[type="search"].
  • Obsidian reads the effective value with engine.filterOptions.search.getValue() and applies it with engine.updateSearch().
  • Esc clearing the field is the native behavior of <input type="search"> in Chromium, not Obsidian's code.

The plugin overrides getValue/setValue on the filter instance only (chips become the source of truth) and intercepts keydown in the capture phase on an ancestor of the input, so its preventDefault runs before the native clear. Everything is restored when the plugin unloads.

Compatibility and caveats

  • Built and tested against Obsidian 1.12.7 (minAppVersion).
  • Because it hooks undocumented graph internals, a future Obsidian update could change these objects. The plugin fails gracefully (it simply stops attaching), but it may need maintenance. Issues and PRs are welcome.
  • A chip typed with spaces stays one chip in the session; after reload, the saved query is split back into chips on whitespace (outside quotes). The filtering result is identical.

Development

No build step, plain JavaScript.

# copy the plugin into a vault for live testing
./scripts/sync-to-vault.sh

Then reload Obsidian (Ctrl/Cmd + P → Reload app without saving).

License

MIT