触摸板指示器可以救命。但是,它有几个问题。每次我拔下鼠标时,它都不会重新启用触摸板。此外,每次我关闭笔记本电脑的盖子时,它都会禁用触摸板,即使触摸板之前已启用。我先按快捷键禁用,然后再次按快捷键重新启用。然后,为了在打字时禁用触摸板,我必须转到首选项并单击“确定”,退出触摸板指示器并重新启动它。无论如何都要解决这个问题。重新启动触摸板指示器的命令是什么?
系统信息 制造商:LENOVO
产品名称:20ENCTO1WW
版本:ThinkPad P50
操作系统:Ubuntu 16.04 LTS
答案1
在使用 xinput (xinput --list / xinput --list-props with_proper_id) 进行一些尝试后,我通过更改 python 文件 /opt/extras.ubuntu.com/touchpad-indicator/share/touchpad-indicator/touchpad.py 在同一台笔记本电脑/Ubuntu 组合上修复了这个问题:
85,86d84
< # fix - only "device enabled" was set before
< ejecuta(('xinput set-prop %s "Synaptics Off" 0')%id)
93,94d90
< device_enabled = False
< synaptics_off = True
98,106c94,95
< # fix
< #return True
< device_enabled = True
< if line.lower().find('synaptics off')!=-1:
< if line.split(':')[1].strip() == '0':
< synaptics_off = False
< # fix - only "device enabled" was checked before
< #return False
< return device_enabled and not synaptics_off
---
> return True
> return False
118c107
< self.set_touchpad_enabled(id)
---
> print(self.set_touchpad_enabled(id))
第一个差异在于方法“set_touchpad_enabled”,第二个差异在于“is_touchpad_enabled”。
改变的方法应如下所示:
def set_touchpad_enabled(self,id):
ejecuta(('xinput set-prop %s "Device Enabled" 1')%id)
ejecuta(('xinput set-prop %s "Synaptics Off" 0')%id)
def is_touchpad_enabled(self,id):
lines = ejecuta('xinput --list-props %s'%id)
device_enabled = False
synaptics_off = True
for line in lines.split('\n'):
if line.lower().find('device enabled')!=-1:
if line.split(':')[1].strip() == '1':
device_enabled = True
if line.lower().find('synaptics off')!=-1:
if line.split(':')[1].strip() == '0':
synaptics_off = False
return device_enabled and not synaptics_off
希望这有帮助。