#1 Le 05/07/2009, à 19:21
- thuban
Postez ici vos Pipemenus Openbox!
Voici un petit truc très pratique dans openbox.
Il s'agit en fait d'un menu, listant tout ce qu'il y a dans le répertoire / . On peut s'y déplacer, et ainsi aller par exemple dans le /home/login/Videos
là, il liste (toujours dans le menu d'openbox) les fichiers présents, et lorsque l'on clique sur une video, il la lance avec mplayer.
Cela fonctionne aussi pour les images, musique, et autres fichiers, du moments que on les renseigne dans le programme utilisé (ce n'est pas très dur à comprendre).
Voici la procédure à suivre :
récupérer ce programme :
http://student.tol.oulu.fi/~lhakko/dir-menu
enregistrez-le par exemple sous le nom obfile.py
Vous pouvez éditer les extensions à ce moment-là, j'ai par exemple remplacé mirage par gpicview, et rajouté l'extension mp4 pour les videos...
Copiez-le dans /usr/bin , puis rendez-le éxécutable :
sudo cp obfile.py /usr/bin
sudo chmod +x /usr/bin/obfile.py
rajoutez ensuite ceci dans votre menu.xml : (la première et la 3 eme ligne, la 2eme est là pour vous aider à vous repérer)
<openbox_menu>
<menu id="Fichiers" label="FICHIERS" execute="python /usr/bin/obfile.py" />
<menu id="root-menu" label="OpenBox 3">
<menu id="Fichiers"/>
et voila!
Pour ne pas avoir en liste la racine systeme, mais votre home, voici une version modifiée du programme :
#!/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 -s',
'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>')
en remplaçant currentpath par le chemin vers votre home bien sûr
Dernière modification par thuban (Le 09/07/2009, à 12:26)
suckless.org
websérie d'un copain
Profil libre.fm
Debian Sid avec dwm
Hors ligne
#2 Le 06/07/2009, à 10:38
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
super ce script
j'en avait un equivalent, mais il n'ouvrait pas les fichier avec le bon programme
par contre, je lui ai apporté une petite modification pour ne pas voir tous les fichiers de sauvegardes du home (*~)
j'ai donc remplacé la ligne 40 de ta version
else:
par
elif (item[-1]!='~'):
ca permet de diminuer la taille du menu
Edit :
j'ai aussi completer les lignes :
dirs.sort()
files.sort()
par
dirs.sort(key=str.lower)
files.sort(key=str.lower)
pour ne pas tenir compte de la casse dans le tri des fichiers / dossiers
Dernière modification par Mopinou (Le 06/07/2009, à 11:09)
Hors ligne
#3 Le 06/07/2009, à 17:21
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Hum...
Super intéressant, merci !
Hors ligne
#4 Le 06/07/2009, à 17:34
- thuban
Re : Postez ici vos Pipemenus Openbox!
Merci pour les modifications, surtout la deuxième qui est pratique!
suckless.org
websérie d'un copain
Profil libre.fm
Debian Sid avec dwm
Hors ligne
#5 Le 06/07/2009, à 17:39
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
par contre j'ai un petit problème :
comment faire pour que les underscore n'apparaissent pas sous la lettre suivante ?
je chercherai ce soir (si quelqu'un poste la réponse avant moi tant mieux pour moi ^^)
Hors ligne
#6 Le 06/07/2009, à 20:55
- HighLight
Re : Postez ici vos Pipemenus Openbox!
Il y a le même genre de "menu" avec pipe dans Crunchbang. J'avais récupéré les scripts pour les mettre sous openbox dans une autre distrib.
Suffit de lancer Crunchbang dans Virtualbox en livecd pour récupérer les scripts. Pas besoin de l'installer
#7 Le 08/07/2009, à 10:35
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Hum, j'aurais une question.
Est-il possible de réduire la taille des noms des fichiers affichés par cette méthode ? (parce que j'ai certain noms de fichiers trèèèès long ! ).
Par exemple n'afficher que les 5 ou 10 premiers caractère ?
Ça doit être possible, non ? (j'y connais pas grand chose en python )
Amicalement
Marzikill.
Hors ligne
#8 Le 08/07/2009, à 11:03
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
c'est relativement simple niveau code, si tu rajoute :
item = item[:n]
(«n» représentant le nombre de premier caractères voulus) dans la partie suivante :
def dir_list(dircontent):
dirs = []
files = []
for item in dircontent:
if os.path.isdir(currentpath + '/' + item):
item = item[:7]
dirs.append(item)
elif (item[-1]!='~'):
item = item[:5]
files.append(item)
alors les dossiers auront leurs 7 premier caractères d'afficher et les fichiers leurs 5 premiers. je pense que tu pourra bibouiller selon tes besoins
Hors ligne
#9 Le 08/07/2009, à 11:26
- Valentin2105
Re : Postez ici vos Pipemenus Openbox!
il la lance avec mplayer.
Ne fais pas de généralité,
Sinon ton explication est simple et complète,
Par contre le screen, il craint un peu, on voit rien !!
Bon tuto !
Hors ligne
#10 Le 08/07/2009, à 11:26
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Ouai, trop cool, merci, c'est exactement ce que je voulais !
S'tro fort le python..
Hors ligne
#11 Le 08/07/2009, à 12:40
- thuban
Re : Postez ici vos Pipemenus Openbox!
il la lance avec mplayer.
Ne fais pas de généralité,
Sinon ton explication est simple et complète,
Par contre le screen, il craint un peu, on voit rien !!Bon tuto !
Quelle généralité? j'explique juste vite fait le programme, c'est tout.
bon, je mets à jour le screen alors !
Je propose que les autres personnes ayant de bons pipemenus à proposer les postes ici!
suckless.org
websérie d'un copain
Profil libre.fm
Debian Sid avec dwm
Hors ligne
#12 Le 08/07/2009, à 14:12
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Connaissez vous celui pour afficher vos application dynamiquement ?
#!/usr/bin/env lua
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation version 3 (GPLv3)
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA.
require ("lfs")
-- Localisation désirée pour le nom, commentaire et nom générique.
local locale="fr"
-- Gestionnaire de fenêtres courant (utilisé pour OnlyShowIn).
local current_wm="openbox"
-- programme utilisé pour lancer les applications consoles.
local terminal="xterm -e"
-- Où sera stocké le menu.
local menu = {}
--- returnCategory
-- permet de donner un nom à une liste de catégories.
-- TODO: retourner aussi une image pour la catégorie.
function returnCategory(desktop)
if desktop["categories"] == nil then
return nil;
end
if string.find(desktop["categories"],"AudioVideo") then
return "Audio/Video"
end
if string.find(desktop["categories"],"Education") then
return "Éducation"
end
if string.find(desktop["categories"],"Development") then
return "Développement"
end
if string.find(desktop["categories"],"Game") then
return "Jeux"
end
if string.find(desktop["categories"],"Graphics") then
return "Graphiques"
end
if string.find(desktop["categories"],"Network") then
return "Réseau"
end
if string.find(desktop["categories"],"Office") then
return "Bureautique"
end
if string.find(desktop["categories"],"Settings") then
return "Réglages"
end
if string.find(desktop["categories"],"System") then
return "Système"
end
if string.find(desktop["categories"],"Utility") then
return "Utilitaires"
end
return "Autres"
end
--- loadDesktop
-- retourne une liste de propriétés pour un fichier .deskop.
-- arg: nom complet du fichier
-- ret: structure (terminal, exec, name, genericname, comment, icon,hidden)
--
-- name, genericname et comment sont localisés si possible.
-- Pour avoir la version originale mettre la variable locale à c (de préférence)
function loadDesktop(filename)
local desktop_file
local line
local pos
local program={
terminal=false,
exec,
name,
genericname,
comment,
icon,
hidden=false
}
if string.sub(filename,-7) ~= "desktop" then
return nil
end
desktop_file=io.open(filename,"r")
if desktop_file == nil then
print ("Erreur : impossible de charger fichier", filename)
return nil
end
line = desktop_file:read()
while line ~= nil do
pos = string.find(line,"=")
if pos ~= nil then
local key=string.lower(string.sub(line,1,pos-1))
local value=string.sub(line,pos+1)
if key == "type" then
program.type=string.lower(value)
elseif key == "terminal" and string.lower(value) == "true" then
program.terminal=true
elseif key == "name" and program.name == nil then
program.name=value
elseif key =="name["..locale.."]" then
program.name=value
--[[
elseif key == "genericname" and program.genericname == nil then
program.name=value
elseif key == "genericname["..locale.."]" then
program.genericname=value
elseif key == "comment" and program.comment == nil then
program.comment=value
elseif key == "comment["..locale.."]" then
program.comment=value
]]
elseif key == "icon" then
program.icon=value
elseif key == "categories" then
program.categories=value
elseif key == "exec" then
pos = string.find(value," %%[fFuUdDnNickvm]")
if pos ~= nil then
program.exec = string.sub(value,1,pos-1)
else
program.exec=value
end
elseif key=="onlyshowin" and current_wm then
if not string.find(value,current_wm) then
program.hidden=true
end
end
end
line=desktop_file:read()
end
desktop_file:close()
if program.terminal then
program.exec = terminal .." ".. program.exec
end
return program
end
--- readDirectory(appdir)
-- lit non récursivement les fichiers .desktop du répertoire appdir.
function readDirectory(appdir)
local appinfo
local category
local file
local entry
for file in lfs.dir(appdir) do
if file ~= "." and file ~= ".." then
appinfo = loadDesktop(appdir.."/"..file)
if appinfo then
if appinfo.type == "application" and not appinfo.hidden then
category = returnCategory(appinfo)
if category ~= nil then
if menu[category] == nil then menu[category] = {} end
menu[category][appinfo.name]={exec=appinfo.exec,icon=appinfo.icon}
else
menu[appinfo.name]={exec=appinfo.exec,icon=appinfo.icon}
end
end
end
end
end
end
--- generateMenuJWM
-- génère un menu dynamique pour JWM à intégrer dans .jwmrc avec
-- <Include>exec:lua /path/nomfichier.lua</Include>
function generateMenuJWM()
print ("<JWM>")
for i,k in pairs(menu) do
if k.exec == nil then
print("<Menu label=\""..i.."\">")
for name,data in pairs(k) do
print(" <Program icon=\"".. data.icon .."\" label=\"".. name .."\">".. data.exec .."</Program>")
end
print("</Menu>")
else
print("<Program icon=\"".. k.icon .."\" label=\"".. i .."\">".. k.exec .."</Program>")
print("</item>")
end
end
print("</JWM>")
end
--- generateMenuOpenBox
-- génère un menu dynamique pour OpenBox à intégrer dans menu.xml avec
-- <menu id="id" label="label" execute="lua /path/nomfichier.lua" />
-- et
-- <menu id="id" /> dans le menu "root-menu"
function generateMenuOpenBox()
print ([[<openbox_pipe_menu xmlns="http://openbox.org/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://openbox.org/
file:///usr/share/openbox/menu.xsd">]])
for i,k in pairs(menu) do
if k.exec == nil then
print("<menu id=\"".. i .."\" label=\"".. i .."\">")
for name,data in pairs(k) do
print(" <item label=\"".. name .."\">")
print(" <action name=\"Execute\"><execute>".. data.exec .."</execute></action>")
print(" </item>")
end
print("</menu>")
else
print("<item label=\"".. i .."\">")
print(" <action name=\"Execute\"><execute>".. k.exec .."</execute></action>")
print("</item>")
end
end
print("</openbox_pipe_menu>")
end
readDirectory("/usr/share/applications")
-- readDirectory("/home/mimas/.local/share/applications")
-- *** Choisir generateMenuJWM() ou generateMenuOpenBox ***
generateMenuOpenBox()
Attention, il faut installer lua.
Enjoy !
Hors ligne
#13 Le 08/07/2009, à 15:38
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
j'ai installer les 2 paquets lua50 et liblua5.1-filesystem0
je lance le script et là erreur :
la première étant
could not load package `lfs' from path [...]
, résolu en installant le paquet "lua40"
alors je relance le script et hop, deuxième erreur :
lua menu_app.lua
error: `=' expected;
last token read: `,' at line 86 in file `menu_app.lua'
la par contre je vois pas ... et puis le lua je connait pas du tout comme langage de programmation (je savais meme pas que ca existant :x)
quelqu'un aurait une solution ?
sinon il y a certains menus préfait qu'un peut rajouter simplement. Le plus complet de ses menu étant
<menu id="Applications" label="Applications" />
, à rajouter dans le fichier menu.xml d'openbox. Il liste a peut près toutes les applications, mais à sa sauce ...
il y a aussi
<menu id="jeux" label="Jeux" />
Dernière modification par Mopinou (Le 08/07/2009, à 15:41)
Hors ligne
#14 Le 08/07/2009, à 16:20
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Hum...
J'ai essayé ta méthode Mopinou, mais je me prend un No acces dans le figure pour certains fichiers, et rien pour d'autre...
Ah oui, et y aurait-il moyen d'insérer pour les fichiers ainsi tronqués trois '...' à la fin ?
Amicalement
Marzikill.
Hors ligne
#15 Le 08/07/2009, à 16:34
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
Hum...
J'ai essayé ta méthode Mopinou, mais je me prend un No acces dans le figure pour certains fichiers, et rien pour d'autre...
Ah oui, et y aurait-il moyen d'insérer pour les fichiers ainsi tronqués trois '...' à la fin ?
Amicalement
Marzikill.
ton erreur est peut etre due a des fichier ayant une taille inférieure a celle que tu defini non?
sinon pour rajouter des point après les fichiers raccourcis, change le code rajouté précédement par
if( len( item ) > 5 ):item = item[:5] + '...';
Hors ligne
#16 Le 08/07/2009, à 17:25
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Hum..
Aucun problème pour les fichiers, mais certains dossiers refusent de m'afficher leur contenu.
def dir_list(dircontent):
dirs = []
files = []
for item in dircontent:
if os.path.isdir(currentpath + '/' + item):
if( len( item ) > 20 ):item = item[:20] + '...';
dirs.append(item)
elif (item[-1]!='~'):
if( len( item ) > 20 ):item = item[:20] + '...';
files.append(item)
dirs.sort()
files.sort()
return dirs, files
Hors ligne
#17 Le 08/07/2009, à 18:07
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
je ne sais pas du tout d'où ca peut venir. Est ce que ce sont des dossiers particuliers? des dossier dont le nom comporte un caractère bizarre, le meme nom qu'un autre dossier, un dossier avec droits limités, ...
quelqu'un arrive a faire fonctionner le script lua ??
Hors ligne
#18 Le 09/07/2009, à 11:18
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Moi !
(mais sous Arch )
Hors ligne
#19 Le 09/07/2009, à 12:19
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
et sinon on pourrait avoir un appercu du rendu du script dans le menu? pour savoir si ca vaut la peine que j'y passe des heures ou non.
merci
Hors ligne
#20 Le 09/07/2009, à 12:24
- Marzikill
Re : Postez ici vos Pipemenus Openbox!
Comme ceci.
Hors ligne
#21 Le 09/07/2009, à 12:33
- thuban
Re : Postez ici vos Pipemenus Openbox!
Connaissez vous celui pour afficher vos application dynamiquement ?
#!/usr/bin/env lua -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation version 3 (GPLv3) -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -- MA 02110-1301, USA. require ("lfs") -- Localisation désirée pour le nom, commentaire et nom générique. local locale="fr" -- Gestionnaire de fenêtres courant (utilisé pour OnlyShowIn). local current_wm="openbox" -- programme utilisé pour lancer les applications consoles. local terminal="xterm -e" -- Où sera stocké le menu. local menu = {} --- returnCategory -- permet de donner un nom à une liste de catégories. -- TODO: retourner aussi une image pour la catégorie. function returnCategory(desktop) if desktop["categories"] == nil then return nil; end if string.find(desktop["categories"],"AudioVideo") then return "Audio/Video" end if string.find(desktop["categories"],"Education") then return "Éducation" end if string.find(desktop["categories"],"Development") then return "Développement" end if string.find(desktop["categories"],"Game") then return "Jeux" end if string.find(desktop["categories"],"Graphics") then return "Graphiques" end if string.find(desktop["categories"],"Network") then return "Réseau" end if string.find(desktop["categories"],"Office") then return "Bureautique" end if string.find(desktop["categories"],"Settings") then return "Réglages" end if string.find(desktop["categories"],"System") then return "Système" end if string.find(desktop["categories"],"Utility") then return "Utilitaires" end return "Autres" end --- loadDesktop -- retourne une liste de propriétés pour un fichier .deskop. -- arg: nom complet du fichier -- ret: structure (terminal, exec, name, genericname, comment, icon,hidden) -- -- name, genericname et comment sont localisés si possible. -- Pour avoir la version originale mettre la variable locale à c (de préférence) function loadDesktop(filename) local desktop_file local line local pos local program={ terminal=false, exec, name, genericname, comment, icon, hidden=false } if string.sub(filename,-7) ~= "desktop" then return nil end desktop_file=io.open(filename,"r") if desktop_file == nil then print ("Erreur : impossible de charger fichier", filename) return nil end line = desktop_file:read() while line ~= nil do pos = string.find(line,"=") if pos ~= nil then local key=string.lower(string.sub(line,1,pos-1)) local value=string.sub(line,pos+1) if key == "type" then program.type=string.lower(value) elseif key == "terminal" and string.lower(value) == "true" then program.terminal=true elseif key == "name" and program.name == nil then program.name=value elseif key =="name["..locale.."]" then program.name=value --[[ elseif key == "genericname" and program.genericname == nil then program.name=value elseif key == "genericname["..locale.."]" then program.genericname=value elseif key == "comment" and program.comment == nil then program.comment=value elseif key == "comment["..locale.."]" then program.comment=value ]] elseif key == "icon" then program.icon=value elseif key == "categories" then program.categories=value elseif key == "exec" then pos = string.find(value," %%[fFuUdDnNickvm]") if pos ~= nil then program.exec = string.sub(value,1,pos-1) else program.exec=value end elseif key=="onlyshowin" and current_wm then if not string.find(value,current_wm) then program.hidden=true end end end line=desktop_file:read() end desktop_file:close() if program.terminal then program.exec = terminal .." ".. program.exec end return program end --- readDirectory(appdir) -- lit non récursivement les fichiers .desktop du répertoire appdir. function readDirectory(appdir) local appinfo local category local file local entry for file in lfs.dir(appdir) do if file ~= "." and file ~= ".." then appinfo = loadDesktop(appdir.."/"..file) if appinfo then if appinfo.type == "application" and not appinfo.hidden then category = returnCategory(appinfo) if category ~= nil then if menu[category] == nil then menu[category] = {} end menu[category][appinfo.name]={exec=appinfo.exec,icon=appinfo.icon} else menu[appinfo.name]={exec=appinfo.exec,icon=appinfo.icon} end end end end end end --- generateMenuJWM -- génère un menu dynamique pour JWM à intégrer dans .jwmrc avec -- <Include>exec:lua /path/nomfichier.lua</Include> function generateMenuJWM() print ("<JWM>") for i,k in pairs(menu) do if k.exec == nil then print("<Menu label=\""..i.."\">") for name,data in pairs(k) do print(" <Program icon=\"".. data.icon .."\" label=\"".. name .."\">".. data.exec .."</Program>") end print("</Menu>") else print("<Program icon=\"".. k.icon .."\" label=\"".. i .."\">".. k.exec .."</Program>") print("</item>") end end print("</JWM>") end --- generateMenuOpenBox -- génère un menu dynamique pour OpenBox à intégrer dans menu.xml avec -- <menu id="id" label="label" execute="lua /path/nomfichier.lua" /> -- et -- <menu id="id" /> dans le menu "root-menu" function generateMenuOpenBox() print ([[<openbox_pipe_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd">]]) for i,k in pairs(menu) do if k.exec == nil then print("<menu id=\"".. i .."\" label=\"".. i .."\">") for name,data in pairs(k) do print(" <item label=\"".. name .."\">") print(" <action name=\"Execute\"><execute>".. data.exec .."</execute></action>") print(" </item>") end print("</menu>") else print("<item label=\"".. i .."\">") print(" <action name=\"Execute\"><execute>".. k.exec .."</execute></action>") print("</item>") end end print("</openbox_pipe_menu>") end readDirectory("/usr/share/applications") -- readDirectory("/home/mimas/.local/share/applications") -- *** Choisir generateMenuJWM() ou generateMenuOpenBox *** generateMenuOpenBox()
Attention, il faut installer lua.
Enjoy !
Super chouette! j'ai tout ce qu'il faut dans mon menu désormais! Le menu debian est bien, mais un peu fouillis (bien que plus complet). Ça fonctionne impec sous debian sid. J'ai juste le paquet lua installé (il l'était déja avec je ne sais quel autre programme)
suckless.org
websérie d'un copain
Profil libre.fm
Debian Sid avec dwm
Hors ligne
#22 Le 09/07/2009, à 13:25
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
c'est bon ! j'ai installer tous les paquets qui passaient par là : luarocks liblua5.1-filesystem-dev liblua5.1-filesystem0 lua40 et lua50. Et ca marche (il y a surement des paquets en trop.
par contre, je trouve que c'est le bazar dans ce menu ... il n'est pas rangé par ordre alphabétique et les menu sont a coté des fichiers/liens. Je trouve ca bizarre
Hors ligne
#23 Le 12/08/2009, à 21:17
- Kookaburra
Re : Postez ici vos Pipemenus Openbox!
--- generateMenuOpenBox
-- génère un menu dynamique pour OpenBox à intégrer dans menu.xml avec
-- <menu id="id" label="label" execute="lua /path/nomfichier.lua" />
-- et
-- <menu id="id" /> dans le menu "root-menu"
Là, je ne comprends pas ce qu'il faut mettre exactement dans son "menu.xml" ? (je veux dire à la place de "id", "label" et où ce met la dernière ligne ... Je suis paumé !
Help me please
Portable17p : CrunchBangLinux // EeePC : ArchLinux
Openbox Addict : http://kookadimi.deviantart.com
Mes photos : http://www.fluidr.com/photos/kookadimi/sets
Votre téléphone mobile dispose de plus de puissance que l'ensemble des ordinateurs de la NASA en 1969. La NASA a lancé un homme sur la Lune. Vous lancez un oiseau sur des cochons...
Hors ligne
#24 Le 13/08/2009, à 09:58
- Mopinou
Re : Postez ici vos Pipemenus Openbox!
Alors en fait tu a 2 choix de syntaxe :
- tu peux définir tes menu en haut de ton fichier menu.xml et ensuite appeler ces menu dans ton propre menu (entre les balises du menu "root-menu") juste grâce à l'id que tu leur aura attribué
- ou alors (c'est ce que je fait) du défini directement ton menu dans le "root-menu" : donc en gros tu met directement la ligne
<menu id="id" label="label" execute="lua /path/nomfichier.lua" />
à l'endroit où tu veux qu'il apparaisse
Hors ligne
#25 Le 14/08/2009, à 22:57
- Кຼزດ
Re : Postez ici vos Pipemenus Openbox!
c'est bon ! j'ai installer tous les paquets qui passaient par là : luarocks liblua5.1-filesystem-dev liblua5.1-filesystem0 lua40 et lua50. Et ca marche (il y a surement des paquets en trop.
par contre, je trouve que c'est le bazar dans ce menu ... il n'est pas rangé par ordre alphabétique et les menu sont a coté des fichiers/liens. Je trouve ca bizarre
Je pense que tu peux essayer de garder uniquement liblua5.1-filesystem0(-dev ?) je pense que le moule lfs qui était manquant y fait référence.
dou
Hors ligne