Komodo Macro
Macros show up in the toolbox panel on the right hand side of the Komodo window. They can be used to automate almost everything in Komodo, and with the Komodo add-on all the functionality are extended to the macros.
Since users are use to writing javascript from their Mojo applications all macros are written in JavaScript (Python is also allowed, but not documented).
If you do not see the panel: View > Tabs & Sidebars > Toolbox.
Macro Basics
To create a new macro simply add your code below the starting script below
<source lang="javascript"> komodo.assertMacroVersion(2); // Macro Version if(komodo.view && komodo.view.scintilla) {
komodo.view.scintilla.focus(); // Sets focus
} [... Your Script Here ...] </source>
Deploy Functions
The deploy functions which will automatically toggle and animate the add-on to prevent conflicts.
<source lang="javascript"> // Emulator Functions ko.extensions.webos.emulator.packageInstallLaunch(); ko.extensions.webos.emulator.packageInstallInspect(); ko.extensions.webos.emulator.remove(); ko.extensions.webos.emulator.launch(); ko.extensions.webos.emulator.close(); // Device Functions ko.extensions.webos.device.packageInstallLaunch(); ko.extensions.webos.device.remove(); ko.extensions.webos.device.launch(); ko.extensions.webos.device.close(); </source>
The above functions can optionally be passed an object with onSuccess and onFailure property functions.
<source lang="javascript"> {
onSuccess:function() { // This means the function worked }, onFailure:function() { // This means the function failed the UI will show this also. }
} </source>
For more customization you must use the base palm functions listed below.
Macro Functions
All functions are asynchronous with onSuccess and onFailure callbacks. These are written to make the more complicated tasks very simple to write into a macro.
Check If Connected
The first thing you need to determine is if the emulator or device is connected.
Is Emulator Connected
<source lang="javascript"> ko.extensions.webos.palm.isEmulatorConnected({
onSuccess:function() { // Emulator was found }, onFailure:function() { // Emulator was not found }
}); </source>
Is Device Connected
<source lang="javascript"> ko.extensions.webos.palm.isDeviceConnected({
onSuccess:function() { // Device was found }, onFailure:function() { // Device was not found }
}); </source>
Palm Commands
You may have never used the palm command line since you are use to the add-on, but the following are what the quick buttons rely on.
Generate Application
This function is documented only to show the complete list of commands. It is recommended that you use the new project option in the emulator as this will only create the src/ contents.
<source lang="javascript"> ko.extensions.webos.palm.generateApplication({
appInfo:{}, // The appinfo.json object path:"", // Absolute file path. "C:\Folder" for instance onSuccess:function() { // Created a application at path }, onFailure:function() { // Failed to create application template }
}); </source>
Package Application
Package an application simply creates the ipk and places it into either the bin/release or bin/debug based on the framework_config.json settings.
<source lang="javascript"> ko.extensions.webos.palm.packageApplication({
onSuccess:function() { // Created the ipk package file }, onFailure:function() { // Failed to create package }
}); </source>
Install Application
Install an application to the device or emulator. There are currently two options.
<source lang="javascript"> ko.extensions.webos.emulator.cmdName ko.extensions.webos.device.cmdName </source>
Once you pick a device or emulator to install to you must select a ipk. If you do not select an IPK it is automatically populated with the current projects current ipk based off the framework_config.json and appinfo.json.
<source lang="javascript"> ko.extensions.webos.palm.installApplication({
device:ko.extensions.webos.emulator.cmdName, path:"", // OPTIONAL: Absolute path to ipk file. onSuccess:function() { // }, onFailure:function() { // Test }
}); </source>
Launch Application
<source lang="javascript"> ko.extensions.webos.palm.launchApplication({}) </source>
Close Application
<source lang="javascript"> ko.extensions.webos.palm.closeApplication({}) </source>
Remove Application
<source lang="javascript"> ko.extensions.webos.palm.removeApplication({}) </source>
Useful Macros
If you find a useful macro list it below.