DEVONthink and Trickster integration

I see. Sorry about the confusion. The HTML icon is the preview of the document itself. The location icon shows the DEVONthink monochrome icon, like it does for Dropbox or iCloud.

This is a terrific feature - many thanks

Question - is it possible (or would you consider) including Devonthink Groups in Trickster rather than only files as currently implemented?

I would also welcome that feature

I installed this, but can’t seem to get it to work. I must be missing something easy.

I followed the instructions, but opening DEVONthink files doesn’t make them appear in Trickster like they do in the video.

I’m also new to Trickster, actually learning about it via this DT integration, but I think I have it all set up correctly.

What could I be missing?

Hi,

It could be a few things:

  • Make sure you see the downloaded Smart Rule in DEVONthink. If it’s there and you didn’t modify it, then it should be good on DEVONthink side.
  • Make sure you’re running Trickster version 3.8 or later (current version is 3.8.1)
  • Make sure Trickster is on the top-most “All files” filter, so that we know that everything that Trickster has will show
  • Make sure in Trickster’s window, nothing appears in the title except Trickster. If there’s some text in parentheses or brackets, it means that you either have a search filter text on the bottom or some other filter, like an app filter (the “current app” icon button, second one on the bottom of Trickster’s window). This also filters what you see based on the app used.
  • Is Trickster running from /Applications folder?

Hi, @rkaplan and @yfs

I looked at this briefly and I don’t think this is possible right now, not from DEVONthink side and I’m not sure about Trickster’s side either. DEVONthink’s Smart Rules operates on an “Open” event and it appears that it doesn’t send the Open event when a group is selected. I looked at other events and I didn’t see anything there that would work. So for this to work there at least needs to be a new option in DEVONthink itself.

From Trickster’s side, Trickster as you know is all about files and folders right now, which are on the file system. All DEVONthink documents are also on the file system so this works nicely with Trickster - Trickster is able to get an icon for them and has their path in case you want to do anything with them. A DEVONthink group, on the other hand, is not a real folder in the file system, so for Trickster to support stuff that’s not in the file system, this will require more changes in Trickster. We may add support for this approach in the future for other integrations, if there are good ones, but it’s not there yet.

But could you both please tell me what you are trying to achieve with this feature request? Sometimes there are other solutions that can work or may work better, once the developers understand the reason behind a feature request.

Thanks for the clarification

What I am trying to do is to easily/quickly open a window related to a Group I previously visited.

Currently I can use Trickster to go to a recent document, then Reveal that document with Comand-R, which brings me to its enclosing Group. That is certainly very helpful, but it does not open a new window but instead changes the current window to the desired Group.

I use DNT groups a lot for organising my work, and replicate docs into various groups all the time. If I then have a meeting coming up, I would open that group in DNT and find mails, docs, presentations etc. in that group. It might lead me to replicated groups where I cross-referenced information. I would take notes (mostly on paper) during the meeting. Later during the day I would go back and summarise the note into DNT, or scan the paper notes, and then it would be good to be able to go back to the DNT group through trickster. I can always use DNT’s search, but sometimes I am not sure about the name of the group. I have a smart group in DNT that does the same (“has been modified the last hour/day”), it’s a little less convenient.

Here are two solutions for you using existing capabilities of DEVONthink and Trickster. I’ve recorded two videos, one with just DEVONthink and Safari and another with Hook, which I know at least @rkaplan uses. It’s a bit faster with Hook.

With Safari:

With Hook:

Those are both excellent ideas - it may be possible with Keyboard Maestro to automate them even further - I will try both - thank you for the prompt follow-up and suggestions.

FYI - this is Devontech’s suggestion on this topic:

Enabling the hidden preference DisplayGroupsInPreviewPane might be sufficient as soon as Trickster supports items without paths (like groups in DEVONthink).

The hidden preference can be set with this in Terminal:

defaults write com.devon-technologies.think3 DisplayGroupsInPreviewPane -bool TRUE

1 Like

Oh, this is interesting. I wasn’t aware of this hidden setting. I can later try to look at enabling it and seeing what needs to be done in Trickster itself but for now the file-based solution will need to be used.
Note that Hook has a shortcut for Copy to a Hook file, so it’s just a shortcut away, if you’re using Hook.

Sounds great - much appreciated

