The CursorFX Theme Editor allows you to edit existing cursor themes
or create entirely new theme packages. To edit the existing theme, first
select the theme, then click on the CursorFX Theme Editor
icon. To create a new theme package, click on the
button at the bottom of the CursorFX window.

CursorFX File Formats
The CursorFX unique file format is ".CursorFX" (without quotes) and is used for existing themes
or ones you create with the Editor.
CursorFX File Format:
- Is a binary file.
- Bundles different types of content: cursors, effects, trails, scripts,
and graphics.
- It can only be opened by CursorFX.
- It doesn’t let you extract original graphics (PNGs).
- Bundles meta-data: author, version, etc..
- Compressed, in order to achieve minimum size.
CursorFX also supports (read-only) old .CurXPTheme files. They can be
imported and be visible in the common cursors list. They can also be opened in
the editor but you will only be able to save as .CursorFX.
If a .CursorFX file only contains:
|
It will be considered...
|
| Effects |
...an Effects package and be visible in the Effects list of the
CursorFX Control Panel. |
| Trails |
...a Trails package and be visible in the Trails list of the
CursorFX Control Panel. |
.CursorFX can also contain cursors AND effects and trails that are theme
specifics. You will be asked if the currently loaded Effects or Trails are to be
overridden by the theme’s Effects/Trails. The other way around, you can
apply Effects or Trails to your current Cursors/Effects/Trails combination.
Creating Themes
- You can open multiple themes at the same time and you can copy and paste
elements across different themes.
- A single theme can include: Cursors, Special Effects, and Trails (tabbed
pages).
- Cursors are grouped into Normal and Pressed states. That is, when you
are pressing the mouse button, CursorFX will display the “Pressed” cursor if
available, or keep displaying the “Normal” cursor if the “Pressed” one is
unavailable.
Effects
Effects are animations displayed once on a specific event (such as a
double-click), available effects are:
- Left-button down
- Left-button up
- Left-button double click
- Middle-button down
- Middle-button up
- Middle-button double click
- Right-button down
- Right-button up
- Right-button double click
Trails
Trails are simple animations that are displayed following the cursor
movement. They are not displayed when the mouse is not moving. Available
trail modes are:
- All states: a single trail that will run all the time.
- All mouse down: a single trail that will be displayed when the mouse
buttons are down only.
- All mouse up: a single trail that will be displayed when the mouse
buttons are up only.
Graphics
CursorFX graphics must be done in 32-bit PNG graphics (RGB + alpha channel)
file format. There is no maximum size (in pixels) an image can be when
importing into CursorFX. However, the larger the image (i.e. 600 x 600, 1,000 x 1,000 pixels),
the more memory and processing power you will need to handle it. If you
notice CursorFX is using a lot of your CPU, consider downsizing the pixel size
of your images.
Animations must be implemented into a single horizontal strip of frames and
saved as PNG. You can use AniUtil.exe, included with CursorFX to select a batch of separated frames and automatically build an
optimized PNG strip. Here the word "optimized" is very important in order to save
runtime memory when using themes.
AniUtil can automatically detect what the unused (blank, or zero alpha)
margins are on ALL selected frames and cut them when building the PNG strip.
That way the common frame size will be the smallest necessary, to include all
visible (or whose alpha is > (greater than) than tolerance) pixels of all frames.
The AniUtil.exe utility is located in your \Program Files\Stardock\CursorFX
folder, unless you installed to a different folder.
Open the CursorFX Theme Editor by clicking on the
button on the MyCursors screen of the Control Panel. The following window
will be displayed, and consists of: a menu along the top
,
and three tabs
.

First, let's look at the top menu options and get familiar with what each
does. The following is the File menu:

The following list explains what each menu item does. A hot key, is a
shortcut way to perform a task using the keyboard instead of the mouse.
It's typically a combination of keys that you must press at the same time, such
as pressing the <Ctrl> (Control key) and the <N> (N) key. It doesn't
matter if your keyboard is in upper or lower case (Shift / Caps Lock).
Clicking on this...
|
Will do this
|
 |
This will open a new window with a blank cursor theme (no skins,
effects, trails). The hot key is <Ctrl> & <N>.
|
 |
This will prompt you for a CursorXP or CursorFX theme file to open.
The hot key is <Ctrl> & <O>.
|
 |
If this is a new blank cursor package, this will open an empty Theme
Properties, where you can enter all of the information about the theme
your creating.
If your editing an existing theme, the Theme Properties will display
information about that theme.
The hot key is <Ctrl> & <P>.
|
 |
This will close the cursor theme your editing. If you have multiple
themes open, it will close the one that is active (the one you last
clicked on). No hot key available.
|
 |
This will Save changes made to the theme your working on. If
it was a new theme and you never saved it, CursorFX will prompt you for
a filename. The hot key is <Ctrl> & <S>.
|
 |
This will prompt you for a filename to save your theme as. No
hot key available.
|
 |
This will apply any changes made to the theme your working on, to
your cursor so you can see the results. Hot key is <Ctrl> & <A>.
|
 |
This will save changes made and apply those changes to your cursor.
If you haven't already saved it under a filename, it will prompt you for
one. Hot key is <Ctrl> & <E>.
|
 |
This is a history of the last files opened. You can click on
any one of them to open the file, if it isn't already open. No hot
key available.
|
 |
This will close the Editor and all theme(s) you had open. If
you hadn't saved any changes, it will prompt you to save them before
closing. No hot key available.
|
The Edit menu allows you to Undo last changes, Cut graphics, Copy graphics,
and Paste graphics.

An alternate method to copy and paste graphics from one cursor
state to another, is too right-click on a cursor and select Copy. Then
click on the cursor state where you want to place the graphics, right-click and
select Paste. With multiple themes open, you can copy & paste between them.

The View menu allows you to turn on (checked) and off
(unchecked) the Status Bar.

The Status Bar is located at the bottom of the Editor window.

The Window menu allows the standard arrangement of windows and
lists which ones are open.

The Help menu displays information about using CursorFX.

A theme can include: Cursors, Special effects, and Trails
(seen as three tabs). The Cursors tab you've already seen, below are the
Special effects and Trails tabs.

Below is the Trails tab, with the selected state highlighted in blue and the
black cross marking the hot spot.

Each tab has the same options in the editor and the following
table explains each one.
Option
|
What it does
|
 |
This means the cursor states in the frame below it are the Normal
(no buttons pressed) states of your mouse's cursor. Each state has
it's own space and can be altered by you, by importing graphics, copying
graphics from another cursor in this theme or another theme. You
can also change the frames, etc. as described below.
|
 |
Clicking this allows you to change the view of the graphics (skins) for
each state of the pressed mouse buttons. This is a toggle, between
view pressed state and view normal states.
|
 |
This is a sample of the space allowed for a given cursor state.
As you click on a cursor state, it changes to a light blue to show it
has been selected. The small black cross indicates the actual hot
spot and can be moved by simply double-clicking inside the cursor area.
Or you can type the new X, Y coordinates into the Hot Spot X and Hot
Spot Y fields. The no symbol
indicates there are no graphics for this cursor. The text beneath it
describes the state.
|
 |
The X coordinate relative to the top left corner of the first frame
that will be centered on the actual cursor position. The editor visually
shows you the actual hot spot represented by a black cross. You can
adjust it simply by clicking on the preview.
Be careful on editing the correct hotspot coordinates, since this is what
mostly affects the cursor’s correct usability and feeling.
|
 |
Same as Hot spot X, but for the Y coordinate.
|
 |
Centers the hot spot.
|
 |
The total number of frames in the animation strip, or 1 if you are
using a single frame. A strip is imported using the
button.
|
 |
If checked, the animation will automatically repeat (or loop). Old
themes have loop on (box checked) by default.
Unchecked, the animation won't loop. However, you can include a
loop(s) in a script that is more complex.
|
 |
This is the interval measured in milliseconds (ms) between each
frame.
1,000 ms = 1 second.
50 ms = 20 frames per second (FPS).
|
 |
If checked, under simple animation mode, it will execute the
animation strip once forward, then once reversed, then loop (repeat).
|
 |
Lets you manually specify: special execution steps, different
timing, timeline, loops, etc..
|
 |
