linux增加快捷键打开或关闭触摸板

linux增加快捷键打开或关闭触摸板

有两个命令是用来开启和关闭触摸板的 
 

命令:synclient touchpadoff=1 --关闭触摸板 

命令:synclient touchpadoff=0 --开启触摸板 

  www.ahlinux.com  

上述命令不成功,请往下看。 

但是需要先把选项SHMConfig打开,否则运行这两个命令会报错: 

Can't access shared memery area.SHMconfig disabled? 

为了打开这个选项,需要增加一个文件: 

gksudo gedit /etc/hal/fdi/policy/shmconfig.fdi 

文件里放入以下内容: 

<?xml version="1.0" encoding="UTF-8"?> 

<deviceinfo version="0.2"> 

  <device> 

    <match key="input.x11_driver" string="synaptics"> 

      <merge key="input.x11_options.SHMConfig" type="string">on</merge> 

    </match> 

  </device> 

</deviceinfo> 

可以分别将两个快捷键分别绑写到这两个命令上,比如<super>+F8是打开,<super>+F9是关闭,但这样不方便,最好是一个快捷键能在两种状态之间进行切换。我们需要一个脚本来做这件事。 

写一个脚本文件lockpad.py,其中内容如下: 

#!/usr/bin/python 

# -*- coding:utf8 -*- 

#这段脚本用来关闭或打开触摸板,运行时会在两个状态间进行切换。 

#使这段脚本起作用,需要先将系统的选项SHMConfig置为yes. 

#Vivian Wang 

import subprocess 

stdReturn = subprocess.Popen(args='synclient -l',shell=True, \ 

    stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate() 

if len(stdReturn)==0:   www.ahlinux.com  

    exit() 

vl=stdReturn[0].split() 

i=vl.index('TouchpadOff') 

if i<0: 

    import gtk 

    import pygtk 

    md = gtk.MessageDialog(None, \ 

            gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, \ 

            gtk.BUTTONS_OK, "SHMConfig should be enabled.") 

    md.set_position(gtk.WIN_POS_CENTER) 

    md.run() 

    md.destroy() 

    exit() 

subprocess.Popen(args='synclient touchpadoff='+str(1-int(vl[i+2])),shell=True) 

这段脚本会先读出触摸板的当前状态是开启的还是关闭的,然后分别调用相应的命令打开或关闭它。 

用 

chmod +x lockpad.py 

将它设为可执行的。 

绑定快捷键需要在CompizConfig中勾选commands,然后增加一个命令: 

/home/vivian/lockpad.py   www.ahlinux.com  

指向上文中的脚本文件。 

然后在Key Bindings分页中,将这个命令对应的绑定键值设为<super>+F9。 

这样在按下<super>+F9时,就会在开启和关闭触摸板之间进行切换了。 

经过实践,命令总是有效的。但也有意外的情况,会出现SHMConfig开启状态失效的情况,系统还是报错说”SHMConfig should be enabled.“,具体原因不清楚,似乎是在用CompizConfig时容易出现这种情况。上面的脚本在这种情况下,会弹出一个对话框提示一下。如果出现这种情况,一般重启一下系统就OK了。 

要使上面的脚本能跑起来,需要装python2.X、python-gtk2这些组件。

作者 tycomputer

posted @ 2015-01-07 13:43  zdh2015  阅读(392)  评论(0编辑  收藏  举报