Track keyboard and mouse usage
Hi all, I have been searching for a keyboard and mouse tracker on linux. I've read solutions (watch at sourceforge) which look at /proc/interrupts to check keyboard or mouse activity. I also read one post where "watch" seems to have difficulty tracking usb keyboards and mice. So, I'm out of ideas here. My goal are: 1. Check keyboard activity. I'm not interested in logging which keys are pressed or record them. 2. Monitor mouse activity. I want to know the pointer position, left-clicks, right-clicks, middle-mouse button usage. I know that these things can be done in a GUI environment. I am looking for some approach that helps me do this system-wide. Any suggestions would be welcome. Again, I am looking for trackers on Linux based machines. -- http://mail.python.org/mailman/listinfo/python-list
Re: Track keyboard and mouse usage
So, how would I access /dev/input/ devices? Can I just 'cat' them or read in those files? Diez B. Roggisch wrote: > [EMAIL PROTECTED] schrieb: > > Diez> You could use the /dev/input/event* devices. > > > > On the only Linux system I have available (Mojam's CentOS-based web server), > > /dev/input/* are readable only by root. That doesn't seem like it would be > > very useful to tools like watch unless they were to run suid to root > > (creating other problems). > > You don't need to give it root access. A simple rule for the udev that > looks like this: > > KERNEL=="event[0-9]*",NAME="input/%k", MODE="0444" > > > will make the devices world readable. While I haven't thought about any > security implications that might have (and am not especially > knowledgeable in such things to be honest), I'm convinced it is way less > likely to introduce any exploitable holes than suid root would. > > Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: Track keyboard and mouse usage
So, how would I access /dev/input/ devices? Can I just 'cat' them or read in those files? Diez B. Roggisch wrote: > [EMAIL PROTECTED] schrieb: > > Diez> You could use the /dev/input/event* devices. > > > > On the only Linux system I have available (Mojam's CentOS-based web server), > > /dev/input/* are readable only by root. That doesn't seem like it would be > > very useful to tools like watch unless they were to run suid to root > > (creating other problems). > > You don't need to give it root access. A simple rule for the udev that > looks like this: > > KERNEL=="event[0-9]*",NAME="input/%k", MODE="0444" > > > will make the devices world readable. While I haven't thought about any > security implications that might have (and am not especially > knowledgeable in such things to be honest), I'm convinced it is way less > likely to introduce any exploitable holes than suid root would. > > Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: Track keyboard and mouse usage
Is there no clean method of accessing the keyboard device or the mouse on linux? It seems that looking at /proc/interrupts might prove to be useful for keyboard monitoring. What about checking if the left mouse button is clicked or finding the position of the cursor on the screen? -- http://mail.python.org/mailman/listinfo/python-list
Re: Track keyboard and mouse usage
That IS brain-crushingly complicated. However, thanks for the insight.
I really appreciate it.
Dennis Lee Bieber wrote:
> On 17 Jul 2006 21:00:09 -0700, "dfaber" <[EMAIL PROTECTED]> declaimed
> the following in comp.lang.python:
>
> > Is there no clean method of accessing the keyboard device or the mouse
> > on linux?
> > It seems that looking at /proc/interrupts might prove to be useful for
> > keyboard monitoring. What about checking if the left mouse button is
> > clicked or finding the position of the cursor on the screen?
>
> For a GUI application, it probably depends upon the interface
> supplied by that GUI system... So far as I know, all Linux variants are
> using an X-Window clone as the bottom protocol.
>
> Problem: X-Window supports remote displays; you'd need a means of
> specifying which display to track (unless you've opened a GUI
> application and that application is asking for positions -- but it may
> not be able to track outside the application window... Sorry to be so
> vague -- I last coded an X interface back in 1990, using xt/DECWindows
> calls; didn't even have a GUI designer available*)
>
> I don't think anyone has ported raw X-protocol access to Python.
>
> All those "monitoring" operations you are asking for are "events" to
> a windowing environment, and applications have to "register" for the
> events they are interested in seeing.
>
>
>
> * If working raw xt/DECWindows wasn't bad enough... Add GKS (is that
> still around?) on top of it -- I had a DECWindows UI whose main window
> was a plain drawing region, and GKS was used to handle the underlying
> data. The application was both graphics intensive, and needed a display
> list (in scaleable coordinates to handle window resize) for refresh
> operations; it used a 32 color "data" field, and four or so single color
> "overlays" -- and any one of the five could be enabled/disabled without
> requiring a recomputation of the drawing. This mess was because the
> DECWindows/GKS application was an emulation (at the API level) of a late
> 70s/early 80s RAMTEK graphics engine... The "main" application was
> really something like 50 specialized programs that all "connected" to
> the "graphics engine", drew some data, and exited; allowing other
> programs in the suite to draw on the /same/ window -- which is why the
> need for GKS; refreshes couldn't ask for the source application to
> repaint the screen. {The very oldest version of the software ran on
> PDP-11s, hence the modular programs, the control program would collect
> user data/parameters, write a "common block file" then invoke the needed
> submodule as an overlay.
> --
> WulfraedDennis Lee Bieber KD6MOG
> [EMAIL PROTECTED] [EMAIL PROTECTED]
> HTTP://wlfraed.home.netcom.com/
> (Bestiaria Support Staff: [EMAIL PROTECTED])
> HTTP://www.bestiaria.com/
--
http://mail.python.org/mailman/listinfo/python-list
Re: Track keyboard and mouse usage
Hi Francois, Thank you for providing me the evdev link! That was exactly what I was looking for. Instead of sudo'ing the script, I changed /dev/input/ directory to be world readable. After that, I had to change the way a file was accessed in evdev.py to: Line No: 91 #self.fd = os.open(filename, os.O_RDWR | os.O_NONBLOCK) self.fd = os.open(filename, os.O_RDONLY | os.O_NONBLOCK) Runs great. Thanks again. [EMAIL PROTECTED] wrote: > Hello dfaber, > > I had the same problem not long ago. I tried to use the Xlib since its > obvious the X server has all the events but I couldn't have the mouse > events if my app was out of focus. If you have a way to do that I'm > really interested. > > Anyway I found this to be a good introduction to Xlib: > http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html#preface > > Since I didn't find a way to do it I went down to the source of the > events which are provided by the evdev drivers: > http://en.wikipedia.org/wiki/Evdev > > Fortunately you can use Python to access it: > http://svn.navi.cx/misc/trunk/python/evdev/ > > First you need to know your input devices, search the eventX in > relation to your device here: > cat /proc/bus/input/devices > > Then you can do: > sudo python evdev.py /dev/input/eventX # where X is the event number > in relation to your device (kb is usually zero) > > It works well but there is two problems with this solution: > - the root access is annoying (but I'll have to try Diez suggestion) > - The X event number of the mouse can change from a PC to another one > (you need to check the PC first with that cat command and search for > your "mouse" > > francois > > > > > > dfaber wrote: > > Hi all, > > I have been searching for a keyboard and mouse tracker on linux. I've > > read solutions (watch at sourceforge) which look at /proc/interrupts to > > check keyboard or mouse activity. I also read one post where "watch" > > seems to have difficulty tracking usb keyboards and mice. So, I'm out > > of ideas here. > > > > My goal are: > > 1. Check keyboard activity. I'm not interested in logging which keys > > are pressed or record them. > > 2. Monitor mouse activity. I want to know the pointer position, > > left-clicks, right-clicks, middle-mouse button usage. > > > > I know that these things can be done in a GUI environment. I am looking > > for some approach that helps me do this system-wide. > > > > Any suggestions would be welcome. Again, I am looking for trackers on > > Linux based machines. -- http://mail.python.org/mailman/listinfo/python-list
starting and stopping a program from inside a python script
Aloha!
I want to terminate a process/program from within a python script.
For example,
if I have a program say foo.sh that starts running, then I can run it
from within a python script using
os.popen('foo.sh') which starts a program/process say 'bar'
At some point later, I want to kill 'bar'. Currently, I start off the
process and then when the python script exits, the process 'bar' is
still running and I have to issue ps -ef | grep 'bar' and then kill
it.
Is there any better way of doing this?
--
http://mail.python.org/mailman/listinfo/python-list
python and webcam
Hi, I have Logitech webcam and I need to grab images on Fedora Core 4 (not my favorite distro). Are there any python modules available for doing this? Any hints or suggestions would be welcome. Thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: python and webcam
It is a Win32 Python Extension. I am looking for something that work on Linux. -- http://mail.python.org/mailman/listinfo/python-list
Re: python and webcam
Thank you for your help. I will look around for v4l modules too. -- http://mail.python.org/mailman/listinfo/python-list
Re: python and webcam
Hi again,
I've tried a the Sane interface from PIL and I get the following
error, when I run the demo_pil.py from the Sane directory.
SANE version: (16777231, 1, 0, 15)
Available devices= [('v4l:/dev/video0', 'Noname', 'Logitech QuickCam
Pro 3000', 'virtual device')]
Traceback (most recent call last):
File "/PyWebcam/demo_pil.py", line 17, in ?
s.br_x=320. ; s.br_y=240.
File "/usr/lib/python2.4/site-packages/sane.py", line 150, in
__setattr__
raise AttributeError, 'Inactive option: '+key
AttributeError: Inactive option: br_x
Next, I looked at v4l support for python with absolutely no
documentation. I tried to build the modules and I get the following
error:
python setup.py build
running build
running build_ext
building 'v4l' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m32 -march=i386 -mtune=pentium4
-fasynchronous-unwind-tables -D_GN U_SOURCE -fPIC -fPIC
-I/usr/include/python2.4 -c v4l.c -o build/temp.linux-i686- 2.4/v4l.o
v4l.c: In function 'v4l_getImage':
v4l.c:890: warning: pointer targets in assignment differ in signedness
v4l.c: In function 'initv4l':
v4l.c:1585: error: 'VIDEO_AUDIO_BALANCE' undeclared (first use in
this function)
v4l.c:1585: error: (Each undeclared identifier is reported only once
v4l.c:1585: error: for each function it appears in.)
error: command 'gcc' failed with exit status 1
I also looked at libfg http://antonym.org/libfg and I get the following
errors again:
---
python setup.py build
running build
running build_ext
building 'fg' extension
gcc -pthread -shared build/temp.linux-i686-2.4/fgmodule.o -L. -lfg -o
build/lib.linux-i686-2.4/fg.so
/usr/bin/ld: cannot find -lfg
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
I google-ed extensively have so far found only these three packages.
Any ideas why I get these error messages?
--
http://mail.python.org/mailman/listinfo/python-list
Re: Python editor recommendation.
I use Eclipse with the Pydev plugin. It's great way to start familiarizing yourself with Python. The editor has got great features and the debugger will be a great help too. Vim is great too but may be not a good idea if you are new to Python. Good luck! -- http://mail.python.org/mailman/listinfo/python-list
