1
0
mirror of https://github.com/sevmeyer/mocu-xcursor.git synced 2025-04-14 09:56:31 +02:00

Initial commit

This commit is contained in:
Severin Meyer 2021-05-21 17:09:29 +02:00
commit 93892a29d3
66 changed files with 1253 additions and 0 deletions

3
.gitignore vendored Normal file

@ -0,0 +1,3 @@
dist/
tmp/
*.zip

121
LICENSE.txt Normal file

@ -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.

64
README.md Normal file

@ -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 `<circle>` 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.

64
make.sh Executable file

@ -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")

BIN
mocu.png Normal file

Binary file not shown.

After

(image error) Size: 11 KiB

119
src/aliases.txt Executable file

@ -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

78
src/names.txt Normal file

@ -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

16
src/svg/alias.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<path id="s" class="left(1,-7)" d="m16 12v3h-3.5a3.5 3 0 0 0-3.5 3 3.5 3 0 0 0 2.82 2.94c-0.42-0.39-0.82-0.77-0.82-1.44a1.5 1.5 0 0 1 1.5-1.5h3.5v3l5-4.5-5-4.5z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 995 B

10
src/svg/all-scroll.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m11 1-3.5 4h7l-3.5-4zm-6 6.5-4 3.5 4 3.5v-7zm12 0v7l4-3.5-4-3.5zm-6 0.5a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3zm-3.5 9 3.5 4 3.5-4h-7z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11" cy="11" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 690 B

10
src/svg/bottom_tee.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 20v-2h7v-12h2v12h7v2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 563 B

10
src/svg/cell.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m10 5v5h-5v4h5v5h4v-5h5v-4h-5v-5h-4z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 575 B

10
src/svg/center_ptr.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m12 1-5.38 13h4.38v5h2v-5h4.38z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 569 B

10
src/svg/col-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m10 4v16h2v-16h-2zm-4 4-5 4 5 4v-3h3v-2h-3v-3zm10 0v3h-3v2h3v3l5-4-5-4z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 610 B

10
src/svg/color-picker.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m15.5 5-2.5 2.5 3.5 3.5 2.5-2.5c2.5-2.5-1-6-3.5-3.5zm-4 2-1.5 1.5 5.5 5.5 1.5-1.5zm-0.5 4-6 6c0 1-0.5 2-1 2.5l0.5 0.5c0.5-0.5 1.5-1 2.5-1l6-6z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="4" cy="20" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 720 B

16
src/svg/context-menu.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<path id="s" class="left(1,-11)" d="m13 13v2h8v-2zm0 3v2h8v-2zm0 3v2h8v-2z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 909 B

16
src/svg/copy.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<path id="s" class="left(1,-10)" d="m15 11v4h-4v2h4v4h2v-4h4v-2h-4v-4z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 905 B

10
src/svg/crosshair.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m11 3v8h-8v1h8v8h1v-8h8v-1h-8v-8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 576 B

10
src/svg/default.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 638 B

16
src/svg/dnd-ask.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 5a1 1 0 0 0-1 1v8h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-4a1 1 0 0 0-1-1z"/>
<path id="s" class="left(1,-10)" d="m14 11v2h3.5a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5h-2.5v3h2v-1h0.5a3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0-3.5-3.5zm1 9v2h2v-2z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.1 KiB

16
src/svg/dnd-copy.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 5a1 1 0 0 0-1 1v8h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-4a1 1 0 0 0-1-1z"/>
<path id="s" class="left(1,-7)" d="m16 12v4h-4v2h4v4h2v-4h4v-2h-4v-4z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1011 B

16
src/svg/dnd-link.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 5a1 1 0 0 0-1 1v8h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-4a1 1 0 0 0-1-1z"/>
<path id="s" class="left(1,-7)" d="m16 13v3h-3.5a3.5 3 0 0 0-3.5 3 3.5 3 0 0 0 2.82 2.94c-0.42-0.39-0.82-0.77-0.82-1.44a1.5 1.5 0 0 1 1.5-1.5h3.5v3l5-4.5z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.1 KiB

