![]() |
| A set of icon-X applications: floppy, cdrom, dvd, zip and modem. If icons are transparents, under windows are visibles. |
![]() |
| The popup menu over the DVD icon: status, swap, mount/umount, remove the icon-X. |
![]() |
| The DVD is now mounted, the icon has changed. |
| How it works |
| The script takes 3 parameters: - the configuration script: a .py file - the icon to set it ON - the icon to set it OFF Example: (look at the file iconX-dvd) $> /home/julien/bin/icon-x/icon-x dvd /home/julien/.fvwm2/icons/48/dvd.xpm /home/julien/.fvwm2/icons/48/dvd-locked.xpm |
| How to configure |
| The first parameter is a .py file.
This file MUST be placed in the same directory of the 'icon-x.py' file. Example (look at the file dvd.py):
# Icon-X config file:
# "dvd"
# by JC
# --------------------
# Place this file in the same directory of "icon-x.py"
#
# usage:
# [prompt]> /find/the/path/icon-x.py dvd icon1 icon2
import gtk, os
class IconXConfig:
def __init__(self, app, aPath_on, aPath_off):
self.path_on = aPath_on
self.path_off = aPath_off
self.mainApp = app
def pos_x(self):
return 10
def pos_y(self):
return 130
def get_pixmap_and_mask(self, aPath):
import GdkImlib
newImage = GdkImlib.Image(aPath)
newImage.render(newImage.rgb_width, newImage.rgb_height)
gdkpixmap, mask = newImage.get_pixmap()
self.mainApp.window.shape_combine_mask(mask, 0, 0)
return (gdkpixmap, mask)
def pixmapWidget(self):
aPath = self.path_off
if (os.system("mount | grep /mnt/dvd")) != 0:
aPath = self.path_on
pixmap_and_mask = self.get_pixmap_and_mask(aPath)
return gtk.GtkPixmap(pixmap_and_mask[0], pixmap_and_mask[1])
def change_pixmap(self):
aPath = self.path_off
if (os.system("mount | grep /mnt/dvd")) != 0:
aPath = self.path_on
pixmap_and_mask = self.get_pixmap_and_mask(aPath)
self.mainApp.pixmap.set(pixmap_and_mask[0], pixmap_and_mask[1])
def swap(self, w, data):
os.system("swap-dvd")
self.change_pixmap()
def status(self, w, data):
os.system("status-dvd")
def mount(self, w, data):
os.system("mount /mnt/dvd")
self.change_pixmap()
def umount(self, w, data):
os.system("umount /mnt/dvd")
self.change_pixmap()
def menu_items(self):
return (
# label / shortcut key / method / ? / type
( "/Status", None, self.status, 0, None ),
( "/Swap", None, self.swap, 0, None ),
( "/sep1", None, None, 0, "
|
| Configurations: def pos_x(self): Returns the position in X. def pos_y(self): Returns the position in Y. def menu_items(self): Returns the popup menu. Methods (like 'self.swap') are defined before the popup menu. |
| Also applications |
| Icons for NFS drives, applications running in background, everything that may have 2 status... |
| Home |