Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Current Selection Proxy Triggers broken on 400C upgrade #1858

Closed
hmelman opened this issue May 30, 2014 · 22 comments
Closed

Current Selection Proxy Triggers broken on 400C upgrade #1858

hmelman opened this issue May 30, 2014 · 22 comments
Milestone

Comments

@hmelman
Copy link

@hmelman hmelman commented May 30, 2014

I can confirm that #1843 is fixed for me in 400C. But I found that my existing triggers using the Current Selection Proxy objects were broken. I recreated some and they work fine. In the image below I fixed the first three, the others are broken (though the Finder Selection one is working. The broken ones end up searching for the text "QSGlobalSelectionProxy". In the second image you can see other Proxy objects that are broken (they all seem to have that icon).
screen shot 2014-05-30 at 7 20 52 pm
screen shot 2014-05-30 at 7 24 35 pm

@skurfer skurfer added this to the 1.2.0 milestone May 30, 2014
@skurfer
Copy link
Member

@skurfer skurfer commented May 30, 2014

Thanks for the report. Can you save off a copy of Triggers.plist and share it (privately if you want) before fixing any more of them? I’d like to see what’s causing it to only show identifiers.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 4, 2014

Most of them seem to get sorted out, but I’m wondering why they’re getting completely restructured (and in some cases, broken). My current theory is that the triggers are re-saved before the Current Application proxy is added to the catalog. #1784 might prevent that (if I’m even right), but I don’t think that’s the whole story.

Here’s what happens to the trigger for hiding the current application:

Before:

<dict>
  <key>ID</key>
  <string>0E525806-1B30-447B-AE45-5A78C8E08F9B</string>
  <key>anchorMask</key>
  <integer>2</integer>
  <key>command</key>
  <dict>
    <key>actionID</key>
    <string>AppHideAction</string>
    <key>directID</key>
    <string>QSCurrentApplicationProxy</string>
  </dict>
  <key>enabled</key>
  <true/>
  <key>eventType</key>
  <integer>8</integer>
  <key>type</key>
  <string>QSMouseTrigger</string>
</dict>

After:

<dict>
  <key>ID</key>
  <string>0E525806-1B30-447B-AE45-5A78C8E08F9B</string>
  <key>anchorMask</key>
  <integer>2</integer>
  <key>command</key>
  <dict>
    <key>actionID</key>
    <string>AppHideAction</string>
    <key>directArchive</key>
    <dict>
      <key>class</key>
      <string>QSObject</string>
      <key>data</key>
      <dict>
        <key>public.utf8-plain-text</key>
        <string>QSCurrentApplicationProxy</string>
      </dict>
      <key>properties</key>
      <dict>
        <key>QSObjectName</key>
        <string>QSCurrentApplicationProxy</string>
        <key>QSObjectType</key>
        <string>public.utf8-plain-text</string>
      </dict>
    </dict>
    <key>directID</key>
    <string>QSCurrentApplicationProxy</string>
  </dict>
  <key>enabled</key>
  <true/>
  <key>eventType</key>
  <integer>8</integer>
  <key>type</key>
  <string>QSMouseTrigger</string>
</dict>

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 4, 2014

Looking at the before and after plists, I have a sneaky suspicion it's to do with my changes that make sure data keys are always UTIs, since the after plist is full of UTIs. Maybe an NSStringPboardType was lying around in the old plist, and then got converted over to the UTI which messed things up...?

Howard is hopefully looking for a pre-all-of-this-Triggers.plist, which should shed some like as to how the that ever occurred

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 4, 2014

...and here's a before before. This plist (if I got it correct, @hmelman ) is the plist that existed before Howard ever tried QS 400C, and which was good to go on QS 1.1.3.

You'll note my suspicion from the previous comment, there are 'data' keys set in the plist of type string. Not what we really want. But perhaps somewhere QS is reading those instead of the 'property' key?

<dict>
    <key>ID</key>
    <string>0E525806-1B30-447B-AE45-5A78C8E08F9B</string>
    <key>anchorMask</key>
    <integer>2</integer>
    <key>command</key>
    <dict>
        <key>actionID</key>
        <string>AppHideAction</string>
        <key>directArchive</key>
        <dict>
            <key>class</key>
            <string>QSObject</string>
            <key>data</key>
            <dict>
                <key>NSStringPboardType</key>
                <string>QSCurrentApplicationProxy</string>
                <key>public.utf8-plain-text</key>
                <string>QSCurrentApplicationProxy</string>
            </dict>
            <key>properties</key>
            <dict>
                <key>QSObjectName</key>
                <string>QSCurrentApplicationProxy</string>
                <key>QSObjectType</key>
                <string>NSStringPboardType</string>
            </dict>
        </dict>
        <key>directID</key>
        <string>QSCurrentApplicationProxy</string>
    </dict>
    <key>enabled</key>
    <true/>
    <key>eventType</key>
    <integer>8</integer>
    <key>type</key>
    <string>QSMouseTrigger</string>
</dict>

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 4, 2014

the plist that existed before Howard ever tried QS 400C, and which was good to go on QS 1.1.3.

Are you sure? Would it have used public.utf8-plain-text as a key before 1.2.0?

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 4, 2014

... more analysing

I think Rob is correct, and that Howard's problem isn't 400C-related. Looking at that plist above, there are two bits of info for the dObject - directID and directArchive.

directID is the most reliable (and is checked for first - see QSCommand.m:353), but if the object isn't in QSLib (for some reason, it probably wasn't for Howard) then the other directArchive dict is used - which clearly shows above represents some kind of string object.

The fix is probably to only load triggers once the catalog has finished loading

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 4, 2014

Are you sure? Would it have used public.utf8-plain-text as a key before 1.2.0?

Those are Howard’s words, not mine (why I asked for clarification…!) but I take your point.
Anyhow, I think we know what the problem is (and am working on a fix)

(and I’m on IRC if need be)
On 4 Meh 2014, at 23:25, Rob McBroom notifications@github.com wrote:

the plist that existed before Howard ever tried QS 400C, and which was good to go on QS 1.1.3.

Are you sure? Would it have used public.utf8-plain-text as a key before 1.2.0?


Reply to this email directly or view it on GitHub.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 4, 2014

The fix is probably to only load triggers once the catalog has finished loading

Yes, triggers should wait for the catalog without question, even if that doesn’t fix this specific thing.

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 17, 2014

An update on what I did a few days ago: so I tried to make triggers wait for the catalog... but that's really difficult.

Because the catalog is populated by plugins, and triggers are added by (the same) plugins. So when we're loading a plugin, we blindly load the catalog and triggers one after the other. How the hell are we meant to tell each plugin to wait loading its triggers until after all the catalog entries have been scanned (which we can't know anyway)? :(

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 19, 2014

I could have sworn there was a notification when the catalog was done, but I guess it’s just for individual entries. The only things I can think of seem like hacks. For example:

  1. Reload all triggers periodically, or 2 minutes after QS launches.
  2. When a trigger is run, check the dObject and iObject. If either is text, call -[QSLib objectWithIdentifier:] to see if a “real” object exists for it.

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Jun 19, 2014

So if this isn't a 1.2.0 problem, can we bump its milestone to 2.0? :)

I think both your solutions are a bit too 'hacky' for the time being. I guess we need to go down the route that Nicholas went down... and rewrite everything to make it properly modular

@hmelman
Copy link
Author

@hmelman hmelman commented Jun 19, 2014

So I gather you just loop on each plugin and load everything in them? And it's too difficult to have several loops, first loading catalog, then triggers, etc.?

If this does get bumped to 2.0, how about a setting (enables via defaults if necessary or always on) to do hacky choice 1. Reload all triggers 2 mins after launch. If that means I don't have to fix my triggers after every launch, that's a win for me until a real fix can be incorporated.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 19, 2014

So if this isn't a 1.2.0 problem, can we bump its milestone to 2.0? :)

If it’s going to crap on people’s triggers, we should probably do something now. I admit, I haven’t had time to dig in and figure out what’s broken. Well, I guess I understand that. I just don’t understand why no one noticed before. I wonder if my changes in #1784 to prevent triggers from getting reloaded all over the place for no reason unmasked this bug.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 30, 2014

When a trigger is run, check the dObject and iObject. If either is text, call -[QSLib objectWithIdentifier:] to see if a “real” object exists for it.

Assume this goes a step further and updates the trigger to contain the actual object (if found).

Would this really be so bad? How many triggers intentionally contain text? That would mean that the overhead of testing text objects would only be incurred once (if the trigger is actually broken), because on subsequent invocations of the trigger, the text object won’t be there any more.

Still hacky maybe, but not complicated or expensive.

@hmelman
Copy link
Author

@hmelman hmelman commented Jun 30, 2014

I think I understand the implications and it seems fine to me. I've only ever had a couple of triggers with text in them. Mostly to paste fixed text like my system details or an URL. I used to just enter them as text in the trigger, now I make sure the text exists in the shelf (does that matter here?). Only other good use I can think of is if someone regularly searches for some text or emails to a specific address (and I'm not sure that counts as text).

