# The original Comix Cursors sources README
You need to have the ImageMagick (www.imagemagick.org)
tools and Inkscape (www.inkscape.org) installed, to run
the installation script!
If you have, issue
This will read the basic cursors from the svg files, add
a blurred and scaled shadow, tint the icons and compose
them into a single png image. After all the images have
bee processed, the script will invoke "make" and "make
install", to create the xcursor files and install them
into you personal cursors folder (~/.icons/).
Thanks to uga and the RedDot cursor theme for the basic
skeleton and Makefile.
Read the file INSTALLATION for installation details.
CUSTOMIZE YOUR CURSORS
Despite the actual svg files a lot of customization can be
done while composing the images.
All configuration options are in the "CONFIG" file, which gets
processed by the install and svg2png scripts. Some options
can also get passed to the svg2png script, issue "./svg2png.bash"
for a list of them.
The "svg2png.bash" script is used by the "install.bash"
script, so when you want to batch-process you svgs you can
either add as many options to the command line as you want,
or edit the default values in the CONFIG file.
- KDE's control center Mouse Theme Installation does not support symlinks
in the packed archives (tar). This produces *big* overhead for syncing
the different naming schemes.
- Gnome puts different cursor sizes in one xcursor file, which might be
ment the way to do, but what about memory? They sure know. And Gnome
supports distinct cursor sizes only (16,24,32,48).
- If you are missing some cursors issue "# export XCURSOR_DISCOVER=1"
and re-start the application to find the corresponding cursor hash.
Report it to me or link it yourself in the ~/incons directory.
There is a cursor conventions specification (Oct 2003):
X-cursor The X window system logo.
default Default cursor. Indicates the interface is idle and prepared to accept commands from the user. Used to manipulate basic user interface elements like buttons and scrollbars. Usually a left pointing diagonal arrow.
right-arrow Inverted version of the default cursor. This cursor is used in Motif when a popup menu or a drop down combo-box is open, to indicate that the widget has grabbed the mouse. Typically rendered as a right pointing diagonal arrow.
up-arrow Up pointing arrow cursor. This cursor is typically used to identify an insertion point.
text Text input cursor. Indicates that the cursor is in a region in which horizontal text can be selected and possibly edited. Typically rendered as a vertical I-beam.
vertical-text Text input cursor. Indicates that the cursor is in a region in which vertical text can be selected and possibly edited. Typically rendered as a horizontal I-beam.
pointer Indicates that the object below the cursor is clickable. This cursor is typically used for links in web browsers. It shouldn't be abused for pushbuttons and other UI elements where it's otherwise apparent by the design of the widget that it's a clickable object. Often rendered as a pointing hand.
crosshair Crosshair cursor. Typically used for precision drawing or manipulation of an area.
help Help cursor. Indicates that the system is in a context help mode, and if the user clicks an object a small window will open up to provide usage information for that object. The context help mode is typically activated by clicking a help button on the titlebar of a window that provides context help. Often rendered as the default cursor with a question mark symbol next to it.
progress Default cursor + busy cursor. Indicates a pending activity which may asynchronously affect the interface but which is not blocking commands from the user.
wait Busy cursor. Indicates that the interface is not prepared to accept commands from the user and is blocked on some external resource. Often rendered as a watch or an hourglass.
copy !DnD copy cursor. Indicates that a copy of the dragged object will be created in the area below the cursor if dropped. Typically rendered as the default cursor with a small plus sign next to it.
alias !DnD link cursor. Indicates that a link to the original location of the dragged object will be created in the area below the cursor if dropped. Typically rendered as the default cursor with a small curved arrow next to it.
no-drop !DnD no-drop cursor. Indicates that the dragged object can't be dropped in the region below the cursor. Typically rendered as the default cursor with a small circle with a diagonal line through it. Can be identical to not-allowed.
not-allowed Forbidden cursor. Indicates that a particular region is invalid for the current operation. Often rendered as circle with a diagonal line through it.
cell The thick plus sign cursor that's typically used in spread-sheet applications to select cells.
all-scroll Scroll/move cursor. Used to indicate that moving the mouse will also move the UI element below the cursor. Often rendered as a combined vertical and horizontal twin-headed arrow.
context-menu Indicates that a context menu is available for the object underneath the cursor. Typically rendered as the default cursor with a small menu-like graphic next to it.
row-resize Horizontal splitter bar cursor. Indicates that the bar below the cursor can be moved up and down to resize the objects it separates. Used when it's not apparent if the object below the cursor is just a visual separator between two other UI elements, or an object that can be manipulated. Usually rendered as a vertical twin-headed arrow, split in the middle by a horizontal line.
col-resize Vertical splitter bar cursor. Indicates that the bar below the cursor can be moved left and right to resize the objects it separates. Used when it's not apparent if the object below the cursor is just a visual separator between two other UI elements, or an object that can be manipulated. Usually rendered as a horizonal twin-headed arrow, split in the middle by a vertical line.
e-resize Indicates that the cursor is over the right edge of a window, and that the edge can be clicked and dragged in order to resize the window horizontally.
ne-resize Indicates that the cursor is over the top-right edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
nw-resize Indicates that the cursor is over the top-left edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
n-resize Indicates that the cursor is over the top edge of a window, and that the edge can be clicked and dragged in order to resize the window vertically.
se-resize Indicates that the cursor is over the bottom-right edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
sw-resize Indicates that the cursor is over the bottom-left edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
s-resize Indicates that the cursor is over the bottom edge of a window, and that the edge can be clicked and dragged in order to resize the window vertically.
w-resize Indicates that the cursor is over the left edge of a window, and that the edge can be clicked and dragged in order to resize the window horizontally.
ew-resize Horizontal resizing cursor. Indicates that cursor is over the the left or right edge of a window, and that ithe edge can be clicked and dragged to resize the window horizontally. Typically rendered as a horizontal twin-headed arrow.
ns-resize Vertical resizing cursor. Indicates that cursor is over the the top or bottom edge of a window, and that the edge can be clicked and dragged to resize the window vertically. Typically rendered as a verticaly twin-headed arrow.
nesw-resize Back-diagonal resizing cursor. Indicates that the UI element below the cursor is the top-right or bottom-left corner of a window, and that it can be clicked and dragged to resize the window diagonally. Typically a twin-headed arrow.
nwse-resize Forward-diagonal resizing cursor. Indicates that the UI element below the cursor is the top-left or bottom-right corner of a window, and that it can be clicked and dragged to resize the window diagonally. Typically a twin-headed arrow.
This is the current xorg naming convention (CursorName.c, cursor.bdf):
This is the current (Qt4) cursor name scheme (qcursor.cpp, qcursor_x11.cpp):
# map Q cursor to X cursor
This is the current Gnome curser names (gdk_enums.def)
# x-cursor GDK_X_CURSOR
# cursor-is-pixmap GDK_CURSOR_IS_PIXMAP
CSS3 Cursors (http://www.w3.org/TR/css3-ui/#cursor0)
auto The UA determines the cursor to display based on the current context.
default The platform-dependent default cursor. Often rendered as an arrow.
none No cursor is rendered for the element.
context-menu A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.
help Help is available for the object under the cursor. Often rendered as a question mark or a balloon.
pointer The cursor is a pointer that indicates a link.
progress A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.
wait Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.
cell Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.
crosshair A simple crosshair (e.g., short line segments resembling a "+" sign). Often used to indicate a two dimensional bitmap selection mode.
text Indicates text that may be selected. Often rendered as a vertical I-beam. User agents may automatically display a horizontal I-beam/cursor (e.g. same as the 'vertical-text' keyword) for vertical text, or for that matter, any angle of I-beam/cursor for text that is rendered at any particular angle.
vertical-text Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.
alias Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.
copy Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.
move Indicates something is to be moved.
no-drop Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.
not-allowed Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.
w-resize Indicates that some edge is to be moved. For example, the 'se-resize' cursor is used when the movement starts from the south-east corner of the box.
nwse-resize Indicates a bidirectional resize cursor.
col-resize Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.
row-resize Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.
all-scroll Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.