Releases: ForestOuting/ShikiPad
Release list
# ShikiPad v5.2
- Preserved a complete deferred modifier tap when a left-stick or Create/Options modifier is released before its arbitrated KeyDown can run, preventing fast taps from disappearing behind a touchpad output.
- Made the modifier-binding wait genuinely independent from the pure layer grace window while retaining the original layer takeover boundaries.
- Enforced the documented module order at runtime, added native Interception send-result checks with one retry, serialized context cleanup, and kept injector bookkeeping unchanged after failed sends.
- Added a per-session single-instance lock, HID parse diagnostics, validated editable parameters, implemented the documented linear right-stick curve, and corrected all assembly metadata to V5.2.
- Added reproducible release packaging, SHA-256 manifests, third-party notices, .NET 8 Desktop Runtime documentation, and driver-installer exit-code handling; removed the unused Bluetooth marker from the package definition.
- Added a per-poll output arbiter so simultaneous modules cannot interleave independent output sequences. Priority is touchpad click, touch gesture, modifier transitions, L3/R3, eight action positions, left-stick wheel, then right-stick pointer movement.
- Fixed left-stick and Create/Options modifier presses bypassing arbitration: their logical state and 45 ms binding are registered immediately, while physical KeyDown output is serialized after touchpad outputs and before bindable mouse/action output.
- Release events never enter the arbiter: KeyUp/mouse-up/gesture-modifier cleanup always runs. Logical modifier registration plus Home, Mute, and shoulder/trigger state also update before arbitration; only physical modifier KeyDown is serialized.
- Deferred mouse-button and action outputs keep their pending state for the next poll, and blocked repeats keep their due time instead of being silently settled.
KeyTapnow temporarily releases and restores an already-held ordinary target key, preventing an atomic shortcut from stealing another module's held-key ownership.- Touch-gesture shortcuts now use exact modifier isolation: unrelated held modifiers are suspended for the atomic shortcut and restored afterward, while action-layer taps retain their intentional 45 ms bound modifiers.
# ShikiPad v5.1
ShikiPad V5.1
V5.1 调整了左摇杆滚轮与修饰键扇区,并更新了二指右区快捷键。
左摇杆扇区调整
正上方和正下方的鼠标滚轮扇区均扩大为 50°:
- 正上滚轮区:以正上方为中心,左右各 25°,范围为 65°–115°。
- 正下滚轮区:以正下方为中心,左右各 25°,范围为 245°–295°。
- 两个滚轮区的中心线保持在正上方和正下方,没有左右偏移。
- 剩余 260°由四个修饰键区域平均占用,每个修饰区正好为 65°。
- 六个区域连续覆盖完整 360°,没有空隙或重叠。
完整角度划分:
- 右上修饰区:0°–65°
- 正上滚轮区:65°–115°
- 左上修饰区:115°–180°
- 左下修饰区:180°–245°
- 正下滚轮区:245°–295°
- 右下修饰区:295°–360°
摇杆半径参数没有改变:
- 滚轮区进入及退出半径:0.30
- 修饰键区进入及退出半径:0.50
- 当前没有单独的进入/退出迟滞参数。
二指右区映射
- 左滑:
Win + Shift + S截图 - 上滑:
Win + Shift + M还原已最小化窗口 - 右滑:
Alt + F4关闭当前窗口 - 下滑:
Win + M最小化全部窗口 - 四个方向均为单次触发,不连发。
使用要求
- 仅支持官方 PS5 DualSense 有线 USB 模式。
- 需要安装 Interception 驱动并重启 Windows。
- 请以管理员身份运行 ShikiPad。
- 建议配合 HidHide,避免系统或游戏产生双重输入。
完整映射和参数说明请查看发布包中的 README.md。
文件校验
ShikiPad.zip SHA-256:
4A37777221E45D28EB97F172E8F3CFA78B2D19F51CA4CC3F24FDCF351FE74FBA
包内 ShikiPad.exe SHA-256:
3A57E1EA7E1BF083DED1EB32FE5C79BEC7A4CA1E4A31529F667CAD248B29FCC2
## ShikiPad V5.0
V5.0 对触控板手势、二指延续、键层判定、修饰键绑定、Home 蓄力和 Caps/Fn 模式进行了整体重构。
触控板手势
- 取消缓冲区手势,最终只识别左区或右区。
- 手势区域由移动手指的起始位置和第一次触发方向共同决定。
- 取消所有“长按后滑”手势,只保留单指与二指直接滑动。
- 手势触发后,在移动手指抬起前保持区域、指数和连发模式,不会因跨区移动而改变。
- 每次纵向移动 150 或横向移动 180 都会完整结算,并同时清空横纵累计,避免斜向残留造成误触。
二指延续
- 静止指保持时,运动指可以抬起后重新落下并继续二指手势。
- 第一次识别二指手势时,未达到 150/180 触发阈值的触点会成为静止指。
- 每次运动指完成一个 150/180 手势步后,都会刷新静止指基准。
- 静止指抬起、Touch ID 改变或相对最新基准移动达到 100 时,本轮触控立即结束,防止错误转成单指手势。
当前二指右区映射
- 左:
Win + Shift + S截图 - 上:
Win + Shift + M还原已最小化窗口 - 右:
Alt + F4关闭窗口 - 下:
Win + M最小化全部窗口 - 四个方向均为单次触发,不连发
触控板按压
Delete、Backspace、Caps Lock均使用真实 KeyDown/KeyUp。- 触控板按压是独立模块,不受当前肩键或扳机键层影响。
- 触控板手势与按压采用先触发者优先,避免同时输出。
- 触控板三键不会消费 Home 蓄力,也不会关闭或改变 Caps/Fn 模式。
纯键层判定
- Base 只表示未按肩键或扳机键时,方向键和四个图案键这八个动作位置的映射。
- 肩键和扳机键只负责选择单层或组合层。
- 键层判定与修饰键绑定完全分离,修饰键不会抢占、冻结或改写动作所属键层。
- 保留 45 ms 键层前窗、15 ms 后窗、35 ms 组合层窗口以及 20/30 ms 键层占用限制。
修饰键绑定
- 独立 45 ms 修饰绑定仅覆盖:
- 八个动作位置在全部键层中的输出。
- L3/R3 鼠标左右键。
- Home、触控板按压、静音键、滚轮、右摇杆和触控板手势不进入该绑定窗口。
- 带修饰键的 Base 连发方向键会在首发及每次连发时完整按下并释放修饰键和方向键,不会让修饰键一直卡在按下状态。
Home 蓄力
- Home 蓄力只收集左摇杆产生的修饰键。
- 先触发修饰键再短按 Home,可以将修饰键锁定给下一次符合条件的动作。
- 该蓄力关系不受修饰键绑定的 45 ms 时间限制。
- 只有八个动作位置的全部键层输出以及 L3/R3 能消费蓄力。
- 触控板
Delete、Backspace、Caps Lock不会解除蓄力。 - Base 方向键消费蓄力后,保存的修饰键仍会随每次渐进连发完整触发和释放。
Caps/Fn 模式
- 短按静音键开启 Caps/Fn,再次短按关闭。
- 未带 Shift 的字母转换为大写字母。
1..0 - =转换为F1..F12。- 只有实际发生上述转换后,Caps/Fn 才会自动关闭。
- 方向键、Tab、Esc、Space、Enter、其他标点、L3/R3 和触控板三键都不会关闭 Caps/Fn。
摇杆调整
- 左摇杆上/下滚轮区死区由 0.15 调整为 0.30。
- 四个修饰键扇区死区由 0.45 调整为 0.50。
- 优化右摇杆鼠标平滑、积分和异常帧限制。
- 加强断开连接、禁用程序和异常退出时的统一按键释放。
使用要求
- 仅支持官方 PS5 DualSense 有线 USB 模式。
- 需要安装 Interception 驱动并重启 Windows。
- 请以管理员身份运行 ShikiPad。
- 建议配合 HidHide,避免系统或游戏收到双重手柄输入。
完整安装方法、所有映射和参数说明请查看发布包中的 README.md。
文件校验
ShikiPad.zip 内的程序与仓库根目录发布程序一致。
SHA-256:
E4616F00A2298B1CC55F862E804E8E198E61D7EB08705A5AC7CAB665FBC7B841
# ShikiPad v4.9 永无止境
Stabilize two-finger touchpad continuation
ShikiPad V4.1 解决卡键问题
- Touchpad click now sends
Backspacewhen the click report has no active touch point, and also when two touch points are active. - Create/Options system buttons now use deterministic press-before-actions and release-after-actions ordering, so
Right Alt/Right Ctrlcombinations are less likely to miss when pressed in the same frame as action keys or touchpad actions. - Keyboard and mouse hold bookkeeping is serialized inside the injector, reducing release races between mapper ticks, disable/enable, disconnect, and process shutdown.
ShikiPad v4.0
- Mute short press now toggles the one-shot Caps/Fn layer. Press Mute again before an action key to cancel it and restore normal output.
- Caps/Fn maps
1..0,-, and=toF1..F12; unshifted letters output as shifted uppercase letters. - Touchpad gestures now support direct swipe, hold-then-swipe, and two-finger mappings. Hold-then-swipe is recognized at the 150/180 trigger distance after 450 ms of touch duration.
- Touchpad and left-stick modifier overlap is guarded by modifier reference counting, reducing accidental stuck or prematurely released modifier keys.
- The README no longer duplicates a separate install section; driver and setup order is the installation guide.
# ShikiPad v3.6 - 增加触控板功能
更新内容
-
调整触控板手势识别逻辑:
- 移动达到 250 后立即识别方向,不再等待手指离开触控板。
- 取消方向占比和识别时间窗口判断。
- 不再使用二指中心点,改为任意一根手指移动达到 250 即可识别。
- 手势过程中只要出现过二指,就按二指手势处理;全程没有二指才按一指处理。
- 识别后只要仍有至少一根手指留在触控板上,就可以继续连发。
-
调整触控板连发:
- 首次识别后立刻执行一次快捷键。
- 第一次连发前等待 550ms。
- 后续连发间隔为 350ms。
-
调整触控板映射:
- 一指直接左滑改为
Alt + F4关闭软件。 - 一指直接右滑改为
Shift + Win + S截图。
- 一指直接左滑改为
-
调整左摇杆鼠标滚轮:
- 取消旧的小数按固定量化单位输出逻辑。
- 改为更接近右摇杆鼠标的累计小数、0.5 阈值四舍五入输出逻辑。
- 滚轮曲线指数改为 3.0。
- 最慢滚轮间隔为 1500ms,最快滚轮间隔为 15ms。
- 滚轮模式下轻微偏到斜向时不再轻易打断滚轮输出。
-
调整基础层连发:
- 连发爬坡时间改为 1500ms。
- 最快连发间隔改为 12ms。
-
更新 README:
- 补充触控板映射、连发规则和参数说明。
- 补充右摇杆鼠标、左摇杆滚轮、基础层连发等参数说明。
- 修正发布包文件列表,使其与
ShikiPad.zip实际内容一致。
# ShikiPad v3.5 - 最终?
- 将动作键前置归属窗口从 45ms 调整为 35ms。
- 左摇杆进入/退出死区调整为 0.25 / 0.15。
- 左摇杆滚轮最高速调整为 15ms,最低速保持 1500ms。
- 左摇杆滚轮改为按半径连续插值滚轮间隔,并累计小数滚轮量后输出,低/中速滚动更细腻。
- 键层追溯参数调整为 layerTakeoverWindowMs = 25ms,layerOccupancyCarryCutoffMs = 15ms。
ShikiPad v3.3
下载包 / Download: ShikiPad-release-v3.3.zip
ShikiPad v3.3
这是一次面向最终打字逻辑稳定性的修正版本,重点处理短时间内多个键层快速交替时,基础键归属可能被后续键层过度追溯的问题。
主要更新
- 修正基础键 pending 倒推逻辑:每个基础键现在维护独立的真实层时间轴,后续新键层必须真正倒推到该基础键的按下时间点,才能接管它。
- 修正 20ms 占用边界:键层本体累计达到 20ms 时,不再穿透到更早的前置空间或更旧键层,避免后续键层过度吞掉前面的输入。
- 保留原有参数意义:45ms 前置窗口、30ms 最大本体占用、35ms 组合层窗口、15ms 后置窗口均继续按原设定工作。
- 保留组合层作为单键层参与判断的规则,同时避免组合层组成键的单层本体被错误累计。
- 确认短时间多基础键混合输入时,每个基础键按自己的按下时间独立判定,不互相污染。
- 映射说明页面将
L2+R2标题改为R2+L2,与当前同时优先级R1 > L1 > R2 > L2保持一致。 - 重新构建根目录
ShikiPad.exe,文件版本更新为3.3.0.0。
验证
dotnet build .\ShikiPad.csproj -c Release- 组合层、前置/后置窗口、20ms/30ms 占用、同时优先级、映射交换等 22 个验证用例全部通过。
使用
下载压缩包后解压,运行 ShikiPad.exe。如需驱动,请按 README 中的 Interception 驱动说明安装。
ShikiPad v3.2
下载包 / Download: ShikiPad-release-v3.2.zip
ShikiPad v3.2
这是 ShikiPad v3 系列的正式整理版,重点完成键位说明、组合层判定、低速鼠标/滚轮手感和发布包一致性。
主要更新
- 映射说明页改为按真实按键位置排布,不再按线性按键顺序显示;压缩整体空间,让基础层、单键层、组合层、Shift/Fn/摇杆提示在同一页内更直观。
- 说明页颜色改为更均匀的渐变分布,右侧保留亮色/白色过渡,避免颜色集中在局部。
- 每个按键值按固定位置居中对齐,减少偏左偏右的错位感。
- 增加并整理
R1+L2、L1+R2、L2+R2等标点组合层说明。 - 左右括号、花括号、圆括号、尖括号按“方向键上右”和“方向键左下”两类摆放,避免出现“上左/右下”的错误分类。
R1+L2与L1+R2的说明位置和实际映射已对齐;Shift 层提示调整为; -> :、' -> "、` -> ~、\ -> |。
键层与组合层逻辑
- 组合层窗口为
35ms,组合层只由最近两个仍有效的键层按键形成,不会隔着更晚的键形成旧组合。 - 同一轮询时间戳下的键层优先级为
R1 > L1 > R2 > L2。 - 组合层形成后,参与该组合的单键层本身、前置窗口和后置窗口资格会被组合层吸收,不再作为独立单键层判定。
- 组合层断裂时,先松开的组合键层保留
15ms后置窗口;后留下的组成键不获得自己的后置窗口,也不恢复单键层资格。 - 动作键前置窗口保持
45ms,用于吸收按动作键和按键层之间的先后误差。 - 新增并明确累计追溯模型:
20ms是倒推时多个键层本体段的累计截止点,30ms是累计本体占用上限。 - 组合层按单独键层参与累计,例如
R1+L2、R2+L2、L1+R2、R1+L1都会像单键层一样累计。 - 当前组合层的同一次组成单键仍占用
45ms时间线,但不计入这个组合层自己的20ms/30ms本体累计限制。 - 保留真实后置窗口逻辑:旧组合层断裂后的动作键可吃到组合层后置窗口,后续新键层仍可在前置窗口内接管。
- 保留基础层回退逻辑:超过可追溯范围或无法被新键层接管时,动作键按真实 pending 状态回到原层或基础层。
摇杆、鼠标与滚轮
- 全局轮询保持
1ms,适用于按键、肩键/扳机、摇杆、鼠标移动和滚轮更新。 - 右摇杆鼠标移动使用指数
3曲线,保留原始真实触发逻辑,不额外增加漂移补偿逻辑。 - 鼠标移动使用小数累计输出,低速移动更平滑,避免一格一格跳动。
- 左摇杆滚轮同样使用指数
3曲线,最低滚轮速度间隔提高到1500ms,低速滚动更细腻。 - R3 鼠标右键保持短暂冻结光标,减少按下右键瞬间的光标抖动。
- 扳机阈值保持按下
0.25、释放0.15,保留迟滞区避免临界抖动。
其他确认
- 基础层按住保持连发;字符层和组合层输出保持虚拟点按,按住不连发。
- Fn 层保持
1..0 / - / = -> F1..F12。 - 左摇杆修饰键保持方向锁定,进入方向后直到回死区才释放或重新判定。
- 蓄力功能保持触控板/View/Menu 短按切换、长按保持,用于收集并统一释放修饰键。
- PlayStation 语音输入辅助键位保留:Share/Create 为
Right Alt,Options/Menu 为Right Ctrl,Home 为Right Shift。
发布包
- 版本号:
v3.2 - Windows x64 单文件 EXE
- 包含 README、中文 README、Interception 运行文件和驱动安装工具