A dashboard (not only) for DEVONthink

Yesterday I found a nice little app called SuperTab. When activated via shortcut or hotcorner (or voice) it shows rows with stuff you specified (e.g. recent apps, dropbox content, a folder, an URL). It can do much more than that, but what caught my attention was:

Tagged Items - the files, folders & applications with the Tags or Labels you specify

With this it’s possible to build a dashboard for DEVONthink. The idea was inspired by a bookmark export script from korm that I use every day. Thanks korm :slight_smile: Now when I want a bookmark for a DEVONthink record to appear in SuperTab I just run a little script from the toolbar and there it is. The original record will not be moved, just the newly created bookmark will be available in SuperTab. Double hit cmd to bring up SuperTab, click the bookmark and the record opens in DEVONthink. The setup is pretty simple,

  • an indexed finder folder
  • a tag that’s used only for the dashboard
  • a row in SuperTab that’s looking for the tag

Index a folder (I’ve put mine in SuperTabs Application Support folder) and set the UUID of the indexed group in the script. Change the tag if you like.

-- Index a folder (I’ve put mine in SuperTabs Application Support folder) and set the UUID of the indexed group in the script. Change the tag if you like.
-- Run the script to add bookmarks for DEVONthinks selection to the SuperTabs row that is looking for the tag used in this script. The original records will not be moved.
-- To delete a bookmark from SuperTabs first move it back into the DEVONthink database then delete it.


property theUUID : ""
property theTag : "SuperTab_Dashboard"

tell application id "DNtp"
	try
		set windowClass to class of window 1
		if {viewer window, search window} contains windowClass then
			set currentRecord_s to selection of window 1
		else if windowClass = document window then
			set currentRecord_s to content record of window 1 as list
		end if
		
		set theGroup to (get record with uuid theUUID)
		
		repeat with thisRecord in currentRecord_s
			set theName to name of thisRecord
			set theURL to reference URL of thisRecord
			set theBookmark to create record with {name:theName, URL:theURL, type:bookmark, tags:theTag} in theGroup
			deconsolidate record theBookmark
		end repeat
		
		display notification "Added to dashboard"
		
	on error error_message number error_number
		display alert "DEVONthink Pro" & space & error_number message error_message as warning
	end try
end tell

As SuperTab allows more than one tag row you can additionally use another copy of the script with another tag, this is especially nice as SuperTab also allows the splitting of rows, which together should make it easy to organize a nice looking and operating dashboard.

If you don’t need a tag on the dashboard for some time it’s probably better to delete the row in SuperTab instead of deleting the indexed bookmarks in DEVONthink, as it’s far easier to add a row as to gather records again.

If you want to delete a bookmark from the dashboard move it into DEVONthink then delete it.

When starting SuperTab with its example rows for the first time I was disappointed because the icons were small and the filenames were hard to read. Deleting some rows helped.

Happy dashboarding :slight_smile:

1 Like

Interesting approach.

SuperTab is indeed a nice utility - and the developer is a super nice guy. Back in the day, I did some beta testing for him for SuperTab 2.0.

Index a folder (I’ve put mine in SuperTabs Application Support folder) and set the UUID of the indexed group in the script. Change the tag if you like.

PS: I would add this to the script as comments. I noticed the deconsolidate command in the script, but it would only make sense when used with an indexed group - and I saw no indication in the script about indexing.

Yeah you’re right, totally forgot about that. So curious to see how this works in the next time :slight_smile:

So curious to see how this works in the next time

Do you mean if it works out in the wild for other people?

First of all I’m curious how it will change my usage of DEVONthink, but of course I’m also curious if it’s helpful to others. As I mentioned I’ve used korms script every day to throw anchors to groups and single records to the desktop. But that often gets messy and additionally using Unclutter didn’t made it better :roll_eyes: If I got it right then the approach above lets me fill the indexed folder over time with as many bookmarks as happens and the point to tidy up is not this folder but removing and adding tag rows in SuperTabs.

Time will tell.

I would assess why you’re making so many bookmarks to items in DEVONthink. Also, you could create a group in a database and fill it with Bookmarks, then add the group to your Favorites.

