Invoking GUI for app running in background with a keypress

M

Mathias Dahl

I am creating a small app called PyQe
(http://klibb.com/cgi-bin/wiki.pl/PyQe) to launch commands and
programs quickly. I works more or less as I want it now and I have
managed to make my window manager (Metacity) under Mandrake GNU/Linux
start my program so that it can be started easily with just a
keypress.

Now, the only annoyance I have is that when I have not started the
program for a while, the OS seems to not have Python or the program in
"the cache" (or whatever, what I mean is that if I have started the
program "recently" it starts fast the next time) anymore, which means
that the program, even though quite small, takes about a second to
start. This is too slow to feel good given the nature of the program
(a quick launcher).

I have tried making it start faster by calling python with the -S
switch and by compiling my program to a .pyc file. It has not helped
much.

So, I was wondering if I could have my program running in the
background and instead capture a certain keystroke (the same one I
have my window manager to capture now) to make the GUI appear.

How does one go about doing this? I found a small program written in C
(xbindkeys) that can do this and understand that it probably involves
a lot of "low-level" stuff in X which feels a bit "scary" :). Any
clues of doing this "easily" in Python + some module?

/Mathias
 
M

Mike Meyer

Mathias Dahl said:
How does one go about doing this? I found a small program written in C
(xbindkeys) that can do this and understand that it probably involves
a lot of "low-level" stuff in X which feels a bit "scary" :). Any
clues of doing this "easily" in Python + some module?

Check out the python xlib implementation <URL:
http://sourceforge.net/projects/python-xlib >. It's a python library
that speaks native X - no C required. That lets you do those low-level
things in Python in a straightforward manner. It's not getting a lot
of work lately - because it's largely a finished product. I use it
heavily on a daily basis.

<mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top