...
I made a knife mouse cursor, it ends up being pretty far off from where the mouse actually clicks on the screen, not sure why. Can't figure it out yet.
My guess is you didn't enable the pointers "hotspot". A very common mistake. You can design the pointer in any graphics program, but not all graphic programs allow you to set the "hotspot".
Lucky for you, your a Linux user and have all the tools you need at your disposal and free of charge to boot!
You need a program called "xcursorgen" and is most likely already installed on your system.
From the command "xcursorgen --help" :
usage: xcursorgen [-V] [--version] [-?] [--help] [-p <dir>] [--prefix <dir>] [CONFIG [OUT]]
Generate an Xcursor file from a series of PNG images
-V, --version display the version number and exit
-?, --help display this message and exit
-p, --prefix <dir> find cursor images in <dir>
With no CONFIG, or when CONFIG is -, read standard input. Same with OUT and
standard output.
from the command "man xcursorgen":
XCURSORGEN(1) XCURSORGEN(1)
NAME
xcursorgen - create an X cursor file from a collection of PNG images
SYNOPSIS
xcursorgen [ -V ] [ --version ] [ -? ] [ --help ] [ -p dir ] [ --prefix
dir ] [ config-file [ output-file ] ]
DESCRIPTION
Xcursorgen reads the config-file to find the list of cursor images
along with their hotspot and nominal size information. Xcursorgen con‐
verts all of the images to Xcursor format and writes them to the out‐
put-file.
Each line in the config file is of the form:
<size> <xhot> <yhot> <filename> <ms-delay>
Multiple images with the same <size> are used to create animated
cursors, the <ms-delay> value on each line indicates how long each
image should be displayed before switching to the next.
<ms-delay> can be elided for static cursors.
If config-file is not specified, or is specified as "-", standard input
is used for the configuration file. If output-file is not specified,
or is specified as "-", standard output is used for the output file.
OPTIONS
-V, --version
Display the version number and exit.
-?, --help
Display the usage message and exit.
-p dir, --prefix dir
Find cursor images in the directory specified by dir. If not
specified, the current directory is used.
SEE ALSO
Xcursor(3)
So what does all this mean exactly.... Let's say you have an handy icon you'd want to make into a cursor, like the kinfe.
Let's say the file name of the image is knife.png for sake of readability. Let's also say that it is a 24x24 pixel image file.
We need to make a config file in a text editor, let's name it knife.config.
In the knife.config file is where we will store all our info about our cursor. On the first line write something like this.:
24 0 0 knife.png
and save the file.
This tells the program that the image file is 24x24 pixels, that we want the "hotspot" to be in the upper left corner, and we wish to use the image knife.png
If we wanted to make the knife's "hotspot" in the lower right corner the line would read:
24 24 24 knife.png
So as you can see, the first number dictates the size of the image, and the following two are the cartesian coordinates of where you wish the "hotspot" to be. Remember that computers map from top left of the screen so 0,0 would be the top left of the screen/image not the lower left as on normal graph paper.
Now that we have our config file written and saved, we can now execute the command:
xcursorgen knife.config knife
...and voilla, your png is now a generated cursor png with some more meta info! Now all you have to do is plug it in in your theme how ever you want.
I hope this helped you out a little.