Brass Plugins: Mime
Exclusions
One of the most powerful features of Mime is the
ability to recognise gestures in any application. Some applications
have a legitimate reason for not appreciating this feature though!
A small number to applications need to take priority
over Mime when the right-mouse button is clicked and the mouse is
moved. Mime would normally recognise this as a gesture and take
control away from the application temporarily. This can sometimes
disable vital features in an application.
A great example of this is Paintshop Pro. When
editing an image with the Brush tool, if you hold the right mouse
button down and move the mouse PaintShop Pro will replace pixels
with the background colour. If Mime were to act normally this feature
would be completely disabled within PaintShop Pro, leaving a lot
of angry artists!
To prevent this from happening Mime has an exclusion
system that controls which applications should be left alone and
under what circumstances.
Configuring Exclusions
The first important thing to understand is that
most users should never, ever attempt to alter the exclusion configuration.
Changing even a small part of the exclusion system can potentially
cause strange side effects, with Mime appearing to work only randomly.
That's why Mime does not provide any user interface to edit the
exclusions.
You can however view the existing exclusions and
download new exclusions from the Internet. To access the exclusions,
go to the Mime Gesture Configuration screen and click the "Exclusions"
button in the bottom left corner.

This is the exclusions list. The interface is deliberately
cryptic, because there should be no need to use it!
Deleting Exclusions
If you have a specific issue with an exclusion
and need to remove it, select it from the list and click the "Delete
Exclusion" button. It will be removed from the list. When you
OK the dialog you will be asked to restart the Mime plugin so the
new exclusions can be processed.
I'll repeat this again - 99.9% of the time there
is absolutely no reason for anyone to delete these exclusions!
Download Exclusions
Exclusions are designed to prevent issues with
other applications. There are millions of applications out there,
and we have no way of testing Mime with even 1% of them. When an
conflict issue is reported to us we can update the exclusion files
stored on the Brass website.
Clicking "Download Exclusions" retrieves
this latest exclusion file direct from the Brass website and installs
it on your computer. Again, unless you have a specific problem with
an application you will most likely not need to do this.
You do not need to update your exclusion file every
week, month or year unless you have a problem! If you do have a
problem with an application please let us know - we will create
an exclusion for it and place it online so all Brass users can benefit.
You can really help the entire Brass user community
out by letting us know when you find applications that need exclusions.
When we know an application needs an exclusion we can create one
quickly and update the online exclusion file for everyone to use.
As a user of the Mime plugin, this is all you
need to know about exclusions. Please return to the main Mime topic
list and carry on with the next topic.
Exclusions for Advanced Users
There are probably a few people out there who really do want to
manage their own exclusions. This section will tell you how. First
of all, if you don't understand the terms "Window Text",
"Class name" and "Parent" in the context of
Windows applications, please don't bother reading any further.
You can really help the entire Brass user community out by letting
us know when you find applications that need exclusions. When we
know an application needs an exclusion we can create one quickly
and update the online exclusion file for everyone to use.
The Exclusion File
Mime exclusions are stored in a file called "app.exclusions",
inside the <Brass Install Directory>\Plugins\Mime directory.
Please only edit this file when Mime is not active.
Inside this file is a comprehensive explanation of how the exclusion
system works. Please read it thoroughly before making any changes.
It's reproduced below for reference:
;
This file contains all the exclusions for the Mime gesture system.
It's intended for use where Mime should
; never interfere with an application listed here. For example,
to make a Mime gesture you hold the right
; mouse button and move the mouse. When you do this in PaintShop
Pro, you might actually want to use the colour
; picker option. If Mime was always active, it would prevent you
from using this function. By adding PaintShop
; to this exclusion file, Mime will never interfere with it.
;
;************************************************************************************************************
; End users should NOT edit this file. The Mime config system can
auto-download new versions of this file and
; will overwrite what's in here. Only edit this file if you know
exactly what you're doing.
;************************************************************************************************************
;
; Format of this file is:
; WindowName::WindowClass::ParentName::ParentClass::OverallParentName::OverallParentClass::QuickDescription
;
; Use 0 for an item where it's not relevant. Note that 'OverallParent'
doesn't actually mean the direct parent,
; it means the top level window for the process. In other words,
assuming:
; AcmeAppWindow -> AcmeClientFrame -> AcmeDisplay
; the Parent of AcmeDisplay will be AcmeClientFrame, and the OverallParent
will be AcmeAppWindow
;
; Also note the 'name' elements (WindowName, ParentName etc) are
pattern-matching. So if the window title changes,
; for example 'MS Word' becomes 'MS Word - MyDoc.doc', putting 'MS
Word' in a name field will still match the
; window. This is handy for windows that are dynamically created
and have their titles changed to reflect what
; they're currently doing. NOTE: there is a very slight extra performance
cost for pattern-matching, so where
; possible you should try to match on class fields rather than name
fields. Remember that all exclusions have to
; be checked, so obviously pattern-match checking a few hundred
exclusions is going to be a little slower than
; explicit-match checking. For clarity, any name field that is only
a 0 is ignored and no matching is done.
Note the warning in the middle - if you use the "Download
Exclusions" function, your manually added exclusions will be
overwritten.
Creating Exclusions for Apps
When creating an exclusion, be careful with the criteria. Some
applications are a complete pain and dynamically change their window
class names (PaintShop Pro is a great example). Pattern matching
only works for window text/titles, eg: "AcmeApp - Yourfile.acme",
not the classname.
Remember not to be too broad or too specific. A good example is
editor applications. If you check the classname in the main window
of an editor app it's likely to have a classname of "Edit".
Unfortunately so will every other app that uses an editcontrol.
Combine fields to tie down the application specifically. If you
wanted to disable gestures in Notepad you can set the "WindowClass"
to "Edit", then also set the "OverallParentClass"
to "Notepad".
If this doesn't immediately make sense to you, please do not change
the exclusion system. The Custom
Action Wizard: Writing Good Criteria page may help you.
The Mime Secret Gesture
Getting the information for an app can be a pain. There is a secret
mime gesture that displays an info window with all the names and
classnames you'll need. Unfortunately it had to be a gesture unlikely
to be accessed by anyone else. Wait for it....
Up Down Up Down Up Down Up Down Up Down Up Down Up Down Up Down
That's 8 "mouse up" and 8 "mouse down". Do
this gesture in any window (obviously not one with an exclusion
already present) and Mime will display an info dialog for you.
Either that, or you can use a window spy tool :-)
Advanced User, but want us to
create the exclusion?
You might come across an application that requires
an exclusion, and although you're confident with using Windows and
Mime, you want a little bit of guidance the first time you do this.
All you need to do is make the Mime secret gesture
3 times in the application's window. Run the application, make the
gesture, then exit the application. That's one. Do it twice more.
Each time you do it, write down exactly what each field in the secret
gesture dialog reports and let us know. We can review the information,
make sure the fields don't change between each time the application
runs, then create a working exclusion for everyone to use.
Please let us know on the forums if you've found
an exclusion for us!
|