DEVONthink Search

Powerful Tool for Searching in DEVONthink.

From this project's GitHub repository:

DEVONthink Search

Powerful tool for seaching in DEVONthink, for DEVONthink 3.x.

For DEVONthink 2.x, you can use the versions of this workflow before V7.0. Switch to Branch DEVONthink 2.x to access the README document and source code.

Download 中文说明

Usage

  • Type dnt + keywords to search in all opened databases in Alfred. Search results are sorted by relevance score, consistent with DEVONthink.
  • Type dnts + keywords to search in DEVONthink window.
    • Press Enter to search in existing window.
    • Press ⌘Command + Enter to search in a new window.
  • Type dnd to choose which datebase to search
    • Press Enter, then type in keywords to search in the chosen database.
    • Press ⌘Command + Enter to list all tags in the database, then choose a tag and press Enter to list all documents which have the tag.
    • Press ⌥Option + Enter to list smart groups in the chosen database.
  • Type dnm + tag1, tag2, ... to list all documents which have these tags in all database. Tags inputed must be exact. For example, Tag aBcD can’t be inputed as aBc or abcd
  • Actions for Workspace:
    • Type dnw to list all workspaces, press Enter to load the selected workspace.
    • Type dnwa + WorkspaceName to save current workspace named WorkspaceName.
  • Type dnf to list favorites.
  • Type dnsg to list all smart groups in all opened databases.

After documents were listed,

  • Press Enter to open the selected file with external editor.
  • Press ⌘Command + Enter to open with DEVONthink.
  • Press ⌥Option + Enter to reveal result in DEVONthink.
  • Press , fn, etc. to show file actions of Alfred. The keys are set in Features → File Search → Actions of Alfred Preferences.
  • Press Shift or ⌘Command + Y to QuickLook the selected file.
  • Press ⌘Command + C to copy DEVONthink link (x-devonthink-item://xxxx) of the selected file.
  • Drag & Drop file in the result list to wherever you want.

Enter

Configuration

ignoredDbUuidList: ignore databases

dnt and dnm search in all opened databases. You can ignore some databases by setting ignoredDbUuidList environment variable in Alfred workflow.

  1. Copy database link in DEVONthink, which is similar to x-devonthink-item://1FC1A542-D8CA-4807-B806-8617966870B5.
  2. The part 1FC1A542-D8CA-4807-B806-8617966870B5 is the database’s UUID.
  3. Fill in workflow configuration with UUIDs. You should separate multiple UUIDs with comma(,).

Configuration

filterOutGroup: filter out group and tag in searching result

You can set environment variable filterOutGroup to yes if you want to filter out group and tag.

Automation permission in macOS Mojave

Alfred will ask for Automation permission to control DEVONthink when you run the workflow for the first time. You should check up permission of Alfred controlling DEVONthink in System Preferences → Security & Privacy → Privacy → Automation if the workflow doesn’t work.

Known issues

CJK (Chinese, Japanese, and Korean) characters should be added ~ in the front when seaching in DEVONthink. For example, searching keywords 你abc我他 should be converted to ~你abc~我他. It’s added automatically in DEVONthink Search by using regular expression /([u4e00-u9fff]+)/g to matching Chinese characters.

The regular expression can’t match Japanese or Korean characters. You can research more perfect regular expressions which match CJK and tell me.