Mos - 一个平滑鼠标滚轮效果的小工具

2017-01-27 20:55:09 +08:00
 cbais7890

前情提要

上次的帖子: https://www.v2ex.com/t/335738

因为嫌 Smoothscroll 收费贵, 所以就自己学着写了一个...

目前效果比 LogitechOption 自带的平滑效果好的多, 不过与 LogitechOption 里面的平滑效果一起开的话会有冲突, 罗技用户记得把 LogitechOptions 里面的那个平滑效果关掉.

目前仅在 10.12.2 和 10.12.3 上测试过. 对, 就是这两周的版本...

说实话调界面花的时间比调算法多, 因为我数学实在是渣, 想不出啥好的平滑算法, 个人感觉这个实现的方法很蠢, 但是出来的效果还算能接受 ...

基本思路

  1. 从系统的 CGEvent 截取鼠标滚轮事件
  2. 滚轮事件触发 CVDisplayLink 定时器, 然后在一定的时间内连续发送插值后的鼠标滚动事件
  3. 到事件后把 CVDisplayLink 停掉, 等下次滚轮事件继续触发

GIthub 地址

https://github.com/Caldis/Mos

界面截图

之前的录屏

https://www.youtube.com/watch?v=oJQLkr2-MQ0

10215 次点击
所在节点    分享创造
52 条回复
cbais7890
2017-01-30 22:14:33 +08:00
@Balthild 加速度算是特性之一吧...主要就是来模拟触控板的手感
以后有空会做个可以调节加速度曲线的 GUI, 这样就可以随意调节了
tiancool
2017-01-31 10:04:04 +08:00
影响了触控板的滑动,不知道是什么问题
cbais7890
2017-01-31 20:58:17 +08:00
@tiancool 有一部分人反应会误判触控板, 应该是部分机型 /系统的 CGEvent 拿来的数据有些差异, 这个如果我如果没机器没数据测试也不太好解决...
cbais7890
2017-02-01 23:20:28 +08:00
@fqxufo
加了分应用禁用的功能, 有心情的话可以试试效果
hackpro
2017-02-03 00:20:43 +08:00
太好啦 加到 homebrew 里面去吧
whitegerry
2017-02-03 10:51:28 +08:00
如果鼠标滚轮滚动速度比较慢的话不管滚多少下,页面都不会滚动,什么原因?
aksoft
2017-02-04 19:56:57 +08:00
不错 建议你联系一下鼠标手势那个作者 可以放一起....
cbais7890
2017-02-05 22:11:07 +08:00
@whitegerry 这个不太清楚, 得拿到数据才能判断
@aksoft 感觉还是有难度的😂😂😂
cbais7890
2017-02-05 22:12:32 +08:00
@hackpro 我个人理解 homebrew 貌似都是发布 Terminal 上的应用, 这类应用也能往上发吗?
hackpro
2017-02-05 23:19:47 +08:00
r#29 @cbais7890 brew vs brew cask
whitegerry
2017-02-06 14:37:19 +08:00
@cbais7890 需要什么数据?我是逻辑鼠标,滚轮滚动是一格一格那种
otakustay
2017-02-06 15:58:42 +08:00
@cbais7890 放 brew cask 上就行
aksoft
2017-02-06 17:35:08 +08:00
@cbais7890 可以提一下啊,这可是造福人类
otakustay
2017-02-08 13:23:41 +08:00
@cbais7890 我看了一下你的安装包,建议做一些修改以便和 brew cask 整合:

1. 安装包下载 URL 中去掉 build.xxxx 这部分,这样可以将 version 作为一个占位符生成 URL
2. 安装包建议是个标准的 dmg ,内部包含 app

提交到 brew cask 比较简单,我也可以帮你做了
cbais7890
2017-02-08 18:50:43 +08:00
@aksoft 好的, 我研究一下
@otakustay 谢谢您的好意, 不过我想顺便学习一遍打包 DMG 和提交到 brewcask 的流程, 正好自己来试试.
cbais7890
2017-02-08 18:52:45 +08:00
@whitegerry 最简单其实就是关掉平滑滚动, 然后打开滚动监控的界面, 然后重复一下你滚动时候有问题的动作, 录个屏看看一下鼠标滚轮的事件是否有什么异常

其实那个滚动监控的界面一开始我就是用来 debug 用的哈哈
casioyan
2017-02-08 23:31:16 +08:00
非常版,感谢!!!
lkytal
2017-02-08 23:50:45 +08:00
能否赐教用的是什么平滑滚动算法呢?
xlvecle
2017-02-09 00:10:24 +08:00
楼主。。。我的双飞燕装了之后没法滚动了。。
cbais7890
2017-02-09 08:34:57 +08:00
@xlvecle #39 系统版本如果不是 10.12 的话可能会有些兼容性问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337190

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX