aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.extras/nvchecker.toml6
-rw-r--r--README.md1
-rw-r--r--ch57x-keyboard-tool/50-usb-macrokeyboard.rules1
-rw-r--r--ch57x-keyboard-tool/README10
-rw-r--r--ch57x-keyboard-tool/ch57x-keyboard-tool.SlackBuild131
-rw-r--r--ch57x-keyboard-tool/ch57x-keyboard-tool.info218
-rw-r--r--ch57x-keyboard-tool/doinst.sh4
-rw-r--r--ch57x-keyboard-tool/slack-desc19
8 files changed, 390 insertions, 0 deletions
diff --git a/.extras/nvchecker.toml b/.extras/nvchecker.toml
index 34d4bdf..868fdc4 100644
--- a/.extras/nvchecker.toml
+++ b/.extras/nvchecker.toml
@@ -222,3 +222,9 @@ source = "github"
github = "ryanoasis/nerd-fonts"
use_latest_release = true
prefix = "v"
+
+[ch57x-keyboard-tool]
+source = "github"
+github = "kriomant/ch57x-keyboard-tool"
+use_latest_release = true
+prefix = "v"
diff --git a/README.md b/README.md
index 5477fcf..92a2d5c 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,7 @@ Each package lives in its own top-level subfolder:
| stable-diffusion.cpp-vulkan | ✅ | not tested | ❌ | 913 | 913 |
| whisper.cpp | ✅ | ❌ | ✅ [whisper.cpp](https://slackbuilds.org/repository/15.0/development/whisper.cpp/) | 1.9.4 | 1.9.4 |
| ttf-nerd-fonts | ✅ | ✅ | ❌ | 3.5.1 | 3.5.1 |
+| ch57x-keyboard-tool | ✅ | ✅ | ❌ | 1.7.0 | 1.7.0 |
> **Note on `quickshell`:** Slackware 15.0 ships Qt5 only, so this package is
> **Slackware64-current only**. It also relies on private Qt APIs and must be
diff --git a/ch57x-keyboard-tool/50-usb-macrokeyboard.rules b/ch57x-keyboard-tool/50-usb-macrokeyboard.rules
new file mode 100644
index 0000000..80237ba
--- /dev/null
+++ b/ch57x-keyboard-tool/50-usb-macrokeyboard.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="usb", ATTR{idVendor}=="1189", ATTR{idProduct}=="8840|8842|8850|8890", TAG+="uaccess"
diff --git a/ch57x-keyboard-tool/README b/ch57x-keyboard-tool/README
new file mode 100644
index 0000000..6f915ab
--- /dev/null
+++ b/ch57x-keyboard-tool/README
@@ -0,0 +1,10 @@
+ch57x-keyboard-tool is a utility to program the cheap Chinese USB
+macro keypads with keys and rotary knobs, built on the CH57x chip
+(USB ID 1189:8840, 1189:8842, 1189:8850, 1189:8890).
+
+Key and knob bindings are described in a YAML file and uploaded to the
+device, which then works as a plain USB keyboard with no daemon.
+See /usr/doc/ch57x-keyboard-tool-*/example-mapping.yaml.
+
+A udev rule is installed so the logged-in user can program the keypad
+without root. Replug the device after installing.
diff --git a/ch57x-keyboard-tool/ch57x-keyboard-tool.SlackBuild b/ch57x-keyboard-tool/ch57x-keyboard-tool.SlackBuild
new file mode 100644
index 0000000..7f882ca
--- /dev/null
+++ b/ch57x-keyboard-tool/ch57x-keyboard-tool.SlackBuild
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+# Slackware build script for ch57x-keyboard-tool
+
+# Copyright 2026 danix <danix@danix.xyz>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=ch57x-keyboard-tool
+VERSION=${VERSION:-1.7.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+
+# Build offline: point cargo at the crates from DOWNLOAD instead of crates.io.
+mkdir -p .cargo
+cat <<EOT > .cargo/config.toml
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
+EOT
+
+mkdir vendor
+(
+ cd vendor
+ for crate in $CWD/*.crate ; do
+ tar xf $crate
+ dir=$(basename $crate .crate)
+ # cargo only needs the package checksum, an empty file map skips per-file checks.
+ printf '{"files":{},"package":"%s"}\n' "$(sha256sum $crate | cut -d' ' -f1)" \
+ > $dir/.cargo-checksum.json
+ done
+)
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+export PATH="/opt/rust/bin:$PATH"
+export LD_LIBRARY_PATH="/opt/rust/lib$LIBDIRSUFFIX${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+
+CARGO_HOME=.cargo \
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+cargo build --frozen --release
+
+install -Dm0755 target/release/$PRGNAM $PKG/usr/bin/$PRGNAM
+strip --strip-unneeded $PKG/usr/bin/$PRGNAM
+
+# Let the logged-in user program the keypad without root.
+mkdir -p $PKG/lib/udev/rules.d
+cat $CWD/50-usb-macrokeyboard.rules > $PKG/lib/udev/rules.d/50-usb-macrokeyboard.rules
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ README.md LICENSE CHANGELOG.md example-mapping.yaml doc/actions.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/ch57x-keyboard-tool/ch57x-keyboard-tool.info b/ch57x-keyboard-tool/ch57x-keyboard-tool.info
new file mode 100644
index 0000000..6a6c358
--- /dev/null
+++ b/ch57x-keyboard-tool/ch57x-keyboard-tool.info
@@ -0,0 +1,218 @@
+PRGNAM="ch57x-keyboard-tool"
+VERSION="1.7.0"
+HOMEPAGE="https://github.com/kriomant/ch57x-keyboard-tool"
+DOWNLOAD="https://github.com/kriomant/ch57x-keyboard-tool/archive/v1.7.0/ch57x-keyboard-tool-1.7.0.tar.gz \
+ https://static.crates.io/crates/aho-corasick/aho-corasick-0.7.20.crate \
+ https://static.crates.io/crates/android_system_properties/android_system_properties-0.1.5.crate \
+ https://static.crates.io/crates/anyhow/anyhow-1.0.68.crate \
+ https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate \
+ https://static.crates.io/crates/base64/base64-0.13.1.crate \
+ https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
+ https://static.crates.io/crates/bumpalo/bumpalo-3.11.1.crate \
+ https://static.crates.io/crates/cc/cc-1.0.78.crate \
+ https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate \
+ https://static.crates.io/crates/chrono/chrono-0.4.23.crate \
+ https://static.crates.io/crates/clap/clap-4.0.32.crate \
+ https://static.crates.io/crates/clap_derive/clap_derive-4.0.21.crate \
+ https://static.crates.io/crates/clap_lex/clap_lex-0.3.0.crate \
+ https://static.crates.io/crates/codespan-reporting/codespan-reporting-0.11.1.crate \
+ https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.3.crate \
+ https://static.crates.io/crates/cxx/cxx-1.0.86.crate \
+ https://static.crates.io/crates/cxx-build/cxx-build-1.0.86.crate \
+ https://static.crates.io/crates/cxxbridge-flags/cxxbridge-flags-1.0.86.crate \
+ https://static.crates.io/crates/cxxbridge-macro/cxxbridge-macro-1.0.86.crate \
+ https://static.crates.io/crates/darling/darling-0.14.2.crate \
+ https://static.crates.io/crates/darling_core/darling_core-0.14.2.crate \
+ https://static.crates.io/crates/darling_macro/darling_macro-0.14.2.crate \
+ https://static.crates.io/crates/either/either-1.8.0.crate \
+ https://static.crates.io/crates/enumset/enumset-1.0.12.crate \
+ https://static.crates.io/crates/enumset_derive/enumset_derive-0.6.1.crate \
+ https://static.crates.io/crates/env_logger/env_logger-0.10.0.crate \
+ https://static.crates.io/crates/errno/errno-0.2.8.crate \
+ https://static.crates.io/crates/errno-dragonfly/errno-dragonfly-0.1.2.crate \
+ https://static.crates.io/crates/fnv/fnv-1.0.7.crate \
+ https://static.crates.io/crates/hashbrown/hashbrown-0.12.3.crate \
+ https://static.crates.io/crates/heck/heck-0.4.0.crate \
+ https://static.crates.io/crates/hermit-abi/hermit-abi-0.2.6.crate \
+ https://static.crates.io/crates/hex/hex-0.4.3.crate \
+ https://static.crates.io/crates/humantime/humantime-2.1.0.crate \
+ https://static.crates.io/crates/iana-time-zone/iana-time-zone-0.1.53.crate \
+ https://static.crates.io/crates/iana-time-zone-haiku/iana-time-zone-haiku-0.1.1.crate \
+ https://static.crates.io/crates/ident_case/ident_case-1.0.1.crate \
+ https://static.crates.io/crates/indexmap/indexmap-1.9.2.crate \
+ https://static.crates.io/crates/indoc/indoc-1.0.8.crate \
+ https://static.crates.io/crates/io-lifetimes/io-lifetimes-1.0.3.crate \
+ https://static.crates.io/crates/is-terminal/is-terminal-0.4.2.crate \
+ https://static.crates.io/crates/itertools/itertools-0.10.5.crate \
+ https://static.crates.io/crates/itoa/itoa-1.0.5.crate \
+ https://static.crates.io/crates/js-sys/js-sys-0.3.60.crate \
+ https://static.crates.io/crates/libc/libc-0.2.139.crate \
+ https://static.crates.io/crates/libusb1-sys/libusb1-sys-0.6.4.crate \
+ https://static.crates.io/crates/link-cplusplus/link-cplusplus-1.0.8.crate \
+ https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.1.4.crate \
+ https://static.crates.io/crates/log/log-0.4.17.crate \
+ https://static.crates.io/crates/memchr/memchr-2.5.0.crate \
+ https://static.crates.io/crates/minimal-lexical/minimal-lexical-0.2.1.crate \
+ https://static.crates.io/crates/nom/nom-7.1.2.crate \
+ https://static.crates.io/crates/num-integer/num-integer-0.1.45.crate \
+ https://static.crates.io/crates/num-traits/num-traits-0.2.15.crate \
+ https://static.crates.io/crates/once_cell/once_cell-1.17.0.crate \
+ https://static.crates.io/crates/os_str_bytes/os_str_bytes-6.4.1.crate \
+ https://static.crates.io/crates/pkg-config/pkg-config-0.3.26.crate \
+ https://static.crates.io/crates/proc-macro-error/proc-macro-error-1.0.4.crate \
+ https://static.crates.io/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate \
+ https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.49.crate \
+ https://static.crates.io/crates/quote/quote-1.0.23.crate \
+ https://static.crates.io/crates/regex/regex-1.7.1.crate \
+ https://static.crates.io/crates/regex-syntax/regex-syntax-0.6.28.crate \
+ https://static.crates.io/crates/rusb/rusb-0.9.1.crate \
+ https://static.crates.io/crates/rustix/rustix-0.36.6.crate \
+ https://static.crates.io/crates/rustversion/rustversion-1.0.11.crate \
+ https://static.crates.io/crates/ryu/ryu-1.0.12.crate \
+ https://static.crates.io/crates/scratch/scratch-1.0.3.crate \
+ https://static.crates.io/crates/serde/serde-1.0.152.crate \
+ https://static.crates.io/crates/serde_derive/serde_derive-1.0.152.crate \
+ https://static.crates.io/crates/serde_json/serde_json-1.0.91.crate \
+ https://static.crates.io/crates/serde_with/serde_with-2.2.0.crate \
+ https://static.crates.io/crates/serde_with_macros/serde_with_macros-2.2.0.crate \
+ https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.16.crate \
+ https://static.crates.io/crates/strsim/strsim-0.10.0.crate \
+ https://static.crates.io/crates/strum/strum-0.24.1.crate \
+ https://static.crates.io/crates/strum_macros/strum_macros-0.24.3.crate \
+ https://static.crates.io/crates/syn/syn-1.0.107.crate \
+ https://static.crates.io/crates/termcolor/termcolor-1.1.3.crate \
+ https://static.crates.io/crates/time/time-0.3.17.crate \
+ https://static.crates.io/crates/time-core/time-core-0.1.0.crate \
+ https://static.crates.io/crates/time-macros/time-macros-0.2.6.crate \
+ https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.6.crate \
+ https://static.crates.io/crates/unicode-width/unicode-width-0.1.10.crate \
+ https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.5.crate \
+ https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate \
+ https://static.crates.io/crates/version_check/version_check-0.9.4.crate \
+ https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.83.crate \
+ https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.83.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.83.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.83.crate \
+ https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.83.crate \
+ https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
+ https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
+ https://static.crates.io/crates/winapi-util/winapi-util-0.1.5.crate \
+ https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
+ https://static.crates.io/crates/windows-sys/windows-sys-0.42.0.crate \
+ https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.0.crate \
+ https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.0.crate \
+ https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.42.0.crate \
+ https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.42.0.crate \
+ https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.0.crate \
+ https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.0.crate \
+ https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.0.crate"
+MD5SUM="63bdf836117d9041c1d5a80389964219 \
+ 96f06331c915195bce97c8542c0eb728 \
+ bf23cd323c33a8c283c41bb9b79e4ce4 \
+ 8acaacd5237676f4e0ee81144cb495b8 \
+ 05d77ef52e90ad161fdd41b252420467 \
+ 3d192a852cb456a965c5d64db624c915 \
+ a295edb6953237ebbdfa8e731229f9a3 \
+ ae7cef17432deef88eccb128126e0b1f \
+ e188d0bf5bd7010d3c6c3981d23d0b51 \
+ 74634128440dbc3766bda76fdf0aaa05 \
+ 4a9390915b209721b7a1b87e2bb5c571 \
+ 2fceb175a04e25756e34d99a2229959f \
+ 05aea8f1546cba2339e92b4c3eeb1883 \
+ ce4e3a5dfad6932a907b9a663065c627 \
+ faa32da3be14130a4525bb7ba601c62e \
+ d05cbf26ed52299487a802688a1d22cb \
+ 8d5e30c9d62a6cdbf8defdc5d7f53827 \
+ 242a7369fe88aeb97d9ba803f6b5cfe5 \
+ 8d15e97612cefc3e5044361cc3a98681 \
+ 73820ac95790d0b5f738c1bbe6915016 \
+ e16978fce2204f45c3d555ad41547f06 \
+ 4077e60277f848e5fc6a8a9a7316bf3a \
+ 2e047f38001f99cff22b0b620ea4c446 \
+ 212574e303e85b9101f495e021eb701b \
+ 75831777e951114f35bb56cc8b2aa733 \
+ 9e606a3965e4c87e374c742ea34bf4cb \
+ b780fcc574c24ff09d291278b7d61dba \
+ 0854e3c796252e12dbfc40ad1fe82ae6 \
+ fc65414dcac661c46f2cfad7722304f9 \
+ 8dab3b3ec00dc56cffde0b0c410d47b5 \
+ 1b41b97d982520b7364a87a39e2a1ed8 \
+ 4fd75413081a400a1c230f0700732611 \
+ 4bb3ee6be8ce77402250dd0d0f26e131 \
+ 1d3e530a3410fc95a6987d70f84a6332 \
+ c01022fe0357c10ca1d48b16187f81bd \
+ b6c59717dc5601672c3e73fa2258e64c \
+ 1e49f16311d2a62e44c05750c0ec0dc7 \
+ fe77a3f609b6fd8d5b08f3b2ef14d2ad \
+ 7e70355483fc2559770b4db2ff32bcde \
+ 8f3bf146ac0a3e4533e8631d530566e8 \
+ 2b1984262d506ae540ccc7ac551484b0 \
+ acc0da4ddfd5cca7abfabb0e8b4c30df \
+ 20b9f5d97aaf06b0f580f12860b67ba8 \
+ f2ffcbe94a83f2437ffe47d7dbf4ad04 \
+ b758e6307968eb4b33e5fbe08ac79878 \
+ 2f4991ee29e75b732dbfbbe637506066 \
+ d983676e93eedcf9127739be8ee49256 \
+ 06356b72118cb4ea0f63177479b7575a \
+ 766c7633e290d0614ec54ed6ceb09a86 \
+ b31bf94ffe7e0f2ada93afae1076eaeb \
+ 94b8bf179385ff071bdc33b58bf047c0 \
+ 8b708bc4b33c5e1683467444c9ed41b0 \
+ dc576ff4be71c4239924dc2e976283f7 \
+ 073b4c53e303ccf2a807dfce7f5e986a \
+ a0de6eabdeb1320350abcbd7c02df6ac \
+ dc9b023a3d3833fa5a853d950b54d944 \
+ cbdec2af76c0cb6941296af17b0c9065 \
+ 57a5575d623bcbc7ba5c033c9f87744f \
+ 6a32bab57772c3a1146d599b65ffb0cb \
+ 7d76a523677de261dda1b65d29a93c4e \
+ e6bfe297f458a83f516e46e9b0ba07b4 \
+ 41defdffa40e7cbcc7e17a933c5660ab \
+ 267efbd05da2900424b1fa6e841d1280 \
+ 39cfd27d1728af99cbae763b4f81acd3 \
+ dee2ec53936fb100ac5375fc965ad5ce \
+ 11ac48255b39fcc730f82a004734fedb \
+ 0a95fa2c6435032d362c23c77ff915c3 \
+ 4ca29f2ce41fb9f282c527c1d8ae5cc4 \
+ a661bb863762e9f20761215a7650e6d5 \
+ 2d82330c9f218f42ccc9e44c2d18ff8f \
+ 3338953ce1388e5ff5fef5aac76ab1f5 \
+ 4da6e91a5a30bc8163694b0809798d0e \
+ 37f76a880f8691febec648f0b974b27b \
+ 12eabb4521cfd04eeed86f4b1a9f765e \
+ 94c778228e207df5cecbe059bb01c353 \
+ 82d98dc87dc8503400aa095f5aa70f13 \
+ 2f06924d629c72bab26c5dd9c9d6dad2 \
+ 0b6524870af3d209a3d3ea30b146b6e2 \
+ 8efa8e23cddda0540efe4ba8ff60840b \
+ 40ce77bc7803d0ff8734f6a11c4e8814 \
+ 301b9f0f802b829fc4be50adc94c6eb8 \
+ e8e543c3dd8daff1ef7afe657a1dcb62 \
+ df90efafd0c21fb593b001d6ab5f812a \
+ e522898b2cb1fd23af2695324b3a5c78 \
+ 7d6d4fc9fad200d6e295f6930e97e022 \
+ be7c46d8be58e109243ab2322df2cd27 \
+ e900a384ac7dbb320fe6a7279fbfef89 \
+ d18d362345c4fe512ef67b738b239fb8 \
+ 4c0a0c6c834a788605ce396729718ef7 \
+ bb789e1e7b841ebbde3e6393fc2337a3 \
+ f0b95fd0ef51d09b504852cdce3720dd \
+ 97b79fe13241e09751a08520ba0e7f28 \
+ 2444d343904d41ce5b8b8964b7bbaa6c \
+ 0498c4a11448bfc35dc7bb2caa64c753 \
+ db96b50050277bf05a3c68534bbb9586 \
+ b9e37d5fc4ad28b612b78ad37816684d \
+ 09de9d01e7331ff3da11f58be8bef0df \
+ 110789f2dd21a2ea820ebed976b4b1c2 \
+ 86854324255f07e8f64cc11ef8be3b3c \
+ 510f0324dbaea90d9d3ca2eea5e71a04 \
+ 38cf2b9fa16048f19e0d3b2d73479e50 \
+ f41cbc66ecf1f5006d0f0a7df2726c73 \
+ c373eadcbc79dfc0b580d12851add17d \
+ b04135c0705b10e9866585e1d75e68a3 \
+ 404688aa3e82019927df8a16c7d258d1"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="rust-opt"
+MAINTAINER="danix"
+EMAIL="danix@danix.xyz"
diff --git a/ch57x-keyboard-tool/doinst.sh b/ch57x-keyboard-tool/doinst.sh
new file mode 100644
index 0000000..0d41064
--- /dev/null
+++ b/ch57x-keyboard-tool/doinst.sh
@@ -0,0 +1,4 @@
+if [ -z "$ROOT" ] && [ -x /sbin/udevadm ]; then
+ /sbin/udevadm control --reload-rules >/dev/null 2>&1
+ /sbin/udevadm trigger --subsystem-match=usb >/dev/null 2>&1
+fi
diff --git a/ch57x-keyboard-tool/slack-desc b/ch57x-keyboard-tool/slack-desc
new file mode 100644
index 0000000..48522db
--- /dev/null
+++ b/ch57x-keyboard-tool/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+ch57x-keyboard-tool: ch57x-keyboard-tool (program CH57x USB macro keypads)
+ch57x-keyboard-tool:
+ch57x-keyboard-tool: Utility to program cheap Chinese USB macro keypads with keys and
+ch57x-keyboard-tool: rotary knobs. Bindings are written in a YAML file and uploaded to
+ch57x-keyboard-tool: the device, which then acts as a plain USB keyboard.
+ch57x-keyboard-tool:
+ch57x-keyboard-tool: Homepage: https://github.com/kriomant/ch57x-keyboard-tool
+ch57x-keyboard-tool:
+ch57x-keyboard-tool:
+ch57x-keyboard-tool:
+ch57x-keyboard-tool: