-
-
Save maxandersen/40b70477ad8594565f24f9b7b45abf5d to your computer and use it in GitHub Desktop.
{ | |
name = "Threaded"; | |
rootViewer = | |
{ | |
viewerType = "MmSplitView"; | |
orientation = "horizontal"; | |
children = | |
( | |
{ | |
viewerType = "MmBoxView"; | |
orientation = "vertical"; | |
defaultSize = 200; | |
minWidth = 100; | |
autoresize = 0; | |
toggleMenuTitle = "Mailboxes"; | |
toggleKeyEquivalent = "^~@d"; | |
dragRect = { width = 16.0; height = 16.0; location = "bottomRight"; }; | |
children = | |
( | |
{ | |
identifier = "mailboxesOutline"; | |
viewerType = "MmMailboxesOutlineView"; | |
stickyMessages = 1; | |
}, | |
{ | |
viewerType = "MmMailboxesStatusBar"; | |
}, | |
); | |
}, | |
{ | |
viewerType = "MmSplitView"; | |
orientation = "vertical"; | |
collapsibleSubview = 2; // Incomplete support -- no way to get it back (1 = first, 2 = last) | |
children = | |
( | |
{ | |
identifier = "pathOutlineBox"; | |
viewerType = "MmBoxView"; | |
orientation = "vertical"; | |
defaultSize = 250; | |
autoresize = 0; | |
children = | |
( | |
{ | |
identifier = "pathControl"; | |
viewerType = "MmPathControlView"; | |
sources = ( { sourceIdentifier = "mailboxesOutline"; } ); | |
}, | |
{ viewerType = "MmSeparatorView"; showWithViews = ( "pathControl" ); }, | |
{ | |
identifier = "mainOutline"; | |
viewerType = "MmMessagesOutlineView"; | |
// columnSettings = "outlineColumns"; | |
// Keeps selected messages in the view even if they no longer match the main query | |
// sources = ( { sourceIdentifier = "mainOutline"; }, { sourceIdentifier = "pathControl"; } ); | |
sources = ( { sourceIdentifier = "pathControl"; } ); | |
minHeight = 50; | |
}, | |
); | |
}, | |
{ | |
viewerType = "MmSplitView"; | |
orientation = "horizontal"; | |
children = | |
( | |
{ | |
viewerType = "MmBoxView"; | |
orientation = "vertical"; | |
defaultSize = 200; | |
autoresize = 0; | |
children = | |
( | |
{ | |
viewerType = "MmLabelView"; | |
label = "Correspondence"; | |
}, | |
{ viewerType = "MmSeparatorView"; }, | |
{ | |
identifier = "correspondenceOutline"; | |
viewerType = "MmMessagesOutlineView"; | |
minWidth = 100; | |
sources = ( { sourceIdentifier = "mainOutline"; } ); | |
selectionSources = ( { sourceIdentifier = "mainOutline"; } ); | |
// FIXME: The transformation does not work 'per' message, i.e., it tries to combine any 'from' with any 'to' in $mainOutline. | |
// mailmate does not always honor thread-id found in references so we try | |
// and make it pickup other threads by using the subject body to find | |
// the related threads. Has the advantage to also find forwarded mails | |
// or separate mails that have 'broken' off the thread. | |
transformation = "$ALL_MESSAGES.filter(#thread-id = $mainOutline.#thread-id or subject.body = $mainOutline.subject.body)"; | |
// transformation = "$ALL_MESSAGES.filter((from.address = $mainOutline.from.address and #recipient.address = $mainOutline.#recipient.address) or (from.address = $mainOutline.#recipient.address and #recipient.address = $mainOutline.from.address))"; | |
defaultColumns = ( "subject", "relativeDate" ); | |
outlineColumn = "subject"; | |
}, | |
); | |
toggleMenuTitle = "Correspondence View"; | |
toggleKeyEquivalent = "^~@c"; | |
}, | |
{ | |
// FIXME: Currently a copy of the messageView.plist which is not a robust solution. | |
// It's needed to change the sourceIdentifier. Maybe drop messageView.plist again? | |
viewerType = "MmBoxView"; | |
orientation = "vertical"; | |
children = | |
( | |
{ | |
identifier = "tagsEditor"; | |
viewerType = "MmTagsEditor"; | |
sources = ( { sourceIdentifier = "correspondenceOutline"; } ); | |
}, | |
{ viewerType = "MmSeparatorView"; showWithViews = ( "tagsEditor" ); }, | |
{ | |
viewerType = "MmMultiMessageView"; | |
identifier = "messageView"; | |
minHeight = 150; | |
minWidth = 250; | |
sources = ( { sourceIdentifier = "correspondenceOutline"; } ); | |
}, | |
); | |
} | |
); | |
toggleMenuTitle = "Message View"; | |
toggleKeyEquivalent = "^~@h"; | |
}, | |
); | |
}, | |
); | |
}; | |
} |
hey there! is there a way to easily make this compatible with the latest beta? thanks so much.
Unfortunately didn't work for me on MM version 5964 :-(
Quick workaround for newer betas, remove every MmSeparatorView
. It's been working well for me on build 5964 like that 😄
Quick workaround for newer betas, remove every
MmSeparatorView
. It's been working well for me on build 5964 like that 😄
That worked on version 5964. Thank you sir!
This is great, thanks!
I'm looking to modify the thread selection code, which I assume is the line
transformation = "$ALL_MESSAGES.filter(#thread-id = $mainOutline.#thread-id or subject.body = $mainOutline.subject.body)";
I'm looking to group similar but not identical subjects from my monitoring system by filtering out the non-identical words. Here's an example:
** PROBLEM Service Alert: foobar is WARNING **
** RECOVERY Service Alert: foobar is OK **
Can someone point me in the right direction for the documentation for the filter syntax? Hoping i can do something like a regex on the subject.
This is fantastic!