Skip to main content
Welcome guest. | Register | Login | Post

Building your own desktop in PyGTK

No replies
supermike's picture
Joined: 2006-02-17

When you login, your GDM, KDM, or XDM calls a conf file to see what thing it will load to launch your desktop. If you have GNOME, this involves a nautilus in show-desktop mode and a panel with all the things you wanted on it.

Suppose you wanted to make it boot into something snappier? Sure, you could use XFCE, but here's another avenue.

You could install Glade2 and then draw a GUI that saves an XML file. Then, using PyGTK from a Python script, you could load the XML into a GUI and react to its events with either Python language stuff, or ask Python to shell out to Bash and use Bash (and commands on the hard drive) to get what you want.

To load the background bitmap, I believe that's as simple as interfacing with X and telling it what the background bitmap is. There's even a command-line way to do that and you could have the Python script shell out to Bash and call that. I haven't done that before, but I think that's how it's done.

I have no idea how to make the panel stay as a top most window such that when you maximize other windows, it does not hide this window. That would be interesting to learn.

Another problem to overcome is that I think by default menus expand downward in PyGTK. You'd have to find the trick to make them expand upwards. I believe the trick is to not use a menu at all, but use a popup window and pop it to a position above the bottom panel, as well as make it a topmost window.

Last, the other big problem to overcome would be a window list such that things collapse to your taskbar.

You'd probably want to have one preferences dialog for editing the menu.conf file for your menu, presuming that's what you name it. Another conf file would be used for defining what other widgets are shown.