触摸板指示器问题

触摸板指示器问题

触摸板指示器可以救命。但是,它有几个问题。每次我拔下鼠标时,它都不会重新启用触摸板。此外,每次我关闭笔记本电脑的盖子时,它都会禁用触摸板,即使触摸板之前已启用。我先按快捷键禁用,然后再次按快捷键重新启用。然后,为了在打字时禁用触摸板,我必须转到首选项并单击“确定”,退出触摸板指示器并重新启动它。无论如何都要解决这个问题。重新启动触摸板指示器的命令是什么?

系统信息 制造商: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

希望这有帮助。

相关内容