├── .gitignore ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── make.sh ├── mocu.png └── src ├── aliases.txt ├── names.txt ├── svg ├── alias.svg ├── all-scroll.svg ├── bottom_tee.svg ├── cell.svg ├── center_ptr.svg ├── col-resize.svg ├── color-picker.svg ├── context-menu.svg ├── copy.svg ├── crosshair.svg ├── default.svg ├── dnd-ask.svg ├── dnd-copy.svg ├── dnd-link.svg ├── dnd-no-drop.svg ├── dot.svg ├── dotbox.svg ├── down-arrow.svg ├── e-resize.svg ├── ew-resize.svg ├── grab.svg ├── grabbing.svg ├── help.svg ├── left-arrow.svg ├── left_tee.svg ├── ll_angle.svg ├── lr_angle.svg ├── n-resize.svg ├── ne-resize.svg ├── nesw-resize.svg ├── no-drop.svg ├── not-allowed.svg ├── ns-resize.svg ├── nw-resize.svg ├── nwse-resize.svg ├── pencil.svg ├── pointer.svg ├── progress.svg ├── progress.txt ├── right-arrow.svg ├── right_ptr.svg ├── right_tee.svg ├── row-resize.svg ├── s-resize.svg ├── se-resize.svg ├── sw-resize.svg ├── text.svg ├── top_tee.svg ├── ul_angle.svg ├── up-arrow.svg ├── ur_angle.svg ├── vertical-text.svg ├── w-resize.svg ├── wait.svg ├── wait.txt ├── x-cursor.svg ├── zoom-in.svg └── zoom-out.svg └── themes.txt /.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | tmp/ 3 | *.zip 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 1.1 (2022-02-02) 2 | ---------------- 3 | 4 | - Make question mark more circular 5 | - Increase size of magnifying glass handle 6 | - Reposition left-handed DnD symbols 7 | - Revise details of pencil and color-picker 8 | 9 | 1.0 (2021-05-21) 10 | ---------------- 11 | 12 | - Initial release 13 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Mocu 2 | ==== 3 | 4 | ![Preview](mocu.png) 5 | 6 | A modest xcursor theme, inspired by [DMZ] and [cz-Viator]. 7 | 8 | Available in white and black. Right and left-handed. 9 | Size 24, 36, 48, 60, 72, 96. Distributed under the [CC0]. 10 | 11 | [DMZ]: https://www.gnome-look.org/p/999970/ 12 | [cz-Viator]: https://github.com/charakterziffer/cursor-toolbox/ 13 | [CC0]: https://creativecommons.org/publicdomain/zero/1.0 14 | 15 | 16 | Make 17 | ---- 18 | 19 | The themes can be generated with the make script: 20 | 21 | ./make.sh 22 | 23 | Dependencies: 24 | 25 | - Common bash, sed, grep, etc. 26 | - rsvg-convert 27 | - xmlstarlet 28 | - xcursorgen 29 | 30 | 31 | Customization 32 | ------------- 33 | 34 | The theme settings are stored in `src/themes.txt`. 35 | 36 | 37 | ### Colors 38 | 39 | The svg files use placeholder colors, which are replaced 40 | with the specific theme colors before rendering. 41 | 42 | #0a0b0c = shadow 43 | #1a1b1c = stroke 44 | #fafbfc = fill 45 | 46 | 47 | ### Hotspot 48 | 49 | Each svg source file must contain a `` element with `id="hot"`. 50 | The center of the circle represents the hotspot. 51 | 52 | 53 | ### Handedness 54 | 55 | For a given handedness, each occurence of `class="HAND(SCALE,MOVE)"` is 56 | replaced with `transform="translate(MOVE)scale(SCALE,1)"` before rendering. 57 | 58 | 59 | ### Animations 60 | 61 | To animate a cursor, the svg source file can be accompanied 62 | by a `.txt` file. Each line in that file represents a frame, 63 | in the format `DELAY ATTRIBUTE`. Each occurence of `class="anim"` 64 | is replaced with `ATTRIBUTE` before rendering the respective frame. 65 | -------------------------------------------------------------------------------- /make.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | srcDir="src" 5 | outDir="dist" 6 | tmpDir="tmp" 7 | 8 | while read theme fill stroke shadow hand; do 9 | cursorDir="$outDir/$theme/cursors" 10 | index="$outDir/$theme/index.theme" 11 | 12 | # Prepare directories 13 | rm --recursive --force "$tmpDir" 14 | rm --recursive --force "$cursorDir" 15 | mkdir --parents "$tmpDir" 16 | mkdir --parents "$cursorDir" 17 | printf "[Icon Theme]\nName=${theme//-/ }\nComment=A modest cursor theme\n" > "$index" 18 | 19 | while read name; do 20 | svg="$srcDir/svg/$name.svg" 21 | txt="$srcDir/svg/$name.txt" 22 | cfg="$tmpDir/$name.cfg" 23 | cursor="$cursorDir/$name" 24 | printf "$cursor\n" 25 | 26 | # Extract hotspot 27 | IFS='(,)' read hotX hotY hotHand hotScale hotMove <<< $(\ 28 | xmlstarlet select --template --match '//_:circle[@id="hot"]' \ 29 | --value-of "concat(@cx,',',@cy,',',@class)" "$svg") 30 | 31 | if [ "$hotHand" = "$hand" ]; then 32 | hotX=$(awk "BEGIN {print $hotX * $hotScale + $hotMove}") 33 | fi 34 | 35 | # Render png 36 | for scale in 1 1.5 2 2.5 3 4; do 37 | size=$(awk "BEGIN {print int($scale * 24 + 0.5)}") 38 | x=$(awk "BEGIN {print int($scale * $hotX + 0.49)}") 39 | y=$(awk "BEGIN {print int($scale * $hotY + 0.49)}") 40 | 41 | while read frame delay attrib; do 42 | png="$tmpDir/$name-$size-$frame.png" 43 | printf "$size $x $y $png $delay\n" >> "$cfg" 44 | sed -e "s|#fafbfc|$fill|g" \ 45 | -e "s|#1a1b1c|$stroke|g" \ 46 | -e "s|#0a0b0c|$shadow|g" \ 47 | -e "s|class=\"anim\"|$attrib|g" \ 48 | -e "s|class=\"$hand(\([-0-9]*\),\([-0-9]*\))\"|transform=\"translate(\2)scale(\1,1)\"|g" \ 49 | -e 's|id="hot"|display="none"|g' \ 50 | "$svg" | rsvg-convert --zoom "$scale" --output "$png" 51 | done < <(cat --number "$txt" 2>/dev/null || printf '1\n') 52 | done 53 | 54 | # Generate cursor 55 | xcursorgen "$cfg" "$cursor" 56 | 57 | done < <(grep "^[0-9A-Za-z]" "$srcDir/names.txt") 58 | 59 | # Add alternative names 60 | while read alias target; do 61 | ln --symbolic --force "$target" "$cursorDir/$alias" 62 | done < <(grep "^[0-9A-Za-z]" "$srcDir/aliases.txt") 63 | 64 | done < <(grep "^[0-9A-Za-z]" "$srcDir/themes.txt") 65 | -------------------------------------------------------------------------------- /mocu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sevmeyer/mocu-xcursor/efdd71279b79bf1e2566c38becc5e7c4ab2d900c/mocu.png -------------------------------------------------------------------------------- /src/aliases.txt: -------------------------------------------------------------------------------- 1 | # Alternative cursor names (duplicates are omitted) 2 | # Format: ALIAS TARGET 3 | 4 | # X11 5 | # https://gitlab.freedesktop.org/xorg/data/cursors 6 | 7 | arrow default 8 | bottom_left_corner sw-resize 9 | bottom_right_corner se-resize 10 | bottom_side s-resize 11 | cross crosshair 12 | cross_reverse crosshair 13 | double_arrow ns-resize 14 | dot_box_mask dotbox 15 | fleur move 16 | hand1 pointer 17 | hand2 pointer 18 | left_ptr default 19 | left_ptr_watch progress 20 | left_side w-resize 21 | pirate x-cursor 22 | plus cell 23 | question_arrow help 24 | right_side e-resize 25 | sb_down_arrow down-arrow 26 | sb_h_double_arrow ew-resize 27 | sb_left_arrow left-arrow 28 | sb_right_arrow right-arrow 29 | sb_up_arrow up-arrow 30 | sb_v_double_arrow ns-resize 31 | top_left_corner nw-resize 32 | top_right_corner ne-resize 33 | top_side n-resize 34 | watch wait 35 | X_cursor x-cursor 36 | xterm text 37 | 38 | 39 | # GTK 40 | # https://gitlab.gnome.org/GNOME/gtk/-/blob/master/gdk/x11/gdkcursor-x11.c 41 | 42 | bd_double_arrow nwse-resize 43 | crossed_circle not-allowed 44 | dnd-none grabbing 45 | fd_double_arrow nesw-resize 46 | hand pointer 47 | move grabbing 48 | h_double_arrow ew-resize 49 | v_double_arrow ns-resize 50 | 51 | 52 | # Qt 53 | # https://doc.qt.io/qt-5/qcursor.html#a-note-for-x11-users 54 | 55 | closedhand grabbing 56 | dnd-move grabbing 57 | forbidden not-allowed 58 | ibeam text 59 | link alias 60 | openhand grab 61 | pointing_hand pointer 62 | size_all move 63 | size_bdiag nesw-resize 64 | size_fdiag nwse-resize 65 | size_hor ew-resize 66 | size_ver ns-resize 67 | split_h col-resize 68 | split_v row-resize 69 | whats_this help 70 | 71 | 72 | # Adwaita (GNOME) and Breeze (KDE) 73 | # https://gitlab.gnome.org/GNOME/adwaita-icon-theme 74 | # https://invent.kde.org/plasma/breeze 75 | 76 | circle not-allowed 77 | draft pencil 78 | left_ptr_help help 79 | 80 | 3085a0e285430894940527032f8b26df alias 81 | 640fb0e74195791501fd1ed57b41487f alias 82 | a2a266d0498c3104214a47bd64ab0fc8 alias 83 | 1081e37283d90000800003c07f3ef6bf copy 84 | 6407b0e94181790501fd1e167b474872 copy 85 | b66166c04f8c3109214a4fbd64a50fc8 copy 86 | 028006030e0e7ebffc7f7070c0600140 ew-resize 87 | 14fef782d02440884392942c11205230 ew-resize 88 | fcf21c00b30f7e3f83fe0dfd12e71cff grabbing 89 | 5c6cd98b3f3ebcb1f9c7f1c204630408 help 90 | d9ce0ab605698f320427677b458ad60b help 91 | 4498f0e0c1937ffe01fd06f973665830 move 92 | 9081237383d90e509aa00f00170e968f move 93 | fcf1c3c7cd4491d801f1e1c78f100000 nesw-resize 94 | 03b6e0fcb3499374a867c041f52298f0 not-allowed 95 | 00008160000006810000408080010102 ns-resize 96 | 2870a09082c103050810ffdffffe0204 ns-resize 97 | c7088f0f3e6c8088236ef8e1e3e70000 nwse-resize 98 | 9d800788f1b08800ae810202380a0822 pointer 99 | e29285e634086352946a0e7090d73106 pointer 100 | 00000000000000020006000e7e9ffc3f progress 101 | 3ecb610c1bf2410f44200f48c40d3599 progress 102 | 103 | 104 | # Mozilla 105 | # https://hg.mozilla.org/mozilla-central/file/tip/widget/gtk/nsGtkCursors.h 106 | # https://hg.mozilla.org/mozilla-central/file/tip/widget/gtk/nsWindow.cpp 107 | 108 | 0876e1c15ff2fc01f906f1c363074c0f alias 109 | 08ffe1e65f80fcfdf9fff11263e74c48 context-menu 110 | 08ffe1cb5fe6fc01f906f1c063814ccf copy 111 | 5aca4d189052212118709018842178c0 grab 112 | 208530c400c041818281048008011002 grabbing 113 | 50585d75b494802d0151028115016902 nesw-resize 114 | 03b6e0fcb3499374a867d041f52298f0 not-allowed 115 | 38c5dff7c7b8962045400281044508d2 nwse-resize 116 | 08e8e1c95fe2fc01f976f1e063a24ccd progress 117 | 048008013003cff3c00c801001200000 vertical-text 118 | f41c0e382c94c0958e07017e42b00462 zoom-in 119 | f41c0e382c97c0938e07017e42800402 zoom-out 120 | -------------------------------------------------------------------------------- /src/names.txt: -------------------------------------------------------------------------------- 1 | # Primary cursor names (duplicates are omitted) 2 | 3 | # freedesktop.org 4 | # https://www.freedesktop.org/wiki/Specifications/cursor-spec/ 5 | 6 | default 7 | text 8 | pointer 9 | help 10 | progress 11 | wait 12 | copy 13 | alias 14 | no-drop 15 | not-allowed 16 | all-scroll 17 | row-resize 18 | col-resize 19 | n-resize 20 | e-resize 21 | s-resize 22 | w-resize 23 | ne-resize 24 | se-resize 25 | sw-resize 26 | nw-resize 27 | vertical-text 28 | crosshair 29 | cell 30 | up-arrow 31 | context-menu 32 | ns-resize 33 | ew-resize 34 | nesw-resize 35 | nwse-resize 36 | 37 | 38 | # CSS 39 | # https://www.w3.org/TR/css-ui-3/#cursor 40 | # https://developer.mozilla.org/docs/Web/CSS/cursor 41 | 42 | grab 43 | grabbing 44 | zoom-in 45 | zoom-out 46 | 47 | 48 | # X11 49 | # https://gitlab.freedesktop.org/xorg/data/cursors 50 | 51 | bottom_tee 52 | center_ptr 53 | dot 54 | dotbox 55 | left_tee 56 | ll_angle 57 | lr_angle 58 | pencil 59 | right_ptr 60 | right_tee 61 | top_tee 62 | ul_angle 63 | ur_angle 64 | 65 | 66 | # Adwaita (GNOME) and Breeze (KDE) 67 | # https://gitlab.gnome.org/GNOME/adwaita-icon-theme 68 | # https://invent.kde.org/plasma/breeze 69 | 70 | color-picker 71 | dnd-ask 72 | dnd-copy 73 | dnd-link 74 | dnd-no-drop 75 | down-arrow 76 | left-arrow 77 | right-arrow 78 | x-cursor 79 | -------------------------------------------------------------------------------- /src/svg/alias.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/all-scroll.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/bottom_tee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/cell.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/center_ptr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/col-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/color-picker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/context-menu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/crosshair.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/default.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/dnd-ask.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/dnd-copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/dnd-link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/dnd-no-drop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/dotbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/down-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/e-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ew-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/grab.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/grabbing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/left-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/left_tee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ll_angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/lr_angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/n-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ne-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/nesw-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/no-drop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/not-allowed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ns-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/nw-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/nwse-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/svg/pointer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/progress.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /src/svg/progress.txt: -------------------------------------------------------------------------------- 1 | 25 transform="rotate(000,14,15)" 2 | 25 transform="rotate(009,14,15)" 3 | 25 transform="rotate(018,14,15)" 4 | 25 transform="rotate(027,14,15)" 5 | 25 transform="rotate(036,14,15)" 6 | 25 transform="rotate(045,14,15)" 7 | 25 transform="rotate(054,14,15)" 8 | 25 transform="rotate(063,14,15)" 9 | 25 transform="rotate(072,14,15)" 10 | 25 transform="rotate(081,14,15)" 11 | 25 transform="rotate(090,14,15)" 12 | 25 transform="rotate(099,14,15)" 13 | 25 transform="rotate(108,14,15)" 14 | 25 transform="rotate(117,14,15)" 15 | 25 transform="rotate(126,14,15)" 16 | 25 transform="rotate(135,14,15)" 17 | 25 transform="rotate(144,14,15)" 18 | 25 transform="rotate(153,14,15)" 19 | 25 transform="rotate(162,14,15)" 20 | 25 transform="rotate(171,14,15)" 21 | 25 transform="rotate(180,14,15)" 22 | 25 transform="rotate(189,14,15)" 23 | 25 transform="rotate(198,14,15)" 24 | 25 transform="rotate(207,14,15)" 25 | 25 transform="rotate(216,14,15)" 26 | 25 transform="rotate(225,14,15)" 27 | 25 transform="rotate(234,14,15)" 28 | 25 transform="rotate(243,14,15)" 29 | 25 transform="rotate(252,14,15)" 30 | 25 transform="rotate(261,14,15)" 31 | 25 transform="rotate(270,14,15)" 32 | 25 transform="rotate(279,14,15)" 33 | 25 transform="rotate(288,14,15)" 34 | 25 transform="rotate(297,14,15)" 35 | 25 transform="rotate(306,14,15)" 36 | 25 transform="rotate(315,14,15)" 37 | 25 transform="rotate(324,14,15)" 38 | 25 transform="rotate(333,14,15)" 39 | 25 transform="rotate(342,14,15)" 40 | 25 transform="rotate(351,14,15)" 41 | -------------------------------------------------------------------------------- /src/svg/right-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/right_ptr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/right_tee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/row-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/s-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/se-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/sw-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/top_tee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ul_angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/up-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/ur_angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/vertical-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/w-resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/wait.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/svg/wait.txt: -------------------------------------------------------------------------------- 1 | 25 transform="rotate(000,12,12)" 2 | 25 transform="rotate(009,12,12)" 3 | 25 transform="rotate(018,12,12)" 4 | 25 transform="rotate(027,12,12)" 5 | 25 transform="rotate(036,12,12)" 6 | 25 transform="rotate(045,12,12)" 7 | 25 transform="rotate(054,12,12)" 8 | 25 transform="rotate(063,12,12)" 9 | 25 transform="rotate(072,12,12)" 10 | 25 transform="rotate(081,12,12)" 11 | 25 transform="rotate(090,12,12)" 12 | 25 transform="rotate(099,12,12)" 13 | 25 transform="rotate(108,12,12)" 14 | 25 transform="rotate(117,12,12)" 15 | 25 transform="rotate(126,12,12)" 16 | 25 transform="rotate(135,12,12)" 17 | 25 transform="rotate(144,12,12)" 18 | 25 transform="rotate(153,12,12)" 19 | 25 transform="rotate(162,12,12)" 20 | 25 transform="rotate(171,12,12)" 21 | 25 transform="rotate(180,12,12)" 22 | 25 transform="rotate(189,12,12)" 23 | 25 transform="rotate(198,12,12)" 24 | 25 transform="rotate(207,12,12)" 25 | 25 transform="rotate(216,12,12)" 26 | 25 transform="rotate(225,12,12)" 27 | 25 transform="rotate(234,12,12)" 28 | 25 transform="rotate(243,12,12)" 29 | 25 transform="rotate(252,12,12)" 30 | 25 transform="rotate(261,12,12)" 31 | 25 transform="rotate(270,12,12)" 32 | 25 transform="rotate(279,12,12)" 33 | 25 transform="rotate(288,12,12)" 34 | 25 transform="rotate(297,12,12)" 35 | 25 transform="rotate(306,12,12)" 36 | 25 transform="rotate(315,12,12)" 37 | 25 transform="rotate(324,12,12)" 38 | 25 transform="rotate(333,12,12)" 39 | 25 transform="rotate(342,12,12)" 40 | 25 transform="rotate(351,12,12)" 41 | -------------------------------------------------------------------------------- /src/svg/x-cursor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/svg/zoom-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svg/zoom-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/themes.txt: -------------------------------------------------------------------------------- 1 | # Name Fill Stroke Shadow Handedness 2 | Mocu-White-Right #fcfcfc #222222 #000000 right 3 | Mocu-White-Left #fcfcfc #222222 #000000 left 4 | Mocu-Black-Right #111111 #f9f9f9 #000000 right 5 | Mocu-Black-Left #111111 #f9f9f9 #000000 left 6 | --------------------------------------------------------------------------------