自制快速调节鼠标灵敏度的小玩意——SimpMouse


介绍:

这是我最近弄的小玩意,可以识别连接的鼠标,并分别调节每个鼠标的“减速系数”(Constant Deceleration)。

代码托管在Github上:
https://github.com/ukyoi/simpmouse (点此进入项目页面)
欢迎fork和贡献(虽然我觉得应该没什么人fork)。

功能上,选中要调节的鼠标,然后拖动滑杆或输入数值,就可以改变鼠标灵敏度。由于减速系数取值是1到正无穷(应该是正无穷吧……),所以滑杆那里我取了个倒数,左端对应数值为16。直接输入的话则可以接受任何有效的数值。

另外,虽然有Refresh、Apply和Cancel三个按钮,不过这些都是半年前构想中的功能,现在统统用不了,当然更无什么记忆功能。总之只是个很简陋的半成品。

主要用到的东西:Qt做界面、C++、Qt做基本功能(使用qmake进行构建)。
通过运行 xinput list 和 xinput list-props 获取鼠标信息,并用 xinput set-prop 写入Constant Deceleration数值。

关于这个程序的一些废话:

最初想法源于半年前跟人联网用wine玩星际。KDE的鼠标调节功能比较残,指针加速那里即使调到最低,我的鼠标也还是太灵敏(xfce的鼠标调节就很好,可以每个鼠标独立调整,项目也多)。网上查到用xinput可以对鼠标行为进行精细调节,我就打算写个方便的图形工具来用。结果一下拖到现在,星际自然是早就不打了,程序也变成了练手(自娱自乐)之作。至于程序名……由于这个程序对多数人来说实在是没啥大用,请原谅我没在上面花什么心思。

我本以为如此小程序,不会有什么代码量,然而最终代码量却出乎我的意料。当然回报也是有的,我的最大收获大概在于对如何组织程序的结构有了一些经验。我之前只是看过一些编程语言的教材和简单的算法,而对哪怕一个很小的程序应该如何设计和组织则全无经验。通过边写这个程序边进行重构,我对代码该怎么划分、怎么组织都有了一些粗浅的了解。虽然程序本身很小,但我自认为带来的收获还是可观的吧。

Advertisements

Fcitx皮肤查看器(fcitx-skin-viewer)最后的更新


fcitx-skin-viewer的最后更新

fcitx-skin-viewer的最后更新

Fcitx的皮肤预览功能已集成进Fcitx的KDE控制面板(kcm-fcitx),故fcitx皮肤查看器已无再更新的必要。于是我将最后一个没写完的功能写出,作为最后一次更新的内容。以后我可能会继续更新kcm-fcitx中的皮肤浏览功能。

更新内容:
增加皮肤选择表格,可一键选择当前用户皮肤目录(~/.config/fcitx/skin/)下的皮肤。原有的打开特定皮肤的功能依然存在。

本想至少先汉化一下这个程序,不过最后也没搞定cmake下Qt程序的汉化问题,只得作罢。

Fcitx皮肤查看器


虽说私很懒,不过不忙的时候还是会捣鼓一些东西的,这Fcitx皮肤查看器就是私最近主要在弄的一个。工程方面基本是CSSlayer仁兄打的底子。
配置读取部分是直接调用Fcitx的API,且貌似Fcitx4.1的皮肤配置有所更改,因此应该至少要求Fcitx版本号高于4.1。
虽说只有最基本的功能,输入框还没有写好,边栏还只是把东西一股脑地显示出来,不过大体的形态已经有了,先发出来做个预告。

Fcitx皮肤浏览器

Fcitx皮肤查看器

有兴趣的且有Qt的人可以从github上抓下来玩玩(虽然我认为应该没多少人有兴趣……):
git@github.com:csslayer/fcitx-skin-viewer.git

用C语言重写的会员卡管理程序,欢迎Linux众测试


