Macros gang stalking electronic harassment implants > computing > software > Mac OS > Macros

Macros Finder icon

ZIP file icon Download Macros (StuffIt X, 141.8 K)


The extension lets you define macros in the Macro preferences folder in the Preferences folder.

Macros is incompatible with CameraMan 3.0 and WorldText.
Macros can’t override command-Q.


Drag Macros to the system folder and restart.


If you want to define a macro for a specific key combination then you have to make a file with a special filename. The contents of that file will be interpreted and the result will replace the key combination that you typed.

The filename needs to start with the key code of the key followed eventually by modifiers, separated by a space. The modifiers need to be in this order: command, control, alt, and shift. For example, 34 control shift defines control + shift + I.

These macro definition files have to be placed in the Macro preferences folder in the preferences folder.

The key codes can be found using my program Key event calculator.

The filename may start with a remark which ends with =. For example, P=35 control defines control + P.

If you make a mistake, for example, if you write an incorrect filename such as P=35 alt control or sdfgsdgf then the extension will stop.

The KEYE resource

There is 1 type of macro: a resource file which contains 1 resource of the type ‘KEYE’. (This stands for key event.)

Such a resource contains a number of key events. The resource is: count of events + repetition of {char code + keycode + ASCII code + modifiers}.

KEYE resource from macro definition file

There are 3 types of key events:

  1. If the key code is $FF then this is a built-in macro.

  2. If the key code is $FE then the ASCII code has to be the resource ID of a ‘CPPC’ code resource in the Code resources file in the Macro preferences folder.

    CPPC resources from 'Code resources' file

    The code resource needs to have a main function with the following prototype:

    typedef bool (*TranslateProcPtr)(long in_size,const unsigned char *in,unsigned char **out);

    out is an existing handle which is not locked. You may resize it.

    Return true if it succeeds.

    There are demo macros in the OS 9.3 SDK.

  3. Otherwise the key event is defined by keycode + ASCII code + modifiers. The char code serves only as a comment, to make it more clear for you when you open the resource.

Recording macros

Record macro icon

Record macro records what you type until you click the mouse button. It makes a Macro definition x.rsrc in its folder with a ‘KEYE’ and ‘TMPL’ resource. You may open and edit this resource.

Recorded macro

Checking macros

Check macros icon

Check macros uses the same function as the extension to load the macros and dump a string representation. Something like (2 $18) means: modifiers = 2 and key code = $18. It will tell you if there’s something wrong with your macros. For example, you may not call another macro. If you have a macro for control A then this combination may not be used in another macro.

Checked macro

Debugging your macros

Macros debug is a special version which will send messages to DebugWindow.

Debug events from macro extension


Macros is a 68K INIT.

Macros will send eventual error messages to DebugWindow.


This software is provided as is. There is no guarantee whatsoever. I will under no circumstance accept any liability for possible damage.

This software is licensed to you, for your own use. This is copyrighted software. You are not obtaining title to the software or any copyright rights. You may not sublicense, rent, lease, convey, modify, translate, convert to other programming languages, decompile, or disassemble this software for any purpose.

You may make as many copies of this software as you need for back-up purposes. In addition, you may use this program on more than one computer.

I disclaim all warranties relating to this software, whether expressed or implied, including but not limited to any implied warranties of merchantability and fitness for a particular purpose, and all such warranties are expressly and specifically disclaimed. I will never be liable for any indirect, consequential, or incidental damages arising out of the use or inability to use such software even if I have been advised of the possibility of such damages or claims. In no event shall my liability for any damages ever exceed the price paid for the license to use the software, regardless of the form of the claim. The person using the software bears all risk as to the quality and performance of the software.

© 2012-2018 Cliff Huylebroeck