On 01/-10/-28163 02:59 PM, harrismh777 wrote:
Looks like my 2.7 test_popen failure is an open issue7671... since Jan
2010. Looks like it really does function ok.

At any rate, I was able to test Popen myself today, and it ran fine. I
needed to write a script that will disable the touch pad on this HP g
series, because there is no way to do that in the bios. So, in
gnu/linux, you get the device id list with 'xinput list' and then to
disable the touch pad for that id, enter this command:

'xinput set-prop <id#> "Device Enabled" 0'

So, I'm using Popen class to talk to the system through a shell and read
back the stdout through a pipe, and was able to retrieve the device ids
with this (in ver 2.7.1) :

from subprocess import PIPE, Popen
cmd = 'xinput list'
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print stdout

(actually I parsed it with the re module)

The only difference here between 2.7 and 3.2 is that 3.2 gives back a
b'string' ... otherwise, same same.

I'm parsing the ids listing with the re module and then using Popen to
issue the command to disable the touch pad. Its a little more
complicated than that, because I only allow the script to 'work' if it
finds the id=# for an attached mouse or track-ball... I use the Logitech
Trackman... otherwise it asks the double question for whether the touch
pad should be deactivated. So, clicking the icon once disables the pad,
and clicking it again re-enables it, assuming the trackman is plugged
in. The trick does not work across login-logout, so the touchpad must be
disabled in the startup, or else manually every time the user logs in.

When I get the silly thing done I'll post it, in case anyone else is
interested... there does seem to be a lot of interest on the net for
disabling the synaptics touch pad... it just gets in the way most of the
time and isn't very efficient the rest of the time. (but I digress)


kind regards,
m harris





Thanks for this. It has already helped me solve a similar problem, and in my case the problem/solution is much simpler. The xinput cmd permits you to specify the device name directly, so for my Lenovo, I can just use the shell command:

sudo xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Device Enabled" "0"

I used the information you supplied to modify what already worked on a couple of Dells I had. What I was missing was the correct string for the Lenovo. The Dells called it "PS/2 Generic Mouse"

DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to