您尚未登录。

#1 2013-09-04 21:05:04

cjxgm
忙,却还想养猫?
所在地: 杭州
注册时间: 2011-08-19
帖子: 417
个人网站

[2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

项目目标: 在只有一个物理中键的笔记本上同时实现中键拖拽和滚动
实现方法: 按下中键,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)

离线

#2 2013-09-04 21:51:51

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,821
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

1. gettimeofday()
2. 滚动阈值?
3. 换吧
4. 当然可以。换 fork() + execve() :-D

既然做了,我希望做成像 Windows 那样的滚动,而不是现在这样子不精确。而且,在进入状态时改下鼠标指针挺好的。

离线

#3 2013-09-05 17:08:40

cjxgm
忙,却还想养猫?
所在地: 杭州
注册时间: 2011-08-19
帖子: 417
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

百合仙子 说:

1. gettimeofday()
2. 滚动阈值?
3. 换吧
4. 当然可以。换 fork() + execve() :-D

既然做了,我希望做成像 Windows 那样的滚动,而不是现在这样子不精确。而且,在进入状态时改下鼠标指针挺好的。

2. 也行
3. 其实我想问的是更标准的术语是什么
4. 我的意思是不要调用 shell 命令,尽量用库搞(前提是代码不能变得异常复杂)
Windows里是怎么样的?我的本子预装 Ubuntu,没机会知道…

要不你帮我搞了?

PS:据学长透露,必须带电脑,不然日子没法过……我最快也得十一回家拿。

最近编辑记录 cjxgm (2013-09-05 17:17:24)

离线

#4 2013-09-05 17:49:11

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,821
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

去看 xinput 的源码?

Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?

离线

#5 2013-09-05 18:19:49

cjxgm
忙,却还想养猫?
所在地: 杭州
注册时间: 2011-08-19
帖子: 417
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

百合仙子 说:

去看 xinput 的源码?

Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?

速度确实还没有考虑
现在的版本滚动时鼠标指针已经不会移动了(就是可以连续翻了)

离线

#6 2013-09-05 18:20:47

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,821
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

cjxgm 说:
百合仙子 说:

去看 xinput 的源码?

Windows 那个,鼠标离点下中键的位置越远,滚动速度越快。你现在这个,直接判断正负,根本没考虑速度,而且不能连续翻(会到屏幕边缘停止)的吧?

速度确实还没有考虑
现在的版本滚动时鼠标指针已经不会移动了(就是可以连续翻了)

不错耶~

离线

#7 2013-09-06 08:35:17

phoenixlzx
晩ご飯だよー
注册时间: 2011-08-19
帖子: 1,789
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

学校不让带电脑无非就是方便学校管理,根本不是为学生着想。

建议你带着。不然一年不摸电脑你就不会用它了。

离线

#8 2013-09-06 09:40:53

cjxgm
忙,却还想养猫?
所在地: 杭州
注册时间: 2011-08-19
帖子: 417
个人网站

Re: [2013-10-02更新] hiddle - 混合鼠标中键(笔记本上有物理中键,既想中键拖拽又想中键滚动?试试这个吧!)

phoenixlzx 说:

学校不让带电脑无非就是方便学校管理,根本不是为学生着想。

建议你带着。不然一年不摸电脑你就不会用它了。

嗯,高年级的说十一过后大家都会带电脑

离线

页脚