16
src/svg/dnd-no-drop.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 5a1 1 0 0 0-1 1v8h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-4a1 1 0 0 0-1-1z"/>
<path id="s" class="left(1,-7)" d="m15 9.875a6.125 6.125 0 0 0-6.125 6.125 6.125 6.125 0 0 0 6.125 6.125 6.125 6.125 0 0 0 6.125-6.125 6.125 6.125 0 0 0-6.125-6.125zm0 1.875a4.25 4.25 0 0 1 3.59 6.52l-5.86-5.86a4.25 4.25 0 0 1 2.27-0.66zm-3.59 1.98 5.86 5.86a4.25 4.25 0 0 1-2.27 0.66 4.25 4.25 0 0 1-3.59-6.52z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" style="stroke-width:2" x="1" y="1"/>
<use xlink:href="#s" style="stroke-width:1.75" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:1.75;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.3 KiB

10
src/svg/dot.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m10 10v4h4v-4h-4z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 556 B

10
src/svg/dotbox.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4v6h2v-4h4v-2zm10 0v2h4v4h2v-6zm-10 10v6h6v-2h-4v-4zm14 0v4h-4v2h6v-6z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 612 B

10
src/svg/down-arrow.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 13 5.5 7 5.5-7h-4v-8h-3v8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="20" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 570 B

10
src/svg/e-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m18 4v15h2v-15zm-9 2v4h-6v3h6v4l6-5.5z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 579 B

10
src/svg/ew-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m8 6-6 5.5 6 5.5v-4h7v4l6-5.5-6-5.5v4h-7v-4z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 587 B

10
src/svg/grab.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m10 1a1 1 0 0 0-1 1v7h-1v-6a1 1 0 0 0-1-1 1 1 0 0 0-1 1v10h-1l-1.7-3.4c-0.2-0.4-0.5-0.6-0.9-0.6-0.7 0-1.3 0.7-0.9 1.5l3.25 6.5h9.5l1.75-3.5v-7.5a1 1 0 0 0-1-1v5h-1v-7a1 1 0 0 0-1-1 1 1 0 0 0-1 1v6h-1v-7a1 1 0 0 0-1-1z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 796 B

10
src/svg/grabbing.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 5a1 1 0 0 0-1 1v8h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-4a1 1 0 0 0-1-1z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10" cy="10" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 745 B

16
src/svg/help.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<path id="s" class="left(1,-10)" d="m13 10v2h3.5a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5h-2.5v3h2v-1h0.5a3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0-3.5-3.5zm1 9v2h2v-2z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" x="1" y="1"/>
<use xlink:href="#s" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1000 B

10
src/svg/left-arrow.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m11 6-7 5.5 7 5.5v-4h8v-3h-8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="4" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 569 B

10
src/svg/left_tee.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4h2v7h12v2h-12v7h-2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 561 B

10
src/svg/ll_angle.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m18 20v-2h-12v-12h-2v14z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 562 B

10
src/svg/lr_angle.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 20v-2h12v-12h2v14z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 560 B

10
src/svg/n-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4v2h15v-2zm7.5 5-5.5 6h4v6h3v-6h4z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 577 B

10
src/svg/ne-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 4v2h12v12h2v-14zm0 6 3 3-4 4 2 2 4-4 3 3v-8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 585 B

10
src/svg/nesw-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m18 5v8l-3-3-5 5 3 3h-8v-8l3 3 5-5-3-3z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 582 B

16
src/svg/no-drop.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<path id="s" class="left(1,-6)" d="m14 8.875a6.125 6.125 0 0 0-6.125 6.125 6.125 6.125 0 0 0 6.125 6.125 6.125 6.125 0 0 0 6.125-6.125 6.125 6.125 0 0 0-6.125-6.125zm0 1.875a4.25 4.25 0 0 1 3.59 6.52l-5.86-5.86a4.25 4.25 0 0 1 2.27-0.66zm-3.59 1.98 5.86 5.86a4.25 4.25 0 0 1-2.27 0.66 4.25 4.25 0 0 1-3.59-6.52z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" style="stroke-width:2" x="1" y="1"/>
<use xlink:href="#s" style="stroke-width:1.75" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:1.75;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.2 KiB