This new version will delete selected bookmarks if the current group is the indexed group. Otherwise it will normally create bookmarks. So there’s no trouble with that anymore, just one script to create and delete.

The optional prefix helps that all tags are listed together and don’t mess up your other tags too much.

Optionally activating SuperTab at the end is nice to create new rows (or change existing ones).

-- Index a folder (I’ve put mine in SuperTabs Application Support folder) and set the UUID of the indexed group in the script. Change the tag if you like.
-- Run the script to add bookmarks for DEVONthinks selection to the SuperTabs row that is looking for the tag used in this script. The original records will not be moved.
-- If the current group is the indexed group then selected bookmarks will be deleted. So it's kind of a toggle. 
-- The optional prefix takes care that all the tags used with SuperTab are neatly listed together.
-- Finally optionally activating SuperTab at the end helps to create new or change existing rows.

property theUUID : ""
property usePrefix : true -- easier to find tags
property prefixTag : "SuperTab_"
property showSuperTab : true -- activate SuperTab in order to set up a new tag row


tell application id "DNtp"
	try
		set windowClass to class of window 1
		if {viewer window, search window} contains windowClass then
			set currentRecord_s to selection of window 1
		else if windowClass = document window then
			set currentRecord_s to content record of window 1 as list
		end if
		
		set theGroup to (get record with uuid theUUID)
		
		if current group = theGroup then -- delete selection
			
			repeat with thisRecord in currentRecord_s
				if item 1 of parents of thisRecord = theGroup then
					if thisRecord's type = bookmark then
						try
							consolidate record thisRecord
						end try
						delete record thisRecord in theGroup
					end if
				end if
			end repeat
			
		else
			
			tell application "System Events" to set activeApp to name of first application process whose frontmost is true
			tell application "SystemUIServer"
				activate
				set theClipboard to the clipboard
				set theDialog to display dialog "Unter welchem Tag sollen Lesezeichen erstellt werden?" buttons {"Beenden", "Ok"} default button 2 default answer prefixTag with title "Lesezeichen für SuperTab"
			end tell
			activate application activeApp
			if button returned of theDialog = "Beenden" then return
			set theTag to text returned of theDialog
			
			if theTag = "" then return
			if usePrefix = true and theTag does not start with prefixTag then set theTag to prefixTag & theTag
			
			
			repeat with thisRecord in currentRecord_s
				set theName to name of thisRecord
				set theURL to reference URL of thisRecord
				set theBookmark to create record with {name:theName, URL:theURL, type:bookmark, tags:theTag} in theGroup
				deconsolidate record theBookmark
			end repeat
			
			display notification theTag with title "in SuperTab Dashboard hinzugefügt"
			
		end if
	end try
end tell


if showSuperTab = true then
	
	tell application id "com.spritec.supertab"
		presentInterface
	end tell
	
end if
1 Like

Not just bookmarks :slight_smile: Many are aliases to files that sit inside DEVONthink but that I want on the desktop for some time. It’s in and out, creating a file in Finder then moving into DEVONthink. Or using a template in DEVONthink and link to it with an alias on the desktop.

Interesting, thank you @pete31. I bought SuperTab a while back and tried it for a couple months then deleted it. Maybe I’ll try again. I’ve never had much joy from the so-called “improved Docks” like SuperTab. Maybe I’m too thick to understand how best to use them ̅\_(ツ)_/ ̅

I have tried SuperTab too a few years ago but for some reason I deleted it. Yes the rows are convenient but there was something missing or not fulfilling, back then I didn’t have DevonThink. Might give it a try one more time.

Version 3

What:
Create bookmarks for selected DEVONthink records, ask for Tags, make tagged bookmarks available in SuperTab.
Delete selected bookmarks (if the indexed group is the current group).
Control which existing bookmarks are available in SuperTab by changing their flagged status. No need to delete.
Control which Tags (additionally to all Tags of flagged bookmarks) should be always prepopulated in choose from list by manually assigning Tags to any record that is not a bookmark - as long as this record is flagged and in the indexed group its Tags are used.

Setup:
in Finder: Create a new folder (I’ve put mine in SuperTabs Application Support folder),
in DEVONthink: Index the new folder
in this script: Set the UUID of the indexed group
in SuperTab: Hover over the bottom of a row, click the plus sign, select “Tagged Items” from the drop-down menu, select a tag.

Usage:
Run on selected records outside the indexed group to make them available in SuperTab.
Unflag records inside the indexed group to temporarily deactivate them.
Assign Tags to any record that is not a bookmark inside the indexed group to additionally prepopulate choose from list. Unflag this record to temporarily deactivate it.
Run on selected bookmarks inside the indexed group to delete them.
SuperTab supports multiple rows of Tagged Items and it supports multiple Tags in one row.
This script also supports multiple tags, so one bookmark, e.g. a database inbox, can be used in different SuperTab setups.
Choose existing Tags and create a new Tag in one script run.
Change properties as you like

Don’t know where I got the handler from sorry

Happy dashboarding!

-- Version 3
-- What:
-- Create bookmarks for selected DEVONthink records, ask for Tags, make tagged bookmarks available in SuperTab. 
-- Delete selected bookmarks (if the indexed group is the current group).
-- Control which existing bookmarks are available in SuperTab by changing their flagged status. No need to delete.
-- Control which Tags (additionally to all Tags of flagged bookmarks) should be always prepopulated in choose from list by manually assigning Tags to any record that is not a bookmark - as long as this record is flagged and in the indexed group its Tags are used.

-- Setup: 
-- in Finder: Create a new folder (I’ve put mine in SuperTabs Application Support folder), 
-- in DEVONthink: Index the new folder
-- in this script: Set the UUID of the indexed group
-- in SuperTab: Hover over the bottom of a row, click the plus sign, select "Tagged Items" from the drop-down menu, select a tag.

-- Usage: 
-- Run on selected records outside the indexed group to make them available in SuperTab.
-- Unflag records inside the indexed group to temporarily deactivate them.
-- Assign Tags to any record that is not a bookmark inside the indexed group to additionally prepopulate choose from list. Unflag this record to temporarily deactivate it.
-- Run on selected bookmarks inside the indexed group to delete them.
-- SuperTab supports multiple rows of Tagged Items and it supports multiple Tags in one row. 
-- This script also supports multiple tags, so one bookmark, e.g. a database inbox, can be used in different SuperTab setups.
-- Choose existing Tags and create a new Tag in one script run.
-- Change properties as you like

-- Happy dashboarding!

property theUUID : "" -- UUID of the indexed group
property createNewTag : "Create new Tag ..." -- title of first choose from list item
property usePrefix : true -- if true they will have it even if overwritten in the dialog
property prefixTag : "A Dashboard for " -- keeps the tags together
property showSuperTab : true -- if true SuperTab is right there to add or change a row

tell application id "DNtp"
	try
		set windowClass to class of window 1
		if {viewer window, search window} contains windowClass then
			set currentRecord_s to selection of window 1
		else if windowClass = document window then
			set currentRecord_s to content record of window 1 as list
		end if
		
		set theGroup to (get record with uuid theUUID)
		
		set theBookmarks to children of theGroup whose type is bookmark
		repeat with thisBookmark in theBookmarks
			if thisBookmark's state is false then
				consolidate record thisBookmark
			else
				deconsolidate record thisBookmark
			end if
		end repeat
		
		if current group = theGroup then
			
			if currentRecord_s ≠ {} then
				
				tell application "System Events" to set activeApp to name of first application process whose frontmost is true
				tell application "SystemUIServer"
					activate
					set theDialog to display dialog "Delete selected bookmarks?" buttons {"Cancel", "Ok"} default button 2 with title "SuperTab Dashboard"
				end tell
				activate application activeApp
				
				if button returned of theDialog = "Cancel" then return
				
				repeat with thisRecord in currentRecord_s
					if item 1 of parents of thisRecord = theGroup then
						if thisRecord's type = bookmark then
							try
								consolidate record thisRecord
							end try
							delete record thisRecord in theGroup
						end if
					end if
				end repeat
				
			end if
			
		else
			
			if currentRecord_s = {} then
				display notification "Please select something"
				return
			end if
			
			set theChildren to children of theGroup whose state is true
			set activeTagsList to {}
			repeat with thisChild in theChildren
				set thisTags to tags of thisChild
				repeat with i from 1 to count of thisTags
					set thisTag to item i of thisTags
					if thisTag is not in activeTagsList then
						set end of activeTagsList to thisTag
					end if
				end repeat
			end repeat
			set sortedActiveTagsList to my sort_list(activeTagsList)
			set theTagList to (createNewTag as list) & sortedActiveTagsList
			
			tell application "System Events" to set activeApp to name of first application process whose frontmost is true
			tell application "SystemUIServer"
				activate
				set chooseTag to choose from list theTagList default items createNewTag with prompt "Create new and / or choose existing Tag(s):" with title "SuperTab Dashboard" with multiple selections allowed
			end tell
			activate application activeApp
			if chooseTag is false then return
			
			
			if item 1 of chooseTag = createNewTag then
				
				tell application "System Events" to set activeApp to name of first application process whose frontmost is true
				tell application "SystemUIServer"
					activate
					if usePrefix = false then set prefixTag to ""
					set theDialog to display dialog "New Tag:" buttons {"Cancel", "Ok"} default button 2 default answer prefixTag with title "SuperTab Dashboard"
				end tell
				activate application activeApp
				
				if button returned of theDialog = "Cancel" then return
				set theTag to text returned of theDialog
				if theTag = "" then return
				if usePrefix = true and theTag does not start with prefixTag then set theTag to prefixTag & theTag
				if (count of chooseTag) > 1 then
					set chooseTag to items 2 thru -1 of chooseTag
					set theTag to (theTag as list) & chooseTag
				end if
				
			else
				
				set theTag to chooseTag
				
			end if
			
			repeat with thisRecord in currentRecord_s
				set theName to name of thisRecord
				set theURL to reference URL of thisRecord
				set theBookmark to create record with {name:theName, URL:theURL, type:bookmark, tags:theTag, state:true, exclude from classification:true, exclude from search:true, exclude from see also:true} in theGroup
				deconsolidate record theBookmark
			end repeat
			
			if (count of chooseTag) = 1 then
				display notification (item 1 of theTag) with title "Available in SuperTab Dashboard"
			else
				display notification (item 1 of theTag) & space & "and more..." with title "Available in SuperTab Dashboard"
			end if
			
		end if
		
		set thePath to path of theGroup
		
	on error error_message number error_number
		if the error_number is not -128 then display alert "DEVONthink Pro" & space & error_number message error_message as warning
	end try
end tell


tell application "Finder"
	set theFolder to (POSIX file thePath) as alias
	set theFiles to files of theFolder
	repeat with thisFile in theFiles
		set extension hidden of thisFile to true
	end repeat
end tell


if showSuperTab = true then
	tell application id "com.spritec.supertab"
		presentInterface
	end tell
end if


on sort_list(theTagList)
	set old_delims to AppleScript's text item delimiters
	set AppleScript's text item delimiters to {ASCII character 10}
	set list_string to (theTagList as string)
	set new_string to do shell script "echo " & quoted form of list_string & " | sort -f"
	set new_list to (paragraphs of new_string)
	set AppleScript's text item delimiters to old_delims
	return new_list
end sort_list

Isn’t fun to watch a project like this evolve? That’s part of the beauty of automation in general, and AppleScript in specific (as it’s typically easy to read and understand what’s going on). :slight_smile:

1 Like

All thanks to DEVONthink and the great people behind it. Thanks! :smiley:. One should be aware of what a fascinating forum this is. Before I started to use DEVONthink I’ve never heard of AppleScript. Boooom. Don’t get me wrong, I’m far from really knowing what I do (as you know @BLUEFROG :wink:) but if things work out the way I want I learned it here. Always a smile on my face when I remember how I didn’t follow @korm s advice to consider Keyboard Maestro which (of course) would have been the best solution. Keyboard Maestro is now on shift + ctrl + k :smile:

