From e2dec75e6b4d9003f5ef8f2e732c5217d9dcb519 Mon Sep 17 00:00:00 2001 From: 4yn Date: Wed, 9 Feb 2022 22:30:10 +0800 Subject: [PATCH] readme --- README.md | 120 ++++++++-- notes.md | 5 + public/favicon.png | Bin 3127 -> 0 bytes res/layouts/index.html | 334 ++++++++++++++++++++++++++++ res/layouts/layout.png | Bin 0 -> 58372 bytes res/screenshots/demo.png | Bin 0 -> 26193 bytes src-tauri/src/slider_io/keyboard.rs | 4 +- 7 files changed, 447 insertions(+), 16 deletions(-) create mode 100644 notes.md delete mode 100644 public/favicon.png create mode 100644 res/layouts/index.html create mode 100644 res/layouts/layout.png create mode 100644 res/screenshots/demo.png diff --git a/README.md b/README.md index 2d35597..42ddaa6 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,108 @@ -# Todo +logo -- major - - acio support -- qol - - more error handling - - comments -- when umiguri comes out - - ouptut websocket - - led websocket +# slidershim -``` -Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -$env:RUST_BACKTRACE = "1"; -yarn tauri dev -``` +Software adapter for various Chunithm slider controllers with a built-in Brokenithm web controller. Has support for keyboard/gamepad output and LED lighting. + +[Download link](https://github.com/4yn/slidershim/releases/latest) + +screenshot + +## Setup Instructions + +1. [Download here](https://github.com/4yn/slidershim/releases/latest) +2. Extract to any location you like. +3. Run `slidershim.exe`. +4. Pick your input device, output method and preferred lighting. +5. Click apply. +6. ??? +7. Profit! + +### Extra Pointers + +- Less resources are used when the configuration window is hidden. +- Un-hide the configuration window from the system tray. +- For gamepad output, you will need to install [ViGEmBus](https://github.com/ViGEm/ViGEmBus/releases/latest) for it to work. +- For serial LED input, you may need to install [com0com](https://sourceforge.net/projects/com0com/files/com0com/2.2.2.0/) to bridge slidershim with the LED data stream. + +### Brokenithm Setup + +1. Set the device option to "Brokenithm" and apply. +2. Allow firewall access to `slidershim.exe` +3. Connect a touch device to the same wifi or local network as your windows machine + > Windows hotspot works too, but make sure to give "public" firewall access +4. Open the web controller in your tablet device web browser. One of the links should work. + 1. Either manually type in the IP address if you know what IP it is; + 2. Or scan the generated "Broknenithm QR" to get a list of clickable links and save some typing. +5. (Optional) Add the webpage to home screen and/or enable guided access to avoid accidentally exiting the web controller. + +## Output Layouts + +![layouts](./res/layouts/layout.png) + +## Troubleshooting + +
+My controller is not recognised + +- slidershim supports the GAMO2 Tasoller on HID firmware and Yuancon Laverita v2 controllers on HID firmware. + - If you are using a Tasoller controller, make sure it has the correct HID firmware installed. + - If your hardware controller is not one of these, it will not work. +- Hotplug is not supported. If you plugged in the controller after starting slidershim, re-connect your controller by just clicking the "Apply" button (even if it is grey). + +
+ +
+I am using a controller and my keyboard buttons are pressed too often + +- Adjust the sensitivity options. +- The higher the number, the harder it is for keyboard buttons to be pressed. + +
+ +
+The Brokenithm controller cannot be loaded + +- Make sure that you can load the controller in your web browser _from the same windows machine that is running slidershim_. + - Close the windows machine web browser afterwards once you have tested it. +- Double check that your tablet device is connected to the same wifi or local network. +- Try restarting slidershim. + +
+ +
+The Brokenithm controller is stuck + +- Applying changes to the slidershim configuration will reset the brokenithm controller. +- Refresh the web page or force-stop the controller from your tablet device's task switcher and re-open the controller. + +
+ +
+I am still having problems + +- Join the [Cons&Stuff Discord](https://discord.com/invite/zFGemg4r) and ping me there. +- Try to bring your logs. + +
+ +
+Neardayo layout? + +- [Neardayo layout.](https://youtu.be/8dA-RCSB-qA?t=25) + +
+ +## Technical Information + +- Built with Rust, [tauri](https://github.com/tauri-apps/tauri) + [Svelte](https://github.com/sveltejs/svelte), [rusb](https://github.com/a1ien/rusb), [hyper](https://github.com/hyperium/hyper/), [tokio-](https://github.com/snapview/tokio-tungstenite)[tungstenite](https://github.com/snapview/tungstenite-rs) and [serialport](https://crates.io/crates/serialport) +- USB device polling is done on a dedicated thread while everything else is done on a async runtime. + +## Planned Features + +- Major: + - Support AC slider serial protocol + - Output and LED websocket adapters when UMIGURI comes out +- QOL: + - Documentation + - Comprehensive logging and error handling diff --git a/notes.md b/notes.md new file mode 100644 index 0000000..4012dc6 --- /dev/null +++ b/notes.md @@ -0,0 +1,5 @@ +``` +Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass +$env:RUST_BACKTRACE = "1"; +yarn tauri dev +``` diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index 7e6f5eb5a2f1f1c882d265cf479de25caa925645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3127 zcmV-749N3|P)i z7)}s4L53SJCkR}iVi00SFk;`MXX*#X*kkwKs@nFGS}c;=?XFjU|G$3t^5sjIVS2G+ zw)WGF83CpoGXhLGW(1gW%uV|X7>1P6VhCX=Ux)Lb!*DZ%@I3!{Gsf7d?gtIQ%nQiK z3%(LUSkBji;C5Rfgd6$VsF@H`Pk@xtY6t<>FNR-pD}=C~$?)9pdm3XZ36N5PNWYjb z$xd$yNQR9N!dfj-Vd@BwQo^FIIWPPmT&sZyQ$v81(sCBV=PGy{0wltEjB%~h157*t zvbe_!{=I_783x!0t1-r#-d{Y?ae$Q4N_Nd^Ui^@y(%)Gjou6y<3^XJdu{rmUf-Me?)zZ>9OR&6U5H*cK; z$gUlB{g0O4gN0sLSO|Of?hU(l?;h(jA3uH!Z{EBKuV23ouU@^Y6#%v+QG;>e*E}%?wlu-NT4DG zs)z)7WbLr)vGAu(ohrKc^em@OpO&f~6_>E61n_e0_V3@{U3^O;j{`^mNCJUj_>;7v zsMs6Hu3g7+@v+lSo;=yTYFqq}jZmQ-BK8K{C4kqi_i*jBaQE(Au0607V-zKeT;EPg zX(`vrn=L+e74+-Tqeok@_`tDa$G9I|$nTU5H*2V8@y()n*zqM?J1G!-1aX;CfDC9B zTnJ#j_%*n8Qb1)re*Bno7g0RG{Eb;IK14irJYJp$5Z6ac9~b_P?+5t~95~SRG$g?1 znFJ7p$xV&GZ18m~79TGRdfsc-BcX$9yXTR*n)mPD@1~O(_?cT$ZvFPucRmGlq&se0 zKrcUf^k}4hM*biEJOWKzz!qQe;CB_ZtSOO9Owg#lZAc=s65^rb{fZe(TYu_rk!wKkEf}RIt=#Om( zR8mN`DM<^xj~59euMMspBolVN zAPTr8sSDI104orIAdmL$uOXn*6hga1G+0WD0E?UtabxC#VC~vf3|10|phW;yQ3CY8 z2CM=)ErF;xq-YJ5G|um}>*1#E+O_Mu|Nr#qQ&G1P-NMq@f?@*XUcSbV?tX=)ilM-Q zBZP|!Bpv0V;#ojKcpc7$=eqO;#Uy~#?^kNI{vSZfLx&DEt~LTmaKWXcx=joubklI<*Aw z>LtMaQ7DR<1I2LkWvwyu#Rwn~;ezT}_g(@5l3h?W%-a86Y-t#O1PubP+z<%?V5D(U zy57A6{h+{?kOZp7&WKZR+=sznMJ}+Dnpo=C_0%R_x_t~J5T?E_{+))l5v1%52>)d-`iiZyx|5!%M2Fb2dU zW3~MwwpEH9Rhue+k$UIOoo($Ds!NbOyMR36fRHu;*15(YcA7siIZk#%JWz>P!qX1?IUojG&nKR>^gArBt2 zit(ETyZ=@V&7mv_Fi4bABcnwP+jzQuHcfU&BrAV91u-rFvEi7y-KnWsvHH=d2 zgAk(GKm_S8RcTJ>2N3~&Hbwp{Z3NF_Xeh}g4Eke)V&dY{W(3&b1j9t4yK_aYJisZZ{1rcU5- z;eD>K;ndPq&B-8yA_S0F!4ThA&{1{x)H<#?k9a#6Pc6L?V^s0``ynL&D;p(!Nmx`Y zFkHex{4p!Ggm^@DlehW}iHHVi}~u=$&N? z(NEBLQ#UxxAkdW>X9LnqUr#t4Lu0=9L8&o>JsqTtT5|%gb3QA~hr0pED71+iFFr)dZ=Q=E6ng{NE{Z~0)C?deO#?Aj zSDQ$z#TeC2T^|=}6GBo-&$;E{HL3!q3Z-szuf)O=G#zDjin4SSP%o%6+2IT#sLjQa ziyxFFz~LMjWY+_a5H!U6%a<=b7QVP^ z*90a62;bVq{?@)P6^DWd^Yilq4|YTV2Nw!Yu;a1lPI-sxR)rf@Fe5DhDP7FH zZZ%4S*1C30P;|O+jB!1;m|rXT90Sm5*RBbQN`PKu+hDD*S^yE(CdtSfg=z>u$cIj> z + + + + + + + Slidershim Layouts + + +
+
Keyboard 32-zone, Tasoller Layout
+
+
1
+
Q
+
2
+
W
+
3
+
E
+
4
+
R
+
5
+
T
+
6
+
Y
+
7
+
U
+
8
+
I
+
A
+
Z
+
S
+
X
+
D
+
C
+
F
+
V
+
G
+
B
+
H
+
N
+
J
+
M
+
K
+
,
+
+
+
]
+
[
+
;
+
.
+
'
+
/
+
+
+
[enter]
+
[space]
+
[esc]
+
+
+
+
Keyboard 32-zone, Yuancon Layout
+
+
5
+
3
+
1
+
Y
+
W
+
U
+
S
+
Q
+
O
+
M
+
K
+
I
+
G
+
E
+
C
+
A
+
6
+
4
+
2
+
Z
+
X
+
V
+
T
+
R
+
P
+
N
+
L
+
J
+
H
+
F
+
D
+
B
+
+
+
;
+
\
+
]
+
[
+
=
+
-
+
+
+
[enter]
+
[space]
+
[esc]
+
+
+
+
Keyboard 8-zone, Deemo Layout
+
+
A
+
S
+
D
+
F
+
J
+
K
+
L
+
;
+
+
+
+ [space] +
+
+
+
[disabled]
+
[disabled]
+
[disabled]
+
+
+
+
Keyboard 10-zone, Voltex/Neardayo Layout
+
+
W
+
E
+
O
+
P
+
D
+
F
+
J
+
K
+
C
+
M
+
+
+
P
+
O
+
E
+
W
+
+
+
1
+
[esc]
+
[enter]
+
+
+
+
XBOX 360 Gamepad, Voltex/Neardayo Layout
+
+
LS
<<
+
LS
>>
+
RS
<<
+
RS
>>
+
A
+
B
+
X
+
Y
+
LB
+
RB
+
+
+
RS>
+
RS<
+
LS>
+
LS<
+
+
+
[start]
+
[back]
+
[guide]
+
+
+ + diff --git a/res/layouts/layout.png b/res/layouts/layout.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6c95e4842d8c29fceec10dd3494f0414371e45 GIT binary patch literal 58372 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 Xyp7^_x2G)p`U=t#3QtPJ4PO5*8nGht literal 0 HcmV?d00001 diff --git a/res/screenshots/demo.png b/res/screenshots/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..df70c58d9f9f3b25f046ef43b3eaa2029445f4fc GIT binary patch literal 26193 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/slider_io/keyboard.rs b/src-tauri/src/slider_io/keyboard.rs index fb269aa..883ae82 100644 --- a/src-tauri/src/slider_io/keyboard.rs +++ b/src-tauri/src/slider_io/keyboard.rs @@ -57,7 +57,7 @@ const VOLTEX_KB_MAP: [usize; 41] = [ 0x4f, 0x4f, 0x4f, 0x4f, // O 0x50, 0x50, 0x50, 0x50, // P 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Disabled - 0x31, 0x1b, 0x0d, // 1, VK_ESCAPE, VK_RETURN + 0x31, 0x0d, 0x1b, // 1, VK_RETURN, VK_ESCAPE ]; #[rustfmt::skip] @@ -75,7 +75,7 @@ const VOLTEX_KB_MAP_NEARDAYO: [usize; 41] = [ 0x4f, 0x4f, 0x4f, 0x4f, // O 0x50, 0x50, 0x50, 0x50, // P 0x57, 0x45, 0x45, 0x4f, 0x4f, 0x50, // Disabled - 0x31, 0x1b, 0x0d, // 1, VK_ESCAPE, VK_RETURN + 0x31, 0x0d, 0x1b, // 1, VK_RETURN, VK_ESCAPE ]; pub struct KeyboardOutput {