10
src/svg/not-allowed.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m12 3.25a8.75 8.75 0 0 0-8.75 8.75 8.75 8.75 0 0 0 8.75 8.75 8.75 8.75 0 0 0 8.75-8.75 8.75 8.75 0 0 0-8.75-8.75zm0 2.5a6.25 6.25 0 0 1 5.21 9.7l-8.66-8.66a6.25 6.25 0 0 1 3.45-1.04zm-5.21 2.8 8.66 8.66a6.25 6.25 0 0 1-3.45 1.04 6.25 6.25 0 0 1-5.21-9.7z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 793 B

10
src/svg/ns-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 15 5.5 6 5.5-6h-4v-7h4l-5.5-6-5.5 6h4v7z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 586 B

10
src/svg/nw-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4v14h2v-12h12v-2zm6 6v8l3-3 4 4 2-2-4-4 3-3z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 584 B

10
src/svg/nwse-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m5 5v8l3-3 5 5-3 3h8v-8l-3 3-5-5 3-3z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 580 B

11
src/svg/pencil.svg Normal file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="s" class="left(-1,22)" d="m5 19 2-4.5 11-11 2.5 2.5-11 11z"/>
<path id="c" class="left(-1,22)" d="m18 3.5-1.5 1.5 2.5 2.5 1.5-1.5zm-2 2-0.5 0.5 2.5 2.5 0.5-0.5zm-1 1-7.5 7.5 2.5 2.5 7.5-7.5zm-8 8-1.1 2.5 1.1 1.1 2.5-1.1z"/>
</defs>
<use xlink:href="#s" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="4" cy="20" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 774 B

10
src/svg/pointer.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m7 2a1 1 0 0 0-1 1v11h-1v-4.5l-2 2c-0.5 0.5-0.5 1-0.25 1.5l2 4h9.5l1.75-3.5v-3.5a1 1 0 0 0-1-1v2h-1v-3a1 1 0 0 0-1-1h-1v3h-1v-3a1 1 0 0 0-1-1h-1v4h-1v-7a1 1 0 0 0-1-1z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="7" cy="2" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 744 B

59
src/svg/progress.svg Normal file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m1 1v13.75l3.94-1.63 1.72 4.16 1.84-0.78-1.71-4.15 3.94-1.63z"/>
<circle id="s" class="left(1,-6)" cx="14" cy="15" r="6.125"/>
<mask id="m" class="anim" maskUnits="userSpaceOnUse">
<path d="m13 10v5h1v-5z" fill="#ffffff" transform="rotate(0,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#ffffff" transform="rotate(-9,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#f8f8f8" transform="rotate(-18,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#f1f1f1" transform="rotate(-27,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#eaeaea" transform="rotate(-36,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#e3e3e3" transform="rotate(-45,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#dcdcdc" transform="rotate(-54,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#d5d5d5" transform="rotate(-63,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#cdcdcd" transform="rotate(-72,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#c6c6c6" transform="rotate(-81,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#bfbfbf" transform="rotate(-90,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#b8b8b8" transform="rotate(-99,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#b1b1b1" transform="rotate(-108,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#aaaaaa" transform="rotate(-117,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#a3a3a3" transform="rotate(-126,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#9c9c9c" transform="rotate(-135,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#959595" transform="rotate(-144,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#8e8e8e" transform="rotate(-153,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#878787" transform="rotate(-162,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#808080" transform="rotate(-171,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#787878" transform="rotate(-180,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#717171" transform="rotate(-189,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#6a6a6a" transform="rotate(-198,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#636363" transform="rotate(-207,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#5c5c5c" transform="rotate(-216,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#555555" transform="rotate(-225,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#4e4e4e" transform="rotate(-234,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#474747" transform="rotate(-243,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#404040" transform="rotate(-252,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#393939" transform="rotate(-261,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#323232" transform="rotate(-270,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#2a2a2a" transform="rotate(-279,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#232323" transform="rotate(-288,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#1c1c1c" transform="rotate(-297,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#151515" transform="rotate(-306,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#0e0e0e" transform="rotate(-315,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#070707" transform="rotate(-324,14,15)"/>
<path d="m13 10v5h1v-5z" fill="#000000" transform="rotate(-333,14,15)"/>
<circle cx="14" cy="11.125" r=".875" style="fill:#fff"/>
<circle cx="14" cy="15" r="3"/>
</mask>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" style="stroke-width:2" x="1" y="1"/>
<use xlink:href="#s" style="stroke-width:1.75" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:1.75;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle mask="url(#m)" class="left(1,-6)" cx="14" cy="15" r="4.75" style="fill:#1a1b1c"/>
<circle id="hot" class="left(-1,22)" cx="1" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 4.0 KiB

