How to retain per-group list view columns

I basically live in “list view” in DEVONthink 3, with the Sidebar visible. For some groups in my databases, it would be very beneficial to be able to set which columns are shown and their arrangement in a per-group fashion (meaning that the group has a different organization of columns in list view than other groups have). However, I can’t seem to figure out a way to do that. The global preference General ➜ Retain view doesn’t seem to do this.

Is there a way to achieve this, either directly or via scripting? If the latter, I wouldn’t mind creating a script to change the view (and binding it to Keyboard Maestro for quick invocation), if someone could point me at some script examples of how to control which columns are shown.

No the columns are not scriptable.

You can use Keyboard Maestro to make a macro to do this, though. “Select Menu” actions can access the View → Columns items. I have used this successfully to show/hide a custom metadata column.

1 Like

Thank you for that suggestion. I was so focused on a scripting solution that I didn’t think of this easy approach with KM :-). This will work.

1 Like

Sadly, I have run into a limitation with this approach: although the visibility of the columns can be controlled, the order or position of the columns cannot be fully controlled. At best, what I’ve been able to do is a trick of disabling all columns, then reenabling them in a certain sequence so that they end up in a particular order in the list view, but it seems impossible to disable the item name column, which means makes it impossible to put a desired column ahead of the name column.

1 Like

Use Smart Groups for this.
Usually, you need a special column set for special items. So create a Smart Group for such special content on an all databases level. For each Smart Group you can set individual column set (composition, sequence and width of each column).

Hope it helps

1 Like

Do you mean that the column setup is not retained on regular groups but is retained on Smart Groups? If so, that is a terrific workaround.

Yep, exactly so :wink:
It is retained separately for each smart group, database and inbox of each database.
You can switch forth and back between smart groups, changing their expanded/collapsed state and not loosing it! You may go to database for seeing the “group context” of a chosen group (pressing Reveal button), drill down/up/around and return back with a simple Go back command to the exact same location with the expanded/collapsed state you left.
This should be a nice life hack for “heavy group users”

1 Like

Yes, yes, yes. Super helpful. Thank you!

I believe @cgrunenberg has mentioned that Folders for Smart Groups are on the horizon as well for use in the nav bar - if so, that would make this one step more useful still.

Clever, and good to know about the behavior of Smart Groups w.r.t. columns. Thanks for this tip.

Unfortunately, Smart Groups have a different limitation: you cannot manually order the items in the group, because you cannot select “unsorted” as the sort order. This makes them unsuitable for some of my purposes, but retaining the column ordering may be useful for other purposes.

You may use groups inside smart groups (not smart groups inside smart groups). Just label needed groups and make some smart group to collect items with this label. I use it extensively - it’s super handy.

1 Like

Thanks - what I was suggesting (and am hoping for) is the ability to have smart groups within a regular group, ideally in the side bar. The point is if I start creating a substantial number of smart groups, it would be helpful to organize them in some way so I can more easily find the one I need.

I made a kind of similar suggestion a while ago, but it was a collapsible named divider, so that you could organize smart groups and custom metadata into a meaningful bunches, name them, expand or collapse.

1 Like

Maybe you want to support this suggestion as a feature request ?

That would be very nice if each Group in DT3 could remember collapsed/expanded state and exact set of columns, and as far as I can remember, I’ve already suggested it somewhere, but we don’t know if it is feasible from programming side. I guess @cgrunenberg could tell us if it is.

Nevertheless, workaround with Smart Groups could solve all possible current shortages I can potentially see.

I agree with you regarding the collapsed/expanded state.
But if every folder remember it#s individual set of columns … what would be the workflow if you change the columns and want to update these settings to a punch of folders ?

First of all you should be able to switch this option on or off somewhere in General tab of DT3 Preferences

Once you set your columns up you should be able for something like “Apply Current Group view settings to…”

  • selection
  • all children
  • all database groups
1 Like

For me this would be fine (because I would not use it) but as a product owner I would see different problems.

Your whole subfolder structure has to contain similar contents so that you it makes sense to apply the settings to children. If your structure is more flat or more mixed then you might have a mess with not updated older columns and you would loose control. What if you decide to add another column and this columns has to been applied to very different (single) folders?!

That’s why I would prefer simple presets of sets of columns that I can change globally and apply to the view per shortcut when I need it. Also I think it’s more easy to use for more people and more easy to implement.

I don’t want to oppose your feature request either - Christian has to evaluate that in the end
Counter Question: What kind of problems would you have with your workflow doing it this way ?

I agree with you, this is just another interface method. Having editable presets would be very handy, especially if editing this preset would automatically apply to all groups which already have this preset, like styles in MS Word.