项目目标: 在只有一个物理中键的笔记本上同时实现中键拖拽和滚动
实现方法: 按下中键,0.5秒内移动鼠标就是拖拽,0.5秒后移动鼠标就是滚动(支持拖拽阈值,即按下中键后鼠标移动超过一定量才认为是拖拽;时间可以自定义)
项目进度: 目前版本为 v0.12,可供日常使用
项目主页: https://github.com/cjxgm/hiddle,欢迎 fork + pull request (C语言,1个文件,200行左右)
安装、使用:
到这里下载最新版的 .zip 包或 .tar.gz 包,解压缩。
安装方法是 make && sudo make install
由于需要鼠标设备(默认为 /dev/input/mice)的读权限,所以为了方便使用需要写 udev 规则(当然你也可以 sudo hiddle 来获得权限):
编辑文件 /etc/udev/rules.d/99-zzz-mouse.rules(文件名很重要!),内容如下:
KERNEL=="mice", MODE="644"
重启生效。
之后运行 hiddle & 即可。欲了解更多参数,运行 hiddle --help
任务单:
滚动时改变鼠标指针而不是发出 beep 声。
解决IO阻塞问题。
可不可以用库而不是调用 shell 命令呢?
代码规范: 看源代码基本上就知道了。vim 用户已有 modeline,其它编辑器用户请设置成:使用 tab 缩进,tab宽度为 4 字符宽,缩进宽度为 4 字符宽。
v0.12 更新记录:
加入了 CHANGELOG
滚动时发出 beep 声(如果不喜欢可以删掉 hiddle.c 第168行,以后会改成改变鼠标指针的)
毫秒级计时,可用户定制,默认“滚动延迟”改为 500 毫秒
简化了帮助文本
最近编辑记录 cjxgm (2013-10-02 16:08:08)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
1. gettimeofday()
2. 滚动阈值?
3. 换吧
4. 当然可以。换 fork() + execve() :-D
既然做了,我希望做成像 Windows 那样的滚动,而不是现在这样子不精确。而且,在进入状态时改下鼠标指针挺好的。
离线
1. gettimeofday()
2. 滚动阈值?
3. 换吧
4. 当然可以。换 fork() + execve() :-D既然做了,我希望做成像 Windows 那样的滚动,而不是现在这样子不精确。而且,在进入状态时改下鼠标指针挺好的。
2. 也行
3. 其实我想问的是更标准的术语是什么
4. 我的意思是不要调用 shell 命令,尽量用库搞(前提是代码不能变得异常复杂)
Windows里是怎么样的?我的本子预装 Ubuntu,没机会知道…
要不你帮我搞了?
PS:据学长透露,必须带电脑,不然日子没法过……我最快也得十一回家拿。
最近编辑记录 cjxgm (2013-09-05 17:17:24)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
去看 xinput 的源码?
Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?
离线
去看 xinput 的源码?
Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?
速度确实还没有考虑
现在的版本滚动时鼠标指针已经不会移动了(就是可以连续翻了)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
百合仙子 说:去看 xinput 的源码?
Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?
速度确实还没有考虑
现在的版本滚动时鼠标指针已经不会移动了(就是可以连续翻了)
不错耶~
离线
学校不让带电脑无非就是方便学校管理,根本不是为学生着想。
建议你带着。不然一年不摸电脑你就不会用它了。
离线
学校不让带电脑无非就是方便学校管理,根本不是为学生着想。
建议你带着。不然一年不摸电脑你就不会用它了。
嗯,高年级的说十一过后大家都会带电脑
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线