I'm having the same problem. The trigger is enabled in the plist. But
on restart, the trigger shows up in the Custom Triggers list, with the
enabled checkbox checked and the correct hotkey, and the correct "Run
script" action, but the script arguments are all null. i.e. it shows
"Run script: (null)"
This is the trigger I'm using, but the "Get IP" trigger you posted has
the same issue (if I paste that XML into my Triggers.plist, it shows
up enabled but with "Run Script: (null)" and nonfunctional.
<dict>
<key>ID</key>
<string>A4885393-359A-49C3-8A43-F82A3646AEF2</string>
<key>command</key>
<dict>
<key>actionID</key>
<string>QSShellScriptRunAction</string>
<key>directID</key>
<string>/Users/aw/Projects/rectalogic/window-manager/
window_manager.rb</string>
<key>indirectID</key>
<string>/Users/aw/Projects/rectalogic/window-manager/layout.yaml</
string>
</dict>
<key>enabled</key>
<true/>
<key>keyCode</key>
<integer>83</integer>
<key>modifiers</key>
<integer>2490627</integer>
<key>onPress</key>
<true/>
<key>type</key>
<string>QSHotKeyTrigger</string>
</dict>
If I set a breakpoint in QSCommand-dObject and bring up the Triggers
preferences, when my custom trigger hits the breakpoint both QSObject-
objectWithIdentifier: and QSAction-actionWithIdentifier: return nil
because the identifier being used is the "directID" in the commandDict
and that's the path to my script. So dObject (and also iObject) never
get set. It's using the pathnames as identifiers and trying to look
them up in the objectDictionary or actionIdentifiers.
(gdb) po [self commandDict]
{
actionID = QSShellScriptRunAction;
directID = "/Users/aw/Projects/rectalogic/window-manager/
window_manager.rb";
indirectID = "/Users/aw/Projects/rectalogic/window-manager/
layout.yaml";
}
When I manually reset the trigger in preferences, it is calling
QSCommand-initWithDirectObject:actionObject:indirectObject: and
QSCommand-setIndirectObject: etc. which is why it works then.
So maybe QSCommand-dObject etc. need to handle the case where
"directID" exists in the commandDict, but is not a valid QSObject or
QSAction identifier, and in that case do
[self setDirectObject:[QSObject objectWithName:[[self commandDict]
objectForKey:@"directID"]]]
Andrew
To unsubscribe from this group, send email to
blacktree-quicksilver+unsubscribegooglegroups.com or reply to this email with
the words "REMOVE ME" as the subject.