Even still, as I understand the proposal, these things would still work, they'd just be a little slower because you'd first check if the text was a (probably proxy) object. I'm guessing that overhead won't be noticable to the user. Seems like a perfectly reasonable workaround.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 30, 2014

I’ve implemented the proposed change on a local branch. Try this build and see if it fixes the problem.

(It’s based on master, so the version number and release notes are behind, but the actual code should be otherwise identical to build 400C.)

@hmelman
Copy link
Author

@hmelman hmelman commented Jun 30, 2014

Seems to have the same problem. My mouse trigger gets it's name changed and doesn't seem to work (yes I'm sure I'm using the downloaded version). Here's a good opportunity to test my "paste my version details from shelf trigger) and yes I finally moved to Mavericks this weekend. There's no discernible lag.
QS 1.2.0 (400C) 10.9.3, 3.4 GHz i7 iMac, 8GB RAM

screen shot 2014-06-30 at 1 50 59 pm

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 30, 2014

Those version details are edited by hand, right? Because if you’re using the one I built this morning, the version should be “1.1.0:repairTrigger”. I replaced the objects in the command, which should update the trigger (in memory). I’ll see if there’s anything else I need to do. At the very least, I’ll add some logging to try and get an idea what’s going on.

@hmelman
Copy link
Author

@hmelman hmelman commented Jun 30, 2014

Yes, edited by hand.

@skurfer
Copy link
Member

@skurfer skurfer commented Jun 30, 2014

OK. Same code, but it should log what it sees to the Console…

http://cl.ly/473J2T2x3Q2Z

To give you an idea what to look for, these are the lines I added:

NSLog(@"direct object primary type: %@", [[cmd dObject] primaryType]);
NSLog(@"direct object is text: %@", self);
NSLog(@"checking catalog for %@: %@", ident, realObject);
NSLog(@"new direct object for trigger: %@", [[cmd dObject] displayName]);
NSLog(@"indirect object primary type: %@", [[cmd iObject] primaryType]);
NSLog(@"indirect object is text: %@", self);
NSLog(@"checking catalog for %@: %@", ident, realObject);
NSLog(@"new indirect object for trigger: %@", [[cmd iObject] displayName]);

@hmelman
Copy link
Author

@hmelman hmelman commented Jun 30, 2014

Didn't see those. Quit my QS. Started yours. (at 5:43) Hide Current App mouse trigger didn't work in same way. Tried using it, it didn't work. Fixed it. Used it and it worked. Quit your QS. Started it up again (at 5:47), tried using mouse trigger and it didn't work.

6/30/14 5:43:31.391 PM Quicksilver[726]: Cannot find executable for CFBundle 0x7fe795d5fc70 </Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSExtraScriptsPlugIn.92.qsplugin> (not loaded)
6/30/14 5:43:31.689 PM Quicksilver[726]: objc[726]: Class JKArray is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.689 PM Quicksilver[726]: objc[726]: Class JKDictionaryEnumerator is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.689 PM Quicksilver[726]: objc[726]: Class JKDictionary is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.690 PM Quicksilver[726]: objc[726]: Class JSONDecoder is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.690 PM Quicksilver[726]: objc[726]: Class JKSerializer is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.690 PM Quicksilver[726]: objc[726]: Class FMDatabase is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.690 PM Quicksilver[726]: objc[726]: Class FMStatement is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.690 PM Quicksilver[726]: objc[726]: Class FMResultSet is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:43:31.768 PM Quicksilver[726]: New Version: Purging all Identifiers and Forcing Rescan
6/30/14 5:43:31.777 PM Quicksilver[726]: Updated: Forcing Plugin Check
6/30/14 5:43:31.784 PM Quicksilver[726]: Could not find image named 'B7C43F23-DD71-4319-A130-F5C52F29DCB4'.
6/30/14 5:43:31.785 PM Quicksilver[726]: Could not find image named '60461255-0193-4D9C-AC6F-9C3B5B65FAD6'.
6/30/14 5:43:31.785 PM Quicksilver[726]: Could not find image named 'A25B83C1-3F84-46F1-87A6-AB19B10DD230'.
6/30/14 5:43:31.785 PM Quicksilver[726]: Could not find image named '8C040B9F-22D2-48B8-A50B-19AD2B98BD0C'.
6/30/14 5:43:32.189 PM Quicksilver[726]: bad data for Apple URL pasteboard type
6/30/14 5:43:32.189 PM Quicksilver[726]: bad data for public.utf16-external-plain-text
6/30/14 5:44:05.825 PM Quicksilver[726]: NSAlert is being used from a background thread, which is not safe.  This is probably going to crash sometimes. Break on void _NSAlertWarnUnsafeBackgroundThreadUsage() to debug.  This will be logged only once.  This may break in the future.
6/30/14 5:44:11.252 PM Quicksilver[726]: *** Assertion failure in -[NSMenu itemAtIndex:], /SourceCache/AppKit/AppKit-1265.21/Menus.subproj/NSMenu.m:865
6/30/14 5:44:11.253 PM Quicksilver[726]: Invalid parameter not satisfying: (index >= 0) && (index < [_itemArray count])
6/30/14 5:44:11.261 PM Quicksilver[726]: (
    0   CoreFoundation                      0x00007fff850ad25c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff8dc80e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff850ad038 +[NSException raise:format:arguments:] + 104
    3   Foundation                          0x00007fff83f0fd41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
    4   AppKit                              0x00007fff8c2ace76 -[NSMenu itemAtIndex:] + 164
    5   AppKit                              0x00007fff8c333931 -[NSPopUpButtonCell selectItemAtIndex:] + 411
    6   Quicksilver                         0x00000001028735e4 Quicksilver + 95716
    7   AppKit                              0x00007fff8c573146 -[NSTableView preparedCellAtColumn:row:] + 1437
    8   AppKit                              0x00007fff8c5cc818 -[NSOutlineView preparedCellAtColumn:row:] + 52
    9   AppKit                              0x00007fff8c572a5e -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 44
    10  AppKit                              0x00007fff8c5cd28f -[NSOutlineView _drawContentsAtRow:column:withCellFrame:] + 91
    11  AppKit                              0x00007fff8c572793 -[NSTableView drawRow:clipRect:] + 1629
    12  QSInterface                         0x0000000102a29671 -[QSOutlineView drawRow:clipRect:] + 340
    13  AppKit                              0x00007fff8c571fed -[NSTableView drawRowIndexes:clipRect:] + 776
    14  AppKit                              0x00007fff8c5cc495 -[NSOutlineView drawRowIndexes:clipRect:] + 113
    15  AppKit                              0x00007fff8c43b331 -[NSTableView drawRect:] + 1484
    16  AppKit                              0x00007fff8c416557 -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:] + 1082
    17  AppKit                              0x00007fff8c41600d __46-[NSView(NSLayerKitGlue) drawLayer:inContext:]_block_invoke + 186
    18  AppKit                              0x00007fff8c415e03 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 2297
    19  AppKit                              0x00007fff8c4154f8 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 108
    20  QuartzCore                          0x00007fff8356e812 CABackingStoreUpdate_ + 2220
    21  QuartzCore                          0x00007fff8356df60 ___ZN2CA5Layer8display_Ev_block_invoke + 59
    22  QuartzCore                          0x00007fff8356df1c x_blame_allocations + 84
    23  QuartzCore                          0x00007fff8356da2b _ZN2CA5Layer8display_Ev + 1539
    24  AppKit                              0x00007fff8c4153c3 _NSBackingLayerDisplay + 235
    25  AppKit                              0x00007fff8c3ec74b -[_NSViewBackingLayer display] + 811
    26  QuartzCore                          0x00007fff8356d162 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 590
    27  QuartzCore                          0x00007fff8356c8b1 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
    28  QuartzCore                          0x00007fff8356c33c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 236
    29  QuartzCore                          0x00007fff8356bfd6 _ZN2CA11Transaction6commitEv + 388
    30  QuartzCore                          0x00007fff8357c761 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 71
    31  CoreFoundation                      0x00007fff84fddd67 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    32  CoreFoundation                      0x00007fff84fddcd7 __CFRunLoopDoObservers + 391
    33  CoreFoundation                      0x00007fff84fcee94 CFRunLoopRunSpecific + 340
    34  HIToolbox                           0x00007fff87d8ba0d RunCurrentEventLoopInMode + 226
    35  HIToolbox                           0x00007fff87d8b7b7 ReceiveNextEventCommon + 479
    36  HIToolbox                           0x00007fff87d8b5bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
    37  AppKit                              0x00007fff8c2b524e _DPSNextEvent + 1434
    38  AppKit                              0x00007fff8c2b489b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    39  AppKit                              0x00007fff8c2a899c -[NSApplication run] + 553
    40  AppKit                              0x00007fff8c293783 NSApplicationMain + 940
    41  Quicksilver                         0x000000010285dce4 Quicksilver + 7396
    42  ???                                 0x0000000000000002 0x0 + 2
)
6/30/14 5:44:18.367 PM Quicksilver[726]: CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
6/30/14 5:47:46.237 PM Quicksilver[759]: Cannot find executable for CFBundle 0x7fdedc133590 </Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSExtraScriptsPlugIn.92.qsplugin> (not loaded)
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class JKArray is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class JKDictionaryEnumerator is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class JKDictionary is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class JSONDecoder is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class JKSerializer is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class FMDatabase is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class FMStatement is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:46.337 PM Quicksilver[759]: objc[759]: Class FMResultSet is implemented in both /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.QSFirefoxPlugIn.A8.qsplugin/Contents/MacOS/Firefox Module and /Users/hmelman/Library/Application Support/Quicksilver/PlugIns/se.stdin.quicksilver.GoogleChrome.22.qsplugin/Contents/MacOS/GoogleChrome. One of the two will be used. Which one is undefined.
6/30/14 5:47:47.737 PM Quicksilver[759]: Could not find image named 'B7C43F23-DD71-4319-A130-F5C52F29DCB4'.
6/30/14 5:47:47.737 PM Quicksilver[759]: Could not find image named '60461255-0193-4D9C-AC6F-9C3B5B65FAD6'.
6/30/14 5:47:47.737 PM Quicksilver[759]: Could not find image named 'A25B83C1-3F84-46F1-87A6-AB19B10DD230'.
6/30/14 5:47:47.737 PM Quicksilver[759]: Could not find image named '8C040B9F-22D2-48B8-A50B-19AD2B98BD0C'.

@skurfer
Copy link
Member

@skurfer skurfer commented Jul 1, 2014

Well, good news and bad news. That means it’s not even getting to the point where it tries to execute the trigger. That seemed suspicious, because I was able to see some of the log messages with my triggers. I recreated what you have exactly and I can reproduce it. I seems to be specific to Mouse triggers.

In any case, I should be able to get to the bottom of it quickly now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants