Invoking GUI for app running in background with a keypress

Don donald.welch at NOSPAM.hp.com
Mon Aug 15 18:03:33 EDT 2005


Mathias Dahl wrote:

> Jeremy Moles <jeremy at emperorlinux.com> writes:
> 
>> If you want to get crazy you can poll() on one of the evdev nodes
>> (/dev/input/event*) and behave accordingly. I do this in a C application
>> we use to do the exact same thing you're talking about.
>> 
>> Each successful read from the device returns a 16-byte input_event
>> struct (or similar, I'm going from memory here) that represents a key
>> action.
>> 
>> A google search returned this:
>> 
>> http://svn.navi.cx/misc/trunk/python/evdev/evdev.py
> 
> Thanks for the pointer. That sounds crazy indeed! Maybe a bit too
> crazy (low-level) for me... :)
> 
> I tested the code very briefly:
> 
>  $ python evdev.py /dev/input/event0
>  
>  Traceback (most recent call last):
>    File "evdev.py", line 549, in ?
>      demo()
>    File "evdev.py", line 35, in demo
>      dev = Device(sys.argv[1])
>    File "evdev.py", line 91, in __init__
>      self.fd = os.open(filename, os.O_RDWR | os.O_NONBLOCK)
>  OSError: [Errno 13] Permission denied: '/dev/input/event0'
> 
> Loggin in (su:ing) as root solves that problem but I'm not sure I want
> to require the user being root to be able to run my program.
> 
> Anyway, thanks again for the hint!
> 
> /Mathias

Could you make the script setuid?

http://nob.cs.ucdavis.edu/~bishop/secprog/

-Don



More information about the Python-list mailing list