40
src/svg/progress.txt Normal file

@ -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)"

10
src/svg/right-arrow.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m13 6 7 5.5-7 5.5v-4h-8v-3h8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="20" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 570 B

10
src/svg/right_ptr.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m21 1v13.75l-3.94-1.63-1.72 4.16-1.84-0.78 1.71-4.15-3.94-1.63z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="21" cy="1" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 641 B

10
src/svg/right_tee.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m20 4h-2v7h-12v2h12v7h2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 563 B

10
src/svg/row-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m12 1-4 5h3v3h2v-3h3l-4-5zm-8 9v2h16v-2h-16zm7 3v3h-3l4 5 4-5h-3v-3h-2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="11" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 610 B

10
src/svg/s-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m10 3v6h-4l5.5 6 5.5-6h-4v-6zm-6 15v2h15v-2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 585 B

10
src/svg/se-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m7 5-2 2 4 4-3 3h8v-8l-3 3zm11 1v12h-12v2h14v-14z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 588 B

10
src/svg/sw-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m17 5-4 4-3-3v8h8l-3-3 4-4zm-13 1v14h14v-2h-12v-12z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="19" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 589 B

10
src/svg/text.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m9 4v1h2v13h-2v1h5v-1h-2v-13h2v-1z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 577 B

10
src/svg/top_tee.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4v2h7v12h2v-12h7v-2z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 561 B

10
src/svg/ul_angle.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m18 4v2h-12v12h-2v-14z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 559 B

10
src/svg/up-arrow.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 11 5.5-7 5.5 7h-4v8h-3v-8z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="4" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 569 B

10
src/svg/ur_angle.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6 4v2h12v12h2v-14z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="19" cy="5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 557 B

10
src/svg/vertical-text.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m19 9h-1v2h-13v-2h-1v5h1v-2h13v2h1z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="11.5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 578 B

10
src/svg/w-resize.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m4 4v15h2v-15zm11 2-6 5.5 6 5.5v-4h6v-3h-6z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="5" cy="11.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 583 B

53
src/svg/wait.svg Normal file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<circle id="c" cx="12" cy="12" r="8.875"/>
<mask id="m" class="anim" maskUnits="userSpaceOnUse">
<path d="m10 4v8h2v-8z" fill="#ffffff" transform="rotate(0,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#ffffff" transform="rotate(-9,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#f8f8f8" transform="rotate(-18,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#f1f1f1" transform="rotate(-27,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#eaeaea" transform="rotate(-36,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#e3e3e3" transform="rotate(-45,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#dcdcdc" transform="rotate(-54,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#d5d5d5" transform="rotate(-63,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#cdcdcd" transform="rotate(-72,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#c6c6c6" transform="rotate(-81,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#bfbfbf" transform="rotate(-90,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#b8b8b8" transform="rotate(-99,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#b1b1b1" transform="rotate(-108,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#aaaaaa" transform="rotate(-117,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#a3a3a3" transform="rotate(-126,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#9c9c9c" transform="rotate(-135,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#959595" transform="rotate(-144,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#8e8e8e" transform="rotate(-153,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#878787" transform="rotate(-162,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#808080" transform="rotate(-171,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#787878" transform="rotate(-180,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#717171" transform="rotate(-189,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#6a6a6a" transform="rotate(-198,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#636363" transform="rotate(-207,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#5c5c5c" transform="rotate(-216,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#555555" transform="rotate(-225,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#4e4e4e" transform="rotate(-234,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#474747" transform="rotate(-243,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#404040" transform="rotate(-252,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#393939" transform="rotate(-261,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#323232" transform="rotate(-270,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#2a2a2a" transform="rotate(-279,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#232323" transform="rotate(-288,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#1c1c1c" transform="rotate(-297,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#151515" transform="rotate(-306,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#0e0e0e" transform="rotate(-315,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#070707" transform="rotate(-324,12,12)"/>
<path d="m10 4v8h2v-8z" fill="#000000" transform="rotate(-333,12,12)"/>
<circle cx="12" cy="6.25" r="1.25" style="fill:#fff"/>
<circle cx="12" cy="12" r="4.5"/>
</mask>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle mask="url(#m)" cx="12" cy="12" r="7" style="fill:#1a1b1c"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 3.5 KiB

