Qu'est-ce que #Wox
Win + S est un excellent lanceur fonctionnant sous Windows: http://www.wox.one/
J'utilise Alfred (+ Powerpack) sur macOS, mais je l'ai trouvé lorsque je cherchais un lanceur d'utilisabilité similaire dans l'environnement Windows récemment attribué. Je peux créer un plugin avec C # et Python. , Alfred workflow (mais pas aussi flexible) peut faire des extensions similaires.
Comme mentionné ci-dessus, je suis un utilisateur Alfred, donc j'ai choisi Python parce que je veux porter mon propre workflow Alfred écrit en Python. Pour exécuter le plugin écrit en Python, je dois installer Python 3 séparément et dire à Wox où je suis. Par conséquent, j'estime que les obstacles sont un peu élevés en termes d'utilisation généralisée. Sauf souci particulier, il semble préférable de se développer en C #.
Cliquez ici pour la documentation officielle: http://doc.wox.one/en/plugin/create_plugin.html
Le fait est que Wox transmet l'entrée utilisateur au plugin, donc c'est aussi simple que de renvoyer le résultat correspondant dans JSON. Le développeur reçoit la chaîne parce que la classe d'assistance la rend bonne pour chaque langage tout en disant JSON. Renvoyez simplement un tableau de dictionnaires (pour Python).
Wox affiche les options basées sur le tableau retourné par le plugin, et un rappel est généré pour l'élément sélectionné par l'utilisateur, donc le processus est exécuté (dès que le navigateur ou le dossier est ouvert). Sélectionnez l'élément qui ne contient pas les informations de rappel. Ne peux pas.
Utilisé par Wox pour exécuter le plugin Python. Après l'installation, spécifiez la destination d'installation à partir de l'écran de configuration de Wox.
--git init
--Faire fonctionner Python 3 précédemment installé (j'ai utilisé pyenv car j'ai créé un environnement de développement sur WSL)
Créez un fichier plugin.json
en vous référant à Official
{
"ID": "1AEB702E890911EABAF20C54152B91EC", //Plugin ID,32 bit UUID
"ActionKeyword": "sample", //Plugin default action keyword
"Name": "sample plugin", //Plugin name
"Description": "sample plugin", //Plugin description
"Author": "kosugi", //Plugin Author
"Version": "1.0.0", //Plugin version,must be x.x.x format
"Language": "python", //Plugin language,we support csharp,python and executable now
"Website": "https://qiita.com/kosugi", //Plugin website or author website
"IcoPath": "Images\\icon.png ", //Plugin icon, relative path to the pluign folder
"ExecuteFileName": "main.py" //Execution entry. Dll name for c# plugin, and python file for python plugin
}
--ID est `python -c'import uuid; print (uuid.uuid1 (). Hex.upper ()) '' etc.
x.x.x
selon le document (il n'y a pas de problème si cela fonctionne à portée de main)En regardant le programme d'exemple officiel, j'ai lu que wox.py
est nécessaire, mais je ne connais pas la bonne méthode d'approvisionnement. Probablement exécuté à partir de Wox Quand c'est fait, il peut être inclus dans le chemin de recherche du module, mais que dois-je faire pendant le développement?
Après examen, il a été inclus dans le référentiel GitHub de Wox (il semble peu probable que le référentiel lui-même doive être cloné).
wget https://raw.githubusercontent.com/Wox-launcher/Wox/master/JsonRPC/wox.py
Si wox.py existe lors de l'exécution à partir de Wox, il sera priorisé et ne doit pas être inclus dans l'archive (décrite plus loin) ou dans la destination d'installation.
main.py
# -*- coding: utf-8 -*-
from wox import Wox
class Main(Wox):
def query(self, user_input):
# user_Renvoie le résultat correspondant à l'entrée
return [{
'Title': 'Affiché sur la première ligne(test: ' + user_input + ')',
'SubTitle': 'Affiché sur la deuxième ligne',
'IcoPath': 'Icône affichée à gauche.png',
'JsonRPCAction': {
'method': 'action', #Nom de la méthode appelée au moment de la sélection
'parameters': ['Argument 1 passé à la méthode', '2...'],
'dontHideAfterAction': False
}
}]
def action(self, data1, data2):
#L'article a été sélectionné et sera traité
pass
if __name__ == '__main__':
Main()
Lorsque le script est exécuté, le JSON donné comme argument de ligne de commande est interprété par la classe Wox
du wox.py
à portée de main, et la méthode query
est appelée. Plus précisément, elle est exécutée comme suit.
$ python main.py '{"method": "query", "parameters": ["user intput"]}' | jq
{
"result": [
{
"Title": "Affiché sur la première ligne(test: user intput)",
"SubTitle": "Affiché sur la deuxième ligne",
"IcoPath": "Icône affichée à gauche.png ",
"JsonRPCAction": {
"method": "action",
"parameters": [
"Argument 1 passé à la méthode",
"2..."
],
"dontHideAfterAction": false
}
}
]
}
Si vous utilisez la méthode d'exécution de main.py
, vous ne pouvez pas vérifier le rappel (ici, le comportement lorsque la méthode ʻaction` est appelée), vous devez donc l'installer sur Wox et le vérifier, mais si vous concevez un test Il serait possible d'écrire.
Plugins
de la destination d'installation de Wox, et placer plugin.json
, main.py
et les fichiers d'icônes.Reload Plugin Data
depuis Wox.
--Peut être appelé depuis Wox en entrant le mot clé Action spécifié dans plugin.json
Lorsqu'il est appelé via Wox, l'écran ressemble à ceci:
Si vous enregistrez un compte sur http://www.wox.one/plugin, vous pouvez enregistrer le plugin créé Vous pouvez rechercher et installer celui enregistré à partir de Wox.
Pour l'enregistrement, utilisez une archive ZIP des fichiers requis. L'extension doit être wox au lieu de zip.
Vous pouvez rechercher le nom Unicode et copier le caractère correspondant dans le presse-papiers, ou copier le caractère correspondant au point de code que vous avez entré dans le presse-papiers. Vous pouvez l'installer avec wpm install Unicodebuilder (requête)
et wpm install Unicodebuilder
, respectivement. Alfred Vous pouvez inclure plusieurs ActionKeywords dans un flux de travail, mais pas Wox, nous avons donc séparé les plugins.
Recommended Posts