Advanced Topics

Imdone supports a custom URI protocol imdone:// which can be used to open imdone to a specific card in a project.

Installing Imdone URI

To make sure your operating system redirect imdone:// URIs to the Imdone app, there may be additional steps you need to perform.

  • On Windows, running the app once should be sufficient. This will register for the imdone:// custom protocol handler in the Windows registry.
  • On MacOS, running the app once should be sufficient.
  • On Linux, there’s a more involved process:
    • First, ensure you create a imdone.desktop file. See here for details
    • Ensure that your desktop file specifies the Exec field as Exec=executable %u. The %u is used to pass the imdone:// URIs to the app.
    • If you’re using the AppImage installer, you may have to unpack it using imdone-x.y.z.AppImage --appimage-extract. Then make sure the Exec directive points to the unpacked executable.

Using Imdone URIs

Imdone URIs are in this format:

imdone://[path to file or project]?[param]=[value]&[param]=[value]

Open a project

imdone://[path to project]

Examples:

  • imdone:///Users/jesse/projects/imdone

    On mac or linux, if the imdone folder contains an .imdone/config.yml file, this opens imdone to the imdone project.

  • imdone://C:/Users/jesse/projects/imdone

    On windows if the imdone folder contains an .imdone\config.yml file, this opens imdone to the imdone project.

Open a project with a card selected

imdone://[path to file]?line=[line #]

Examples:

  • imdone:///Users/jesse/projects/imdone/imdone-notes/2021-03/2021-03-16.md?line=15

    On mac or linux, if the imdone folder contains an .imdone/config.yml file, this opens imdone to the imdone project with the card in imdone-notes/2021-03/2021-03-16.md at line 15 selected.

  • imdone://C:/Users/jesse/projects/imdone/imdone-notes/2021-03/2021-03-16.md?line=15

    On windows if the imdone folder contains an .imdone\config.yml file, this opens imdone to the imdone project with the card in imdone-notes\2021-03\2021-03-16.md at line 15 selected.

Open the active project with a filter applied

imdone://active.board/?filter=meta.group = "Ungrouped Tasks" "or tags = story

Open a project with a filter applied

imdone://[path to project]?filter=[filter query]

Examples:

  • imdone:///Users/jesse/projects/imdone?filter=allTags%20%3D%20%221.15.0%22

    On mac or linux, if the imdone folder contains an .imdone/config.yml file, this opens imdone to the imdone project with the allTags = "1.15.0" filter applied.

  • imdone://C:/Users/jesse/projects/imdone?filter=allTags%20%3D%20%221.15.0%22

    On windows if the imdone folder contains an .imdone\config.yml file, this opens imdone to the imdone project with the allTags = "1.15.0" filter applied.

Open a project with a filter applied and a card selected

imdone://[path to file]?filter=[filter query]&line=[line #]

Examples:

  • imdone:///Users/jesse/projects/imdone/imdone-notes/2021-03/2021-03-16.md?filter=allTags%20%3D%20%221.15.0%22&line=15

    On mac or linux, if the imdone folder contains an .imdone/config.yml file, this opens imdone to the imdone project with the allTags = "1.15.0" filter applied and the card in imdone-notes/2021-03/2021-03-16.md at line 15 selected.

  • imdone://C:/Users/jesse/projects/imdone/imdone-notes/2021-03/2021-03-16.md?filter=allTags%20%3D%20%221.15.0%22&line=15

    On windows if the imdone folder contains an .imdone\config.yml file, this opens imdone to the imdone project with the allTags = "1.15.0" filter applied and the card in imdone-notes\2021-03\2021-03-16.md at line 15 selected.

Run a board action

imdone://board.action/[plugin]/[action-name]/[file-path]?line=[line #]

Examples:

  • imdone://board.action/ExtensionPlugin/Open in vscode//Users/jesse/imdone-tutorial/imdone-readme.md?line=299

    This will run the Open in vscode action from the ExtensionPlugin plugin on the file /Users/jesse/imdone-tutorial/imdone-readme.md at line 299.

Custom css (beta feature)

To apply custom css to your project board, add a style.css in your .imdone folder. Close and reopen the project for the style.css to be applied.

To help find the right selectors for your css, open developer tools.

You can also apply custom css by adding a <style></style> element to a card. This allows you to toggle css on or off if the style element is on a line greater than the Number of lines to show in cards setting.