40
src/svg/wait.txt Normal file

@ -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)"

10
src/svg/x-cursor.svg Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" d="m6.5 4.5-2 2 5.5 5.5-5.5 5.5 2 2 5.5-5.5 5.5 5.5 2-2-5.5-5.5 5.5-5.5-2-2-5.5 5.5z"/>
</defs>
<use xlink:href="#c" style="fill:#0a0b0c;stroke:#0a0b0c;stroke-width:2;stroke-linejoin:round;opacity:.1" x="1" y="1"/>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<circle id="hot" cx="12" cy="12" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 620 B

16
src/svg/zoom-in.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m10.5 2a8.5 8.5 0 0 0-8.5 8.5 8.5 8.5 0 0 0 8.5 8.5 8.5 8.5 0 0 0 5.213-1.787l3.787 3.787 1.5-1.5-3.787-3.787a8.5 8.5 0 0 0 1.787-5.213 8.5 8.5 0 0 0-8.5-8.5zm0 1.75a6.75 6.75 0 0 1 6.75 6.75 6.75 6.75 0 0 1-6.75 6.75 6.75 6.75 0 0 1-6.75-6.75 6.75 6.75 0 0 1 6.75-6.75z"/>
<path id="s" class="left(-1,22)" d="m10 7v3h-3v1h3v3h1v-3h3v-1h-3v-3z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" style="stroke-width:1.75" x="1" y="1"/>
<use xlink:href="#s" style="stroke-width:2" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:1.75;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10.5" cy="10.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.1 KiB

16
src/svg/zoom-out.svg Normal file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="c" class="left(-1,22)" d="m10.5 2a8.5 8.5 0 0 0-8.5 8.5 8.5 8.5 0 0 0 8.5 8.5 8.5 8.5 0 0 0 5.213-1.787l3.787 3.787 1.5-1.5-3.787-3.787a8.5 8.5 0 0 0 1.787-5.213 8.5 8.5 0 0 0-8.5-8.5zm0 1.75a6.75 6.75 0 0 1 6.75 6.75 6.75 6.75 0 0 1-6.75 6.75 6.75 6.75 0 0 1-6.75-6.75 6.75 6.75 0 0 1 6.75-6.75z"/>
<path id="s" class="left(-1,22)" d="m7 10v1h7v-1z"/>
</defs>
<g style="fill:#0a0b0c;stroke:#0a0b0c;stroke-linejoin:round;opacity:.1">
<use xlink:href="#c" style="stroke-width:1.75" x="1" y="1"/>
<use xlink:href="#s" style="stroke-width:2" x="1" y="1"/>
</g>
<use xlink:href="#c" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:1.75;stroke-linejoin:round"/>
<use xlink:href="#c" style="fill:#fafbfc"/>
<use xlink:href="#s" style="fill:#1a1b1c;stroke:#1a1b1c;stroke-width:2;stroke-linejoin:round"/>
<use xlink:href="#s" style="fill:#fafbfc"/>
<circle id="hot" class="left(-1,22)" cx="10.5" cy="10.5" r="1" style="fill:#f00;opacity:.5"/>
</svg>

After

(image error) Size: 1.1 KiB

5
src/themes.txt Normal file

@ -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