I enabled this but what I see is that (except this failing at AppleScript stage because it’s not a file) is that the rule is triggered only if the folder is opened in the main list of item in DEVONthink (which would make it show in the preview pane), not just clicked in the sidebar. This is what the hidden preference’s name implies, too.

That would be very helpful if it worked in that situation.

Plus the workaround to get the Open event in that situation is likely simple - just click the parent Group name in the breadcrumb path above the main list.

@Jacob, thanks for the reply!

It’s working now. After I wrote, the system finally asked permission to grant access / control between DT and Trickster. I don’t know why it didn’t do it immediately, or even after several attempts at it. In any case, it’s working now.

(Similarly, only this morning did it ask to grant Trickster access to Photos. I didn’t do anything other than restart my laptop.)

I do have a follow up question.

It seems that Trickster only works on files opened by DEVONthink, whether that’s with DT’s file viewer or its preview pane. Correct?

However, many of my files are indexed, and I have the default action to open them in the default external app. When I open such a file (eg, DT opens an .rtf file with TextEdit), Trickster does not recognize this as opened, neither by DEVONthink nor TextEdit.

I would think one or the other (if not both) would register in Trickster. Is there a way to do so?

Hi, thank you for bring this issue to my attention. I’ve looked at this and have a partial solution but it also looks that there’s a bug in DEVONthink for full support of this.

First of all, it look like opening the document externally from DT indeed doesn’t register in Trickster. My guess is that the approach DT uses to launch an external application may not be registering on the OS level and thus the information doesn’t arrive to Trickster either.

Now, on DEVONthink level itself, you can modify the Smart Rule condition to also fire when “Open Externally” condition is met like in the screenshot below. I tried this but it only seems to work when opening in an external tool using “Open With” in the context menu, not when the document is opened by an external tool by double-clicking on it, when that option is enabled in DT’s preferences, like in your case. This latter behaviour (not running the Smart Rule when double-clicking) I would consider a bug in DEVONthink since I’d expect “On Open Externally” to fire regardless if I double-clicked on a file to open externally or used “Open With”. Please contact DEVONthink’s support about this, if this is important.

It may make sense for me to update the Smart Rule to include “On Open Externally” by default but until this bug is fixed in DT, it will be of limited use.

@Jacob, thanks.

I see the same behavior on my end. Hm.

I’ll report it to DT, both directly and on this related thread, in case you want to chime in or follow along.

1 Like

Thanks Jacob, I really appreciate your customer support. I didn’t think about Hook, but now use it along the lines you suggested. DNT + Trickster + Hook is awesome.

1 Like

This does indeed work well with Hook - thanks

1 Like

A kind of a temporary workaround
Bind it a key

BTW, @Jacob, a strange behavior of add recent function… If you remove a delay in this script - all goes without an error, but recent item is not added…

The script is quick, and if it is possible to remove the delay, then one can create a smart rule for “on open” event for the Group using this script.

-- Script to add selected DT Group to Trickster's Recents
-- Created by Silverstone on 12.07.2021

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

tell application id "DNtp"
	set theRecords to (get selection)
	if (count of theRecords) = 1 then
		
		-- Data for recent item
		set theRecord to item 1 of (get selection)
		set {GroupURL, GroupName, GroupLocation} to {reference URL, name, location} of the theRecord
		set AppName to name
		
		-- Finding or creating 'Group Links' DT group in Inbox of current database to store all link files
		set theFound to search "name==Group Links kind:group" in the incoming group of current database
		if (count of theFound) is 0 then
			set theGroupLinks to create record with {name:"Group Links", type:group} in the incoming group of current database
		else
			set theGroupLinks to item 1 of theFound
		end if
		
		-- Finding or creating the bookmark
		set theFound to search "name==" & GroupName & " url==" & GroupURL & " kind:bookmark" in theGroupLinks
		if (count of theFound) is 0 then
			set theLink to create record with {name:GroupName, URL:GroupURL, type:bookmark} in theGroupLinks
			delay 3
		else
			set theLink to item 1 of theFound
		end if
		set thePath to path of theLink
		
		-- Creating the recent item in Trickster
		tell application "Trickster" to add recent thePath source AppName displayPath GroupLocation callbackURL GroupURL bundleID "com.devon-technologies.think3"
	else
		display dialog "Choose a Group" buttons {"OK"} default button "OK"
	end if
end tell
2 Likes