1 Like

Glad to hear it!

Version 3.1

You can now use DEVONthink 3 icons in SuperTab which makes it easier to tell what kind of DEVONthink 3 record it is.

To use this download this command line tool (it’s Donationware), save it somewhere and set the path in the script.

As mentioned in earlier posts SuperTab supports splitting of rows and the usage of more than one tag in a row so don’t get the example screenshot wrong - it’s not that limited. You are not limited to use only groups in one row and smart groups in another, the screenshot is just a very basic example.

And, this could turn out to be very handy, SuperTab supports shortcuts to activate not only SuperTab but a specific row. However it does not seem to be possible at the moment to open the currently selected file when the shortcut is released. I wasn’t aware of this feature but can imagine that this could turn out to be something like an app switcher for DEVONthink records. This would be pretty cool

And this is worth mentioning, SuperTab seems to be able to run AppleScript files (but I didn’t test it).

To add inboxes or global smart groups (thanks @cgrunenberg!) just copy the Reference URL via the menu, create a new bookmark in the indexed group an assign a tag).

Hope it’s useful :slightly_smiling_face:

-- Version 3.1
-- What:
-- Create bookmarks for selected DEVONthink records, ask for Tags, make tagged bookmarks available in SuperTab. 
-- Delete selected bookmarks (if the indexed group is the current group).
-- Control which existing bookmarks are available in SuperTab by changing their flagged status. No need to delete.
-- Control which Tags (additionally to all Tags of flagged bookmarks) should be always prepopulated in choose from list by manually assigning Tags to any record that is not a bookmark - as long as this record is flagged and in the indexed group its Tags are used.
-- NEW: use DEVONthink 3 icons for group, smart group or document

-- Setup: 
-- in Finder: Create a new folder in Finder (I’ve put mine in SuperTabs Application Support folder), 
-- in DEVONthink: Index the new folder
-- in this script: Set the UUID of the indexed group
-- in SuperTab: Hover over the bottom of a row, click the plus sign, select "Tagged Items" from the drop-down menu, select a tag.
-- NEW: if you want to use the DEVONthink 3 icons in SuperTab download this tool https://www.hamsoftengineering.com/codeSharing/SetFileIcon/SetFileIcon.html (it's Donationware) and set the variable "SetFileIconPath"

-- Usage: 
-- Run on selected records outside the indexed group to make them available in SuperTab.
-- Unflag records inside the indexed group to temporarily deactivate them.
-- Assign Tags to any record that is not a bookmark inside the indexed group to additionally prepopulate choose from list. Unflag this record to temporarily deactivate it.
-- Run on selected bookmarks inside the indexed group to delete them.
-- SuperTab supports multiple rows of Tagged Items and it supports multiple Tags in one row. 
-- This script also supports multiple tags, so one bookmark, e.g. a database inbox, can be used in different SuperTab setups.
-- Choose existing Tags and create a new Tag in one script run.
-- Change properties as you like

-- NOTE that the default prefixTag has changed. Change it to the one you want.

-- Happy dashboarding!

property theUUID : "" -- UUID of the indexed group
property createNewTag : "Create new Tag ..." -- title of first choose from list item
property usePrefix : true -- if true they will have it even if overwritten in the dialog
property prefixTag : "." -- keeps the tags together and on top of the SuperTab Tag list
property showSuperTab : true -- if true SuperTab is right there to add or change a row
property SetFileIconPath : "" -- path where you've saved the command line tool "SetFileIcon" (the tool is only necessary if you want to see DEVONthink 3 icons in SuperTab. If you don't want to use them leave it as "")

