KM variables, listed as:
Keyboard Maestro variables list.kmmacros (29.3 KB)
are globales...
How to manage local use (emulating local variables in fact) avoiding conflict in Execute Macro Action call's chain?
Any ideas, thanks,
--Alain
KM variables, listed as:
Keyboard Maestro variables list.kmmacros (29.3 KB)
are globales...
How to manage local use (emulating local variables in fact) avoiding conflict in Execute Macro Action call's chain?
Any ideas, thanks,
--Alain
Hey Alain,
That macro gets the job done but is more complicated than necessary for simply displaying the variables.
Even so – your usage of the different KM actions shows you've come a long way, since you started.
Just for giggles here's my more generic Keyboard Maestro environment dumper macro:
Keyboard_Maestro { Dump_Env env
}.kmmacros (2.1 KB)
It can easily be adjusted to use TextEdit instead of BBEdit as the viewer. (TextWrangler could easily replace BBEdit as well if its command-line tools are installed.)
On to Global vs Local Variables in Keyboard Maestro.
Keyboard Maestro has NO concept of Local. All variables are Global.
If you really need a local variable you can write-to and read-from the defaults system using the shell.
OR
You can write-to and read-from 1 or more files.
Create a folder somewhere called Keyboard_Maestro_Variables, and give it a sub-folder structure that makes sense for your context.
Keyboard_Maestro_Variables/
myMacroName_Variables/
fileName.txt
filePath.txt
Keyboard Maestro has read-from-file and write-to-file actions, so that's easy.
You can also easily read/write from AppleScript.
There are some other methods, but these are the simplest.
-Chris
Of course Thanks to point out and for your dumper. First, I want to use KM to process further and change my mind...
Focusing on KM "local" variables:
Could you elaborate? How is the naming (name space)?
--Alain
Hey Alain,
I'm not more than a casual user of the defaults database.
Accessing it from the shell is a bit slow, so I'm unlikely to fool with it more than I have to until I can access it more quickly with ASObjC or something else.
Here are a couple of reference points:
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/defaults.1.html
http://www.macissues.com/2014/03/25/how-to-properly-manipulate-defaults-in-os-x/
Here's a working example:
Write:
defaults write com.ccs.prefs prefVal01 -bool true
Read:
defaults read com.ccs.prefs prefVal01
Delete:
defaults delete com.ccs.prefs prefVal01
com.ccs
is me, although that's only on my machine.
I would not use this system for prefs.
I would either use a system of text files, as I described earlier.
OR
I'd use a single .plist file and operate it with System Events or the Satimage XMLLib.osax (preferably the latter).
OR
I'd use a flat text file and the Satimage.osax's regEx (or KM's regex).
Reading and writing to/from a file is very fast unless the file is quite big.
-Chris
Thanks Chris for your detailed stimulating tracks.
I will come back if something which deserve sharing appears.
–Alain