quicksilver / quicksilver/Quicksilver

Feature Request: Create proxy objects or plugins using just an Info.plist + some code

Open
#2,893 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Objective-C
Stars
2.9k
Forks
291
PR merge metrics
No merged PRs in 30d

Description

Following on from issue #2892, it would be great to make QS more customisable by allowing users to create their own proxy objects and plugins more easily.

I'd see this as something like creating a plist (or even better: json) as follows:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Type</key>
<string>QSProxyObject</string>
<key>Name</key>
<string>Latest Screenshot</string>
<key>script_type</key>
<string>bash/applescript</string>
<key>script_value</key>
<string>ls -At /Users/home/me/my_screenshots/{*,.*} | head -n1<strong>
OR:
<string>tell application system events to get "something" end tell</string>
<key>returns_multiple</key>
</false>
</dict>
</plist>

OR just:

{
name: "Latest Screenshot",
type: 'QSProxyObject",
script_type: "bash/applescript",
script_value: "ls -At /Users/home/me/my_screenshots/{*,.*} | head -n1"
OR:
script_value: "tell application system events to get "something" end tell"
returns_multiple: true // determines if one or multiple files are returned

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading issue #2892 and locating Quicksilver's existing proxy object and plugin entry points. Define how an Info.plist or JSON declaration supplies the name, type, script, and result cardinality, then verify that a declared example can load and return the requested result.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, json, objective-c
Domain
desktop-dev, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.