From 93892a29d33971cce40888ba3f49954df1f98d1c Mon Sep 17 00:00:00 2001 From: Severin Meyer Date: Fri, 21 May 2021 17:09:29 +0200 Subject: [PATCH] Initial commit --- .gitignore | 3 + LICENSE.txt | 121 ++++++++++++++++++++++++++++++++++++++ README.md | 64 ++++++++++++++++++++ make.sh | 64 ++++++++++++++++++++ mocu.png | Bin 0 -> 10958 bytes src/aliases.txt | 119 +++++++++++++++++++++++++++++++++++++ src/names.txt | 78 ++++++++++++++++++++++++ src/svg/alias.svg | 16 +++++ src/svg/all-scroll.svg | 10 ++++ src/svg/bottom_tee.svg | 10 ++++ src/svg/cell.svg | 10 ++++ src/svg/center_ptr.svg | 10 ++++ src/svg/col-resize.svg | 10 ++++ src/svg/color-picker.svg | 10 ++++ src/svg/context-menu.svg | 16 +++++ src/svg/copy.svg | 16 +++++ src/svg/crosshair.svg | 10 ++++ src/svg/default.svg | 10 ++++ src/svg/dnd-ask.svg | 16 +++++ src/svg/dnd-copy.svg | 16 +++++ src/svg/dnd-link.svg | 16 +++++ src/svg/dnd-no-drop.svg | 16 +++++ src/svg/dot.svg | 10 ++++ src/svg/dotbox.svg | 10 ++++ src/svg/down-arrow.svg | 10 ++++ src/svg/e-resize.svg | 10 ++++ src/svg/ew-resize.svg | 10 ++++ src/svg/grab.svg | 10 ++++ src/svg/grabbing.svg | 10 ++++ src/svg/help.svg | 16 +++++ src/svg/left-arrow.svg | 10 ++++ src/svg/left_tee.svg | 10 ++++ src/svg/ll_angle.svg | 10 ++++ src/svg/lr_angle.svg | 10 ++++ src/svg/n-resize.svg | 10 ++++ src/svg/ne-resize.svg | 10 ++++ src/svg/nesw-resize.svg | 10 ++++ src/svg/no-drop.svg | 16 +++++ src/svg/not-allowed.svg | 10 ++++ src/svg/ns-resize.svg | 10 ++++ src/svg/nw-resize.svg | 10 ++++ src/svg/nwse-resize.svg | 10 ++++ src/svg/pencil.svg | 11 ++++ src/svg/pointer.svg | 10 ++++ src/svg/progress.svg | 59 +++++++++++++++++++ src/svg/progress.txt | 40 +++++++++++++ src/svg/right-arrow.svg | 10 ++++ src/svg/right_ptr.svg | 10 ++++ src/svg/right_tee.svg | 10 ++++ src/svg/row-resize.svg | 10 ++++ src/svg/s-resize.svg | 10 ++++ src/svg/se-resize.svg | 10 ++++ src/svg/sw-resize.svg | 10 ++++ src/svg/text.svg | 10 ++++ src/svg/top_tee.svg | 10 ++++ src/svg/ul_angle.svg | 10 ++++ src/svg/up-arrow.svg | 10 ++++ src/svg/ur_angle.svg | 10 ++++ src/svg/vertical-text.svg | 10 ++++ src/svg/w-resize.svg | 10 ++++ src/svg/wait.svg | 53 +++++++++++++++++ src/svg/wait.txt | 40 +++++++++++++ src/svg/x-cursor.svg | 10 ++++ src/svg/zoom-in.svg | 16 +++++ src/svg/zoom-out.svg | 16 +++++ src/themes.txt | 5 ++ 66 files changed, 1253 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100755 make.sh create mode 100644 mocu.png create mode 100755 src/aliases.txt create mode 100644 src/names.txt create mode 100644 src/svg/alias.svg create mode 100644 src/svg/all-scroll.svg create mode 100644 src/svg/bottom_tee.svg create mode 100644 src/svg/cell.svg create mode 100644 src/svg/center_ptr.svg create mode 100644 src/svg/col-resize.svg create mode 100644 src/svg/color-picker.svg create mode 100644 src/svg/context-menu.svg create mode 100644 src/svg/copy.svg create mode 100644 src/svg/crosshair.svg create mode 100644 src/svg/default.svg create mode 100644 src/svg/dnd-ask.svg create mode 100644 src/svg/dnd-copy.svg create mode 100644 src/svg/dnd-link.svg create mode 100644 src/svg/dnd-no-drop.svg create mode 100644 src/svg/dot.svg create mode 100644 src/svg/dotbox.svg create mode 100644 src/svg/down-arrow.svg create mode 100644 src/svg/e-resize.svg create mode 100644 src/svg/ew-resize.svg create mode 100644 src/svg/grab.svg create mode 100644 src/svg/grabbing.svg create mode 100644 src/svg/help.svg create mode 100644 src/svg/left-arrow.svg create mode 100644 src/svg/left_tee.svg create mode 100644 src/svg/ll_angle.svg create mode 100644 src/svg/lr_angle.svg create mode 100644 src/svg/n-resize.svg create mode 100644 src/svg/ne-resize.svg create mode 100644 src/svg/nesw-resize.svg create mode 100644 src/svg/no-drop.svg create mode 100644 src/svg/not-allowed.svg create mode 100644 src/svg/ns-resize.svg create mode 100644 src/svg/nw-resize.svg create mode 100644 src/svg/nwse-resize.svg create mode 100644 src/svg/pencil.svg create mode 100644 src/svg/pointer.svg create mode 100644 src/svg/progress.svg create mode 100644 src/svg/progress.txt create mode 100644 src/svg/right-arrow.svg create mode 100644 src/svg/right_ptr.svg create mode 100644 src/svg/right_tee.svg create mode 100644 src/svg/row-resize.svg create mode 100644 src/svg/s-resize.svg create mode 100644 src/svg/se-resize.svg create mode 100644 src/svg/sw-resize.svg create mode 100644 src/svg/text.svg create mode 100644 src/svg/top_tee.svg create mode 100644 src/svg/ul_angle.svg create mode 100644 src/svg/up-arrow.svg create mode 100644 src/svg/ur_angle.svg create mode 100644 src/svg/vertical-text.svg create mode 100644 src/svg/w-resize.svg create mode 100644 src/svg/wait.svg create mode 100644 src/svg/wait.txt create mode 100644 src/svg/x-cursor.svg create mode 100644 src/svg/zoom-in.svg create mode 100644 src/svg/zoom-out.svg create mode 100644 src/themes.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a47ef55 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +dist/ +tmp/ +*.zip diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e722bc6 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +Mocu +==== + +![Preview](mocu.png) + +A modest xcursor theme, inspired by [DMZ] and [cz-Viator]. + +Available in white and black. Right and left-handed. +Size 24, 36, 48, 60, 72, 96. Distributed under the [CC0]. + +[DMZ]: https://www.gnome-look.org/p/999970/ +[cz-Viator]: https://github.com/charakterziffer/cursor-toolbox/ +[CC0]: https://creativecommons.org/publicdomain/zero/1.0 + + +Make +---- + +The themes can be generated with the make script: + + ./make.sh + +Dependencies: + +- Common bash, sed, grep, etc. +- rsvg-convert +- xmlstarlet +- xcursorgen + + +Customization +------------- + +The theme settings are stored in `src/themes.txt`. + + +### Colors + +The svg files use placeholder colors, which are replaced +with the specific theme colors before rendering. + + #0a0b0c = shadow + #1a1b1c = stroke + #fafbfc = fill + + +### Hotspot + +Each svg source file must contain a `` element with `id="hot"`. +The center of the circle represents the hotspot. + + +### Handedness + +For a given handedness, each occurence of `class="HAND(SCALE,MOVE)"` is +replaced with `transform="translate(MOVE)scale(SCALE,1)"` before rendering. + + +### Animations + +To animate a cursor, the svg source file can be accompanied +by a `.txt` file. Each line in that file represents a frame, +in the format `DELAY ATTRIBUTE`. Each occurence of `class="anim"` +is replaced with `ATTRIBUTE` before rendering the respective frame. diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..1f20eef --- /dev/null +++ b/make.sh @@ -0,0 +1,64 @@ +#!/bin/bash +set -e + +srcDir="src" +outDir="dist" +tmpDir="tmp" + +while read theme fill stroke shadow hand; do + cursorDir="$outDir/$theme/cursors" + index="$outDir/$theme/index.theme" + + # Prepare directories + rm --recursive --force "$tmpDir" + rm --recursive --force "$cursorDir" + mkdir --parents "$tmpDir" + mkdir --parents "$cursorDir" + printf "[Icon Theme]\nName=${theme//-/ }\nComment=A modest cursor theme\n" > "$index" + + while read name; do + svg="$srcDir/svg/$name.svg" + txt="$srcDir/svg/$name.txt" + cfg="$tmpDir/$name.cfg" + cursor="$cursorDir/$name" + printf "$cursor\n" + + # Extract hotspot + IFS='(,)' read hotX hotY hotHand hotScale hotMove <<< $(\ + xmlstarlet select --template --match '//_:circle[@id="hot"]' \ + --value-of "concat(@cx,',',@cy,',',@class)" "$svg") + + if [ "$hotHand" = "$hand" ]; then + hotX=$(awk "BEGIN {print $hotX * $hotScale + $hotMove}") + fi + + # Render png + for scale in 1 1.5 2 2.5 3 4; do + size=$(awk "BEGIN {print int($scale * 24 + 0.5)}") + x=$(awk "BEGIN {print int($scale * $hotX + 0.49)}") + y=$(awk "BEGIN {print int($scale * $hotY + 0.49)}") + + while read frame delay attrib; do + png="$tmpDir/$name-$size-$frame.png" + printf "$size $x $y $png $delay\n" >> "$cfg" + sed -e "s|#fafbfc|$fill|g" \ + -e "s|#1a1b1c|$stroke|g" \ + -e "s|#0a0b0c|$shadow|g" \ + -e "s|class=\"anim\"|$attrib|g" \ + -e "s|class=\"$hand(\([-0-9]*\),\([-0-9]*\))\"|transform=\"translate(\2)scale(\1,1)\"|g" \ + -e 's|id="hot"|display="none"|g' \ + "$svg" | rsvg-convert --zoom "$scale" --output "$png" + done < <(cat --number "$txt" 2>/dev/null || printf '1\n') + done + + # Generate cursor + xcursorgen "$cfg" "$cursor" + + done < <(grep "^[0-9A-Za-z]" "$srcDir/names.txt") + + # Add alternative names + while read alias target; do + ln --symbolic --force "$target" "$cursorDir/$alias" + done < <(grep "^[0-9A-Za-z]" "$srcDir/aliases.txt") + +done < <(grep "^[0-9A-Za-z]" "$srcDir/themes.txt") diff --git a/mocu.png b/mocu.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b6f0907a7fc40ad22e908c58dd0d30c47d6acc GIT binary patch literal 10958 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%0APsP z(At^Ek8A6J)l-I$m@3?*P|BJf6|Gv8Nlss({Q1=pm(!(e(oae*&_{#w9OhmtSgZ_= z@TaH7`SVIR@Qg{O%tf4&A?<8iPwBrxG%~I%7c(Yt#hMFmSUcQ-40QFamW0cP1;+ozaU+62O!QCfRZvTPCdho0AH^cM^PU|w%sqP zqlh18np%BS9HB{G2YfLrlW);&#qV`ai+Z`J>HpI0XW0Eu5_v;>0D3}JI4NKlF4K66 z!S&nl^QSv`4`NOas-t>!#z4Kv&L0-~&2~?n-_JJFtOa zkfJp48(xXUpVf@bC!Te935ko*>#$HS($W+3fBENrvj3ld)}%lRtC8uXjq(3JqyK?E z=_$Bky^m~%)BLL=C9xqZ9Qb9Duv<61<@v@kRMS3sMDo|O$I0-Tk)zQrcgO$E`Me5g<;$$Ch-mj{jGMoTN>b#@$g zE184|HdVKRRRMo0hT>L+9O=?ylMzdFEttTm8t1T<8>HK0mifOi*o}Nx-^#B(>+v%# z%5V67zQ<5Ft_zGdfKFl5>kwIoCM?Zbpz4MA;331BPRa*7spN#A&%NCg)I(|)syoZ# zi3Eu5?fXXgi*wxg!kO^A z&d`#MT!B`6)9SooN&cVGq45!Cp9}HO--k&Z#Zkd^oV7R}?KPN_UW-w3tUI%o2R8J1 zmkfPEWoIbatqhrhF5y5?-LNNy$W~bsFq^H5`_%>ynkUe3JoviV%{9}K_Z^;H0Lo=@ zExqB6?zzuEq;KYg+zGu*V`@#0I~|zKaT^-3QSi)4`7TEb-7- z1V%ri27Oktwo?wCP1~B-R1iHxyvV^;-7?aUPAuqTRQdj%hy45H$r5?yKUH4 zRG+v|zMi=^$a}0xUzd1mN89w=ZM<;mX9{aN9eEFD+k}aw^`SBSu@BqaLUCq#Tb2-o zTq`sC$@jDKZus-7ybdsYJK=w*Mz+JaXJ2jwOji9s^0{KP1$*>sVIxYP<>}&P8z0%cbOWV;Q(4;bYp!_&lBy8trgCb75U?q=3##(dhaLI1T zKpa{^sdEqqVS^@lntv!#BVd*O{Aii33?u z;SZbRN926yCe&-^0=B6aO&ro`ul)G7oecSeDKVOL*>K|gpO@p7oFkva3cO7gRhLh@ z6TVw$dw2W+VGV%Ph8j(X?Ve=opPTIe#dc%xFYyleX(!`YB_;nO3cU>JQ4h+w{yZW2 zPbVl-Vc-Zf7vUC4Q-DxE{i);g%+et4;HB{3-SkLDn*V(A&Npz9TPUhTNEn!|a+-Ru y{}X#PT8>;kZ4Lcj>Hpp}@jv@0{$EEhOv6aOG}8T~H~(oueWI$PQlo?j|Nj7B2c}s7 literal 0 HcmV?d00001 diff --git a/src/aliases.txt b/src/aliases.txt new file mode 100755 index 0000000..a044c09 --- /dev/null +++ b/src/aliases.txt @@ -0,0 +1,119 @@ +# Alternative cursor names (duplicates are omitted) +# Format: ALIAS TARGET + +# X11 +# https://gitlab.freedesktop.org/xorg/data/cursors + +arrow default +bottom_left_corner sw-resize +bottom_right_corner se-resize +bottom_side s-resize +cross crosshair +cross_reverse crosshair +double_arrow ns-resize +dot_box_mask dotbox +fleur move +hand1 pointer +hand2 pointer +left_ptr default +left_ptr_watch progress +left_side w-resize +pirate x-cursor +plus cell +question_arrow help +right_side e-resize +sb_down_arrow down-arrow +sb_h_double_arrow ew-resize +sb_left_arrow left-arrow +sb_right_arrow right-arrow +sb_up_arrow up-arrow +sb_v_double_arrow ns-resize +top_left_corner nw-resize +top_right_corner ne-resize +top_side n-resize +watch wait +X_cursor x-cursor +xterm text + + +# GTK +# https://gitlab.gnome.org/GNOME/gtk/-/blob/master/gdk/x11/gdkcursor-x11.c + +bd_double_arrow nwse-resize +crossed_circle not-allowed +dnd-none grabbing +fd_double_arrow nesw-resize +hand pointer +move grabbing +h_double_arrow ew-resize +v_double_arrow ns-resize + + +# Qt +# https://doc.qt.io/qt-5/qcursor.html#a-note-for-x11-users + +closedhand grabbing +dnd-move grabbing +forbidden not-allowed +ibeam text +link alias +openhand grab +pointing_hand pointer +size_all move +size_bdiag nesw-resize +size_fdiag nwse-resize +size_hor ew-resize +size_ver ns-resize +split_h col-resize +split_v row-resize +whats_this help + + +# Adwaita (GNOME) and Breeze (KDE) +# https://gitlab.gnome.org/GNOME/adwaita-icon-theme +# https://invent.kde.org/plasma/breeze + +circle not-allowed +draft pencil +left_ptr_help help + +3085a0e285430894940527032f8b26df alias +640fb0e74195791501fd1ed57b41487f alias +a2a266d0498c3104214a47bd64ab0fc8 alias +1081e37283d90000800003c07f3ef6bf copy +6407b0e94181790501fd1e167b474872 copy +b66166c04f8c3109214a4fbd64a50fc8 copy +028006030e0e7ebffc7f7070c0600140 ew-resize +14fef782d02440884392942c11205230 ew-resize +fcf21c00b30f7e3f83fe0dfd12e71cff grabbing +5c6cd98b3f3ebcb1f9c7f1c204630408 help +d9ce0ab605698f320427677b458ad60b help +4498f0e0c1937ffe01fd06f973665830 move +9081237383d90e509aa00f00170e968f move +fcf1c3c7cd4491d801f1e1c78f100000 nesw-resize +03b6e0fcb3499374a867c041f52298f0 not-allowed +00008160000006810000408080010102 ns-resize +2870a09082c103050810ffdffffe0204 ns-resize +c7088f0f3e6c8088236ef8e1e3e70000 nwse-resize +9d800788f1b08800ae810202380a0822 pointer +e29285e634086352946a0e7090d73106 pointer +00000000000000020006000e7e9ffc3f progress +3ecb610c1bf2410f44200f48c40d3599 progress + + +# Mozilla +# https://hg.mozilla.org/mozilla-central/file/tip/widget/gtk/nsGtkCursors.h +# https://hg.mozilla.org/mozilla-central/file/tip/widget/gtk/nsWindow.cpp + +0876e1c15ff2fc01f906f1c363074c0f alias +08ffe1e65f80fcfdf9fff11263e74c48 context-menu +08ffe1cb5fe6fc01f906f1c063814ccf copy +5aca4d189052212118709018842178c0 grab +208530c400c041818281048008011002 grabbing +50585d75b494802d0151028115016902 nesw-resize +03b6e0fcb3499374a867d041f52298f0 not-allowed +38c5dff7c7b8962045400281044508d2 nwse-resize +08e8e1c95fe2fc01f976f1e063a24ccd progress +048008013003cff3c00c801001200000 vertical-text +f41c0e382c94c0958e07017e42b00462 zoom-in +f41c0e382c97c0938e07017e42800402 zoom-out diff --git a/src/names.txt b/src/names.txt new file mode 100644 index 0000000..c76fd2a --- /dev/null +++ b/src/names.txt @@ -0,0 +1,78 @@ +# Primary cursor names (duplicates are omitted) + +# freedesktop.org +# https://www.freedesktop.org/wiki/Specifications/cursor-spec/ + +default +text +pointer +help +progress +wait +copy +alias +no-drop +not-allowed +all-scroll +row-resize +col-resize +n-resize +e-resize +s-resize +w-resize +ne-resize +se-resize +sw-resize +nw-resize +vertical-text +crosshair +cell +up-arrow +context-menu +ns-resize +ew-resize +nesw-resize +nwse-resize + + +# CSS +# https://www.w3.org/TR/css-ui-3/#cursor +# https://developer.mozilla.org/docs/Web/CSS/cursor + +grab +grabbing +zoom-in +zoom-out + + +# X11 +# https://gitlab.freedesktop.org/xorg/data/cursors + +bottom_tee +center_ptr +dot +dotbox +left_tee +ll_angle +lr_angle +pencil +right_ptr +right_tee +top_tee +ul_angle +ur_angle + + +# Adwaita (GNOME) and Breeze (KDE) +# https://gitlab.gnome.org/GNOME/adwaita-icon-theme +# https://invent.kde.org/plasma/breeze + +color-picker +dnd-ask +dnd-copy +dnd-link +dnd-no-drop +down-arrow +left-arrow +right-arrow +x-cursor diff --git a/src/svg/alias.svg b/src/svg/alias.svg new file mode 100644 index 0000000..7810d63 --- /dev/null +++ b/src/svg/alias.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/all-scroll.svg b/src/svg/all-scroll.svg new file mode 100644 index 0000000..9deb338 --- /dev/null +++ b/src/svg/all-scroll.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/bottom_tee.svg b/src/svg/bottom_tee.svg new file mode 100644 index 0000000..a7799c8 --- /dev/null +++ b/src/svg/bottom_tee.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/cell.svg b/src/svg/cell.svg new file mode 100644 index 0000000..9a7e8f6 --- /dev/null +++ b/src/svg/cell.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/center_ptr.svg b/src/svg/center_ptr.svg new file mode 100644 index 0000000..423a53a --- /dev/null +++ b/src/svg/center_ptr.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/col-resize.svg b/src/svg/col-resize.svg new file mode 100644 index 0000000..3ec1fd7 --- /dev/null +++ b/src/svg/col-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/color-picker.svg b/src/svg/color-picker.svg new file mode 100644 index 0000000..e4477e5 --- /dev/null +++ b/src/svg/color-picker.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/context-menu.svg b/src/svg/context-menu.svg new file mode 100644 index 0000000..742705b --- /dev/null +++ b/src/svg/context-menu.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/copy.svg b/src/svg/copy.svg new file mode 100644 index 0000000..3b8c6bd --- /dev/null +++ b/src/svg/copy.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/crosshair.svg b/src/svg/crosshair.svg new file mode 100644 index 0000000..e992811 --- /dev/null +++ b/src/svg/crosshair.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/default.svg b/src/svg/default.svg new file mode 100644 index 0000000..220896f --- /dev/null +++ b/src/svg/default.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/dnd-ask.svg b/src/svg/dnd-ask.svg new file mode 100644 index 0000000..09603e2 --- /dev/null +++ b/src/svg/dnd-ask.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/dnd-copy.svg b/src/svg/dnd-copy.svg new file mode 100644 index 0000000..9de8272 --- /dev/null +++ b/src/svg/dnd-copy.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/dnd-link.svg b/src/svg/dnd-link.svg new file mode 100644 index 0000000..f24072d --- /dev/null +++ b/src/svg/dnd-link.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/dnd-no-drop.svg b/src/svg/dnd-no-drop.svg new file mode 100644 index 0000000..7e40ba1 --- /dev/null +++ b/src/svg/dnd-no-drop.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/dot.svg b/src/svg/dot.svg new file mode 100644 index 0000000..a6ccfdc --- /dev/null +++ b/src/svg/dot.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/dotbox.svg b/src/svg/dotbox.svg new file mode 100644 index 0000000..d5a6869 --- /dev/null +++ b/src/svg/dotbox.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/down-arrow.svg b/src/svg/down-arrow.svg new file mode 100644 index 0000000..2af5446 --- /dev/null +++ b/src/svg/down-arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/e-resize.svg b/src/svg/e-resize.svg new file mode 100644 index 0000000..f23729d --- /dev/null +++ b/src/svg/e-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ew-resize.svg b/src/svg/ew-resize.svg new file mode 100644 index 0000000..ddecfe8 --- /dev/null +++ b/src/svg/ew-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/grab.svg b/src/svg/grab.svg new file mode 100644 index 0000000..84db80f --- /dev/null +++ b/src/svg/grab.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/grabbing.svg b/src/svg/grabbing.svg new file mode 100644 index 0000000..13ab4b3 --- /dev/null +++ b/src/svg/grabbing.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/help.svg b/src/svg/help.svg new file mode 100644 index 0000000..6c47934 --- /dev/null +++ b/src/svg/help.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/left-arrow.svg b/src/svg/left-arrow.svg new file mode 100644 index 0000000..68946e2 --- /dev/null +++ b/src/svg/left-arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/left_tee.svg b/src/svg/left_tee.svg new file mode 100644 index 0000000..b2f90d3 --- /dev/null +++ b/src/svg/left_tee.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ll_angle.svg b/src/svg/ll_angle.svg new file mode 100644 index 0000000..68c6e5a --- /dev/null +++ b/src/svg/ll_angle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/lr_angle.svg b/src/svg/lr_angle.svg new file mode 100644 index 0000000..24b59b2 --- /dev/null +++ b/src/svg/lr_angle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/n-resize.svg b/src/svg/n-resize.svg new file mode 100644 index 0000000..6f7ee68 --- /dev/null +++ b/src/svg/n-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ne-resize.svg b/src/svg/ne-resize.svg new file mode 100644 index 0000000..5862ad1 --- /dev/null +++ b/src/svg/ne-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/nesw-resize.svg b/src/svg/nesw-resize.svg new file mode 100644 index 0000000..dadce44 --- /dev/null +++ b/src/svg/nesw-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/no-drop.svg b/src/svg/no-drop.svg new file mode 100644 index 0000000..9530b5c --- /dev/null +++ b/src/svg/no-drop.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/not-allowed.svg b/src/svg/not-allowed.svg new file mode 100644 index 0000000..75f8a32 --- /dev/null +++ b/src/svg/not-allowed.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ns-resize.svg b/src/svg/ns-resize.svg new file mode 100644 index 0000000..b5663e3 --- /dev/null +++ b/src/svg/ns-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/nw-resize.svg b/src/svg/nw-resize.svg new file mode 100644 index 0000000..1edf0ca --- /dev/null +++ b/src/svg/nw-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/nwse-resize.svg b/src/svg/nwse-resize.svg new file mode 100644 index 0000000..39bc95b --- /dev/null +++ b/src/svg/nwse-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/pencil.svg b/src/svg/pencil.svg new file mode 100644 index 0000000..527de6d --- /dev/null +++ b/src/svg/pencil.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/svg/pointer.svg b/src/svg/pointer.svg new file mode 100644 index 0000000..b0ae3b9 --- /dev/null +++ b/src/svg/pointer.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/progress.svg b/src/svg/progress.svg new file mode 100644 index 0000000..a105234 --- /dev/null +++ b/src/svg/progress.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/svg/progress.txt b/src/svg/progress.txt new file mode 100644 index 0000000..18ca383 --- /dev/null +++ b/src/svg/progress.txt @@ -0,0 +1,40 @@ +25 transform="rotate(000,14,15)" +25 transform="rotate(009,14,15)" +25 transform="rotate(018,14,15)" +25 transform="rotate(027,14,15)" +25 transform="rotate(036,14,15)" +25 transform="rotate(045,14,15)" +25 transform="rotate(054,14,15)" +25 transform="rotate(063,14,15)" +25 transform="rotate(072,14,15)" +25 transform="rotate(081,14,15)" +25 transform="rotate(090,14,15)" +25 transform="rotate(099,14,15)" +25 transform="rotate(108,14,15)" +25 transform="rotate(117,14,15)" +25 transform="rotate(126,14,15)" +25 transform="rotate(135,14,15)" +25 transform="rotate(144,14,15)" +25 transform="rotate(153,14,15)" +25 transform="rotate(162,14,15)" +25 transform="rotate(171,14,15)" +25 transform="rotate(180,14,15)" +25 transform="rotate(189,14,15)" +25 transform="rotate(198,14,15)" +25 transform="rotate(207,14,15)" +25 transform="rotate(216,14,15)" +25 transform="rotate(225,14,15)" +25 transform="rotate(234,14,15)" +25 transform="rotate(243,14,15)" +25 transform="rotate(252,14,15)" +25 transform="rotate(261,14,15)" +25 transform="rotate(270,14,15)" +25 transform="rotate(279,14,15)" +25 transform="rotate(288,14,15)" +25 transform="rotate(297,14,15)" +25 transform="rotate(306,14,15)" +25 transform="rotate(315,14,15)" +25 transform="rotate(324,14,15)" +25 transform="rotate(333,14,15)" +25 transform="rotate(342,14,15)" +25 transform="rotate(351,14,15)" diff --git a/src/svg/right-arrow.svg b/src/svg/right-arrow.svg new file mode 100644 index 0000000..a9f5de5 --- /dev/null +++ b/src/svg/right-arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/right_ptr.svg b/src/svg/right_ptr.svg new file mode 100644 index 0000000..570ba15 --- /dev/null +++ b/src/svg/right_ptr.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/right_tee.svg b/src/svg/right_tee.svg new file mode 100644 index 0000000..999bd44 --- /dev/null +++ b/src/svg/right_tee.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/row-resize.svg b/src/svg/row-resize.svg new file mode 100644 index 0000000..22bebbf --- /dev/null +++ b/src/svg/row-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/s-resize.svg b/src/svg/s-resize.svg new file mode 100644 index 0000000..8560804 --- /dev/null +++ b/src/svg/s-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/se-resize.svg b/src/svg/se-resize.svg new file mode 100644 index 0000000..aac048e --- /dev/null +++ b/src/svg/se-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/sw-resize.svg b/src/svg/sw-resize.svg new file mode 100644 index 0000000..b708333 --- /dev/null +++ b/src/svg/sw-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/text.svg b/src/svg/text.svg new file mode 100644 index 0000000..761b2c2 --- /dev/null +++ b/src/svg/text.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/top_tee.svg b/src/svg/top_tee.svg new file mode 100644 index 0000000..8e5b4b1 --- /dev/null +++ b/src/svg/top_tee.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ul_angle.svg b/src/svg/ul_angle.svg new file mode 100644 index 0000000..2f41a40 --- /dev/null +++ b/src/svg/ul_angle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/up-arrow.svg b/src/svg/up-arrow.svg new file mode 100644 index 0000000..9b85f2c --- /dev/null +++ b/src/svg/up-arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/ur_angle.svg b/src/svg/ur_angle.svg new file mode 100644 index 0000000..170d4d3 --- /dev/null +++ b/src/svg/ur_angle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/vertical-text.svg b/src/svg/vertical-text.svg new file mode 100644 index 0000000..7b518ba --- /dev/null +++ b/src/svg/vertical-text.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/w-resize.svg b/src/svg/w-resize.svg new file mode 100644 index 0000000..c776763 --- /dev/null +++ b/src/svg/w-resize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/wait.svg b/src/svg/wait.svg new file mode 100644 index 0000000..3c8c188 --- /dev/null +++ b/src/svg/wait.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/svg/wait.txt b/src/svg/wait.txt new file mode 100644 index 0000000..75402d7 --- /dev/null +++ b/src/svg/wait.txt @@ -0,0 +1,40 @@ +25 transform="rotate(000,12,12)" +25 transform="rotate(009,12,12)" +25 transform="rotate(018,12,12)" +25 transform="rotate(027,12,12)" +25 transform="rotate(036,12,12)" +25 transform="rotate(045,12,12)" +25 transform="rotate(054,12,12)" +25 transform="rotate(063,12,12)" +25 transform="rotate(072,12,12)" +25 transform="rotate(081,12,12)" +25 transform="rotate(090,12,12)" +25 transform="rotate(099,12,12)" +25 transform="rotate(108,12,12)" +25 transform="rotate(117,12,12)" +25 transform="rotate(126,12,12)" +25 transform="rotate(135,12,12)" +25 transform="rotate(144,12,12)" +25 transform="rotate(153,12,12)" +25 transform="rotate(162,12,12)" +25 transform="rotate(171,12,12)" +25 transform="rotate(180,12,12)" +25 transform="rotate(189,12,12)" +25 transform="rotate(198,12,12)" +25 transform="rotate(207,12,12)" +25 transform="rotate(216,12,12)" +25 transform="rotate(225,12,12)" +25 transform="rotate(234,12,12)" +25 transform="rotate(243,12,12)" +25 transform="rotate(252,12,12)" +25 transform="rotate(261,12,12)" +25 transform="rotate(270,12,12)" +25 transform="rotate(279,12,12)" +25 transform="rotate(288,12,12)" +25 transform="rotate(297,12,12)" +25 transform="rotate(306,12,12)" +25 transform="rotate(315,12,12)" +25 transform="rotate(324,12,12)" +25 transform="rotate(333,12,12)" +25 transform="rotate(342,12,12)" +25 transform="rotate(351,12,12)" diff --git a/src/svg/x-cursor.svg b/src/svg/x-cursor.svg new file mode 100644 index 0000000..e74e9e0 --- /dev/null +++ b/src/svg/x-cursor.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/svg/zoom-in.svg b/src/svg/zoom-in.svg new file mode 100644 index 0000000..3987ca2 --- /dev/null +++ b/src/svg/zoom-in.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/svg/zoom-out.svg b/src/svg/zoom-out.svg new file mode 100644 index 0000000..2dc48a1 --- /dev/null +++ b/src/svg/zoom-out.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/themes.txt b/src/themes.txt new file mode 100644 index 0000000..22bea67 --- /dev/null +++ b/src/themes.txt @@ -0,0 +1,5 @@ +# Name Fill Stroke Shadow Handedness +Mocu-White-Right #fcfcfc #222222 #000000 right +Mocu-White-Left #fcfcfc #222222 #000000 left +Mocu-Black-Right #111111 #f9f9f9 #000000 right +Mocu-Black-Left #111111 #f9f9f9 #000000 left