Lets you browse for the PNG file to import and associate to the
current item’s graphics.
|
|
Removes the associated graphics and makes the cursor/effect/trail
undefined (not present).
|
|
(Trails tab only) Enter a number for how many trails per second to be
displayed.
|
Creating scripts provides you with the real power to create unique cursor
themes. This lets you manually specify: special execution steps, different
timing, timeline, loops (repeat steps), etc.. Here is a set of rules to
follow in the creation of animation scripts:
- A script is made up of one or more tokens. Example:
1,3000 (2 tokens) or 6-10 (one token).
- A token defines an execution of one or more frames and its timing
(interval).
- CursorFX will execute from the first to the last token, then loop
automatically.
- Tokens can be separated by a carriage return (Enter key) or by a
semi-colon ";" character (without quotes).
- Frame intervals are separated by a hyphen (dash) "-" character (without
quotes).
- Timing is specified adding ‘,ms’ (without quotes).
- To include a loop (repeat step(s)), use the reserved word
"repeat", followed by the number of times to loop.
- To stop a loop, use the reserved words "end repeat".
- You can have nested loops, that is, loops inside of
loops.
Example of a script:
1,3000
2-5,30
6-10
9-6
7-10
9-2,60
Following is a breakdown of what each line in the script does:
Step
|
Tokens
|
Description
|
| 1 |
1,3000 |
Displays the first frame (1) for 3000ms (3 seconds). |
| 2 |
2-5,30 |
Then runs forward from the 2nd to 5th frames, with 30ms interval
between frames (about 32 FPS). |
| 3 |
6-10 |
Then goes forward from the 6th frame to 10th frame. No timing
specified, so it assumes 30 ms (from step 2). |
| 4 |
9-6 |
Then goes backward from the 9th frame to the 6th
frame. No timing specified, so it assumes 30 ms. |
| 5 |
7-10 |
Then goes forward from the 7th frame to the 10th
frame. No timing specified, so it assumes 30 ms. |
| 6 |
9-2,60 |
Finally it executes backwards from the 9th frame to 2nd frame, with a slower
frequency (60 ms, about 16 FPS). |
| 7 |
|
The animation will loop (return to step 1) and show the first frame
for 3000ms (3 seconds). |
In short, the script will
display the following frames in this order:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2,
1.
Looping (or iteration) is a powerful technique to repeat one
or more steps. A loop has a beginning (repeat X, where "X" is the number of
times to loop) and an end (end repeat).
Example of a simple loop:
1-4,30
repeat 2
5-10
9-4
end repeat
Following is a breakdown of what each line in the script does:
Step
|
Tokens
|
Description
|
| 1 |
1-4,30 |
Displays frames 1st to 4th, with 30ms interval
between frames. |
| 2 |
repeat 2 |
This starts the loop, telling CursorFX to repeat the
loop 2 times. |
| 3 |
5-10 |
Then goes forward from the 5th frame to 10th frame.
No timing specified, so it assumes 30 ms (from step 1). |
| 4 |
9-4 |
Then goes backward from the 9th frame to the 4th
frame. No timing specified, so it assumes 30 ms. |
| 5 |
end repeat |
This ends the loop, so it returns to step 2 to repeat
a second time. |
| 6 |
repeat 2 |
It knows it has looped 1 time, it checks the command
(repeat 2) and continues to the next line. |
| 7 |
5-10 |
Then goes forward from the 5th frame to 10th frame.
No timing specified, so it assumes 30 ms (from step 1). |
| 8 |
9-4 |
Then goes backward from the 9th frame to the 4th
frame. No timing specified, so it assumes 30 ms. |
| 9 |
end repeat |
This ends the loop, so it returns to step 6. It
knows it has looped 2 times, checks the command (repeat 2), stops the
loop and ends the script. |
In short, the script will display the following frames in this
order:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 9, 8,
7, 6, 5, 4.
Example of a Nested Loop:
repeat 2
1-3,30
repeat 3
4-6
end repeat
end repeat
Following is a breakdown of what each line in the script does:
Line
|
Tokens
|
Description
|
| 1 |
repeat 2 |
This starts the (outer) loop, telling CursorFX to
repeat the loop 2 times. |
| 2 |
1-3,30 |
This displays frames 1st to 3rd, with 30ms interval
between frames. |
| 3 |
repeat 3 |
This starts the nested (inner loop), which tells it
to repeat the following line 3 times. |
| 4 |
4-6 |
Then it displays frames 4th to 6th. No timing
specified, so it assumes 30 ms. |
| 5 |
end repeat |
This ends the nested (inner) loop, so it returns to
line 3 to repeat line 4 a second time and third time, before ending
(exiting) the loop and continuing with line 6. |
| 6 |
end repeat |
Now it returns to line 1, knows it's looped 1 time.
It starts to loop a second time by going to line 2, and then line 3
which tells it to loop 3 times (line 4). Once that loop is done,
it goes to line 6. Then back to line 1, compares the number of
times it has looped (2 times) to the command "repeat 2" and stops the
loop and ends the script. |
In short, the script will display the
following frames in this order:
1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6.
As you can see, there is a lot of power in scripting your
animations. By controlling what frame is displayed for how long, when the
mouse button is being pressed down, then released (coming back up), repeating
select frames, and more can create a very unique theme. Let your
imagination go and experiment! If you create something enjoyable and want
to share it, post it online at
www.stardock.com.