终于重写完毕了,不过Bug肯定很多,欢迎诸君测试。由于未在Windows下调试,且有磁盘读写的相关代码,若有热心的Windows用户想通过源代码编译还请自行删除可能产生的垃圾文件。

Linux用户可用的二进制程序:

https://skydrive.live.com/?cid=D40A6A1CE1A272AC&id=D40A6A1CE1A272AC%21507&sc=documents

源代码在此,欢迎给出指导:

http://github.com/ukyoi/cardmanage

我不太会用github,所以有些混乱,还请原谅。

[7月29日更新]理发店会员卡管理程序v0.4.6——延伸


由于0.4.5版(及其之前版本有重大Bug),今一并上传0.4.6版紧急修正。

下载地址依然是惯例:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

样一的话:

0.4.6版:

以前一直没有发现的大Bug得到修正了。Linux用户我对不起您们啊……

另外,话说clear这个命令是不是所有的Unix终端都能用啊?

0.4.5版:

代码翻番达成!哦呵呵……不过目前代码也就只有370行左右,不用怎么考虑优化问题(这程序也没什么可优化的,大概)……

这个程序的一个目标是做到用户进行除退出程序外的任何操作(特别是错误的操作)都不会报错退出,私在0.4.5版中加入了一些意外处理的代码,有心者可以进到任何一个地方,随便敲些什么,如果有程序报错的情况,务必将问题回报给私,不胜受恩感激。

最近在研究PyQt,更新这小程序的频率有所降低。不过相比0.3版,0.4版才称得上真正意义上的“扩展”。最主要的革新是增加了“消费充值记录”功能(按帐号和名字保存在文件夹里),每笔消费(和充值)都会被记录以便日后翻找。另外还加入了一个彩蛋,虽然当初完全是为了好玩,还在考虑是不是要把它删掉,不过后来发现还是相当有用的,并且很可能是整个程序里面最有技术含量的一段代码(汗……),所以最后还是决定保留了。至于怎么进入彩蛋……看看源代码就知道了。

//

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、双击main.py运行主程序。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。

3-2、0.4.6(不含)之前版本需在终端中打开程序所在目录再执行“python3.1 main.py”运行主程序,之后版本从终端可直接运行。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

//

更新:

testing 0.4.6:

修正因本地目录不同引发的Bug

修正Linux清屏错误

testing 0.4.5:

增强程序容错能力,减少误操作导致崩溃的可能

修改部分提示

beta 0.4.4:

增加返回主菜单清屏设计(这是CS Slayer大神的建议)

增加一个彩蛋(纯属无聊)

alpha 0.4.3:

修正二级菜单返回错误

调整部分消息停滞时长

alpha 0.4.2:

部分菜单项目修改

增加“按姓名搜索”功能(查找用户资料——按姓名搜索)

alpha 0.4.1:

增加消费充值记录

之前版本:

详见发行注记

理发店会员卡管理程序 testing 0.3.3版


几天没更新网志,看到网站流量统计直线下降,真是有点不甘啊。最近父上要用网络,私基本是在玩鬼泣4和改程序中度过的,没怎么上网。不过今天还是打算把新版本的程序发上来,虽然我觉得应该没什么人关心。

另外在此感谢一下CS Slayer,居然对这程序给私留言了。私深知大神看到小白胡扯时的感受,足下居然还能不吝指点,实感恩不尽。

//

testing 0.3.3版本下载:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

这是私发布的第二个版本。由于想加的东西实在太多,程序不完善的地方也很多,所以从0.3.2开始程序的版本号扩展了一位,并且加入了alpha、beta、testing这类声明。关于这个“testing”,按照通常的规范是没这种说法的,私为了把公开测试和自行测试分开才使用了这样一个词,愿编程达人少假借之。

今次代码扩展到了260行,看起来增加了一半,其实很大程度上是因为把初始化脚本集成到主程序里了,并没有太大的革新(详见发行注记)。总体来讲比较有用的改进就是增强了确认提示,减少了误操作的机会;另外也不需要先运行一遍reset了。

未来可能的扩展:

