Getting started
-
Installation
- 1- Download Proton-io archive.
- 2- Extract Proton-io archive.
- 3- Double click Protonio.exe, that's it.
-
Usage
You'll be able to show the menu by pressing the hotkey, by default it's "Ctrl+tab", this can be changed in preferences.
You can either start typing to quickly search for a script,
or you choose one in the categorised menu.
scripts with the icon will generate a window with parameters to set and then execute by the user with the button "apply" (more about this window in Script parameters). The scripts with the icon will not generate a window and will always be executed directly.
Tip #1: You can also directly execute parametric scripts in their default parameters by holding 'Ctrl' before you select one, the hotkey to hold can be changed in preferences.
Tip #2: You can execute a direct or a parameteric script even faster without opening the menu by giving it a hotkey, check Manager to see how you can do that.
Preferences
-
Menu display hotkey
This is the hotkey that will display the proton-io menu at your mouse position, to change it, either edit the hotkey text manually or let it record one for you by clicking the keyboard icon and then you make the key combination you want.
-
Direct execution hotkey
This is the key to hold if you want to force direct execution on parametric scripts in their default settings without displaying the parameters window. You can choose in the dropdown menu which key to hold.
-
Scripts path
Here you can change the path where the app will look for the scripts, this can be useful when you want to centralize all the scripts for the same team in a remote directory.
Script parameters
-
General
When you select a script in the list that has this icon (meaning it's a parameteric script), you'll see a window like this.
All the input fields will act as arguments to the script. You'll see a description of each input when you hover the mouse over the input title. This is all generated automatically based on the script's interface.json file. An explanation of how to create these can be found in Builder.
apply : To execute the script with the arguments above.
save : To save the current values as default, useful when you want to use the script multiple times faster next time without opening the window (check tip #1 and #2 in Getting started).
cancel : This will simply close the window.
Debugger : When this is checked, as soon as you hit 'apply' you'll see a black overlay which will give you all the execution output, you can also show this overlay by simply clicking the 'Debugger' text. -
Debugger
stop : To kill the currently running process of the script.
clear : To clear all the text in the debugger.
restart : To re-execute the script in the same values.
start detached : This will run the script in a separate shell window.
command preview : To see what the actual execution command with its arguments look like.
close : Hide the debugger
Builder
-
General
Proton-io builder is an interface that allows you to create scripts for proton-io without writing the interface.json file manually. Learn more about interface.json.
You can access the Builder by right clicking the proton-io tray icon to reveal the menu and then select 'Builder'.
Proton type : Here you can choose weather the script you're about to create is gonna have parameters for the user or not.
Proton name : This is the name of your script, the same name it will appear with in the menu.
Proton category : Here you can write the category in which this script will belong to, giving it a new category will create one automatically in the menu.
Get current directory : If this is checked, the command you give in this script will have the active directory as an argument.
Get selected files : Same as 'Get current directory' except this one will give the path of a selectedFiles.txt file that containes the selected file paths.
Proton Script : An executable, command or even a path to a script that will make use of the user parameters to perform the desired task. You can also use './' in the path which will be replaced to the script interface directory.
Proton process : The process that will run your script (ex : python executable).
Author : The author name, which will be displayed when a user clicks the question mark '?' in a script parameter window.
Version : To version your script.
Description : A description of the script, same as the Author, it will be displayed upon clicking the question mark in the parameters window and on mouse over proton name in the menu and in Manager.
inputs : You can choose an input type to add to your parameteric script by clicking the icon. these are the available input types :
-
inputField : A basic text field to input any kind of value.
-
inputFilePath : A text field which has a button to browse file paths.
-
inputdirectoryPath : A text field which has a button to browse and choose a directory.
-
inputCheckbox : A basic checkbox input that will output either a 'true' or a 'false' statement.
-
inputList : Generates a Drop down list, the list values can be separated with a comma ','.
-
inputSlider : Generates a slider with a defined minimum and maximum values and also the step count.
-
inputcolor : Generates a color pick input.
All these inputs require to be given a name, and each name needs to be unique, some input types require other things for example inputList requires that you give it list of values separated by a comma, and slider input needs you to specify for it a min and a max value. all inputs can be given default values and a description. The description appears when the user puts the mouse over the input title. And the inputs can be previewed anytime by clicking 'Interface preview'. And 'Command preview' will show what they'll excute by default. You can also delete , revert , and change the order of the inputs.
Save : To save the script you just created.
Interface preview : This shows you a preview of the window that is generated by the script, this is intended for scripts that have user inputs, but it can also be useful for direct ones to test and debug them.
Command Preview : To quickly display the actual command that will be executed.
Clear all : To quickly clear all the inputs in the interface.
Tip #3 : When you start typing a Proton name, the existing ones will be suggested to you, when you click one of them, all their settings will appear, this allows you to modify them and re-save them. So this can be a good way to edit existing scripts.
-
Manager
-
General
Proton-io manager is a useful interface in which you can easily setup hotkeys that will allow you to use your scripts much faster without opening the menu, it also gives you other possibilities like easily delete existing scripts if needed.
Current Preset : This allows you to choose ones of your saved presets or load a new one from a different location.
Category : To isolate one category in the table.
Filter : Quickly filter out scripts by starting to type characters contained in the desired script.

Save : Save the current changes, this will cause the application to restart in order to apply the new hotkeys globally.
Save preset : Save the current settings in a preset.
Clear All : To clear all the fields in the table.
Cancel : Cancel all changes and close the window.
-
Table
Proton name : This column containes the names of each available script, all under their categories as groups, the groups visibility can be toggled by clicking the category name.
Param hotkey : The hotkey that will open the parameters window of the script, you'll notice some scripts have 'n/a' in this column, that's because those are direct execution scripts that don't have parameters to be set by the user, so those have a direct hotkey only.
Direct hotkey : The hotkey to directly execute the script in its default parameters.
Remove : to select the scripts that you want to be removed, the removal will happen only after saving, and a confirmation message will be given after clicking 'Save' when some scripts are checked to be deleted..
Customization
-
Interface customization
Coming soon...
Tutorials
-
Make a proton-io script
This works for any executables or any command/script from any launguage, be it batch, python, node.js etc...
The idea basically is taking arguments from proton-io such as the selected files paths, the active directory and even other user input values from the parameters window.
First let's create the interface.json for our script, this allows proton-io to understand the nature of your script and how it'll use it etc....
Luckily for us we have Builder which allows us to create that easily. So just right click the tray icon of proton-io and select Builder.
Ok let's see what's happening here, we just made a script named 'CommandPrompt_here', we checked 'Get current directory' so it will receive the path to the active directory as an argument, the script is a simple command
cmd /k cd /dthat opens the command line prompt in the path that comes after/d, in our case it will always be the active directory since we checked it above to act as an argument.
Opening command prompt in the current directory...Well this can already be achieved using windows context menu right?
So let's see what else we can do with proton-io. First, instead of launching the script by selecting it in the menu, you can instead directly execute it with a hotkey of your choice, you can give it a hotkey using Manager. This is for now the fastest way you can use proton-io scripts
But what if we want to give our script parameters? This is another thing windows context menu doesn't offer, let's see how we can do that using proton-io in the next tutorial. -
Make a script with parameters
Having the possibility to input parameters for your scripts before execution opens doors for a lot more scripting tasks and solutions.
This script's purpose is simply being able to rename the currently selected files in the explorer by search and replace.
So the idea is to get the currently selected files paths, a search input and a replace input, and then handle all that in a command that would rename those files accordingly.
While creating the interface.json for this script, we want to make sure we check the 'Get selected files' that will give us the selected file paths as an argument, and also add some input fields for the user to type in what string to search and what string to be replaced with.
After that all we need is prepare a script that would handle those arguments and do the task we want.
This can be done in any launguage but for me the easiest is python. So I specified anexec.pyfile to execute with 'python' as the process.
Tip #4 : The
./in 'Proton Script' will be replaced with the script's interface.json path, this way you can keep your script relative to where interface.json is.
Tip #5 : By typing only 'python' in the 'Proton Process'. the python exe that comes with proton-io will be used which is v2.7.14. You can give it a full path if you want to use another python exe.This is how the automatically generated interface looks like :
This is how my
exec.pyscript file looks like.
As expected, the script takes the 4 arguments given by proton-io (including the script path itself).
Notice how I readmySelas a file. that's because proton-io sends the path to aselectedFiles.txtfile that contains the list of the selected file paths. I avoid sending the array of file paths directly from proton-io because it can get too large for the command line to take.