¶ [Py4SA]智能关闭触摸板

2010-07-14 10:22

1. 问题

嗯嗯嗯,俺一直使用 WACOM 的数字绘图板替代鼠标的 ;-)

  • 去年生日,老婆升级了俺的 FAVO CTE-430BAMBOO CTH-461
  • 随着 Ubuntu 10.04系统,一同升级了驱动,非常好用:
    1. 小横板 248.2 x 176.1,和屏幕 1:1 对应,不用拖动,有空间感觉了直接就可以移动到对应区域!
    2. 无线压感笔,直接点击就是左击鼠标
    3. 笔有侧键,配置默认就是原先最舒服的:
      • 上键是右击
      • 下键是中击
  • 触摸板的手指点击就不必要了
    • 如何令系统不启动触摸板的 Touch 响应?

2. 尝试

  • Command Line Configuration Interface (xsetwacom)
    • 官方是有命令行级别的配置工具的
    • 但是!真TMD难以看明白哈
    • 广泛的搜索后,大致明白,xsetwacom 提供两种配置输出:
      1. 命令行用的执行字串
      2. 配置文件中使用的配置文本
    • 整个使用流程是:
      1. 使用其它系统监察命令,确认 WACOM 设备USB接入后的设备号
      2. 使用 xsetwacom 进行模拟配置,选择输出合适的配置命令
      3. 然后将输出的配置内容,部署到合适的系统启动脚本或是配置文件中

  • 俺习惯使用命令行配置,这样可以直接测试是否靠谱,但是发现:
    
    ~> xinput --list 
    ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
    ⎜   ↳ Wacom Bamboo Craft Pen eraser           	id=11	[slave  pointer  (2)]
    ⎜   ↳ Wacom Bamboo Craft Pen                  	id=12	[slave  pointer  (2)]
    ⎜   ↳ Wacom Bamboo Craft Finger pad           	id=13	[slave  pointer  (2)]
    ⎜   ↳ Wacom Bamboo Craft Finger               	id=14	[slave  pointer  (2)]
    ⎜   ↳ TPPS/2 IBM TrackPoint                   	id=16	[slave  pointer  (2)]
    ⎜   ↳ Macintosh mouse button emulation        	id=18	[slave  pointer  (2)]
    ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
        ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ...
    
    • 使用 xinput 探察出来的 Wacom Bamboo Craft Finger 触摸板设备号,每次重启系统时不一定一样!
    • FT! 那就得编程让系统重启时,自个儿探察一下设备号,然后使用固定的配置命令关闭 BAMBOO 对应设备
如何在Shell 中获取另外系统命令的输出并截获对应数码组合成新的命令?:
嗯嗯嗯,,, 嗯嗯嗯,,,,直接囧掉! 俺没有这种功力!

3. Py之

  • 直接使用模板记录要执行的命令,预留可能变动的设备号:
    
    #!/bin/sh
    ### xinput4bamboo.tpl
    sleep 3 && xsetwacom set %s Touch "off"
    
    

  • 配合xinput4bamboo.py
    
    import sys,os
    if __name__ == '__main__':      # this way the module can be
        """usage:
        $ xinput --list | grep "Wacom Bamboo Craft Finger" | python ./xinput4bamboo.py
        """
        if sys.stdin:
            for l in sys.stdin.readlines():
                if "pad" not in l:
                    bambooid= l.split()[6].split("=")[1]
                    open("xinput4bamboo.sh","w").write(open("xinput4bamboo.tpl").read()%bambooid)
                    os.chmod("xinput4bamboo.sh",0755)
    
    

  • 组合成启动脚本
    
    #!/bin/sh
    VER="main-rcloc.sh v10.7.14"
    DATE=`date "+%y%m%d"`
    MYRC="/home/zoomq/.zoomq/rc.local"
    #=========================================================== path defines
    LOGF="/var/log/0day/$DATE-myrcloc.log"
    #=========================================================== action defines
    cd $MYRC
    xinput --list | grep "Wacom Bamboo Craft Finger" | python ./xinput4bamboo.py  >> $LOGF 2>&1 
    ./xinput4bamboo.sh  >> $LOGF 2>&1 
    

  • 部属成启动应用:
    • 齐活! 没有疑惑,随手写成! 5分钟!
Python在Unix和Linux系统管理中的应用(影印版):
  • 绝对好书! 值得慢慢看,E文非常简洁,Py清明的代码,直接看/尝试就可以体会到本意了...

动力源自::txt2tags


§ 写于: Wed, 14 Jul 2010 | 永久链接;源文: rdf ,rss ,raw | 分类: /utility/py4sys §
[MailMe] [Print] Creative Commons License

作品Zoom.Quiet创作,采用知识共享署名-相同方式共享 2.5 中国大陆许可协议进行许可。 基于zoomquiet.org上的作品创作。