1、可执行文件:鉴于Windows用户的平均计算机应用水平,打算为Windows用户加入可执行文件(exe)包,降低使用门槛。
2、会员卡使用日志:这是母亲大人的建议(不愧是理发店常客)。有这个就能把每次消费、充值情况记录下来,一目了然。
3、自定义消费模式:比如剪发烫发染发之类的,一次设定之后就可以直接调用,减少每次都输入金额带来的潜在误操作几率。不过这是个浩大的工程,得仔细想想算法……
4、图形界面:私就有很深的图形界面癖,所以深知图形界面的吸引力。并且使用按钮和输入数字进入菜单相比可以很大程度减少复杂的容错设计。CS Slayer大神建议私使用PyQt以便实现跨平台(以后要不要有个手机版呢?玩笑而已……),不过那东西私还没用过,得从头学,是个更浩大的工程……

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、双击main.py运行主程序(0.3.3之前的版本初次使用时需先运行reset.py,之后版本可直接运行主程序)。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。

3-2、直接或在终端启动main.py运行主程序(0.3.3之前的版本初次使用时需先运行reset.py,之后版本可直接运行主程序)。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

//

更新:

testing 0.3.3:
初始化脚本与主程序整合
增加初次运行检测、自动初始化

beta 0.3.2:
版本号再次扩展(囧)
增加消费、充值后余额显示
增加余额不足提示
调整部分确认提示

0.3 alpha (0.3.1):
版本号扩展
增加用户遍历功能(查看用户资料——遍历用户)

0.2之前版本:
详见发行注记。

理发店会员卡管理程序——私首个发布的Python程序


为防止有人唠叨,先贴地址,下载在此(然而我强烈建议您看完全文):

直接用浏览器打开这个(不要使用下载工具,若有下载工具的话建议关闭浏览器集成):

http://cid-d40a6a1ce1a272ac.office.live.com/self.aspx/程序/理发店会员卡管理程序.zip

如果上面的方法不行,请进入这里然后选择程序下载:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

/

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、初次运行,建议双击reset.py初始化(通常这一步非必须)。此后可双击main.py运行主程序。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。一般情况下可直接打开.py文件运行,若出现错误,尝试在终端中输入“python3.1 (要运行的文件地址)”运行程序。

3-2、初次运行,建议先运行reset.py初始化(通常这一步非必须)。此后可启动main.py运行主程序。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

/

样一的话:

这个程序其实原本是给自家附近的一个理发店写的。那个理发店现在还在用笔记本(不是笔记本电脑-_-||)来记录会员卡使用情况。于是私突发奇想,准备学过Python之后先写一个这样的程序,于是就没有理会教材最后的“毕业任务”,毕竟无非是个字典的处理,道理上差不多。当然这个简陋的程序可能不会被采用,不过也无妨,私学编程的初衷并非要造福人类,只是自娱自乐罢了。若日后真的能够投入应用那自然美甚,若只能自娱也是很好的。

这是私学Python之后公开发布的第一个程序(首次公开发布时为0.2版),只有约180行的代码。极为简陋,甚至连图形界面都没有(Python的图形化想跨平台真的很成问题),完全是DOS时代的操作方式。功能非常有限,只能记录卡号、姓名和金额。但是采用了框架和操作分离的写法,可扩展性比较强,日后的版本可以按照需要继续定制和维护。

这个程序是在一天内仓促完工的,没怎么推敲代码,Debug也不到半天(说实话这么点功能要Debug半天已经很长了)。所以问题还比较多(最大的问题是几乎无容错能力,如果误操作可能会报错直接退出),请大家多包涵。如果有Bug可到ukyoi.wordpress.com给私留言,也可以直接尝试联系本人……

扯了这么多,再次重申:其实程序本身烂得很。高级程序员看到程序千万别骂我,毕竟闻道有先后术业有专攻……

更新:

0.2:

调整部分消息停滞时长、增加部分确认提示。

0.1:

修正重大Bug。