歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu增加快捷鍵打開或關閉觸摸板

Ubuntu增加快捷鍵打開或關閉觸摸板

日期:2017/2/28 16:40:00   编辑:Linux教程

在筆記本上裝了Linux-mint7,它是基於Ubuntu 9.04的一個發行版。裝上後有個小問題一直沒解決,就是不能用鍵盤上的功能鍵關閉觸摸板,只能在鼠標設置的圖形界面去設置,如果每次想切換時都要這樣做,可就太麻煩了。

有兩個命令是用來開啟和關閉觸摸板的
命令:synclient touchpadoff=1 --關閉觸摸板
命令:synclient touchpadoff=0 --開啟觸摸板
但是需要先把選項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:
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
指向上文中的腳本文件。
然後在Key Bindings分頁中,將這個命令對應的綁定鍵值設為<super>+F9。
這樣在按下<super>+F9時,就會在開啟和關閉觸摸板之間進行切換了。

經過實踐,命令總是有效的。但也有意外的情況,會出現SHMConfig開啟狀態失效的情況,系統還是報錯說”SHMConfig should be enabled.“,具體原因不清楚,似乎是在用CompizConfig時容易出現這種情況。上面的腳本在這種情況下,會彈出一個對話框提示一下。如果出現這種情況,一般重啟一下系統就OK了。

要使上面的腳本能跑起來,需要裝python2.X、python-gtk2這些組件。

Copyright © Linux教程網 All Rights Reserved