tell application id "DNtp"
	try
		set windowClass to class of window 1
		if {viewer window, «class srwi»} contains windowClass then
			set currentRecord_s to selection of window 1
		else if windowClass = document window then
			set currentRecord_s to content record of window 1 as list
		end if
		
		set theGroup to (get record with uuid theUUID)
		
		set theBookmarks to children of theGroup whose type is bookmark
		repeat with thisBookmark in theBookmarks
			if thisBookmark's state is false then
				consolidate record thisBookmark
			else
				deconsolidate record thisBookmark
			end if
		end repeat
		
		if current group = theGroup then
			
			if currentRecord_s ≠ {} then
				
				tell application "System Events" to set activeApp to name of first application process whose frontmost is true
				tell application "SystemUIServer"
					activate
					set theDialog to display dialog "Delete selected bookmarks?" buttons {"Cancel", "Ok"} default button 2 with title "SuperTab Dashboard"
				end tell
				activate application activeApp
				
				if button returned of theDialog = "Cancel" then return
				
				repeat with thisRecord in currentRecord_s
					if item 1 of parents of thisRecord = theGroup then
						if thisRecord's type = bookmark then
							try
								consolidate record thisRecord
							end try
							delete record thisRecord in theGroup
						end if
					end if
				end repeat
				
			end if
			
		else
			
			if currentRecord_s = {} then
				display notification "Updated indexed Folder!"
				return
			end if
			
			
			set theChildren to children of theGroup whose state is true
			set activeTagsList to {}
			repeat with thisChild in theChildren
				set thisTags to tags of thisChild
				repeat with i from 1 to count of thisTags
					set thisTag to item i of thisTags
					if thisTag is not in activeTagsList then
						set end of activeTagsList to thisTag
					end if
				end repeat
			end repeat
			set sortedActiveTagsList to my sort_list(activeTagsList)
			set theTagList to (createNewTag as list) & sortedActiveTagsList
			
			tell application "System Events" to set activeApp to name of first application process whose frontmost is true
			tell application "SystemUIServer"
				activate
				set chooseTag to choose from list theTagList default items createNewTag with prompt "Create new and / or choose existing Tag(s):" with title "SuperTab Dashboard" with multiple selections allowed
			end tell
			activate application activeApp
			if chooseTag is false then return
			
			
			if item 1 of chooseTag = createNewTag then
				
				tell application "System Events" to set activeApp to name of first application process whose frontmost is true
				tell application "SystemUIServer"
					activate
					if usePrefix = false then set prefixTag to ""
					set theDialog to display dialog "New Tag:" buttons {"Cancel", "Ok"} default button 2 default answer prefixTag with title "SuperTab Dashboard"
				end tell
				activate application activeApp
				
				if button returned of theDialog = "Cancel" then return
				set theTag to text returned of theDialog
				if theTag = "" then return
				if usePrefix = true and theTag does not start with prefixTag then set theTag to prefixTag & theTag
				if (count of chooseTag) > 1 then
					set chooseTag to items 2 thru -1 of chooseTag
					set theTag to (theTag as list) & chooseTag
				end if
				
			else
				
				set theTag to chooseTag
				
			end if
			
			set setDelay to false
			tell application "Finder" to set DEVONthinkPath to POSIX path of (application file id "DNtp" as alias)
			
			repeat with thisRecord in currentRecord_s
				set theName to name of thisRecord
				set theURL to reference URL of thisRecord
				set theBookmark to create record with {name:theName, URL:theURL, type:bookmark, tags:theTag, state:true, exclude from classification:true, exclude from search:true, exclude from see also:true} in theGroup
				deconsolidate record theBookmark
				
				if SetFileIconPath ≠ "" then
					set setDelay to true
					set thePath to path of theBookmark
					
					set theClass to class of thisRecord
					if theClass is in {parent, smart group} then
						if theClass = parent then set iconPath to DEVONthinkPath & "/Contents/Resources/Group.icns"
						if theClass = smart group then set iconPath to DEVONthinkPath & "/Contents/Resources/Smart-Group.icns"
					else
						set iconPath to DEVONthinkPath & "/Contents/Resources/dtRecord.icns"
					end if
					do shell script quoted form of POSIX path of SetFileIconPath & " -image " & quoted form of POSIX path of iconPath & " -file " & quoted form of POSIX path of thePath
				end if
				
			end repeat
			
			if SetFileIconPath ≠ "" then
				tell application id "com.spritec.supertab"
					quit
					delay 0.5
					activate
				end tell
			end if
			
			if (count of chooseTag) = 1 then
				display notification (item 1 of theTag) with title "Available in SuperTab Dashboard"
			else
				display notification (item 1 of theTag) & space & "and more..." with title "Available in SuperTab Dashboard"
			end if
			
		end if
		
		
		set thePath to path of theGroup
		
	on error error_message number error_number
		if the error_number is not -128 then display alert "DEVONthink Pro" & space & error_number message error_message as warning
	end try
	
