Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Thuban
Daikyu
Messages : 82 Inscription : mar. 30 juin 2009, 17:12
Message
par Thuban » dim. 05 juil. 2009, 19:59
bonjour! j'aimerais utiliser ce pipemenu :
http://student.tol.oulu.fi/~lhakko/dir-menu
Cependant, lorsque je passe la souris sur un élément, j'ai droit à un tout petit carré (en gros, ça ne marche pas...)
quelqu'un pourrait-il m'aider svp?
voici mon menu.xml :
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<openbox_menu xmlns="http://openbox.org/3.4/menu">
<menu id="Fichiers" label="FICHIERS" execute="python /home/xavier/Documents/Scripts/obfile.py" />
<menu id="mpc" label="mpc" execute="/home/xavier/Documents/Scripts/obmpc.sh" />
<menu id="root-menu" label="Openbox 3">
<menu id="Fichiers"/>
<separator />
<menu id="mpc"/>
<separator />
<item label="Log Out">
<action name="SessionLogout">
<prompt>yes</prompt>
</action>
</item>
</menu>
</openbox_menu>
Dernière modification par
Thuban le dim. 05 juil. 2009, 21:10, modifié 2 fois.
Thuban
Daikyu
Messages : 82 Inscription : mar. 30 juin 2009, 17:12
Message
par Thuban » dim. 05 juil. 2009, 20:10
Je suis bête, il fallait copier ce script dans /usr/bin pour qu'il mache même dans les sous-menus. c'est vraiment un menu très pratique! je le conseille vivement!
Je ne suis pas du tout doué en python, donc si quelqu'un saurait s'y prendre pour qu'il ne liste pas le /, mais seulement le répertoire de l'utilisateur courant, ça serait chouette!
Thuban
Daikyu
Messages : 82 Inscription : mar. 30 juin 2009, 17:12
Message
par Thuban » dim. 05 juil. 2009, 21:10
c'est résolu, voici le nouveau fichier python :
Code : Tout sélectionner
#!/usr/bin/python
import os
import random
from sys import argv
mypath = argv[0]
def ext_resolver(filename):
ext = filename.split('.')[-1]
ext = ext.lower()
ext_list = {'smc':'zsnes -m -v 18 -y',
'bin':'dgen -f -j',
'ogm':'mplayer',
'avi':'mplayer',
'mkv':'mplayer',
'ogg':'gnome-mplayer',
'mp4':'mplayer',
'mp3':'gnome-mplayer',
'py' :'geany',
'c' :'geany',
'pdf' :'evince',
'obt' :'openofficewriter',
'py' :'abiword',
'png':'gpicview',
'jpg':'gpicview',
'bmp':'gpicview',
'gif':'gpicview'}
if ext in ext_list:
return ext_list[ext]
else:
return 'echo'
def dir_list(dircontent):
dirs = []
files = []
for item in dircontent:
if os.path.isdir(currentpath + '/' + item):
dirs.append(item)
else:
files.append(item)
dirs.sort()
files.sort()
return dirs, files
def replacer(string):
return string.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"').replace("'", ''')
def gen_menu(dirs, files):
curpath = replacer(currentpath)
print('<openbox_pipe_menu>')
print('<item label="Ouvrir dans Thunar"><action name="execute"><execute>thunar "' + curpath + '"</execute></action></item>')
print('<item label="Terminal ici..."><action name="execute"><execute>sh -c "cd ' + curpath + ' && urxvt "</execute></action></item>')
print('<separator />')
for thisdir in dirs:
thisdir = replacer(thisdir)
menuid = str(random.randrange(1,99,1)).zfill(2)
print(' <menu execute="' + mypath + ' ' + curpath + '/' + thisdir + '" id="' + thisdir + "-" + menuid + '" label="' + thisdir + '"/>')
for thisfile in files:
thisfile = replacer(thisfile)
print(' <item label="' + thisfile + '">')
print(' <action name="execute">')
print(' <execute>')
print(' ' + ext_resolver(thisfile) + ' "' + curpath + '/' + thisfile + '"')
print(' </execute>')
print(' </action>')
print(' </item>')
print('</openbox_pipe_menu>')
if len(argv) > 1:
currentpath = ' '.join(argv[1:])
else:
currentpath = "/home/xavier"
try:
content = [x for x in os.listdir(currentpath) if x[0] != '.']
parts = dir_list(content)
gen_menu(parts[0], parts[1])
except OSError:
print('<openbox_pipe_menu>')
print('<separator label="No access" />')
print('</openbox_pipe_menu>')