diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..9e754bd
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+patreon: KaizKhatri
+custom: https://www.paypal.me/kaizkhatri
diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 0000000..dc90e5a
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,17 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 60
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: 7
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - pinned
+ - security
+# Label to use when marking an issue as stale
+staleLabel: wontfix
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. It will be closed if no further activity occurs. Thank you
+ for your contributions.
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..fcca304
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,89 @@
+name: build
+
+on:
+ push:
+ paths-ignore:
+ - "**.md"
+ - "**.bbcode"
+ - LICENSE
+ branches: [main, dev]
+ pull_request:
+ paths-ignore:
+ - "**.md"
+ - "**.bbcode"
+ - LICENSE
+ branches: [main]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install build dependencies (apt)
+ run: sudo apt install -y libx11-dev libxcursor-dev libpng-dev
+ continue-on-error: false
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - name: Caching yarn packages
+ uses: actions/cache@v2
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-
+ - name: Set Up NodeJS 12.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: "12.x"
+ - name: Caching pip packages
+ uses: actions/cache@v2
+ id: pip-cache # use this to check for `cache-hit` (`steps.pip-cache.outputs.cache-hit != 'true'`)
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.8"
+ - name: Generating `BreezeX` Cursor Theme
+ run: make
+ continue-on-error: false
+
+ - name: Compressing UNIX theme
+ run: |
+ tar -cvzf BreezeX-Dark.tar.gz themes/BreezeX-Dark
+ tar -cvzf BreezeX-Light.tar.gz themes/BreezeX-Light
+
+ - name: Uploading `bitmaps` artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: bitmaps
+ path: bitmaps/*
+
+ - name: Uploading `BreezeX-Dark` UNIX Theme artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: BreezeX-Dark
+ path: BreezeX-Dark.tar.gz
+
+ - name: Uploading `BreezeX-Light` UNIX Theme artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: BreezeX-Light
+ path: BreezeX-Light.tar.gz
+
+ - name: Uploading `BreezeX-Dark` Windows Theme artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: BreezeX-Dark-Windows
+ path: themes/BreezeX-Dark-Windows/*
+
+ - name: Uploading `BreezeX-Light` Windows Theme artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: BreezeX-Light-Windows
+ path: themes/BreezeX-Light-Windows/*
diff --git a/bitmapper/src/config.ts b/bitmapper/src/config.ts
index cf9b08b..5cfd21b 100644
--- a/bitmapper/src/config.ts
+++ b/bitmapper/src/config.ts
@@ -5,22 +5,22 @@ interface Config {
color: Colors;
}
-const breeze = "#4D4D4D";
-const white = "#FFFFFF";
+const breezeColor = "#4D4D4D";
+const whiteColor = "#FFFFFF";
const config: Config[] = [
{
themeName: "BreezeX-Dark",
color: {
- base: breeze,
- outline: white,
+ base: breezeColor,
+ outline: whiteColor,
},
},
{
themeName: "BreezeX-Light",
color: {
- base: white,
- outline: breeze,
+ base: whiteColor,
+ outline: breezeColor,
},
},
];
diff --git a/bitmapper/src/index.ts b/bitmapper/src/index.ts
index 7873c9e..ca6ab21 100644
--- a/bitmapper/src/index.ts
+++ b/bitmapper/src/index.ts
@@ -27,7 +27,7 @@ const main = async () => {
console.log(" -> Saving", key, "...");
content = SVGHandler.colorSvg(content, color);
- await png.generateAnimated(browser, content, key);
+ await png.generateAnimated(browser, content, key, { playbackRate: 0.3 });
}
await browser.close();
diff --git a/bitmapper/yarn.lock b/bitmapper/yarn.lock
index f7d1e41..83738ad 100644
--- a/bitmapper/yarn.lock
+++ b/bitmapper/yarn.lock
@@ -15,9 +15,9 @@
defer-to-connect "^1.0.1"
"@types/node@*":
- version "14.14.41"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615"
- integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==
+ version "15.12.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.0.tgz#6a459d261450a300e6865faeddb5af01c3389bb3"
+ integrity sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw==
"@types/pixelmatch@^5.2.2":
version "5.2.3"
@@ -419,9 +419,9 @@ glob-parent@~5.1.0:
is-glob "^4.0.1"
glob@^7.1.3:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -723,9 +723,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-url@^4.1.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
- integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
+ version "4.5.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
+ integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
@@ -784,9 +784,9 @@ pend@~1.2.0:
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
picomatch@^2.0.4, picomatch@^2.2.1:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
- integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+ integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
pixelmatch@^5.2.1:
version "5.2.1"
@@ -1092,9 +1092,9 @@ typedarray-to-buffer@^3.1.5:
is-typedarray "^1.0.0"
typescript@^4.1.3:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
- integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805"
+ integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==
unbzip2-stream@^1.3.3:
version "1.4.3"
@@ -1172,9 +1172,9 @@ write-file-atomic@^3.0.0:
typedarray-to-buffer "^3.1.5"
ws@^7.2.3:
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59"
- integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==
+ version "7.4.6"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+ integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
xdg-basedir@^4.0.0:
version "4.0.0"
diff --git a/builder/build.py b/builder/build.py
index 782387f..1cd0f3e 100644
--- a/builder/build.py
+++ b/builder/build.py
@@ -4,8 +4,8 @@
import argparse
from pathlib import Path
-from bxbuild.configure import get_config
-from bxbuild.generator import Info, build, wbuild, xbuild
+from bxbuild.configure import get_config # type: ignore
+from bxbuild.generator import Info, build, wbuild, xbuild # type: ignore
parser = argparse.ArgumentParser(
prog="breezex_builder",
@@ -51,20 +51,7 @@ parser.add_argument(
dest="xsizes",
metavar="INT",
nargs="+",
- default=[
- 22,
- 24,
- 28,
- 32,
- 40,
- 48,
- 56,
- 64,
- 72,
- 80,
- 88,
- 96,
- ],
+ default=[22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96],
type=int,
help="Set pixel-size for xcursor. (default: %(default)s)",
)
diff --git a/builder/bxbuild/constants.py b/builder/bxbuild/constants.py
index a402071..e44bf37 100644
--- a/builder/bxbuild/constants.py
+++ b/builder/bxbuild/constants.py
@@ -19,47 +19,53 @@ X_CURSORS_CFG: Dict[str, Dict[str, int]] = {
# Static #
##########
"all-scroll.png": {"xhot": 100, "yhot": 100},
- "bottom_left_corner.png": {"xhot": 100, "yhot": 100},
- "bottom_right_corner.png": {"xhot": 100, "yhot": 100},
- "bottom_tee.png": {"xhot": 100, "yhot": 100},
- "context-menu.png": {"xhot": 100, "yhot": 100},
- "copy.png": {"xhot": 100, "yhot": 100},
+ "bd_double_arrow.png": {"xhot": 98, "yhot": 96},
+ "bottom_left_corner.png": {"xhot": 56, "yhot": 143},
+ "bottom_right_corner.png": {"xhot": 142, "yhot": 147},
+ "bottom_side.png": {"xhot": 100, "yhot": 148},
+ "center_ptr.png": {"xhot": 99, "yhot": 35},
+ "col-resize.png": {"xhot": 100, "yhot": 100},
+ "color-picker.png": {"xhot": 42, "yhot": 157},
+ "context-menu.png": {"xhot": 57, "yhot": 30},
+ "copy.png": {"xhot": 57, "yhot": 30},
"cross.png": {"xhot": 100, "yhot": 100},
+ "crossed_circle.png": {"xhot": 57, "yhot": 30},
"dnd_no_drop.png": {"xhot": 100, "yhot": 100},
"dotbox.png": {"xhot": 100, "yhot": 100},
- "hand1.png": {"xhot": 100, "yhot": 100},
- "hand2.png": {"xhot": 100, "yhot": 100},
- "left_ptr.png": {"xhot": 100, "yhot": 100},
- "left_tee.png": {"xhot": 100, "yhot": 100},
- "link.png": {"xhot": 100, "yhot": 100},
- "ll_angle.png": {"xhot": 100, "yhot": 100},
- "lr_angle.png": {"xhot": 100, "yhot": 100},
- "move.png": {"xhot": 100, "yhot": 100},
- "pencil.png": {"xhot": 100, "yhot": 100},
+ "fd_double_arrow.png": {"xhot": 98, "yhot": 96},
+ "hand1.png": {"xhot": 107, "yhot": 35},
+ "hand2.png": {"xhot": 90, "yhot": 35},
+ "left_ptr.png": {"xhot": 57, "yhot": 30},
+ "left_side.png": {"xhot": 52, "yhot": 100},
+ "link.png": {"xhot": 57, "yhot": 30},
+ "move.png": {"xhot": 101, "yhot": 51},
+ "pencil.png": {"xhot": 38, "yhot": 156},
+ "pirate.png": {"xhot": 100, "yhot": 100},
"plus.png": {"xhot": 100, "yhot": 100},
- "question_arrow.png": {"xhot": 100, "yhot": 100},
- "right_ptr.png": {"xhot": 100, "yhot": 100},
- "right_tee.png": {"xhot": 100, "yhot": 100},
- "sb_down_arrow.png": {"xhot": 100, "yhot": 100},
- "sb_h_double_arrow.png": {"xhot": 100, "yhot": 100},
- "sb_left_arrow.png": {"xhot": 100, "yhot": 100},
- "sb_right_arrow.png": {"xhot": 100, "yhot": 100},
- "sb_up_arrow.png": {"xhot": 100, "yhot": 100},
- "sb_v_double_arrow.png": {"xhot": 100, "yhot": 100},
- "top_tee.png": {"xhot": 100, "yhot": 100},
- "ul_angle.png": {"xhot": 100, "yhot": 100},
- "ur_angle.png": {"xhot": 100, "yhot": 100},
+ "question_arrow.png": {"xhot": 57, "yhot": 30},
+ "right_ptr.png": {"xhot": 136, "yhot": 32},
+ "right_side.png": {"xhot": 147, "yhot": 100},
+ "row-resize.png": {"xhot": 100, "yhot": 100},
+ "sb_down_arrow.png": {"xhot": 100, "yhot": 160},
+ "sb_h_double_arrow.png": {"xhot": 98, "yhot": 96},
+ "sb_left_arrow.png": {"xhot": 38, "yhot": 100},
+ "sb_right_arrow.png": {"xhot": 162, "yhot": 100},
+ "sb_up_arrow.png": {"xhot": 100, "yhot": 38},
+ "sb_v_double_arrow.png": {"xhot": 98, "yhot": 96},
+ "top_left_corner.png": {"xhot": 57, "yhot": 55},
+ "top_right_corner.png": {"xhot": 142, "yhot": 55},
+ "top_side.png": {"xhot": 100, "yhot": 52},
"vertical-text.png": {"xhot": 100, "yhot": 100},
"wayland-cursor.png": {"xhot": 100, "yhot": 100},
"X_cursor.png": {"xhot": 100, "yhot": 100},
- "xterm.png": {"xhot": 100, "yhot": 89},
- "zoom-in.png": {"xhot": 100, "yhot": 100},
- "zoom-out.png": {"xhot": 100, "yhot": 100},
+ "xterm.png": {"xhot": 100, "yhot": 100},
+ "zoom-in.png": {"xhot": 85, "yhot": 80},
+ "zoom-out.png": {"xhot": 85, "yhot": 80},
############
# Animated #
############
- # Note: Animated cursors don't need an extension and frame numbers.
- "left_ptr_watch": {"xhot": 100, "yhot": 100},
+ # NOTE: Animated cursors don't need an extension and frame numbers.
+ "left_ptr_watch": {"xhot": 57, "yhot": 30},
"wait": {"xhot": 100, "yhot": 100},
}
@@ -70,10 +76,10 @@ WIN_CURSORS_CFG: Dict[str, Dict[str, str]] = {
"right_ptr.png": {"to": "Alternate", "position": "top_right"},
"cross.png": {"to": "Cross"},
"left_ptr.png": {"to": "Default", "position": "top_left"},
- "bottom_right_corner.png": {"to": "Diagonal_1"},
- "bottom_left_corner.png": {"to": "Diagonal_2"},
+ "bd_double_arrow.png": {"to": "Diagonal_1"},
+ "fd_double_arrow.png": {"to": "Diagonal_2"},
"pencil.png": {"to": "Handwriting"},
- "question_arrow.png": {"to": "Help", "position.png": "top_left"},
+ "question_arrow.png": {"to": "Help", "position": "top_left"},
"sb_h_double_arrow.png": {"to": "Horizontal"},
"xterm.png": {"to": "IBeam", "position": "top_left"},
"hand2.png": {"to": "Link", "position": "top_left"},
@@ -83,7 +89,7 @@ WIN_CURSORS_CFG: Dict[str, Dict[str, str]] = {
############
# Animated #
############
- # Note: Animated cursors don't need frame numbers.
+ # NOTE: Animated cursors don't need frame numbers.
"left_ptr_watch": {"to": "Work", "position": "top_left"},
"wait": {"to": "Busy"},
}
diff --git a/builder/bxbuild/generator.py b/builder/bxbuild/generator.py
index fdd7fe5..9dcef11 100644
--- a/builder/bxbuild/generator.py
+++ b/builder/bxbuild/generator.py
@@ -21,14 +21,14 @@ def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path, info: Info) -> No
"""Build `BreezeX` cursor theme for only `X11`(UNIX) platform.
:param config: `BreezeX` configuration.
- :type config: Dict
+ :type config: ``Dict``
:param x_out_dir: Path to the output directory,\
Where the `X11` cursor theme package will generate.\
It also creates a directory if not exists.
- :type x_out_dir: Path
+ :type x_out_dir: ``pathlib.Path``
- :param info: Content theme name & comment
+ :param info: Content theme name & comment.
:type info: Info
"""
@@ -47,14 +47,14 @@ def wbuild(config: Dict[str, Dict[str, Any]], win_out_dir: Path, info: Info) ->
"""Build `BreezeX` cursor theme for only `Windows` platforms.
:param config: `BreezeX` configuration.
- :type config: Dict
+ :type config: ``Dict``
:param win_out_dir: Path to the output directory,\
Where the `Windows` cursor theme package will generate.\
It also creates a directory if not exists.
- :type win_out_dir: Path
+ :type win_out_dir: ``pathlib.Path``
- :param info: Content theme name & comment
+ :param info: Content theme name & comment.
:type info: Info
"""
@@ -82,19 +82,19 @@ def build(
"""Build `BreezeX` cursor theme for `X11` & `Windows` platforms.
:param config: `BreezeX` configuration.
- :type config: Dict
+ :type config: ``Dict``
:param x_out_dir: Path to the output directory,\
Where the `X11` cursor theme package will generate.\
It also creates a directory if not exists.
- :type x_out_dir: Path
+ :type x_out_dir: ``pathlib.Path``
:param win_out_dir: Path to the output directory,\
Where the `Windows` cursor theme package will generate.\
It also creates a directory if not exists.
- :type win_out_dir: Path
+ :type win_out_dir: ``pathlib.Path``
- :param info: Content theme name & comment
+ :param info: Content theme name & comment.
:type info: Info
"""
diff --git a/builder/bxbuild/symlinks.py b/builder/bxbuild/symlinks.py
index d80480d..fda0d93 100644
--- a/builder/bxbuild/symlinks.py
+++ b/builder/bxbuild/symlinks.py
@@ -11,33 +11,25 @@ def add_missing_xcursor(directory) -> None:
"""Add missing `XCursor` to the Unix cursor package.
:param directory: directory where XCursors are available.
- :type directory: Union[str, Path]
+ :type directory: ``str`` or ``pathlib.Path``
"""
symlinks: List[Dict[str, Union[str, List[str]]]] = [
{"src": "all-scroll", "links": ["fleur", "size_all"]},
{
- "src": "bottom_left_corner",
+ "src": "bd_double_arrow",
"links": [
- "fcf1c3c7cd4491d801f1e1c78f100000",
- "sw-resize",
- "ne-resize",
- "size_bdiag",
- "nesw-resize",
- "top_right_corner",
- "fd_double_arrow",
+ "c7088f0f3e6c8088236ef8e1e3e70000",
+ "nw-resize",
+ "nwse-resize",
+ "size_fdiag",
+ "se-resize",
],
},
{
- "src": "bottom_right_corner",
+ "src": "col-resize",
"links": [
- "c7088f0f3e6c8088236ef8e1e3e70000",
- "top_left_corner",
- "se-resize",
- "nw-resize",
- "size_fdiag",
- "nwse-resize",
- "bd_double_arrow",
+ "split_h",
],
},
{
@@ -55,23 +47,36 @@ def add_missing_xcursor(directory) -> None:
"cross_reverse",
"diamond_cross",
"tcross",
- "color-picker",
"crosshair",
],
},
+ {
+ "src": "crossed_circle",
+ "links": [
+ "forbidden",
+ "not-allowed",
+ ],
+ },
{
"src": "dnd_no_drop",
"links": [
- "no-drop",
- # crossed_circle symlinks
- "crossed_circle",
"03b6e0fcb3499374a867c041f52298f0",
- "not-allowed",
- "forbidden",
"circle",
+ "dnd-no-drop",
+ "no-drop",
],
},
{"src": "dotbox", "links": ["dot_box_mask", "draped_box", "icon", "target"]},
+ {
+ "src": "fd_double_arrow",
+ "links": [
+ "fcf1c3c7cd4491d801f1e1c78f100000",
+ "ne-resize",
+ "nesw-resize",
+ "sw-resize",
+ "size_bdiag",
+ ],
+ },
{"src": "hand1", "links": ["grab", "openhand"]},
{
"src": "hand2",
@@ -87,7 +92,6 @@ def add_missing_xcursor(directory) -> None:
"links": [
"arrow",
"default",
- "center_ptr",
],
},
{
@@ -99,6 +103,7 @@ def add_missing_xcursor(directory) -> None:
"progress",
],
},
+ {"src": "left_side", "links": []},
{
"src": "link",
"links": [
@@ -135,23 +140,25 @@ def add_missing_xcursor(directory) -> None:
"dnd-ask",
],
},
- {"src": "right_ptr", "links": ["draft_large", "draft_small"]}, # required
+ {"src": "right_ptr", "links": ["draft_large", "draft_small"]},
+ {
+ "src": "row-resize",
+ "links": [
+ "split_v",
+ ],
+ },
{"src": "sb_down_arrow", "links": ["down-arrow"]},
{
"src": "sb_h_double_arrow",
"links": [
"028006030e0e7ebffc7f7070c0600140",
"14fef782d02440884392942c1120523",
- "col-resize",
+ "e-resize",
"ew-resize",
"h_double_arrow",
"size-hor",
"size_hor",
- "split_h",
- "left_side",
"w-resize",
- "right_side",
- "e-resize",
],
},
{"src": "sb_left_arrow", "links": ["left-arrow"]},
@@ -163,20 +170,16 @@ def add_missing_xcursor(directory) -> None:
"00008160000006810000408080010102",
"2870a09082c103050810ffdffffe0204",
"double_arrow",
+ "n-resize",
"ns-resize",
- "row-resize",
"size-ver",
"size_ver",
- "split_v",
- "v_double_arrow",
- "top_side",
"s-resize",
- "n-resize",
- "bottom_side",
+ "v_double_arrow",
],
},
{"src": "wait", "links": ["watch"]},
- {"src": "X_cursor", "links": ["pirate", "x-cursor"]},
+ {"src": "X_cursor", "links": ["x-cursor"]},
{"src": "xterm", "links": ["ibeam", "text"]},
]
diff --git a/svg/animated/left_ptr_watch.svg b/svg/animated/left_ptr_watch.svg
new file mode 100644
index 0000000..49392ab
--- /dev/null
+++ b/svg/animated/left_ptr_watch.svg
@@ -0,0 +1,50 @@
+
+
diff --git a/svg/animated/wait.svg b/svg/animated/wait.svg
new file mode 100644
index 0000000..fe644cc
--- /dev/null
+++ b/svg/animated/wait.svg
@@ -0,0 +1,38 @@
+
+
diff --git a/svg/static/X_cursor.svg b/svg/static/X_cursor.svg
new file mode 100644
index 0000000..574d673
--- /dev/null
+++ b/svg/static/X_cursor.svg
@@ -0,0 +1,24 @@
+
+
diff --git a/svg/static/all-scroll.svg b/svg/static/all-scroll.svg
index a85f23e..165d2ab 100644
--- a/svg/static/all-scroll.svg
+++ b/svg/static/all-scroll.svg
@@ -1,21 +1,21 @@