end tell


tell application "Finder"
	set theFolder to (POSIX file thePath) as alias
	set theFiles to files of theFolder
	repeat with thisFile in theFiles
		set extension hidden of thisFile to true
	end repeat
end tell


if showSuperTab = true then
	if setDelay = true then delay 1.5
	tell application id "com.spritec.supertab"
		presentInterface
	end tell
end if


on sort_list(theTagList)
	set old_delims to AppleScript's text item delimiters
	set AppleScript's text item delimiters to {ASCII character 10}
	set list_string to (theTagList as string)
	set new_string to do shell script "echo " & quoted form of list_string & " | sort -f"
	set new_list to (paragraphs of new_string)
	set AppleScript's text item delimiters to old_delims
	return new_list
end sort_list

I just looked at SuperTab, which I had not seen before, and it does seem a bit overwhelming – in that it fills up the screen with a lot of stuff. I think I prefer the approach taken by this guy: https://youtu.be/QA56xMRCl4s who uses KeyBoard Maestro and BetterTouchTool to create palettes for all sorts of applications. It seems to me to be far more flexible and configurable – though admittedly it requires two utilities. Since I already had both of them, there was no extra cost to me, but I like the complete control the user has over what to put on a palette. It is worth mentioning that the video linked above is in German – which I don’t understand – but it is so clear I didn’t really have a problem following it. Just another example of what can be done with utilities to ease workflows.

The URL you posted, I was gonna ask for the English version.

I have similar approach when choosing labeling with BTT I use one gesture for 4 different action that are similar, like choosing highlight colors on pdf

Try this, which is in English: https://community.folivora.ai/t/using-btt-gestures-to-control-the-keyboard-maestro-macros-actions-etc/4911

Cheers.

1 Like

Thank you.

Hi mbbntu, first off I’m afraid I couldn’t make clear enough what I actually use SuperTab for (possibly because english is not my first language).

You’re right, SuperTab fills the screen but that is exactly what it’s built for and it does this only until you’ve clicked the item that you want - you activate it and it will automatically disappear after you’ve chosen something or click on the desktop. That’s normal app behaviour.

And you’re right in that it seems to be possible to do a variety of different things with SuperTab. After I first read about it I visited the website to see if there’s something interesting for me and yes, it was overwhelming. I first didn’t know where to place this app and it seemed that it can do nothing more than the apps I already use (which is not bad at all and in no way something thats speaks against SuperTab).

But then, in the long list, was this one feature that got my attention, which is by the way a very happy accident as I normally never use tags and don’t read further when they are topic. This feature is called “Tagged Items” and it makes all files that share a given tag available in SuperTab. SuperTab consists for us users of rows and if you set such a row to this feature “Tagged Items” you can choose which tag (the files who share this tag) you want to see when you activate SuperTab.

So there is

  • the app SuperTab which can show all files for a given tag.
  • there is DEVONthink which supports tags and which can be used with indexed files.
  • there is a script from korm which exports selected DEVONthink records as a bookmark to the Finder.

I didn’t actually used korms export script to built the script which is the topic of this thread - but without it I would never have been attracted by reading “Tagged Items”. I just would have had no idea that it is possible to integrate DEVONthink records with the Finder. And as mentioned before I normally don’t use tags and I don’t use them today - besides of the necessary usage in this specific script.

What my script does is building a bridge for DEVONthink 3 records to SuperTab. And as SuperTab is (besides a lot of other things, which you described as overwhelming - and I got a similiar impression) an app launcher it’s super easy to open those “exported” DEVONthink records, they are just a keystroke or a mouse move away.