Provided by: libx11-protocol-other-perl_31-1_all bug


       X11::CursorFont - cursor font glyph names and numbers


        use X11::CursorFont '%CURSOR_GLYPH';
        my $num = $CURSOR_GLYPH{'fleur'};               # is 52
        my $name = $X11::CursorFont::CURSOR_NAME[52];   # is "fleur"


       This is the names and numbers of the glyphs in the X11 cursor font which contains various
       standard mouse pointer cursors.

       %CURSOR_GLYPH maps a glyph name to its character number in the font,

           $CURSOR_GLYPH{'fleur'}     # is 52

       @CURSOR_NAME conversely is indexed by character number and gives the glyph name,

           $CURSOR_NAME[52]           # is "fleur"

       Each glyph has an associated mask at character number glyph+1 which is the shape of the
       cursor (the displayed vs transparent pixels).  So the character numbers are always even
       and in @CURSOR_NAME only the even character positions have names.

       The cursor images can be viewed with the usual "xfd" font display program,

            xfd -fn cursor

       The names are per the Xlib /usr/include/X11/cursorfont.h file, without the "XC_" prefixes.
       The full list is

           Name                  Number

           X_cursor                0    default fat X
           arrow                   2
           based_arrow_down        4
           based_arrow_up          6
           boat                    8
           bogosity               10
           bottom_left_corner     12
           bottom_right_corner    14
           bottom_side            16
           bottom_tee             18
           box_spiral             20    a square spiral
           center_ptr             22
           circle                 24
           clock                  26
           coffee_mug             28
           cross                  30
           cross_reverse          32
           crosshair              34    "+" shape
           diamond_cross          36
           dot                    38
           dotbox                 40
           double_arrow           42
           draft_large            44
           draft_small            46
           draped_box             48
           exchange               50
           fleur                  52
           gobbler                54
           gumby                  56
           hand1                  58
           hand2                  60
           heart                  62
           icon                   64
           iron_cross             66
           left_ptr               68
           left_side              70
           left_tee               72
           leftbutton             74
           ll_angle               76
           lr_angle               78
           man                    80
           middlebutton           82
           mouse                  84
           pencil                 86
           pirate                 88    skull and crossbones
           plus                   90
           question_arrow         92
           right_ptr              94
           right_side             96
           right_tee              98
           rightbutton           100
           rtl_logo              102
           sailboat              104
           sb_down_arrow         106
           sb_h_double_arrow     108
           sb_left_arrow         110
           sb_right_arrow        112
           sb_up_arrow           114
           sb_v_double_arrow     116
           shuttle               118
           sizing                120
           spider                122
           spraycan              124
           star                  126
           target                128
           tcross                130
           top_left_arrow        132
           top_left_corner       134
           top_right_corner      136
           top_side              138
           top_tee               140
           trek                  142
           ul_angle              144
           umbrella              146
           ur_angle              148
           watch                 150    a good "busy" indicator
           xterm                 152    a vertical insertion bar

       "X_cursor" is the usual default when the server first starts or when the root window is
       set to cursor "None".


           A mapping of glyph name to cursor font character number.

           A table of cursor font character number to glyph name.


       Nothing is exported by default, but %CURSOR_GLYPH and @CURSOR_NAME can be selected in
       usual "Exporter" style (see Exporter),

           use X11::CursorFont '%CURSOR_GLYPH', '@CURSOR_NAME';


       To create a cursor from a desired glyph,

           my $cursor_name = 'spraycan';
           my $cursor_glyph = $CURSOR_GLYPH{$cursor_name}; # number

           my $cursor_font = $X->new_rsrc;
           $X->OpenFont ($cursor_font, "cursor"); # cursor font

           my $cursor = $X->new_rsrc;
                   $cursor_font,  # font
                   $cursor_font,  # mask font
                   $cursor_glyph,      # glyph
                   $cursor_glyph + 1,  # and its mask
                   0,0,0,                  # foreground, black
                   0xFFFF,0xFFFF,0xFFFF);  # background, white

           $X->CloseFont ($cursor_font);

           # then use $cursor with CreateWindow or ChangeWindowAttributes
           #       cursor => $cursor

       The $cursor_font could be kept open if used repeatedly.  Opening and closing isn't a
       round-trip, so an open when needed may be enough.

       Any RGB colours can be given in "CreateGlyphCursor()", but actual appearance on screen
       will be limited by the hardware.

       All cursors in the core protocol are two-colours with pixels fully opaque or fully
       transparent as per this create.  The RENDER extension, when available, can make multi-
       colour and partial transparency if desired (see X11::Protocol::Ext::RENDER).


       X11::Protocol, X11::KeySyms

       /usr/include/X11/cursorfont.h and listing in the Xlib manual appendix B
       ("" or /usr/share/doc/libx11-dev/libX11.txt.gz).

       Xlib Xmu "XmuCursorNameToIndex()" ("" or

       xfd(1) to display the cursor font.

       xsetroot(1) to change the root window cursor.




       Copyright 2011, 2012, 2013, 2014, 2017 Kevin Ryde

       X11-Protocol-Other is free software; you can redistribute it and/or modify it under the
       terms of the GNU General Public License as published by the Free Software Foundation;
       either version 3, or (at your option) any later version.

       X11-Protocol-Other is distributed in the hope that it will be useful, but WITHOUT ANY
       WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE.  See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with
       X11-Protocol-Other.  If not, see <>.