modification personnel du script /usr/bin/fluxbox-automenu

Avatar
Messages 7

hello
Petite modification personnel de la variable cmd dans le script /usr/bin/fluxbox-automenu

TEXT
grep Exec /usr/bin/fluxbox-automenu
    #cmd="$(grep -m1 "^Exec=" "${1}" | cut -d"=" -f2- | cut -d'%' -f1)"
    cmd="$(awk '/^Exec/ {sub(/%[fFuU]/,""); print substr($0,6)}' "${1}"|head -1)"

Pour la petite histoire j'ai eu besoin d'ajouter du code sur la ligne Exec d'un de mes fichiers desktop
quelque vieux jeux que je fais tourner avec wine me mettent un peux l'affichage en vrac en sortie
Mais je m’aperçois que mes changements ne sont pas pris en compte
j'ai fini par comprendre pourquoi, la variable cmd n'affiche pas toute la fin de ligne, vu que c'est une modification perso je pourrais effacer le %F de mon fichier desktop
mais le problème ce reposera a un moment

avec awk, recherche du début de ligne Exec
suppression du %f %F %u ou %U via la fonction sub

fonction sub : substitu les caractères dans une chaîne (efface ou remplace)

puis utilisation de la fonction substr pour afficher les caractères restant après Exec, affichage de tout les champs ($0) après Exec(6)

fonction substr: afficher n caractére d'un champ

head -1 pour ne prendre qu'une occurrence Exec en compte
j'ai regardé les fichiers généré par fluxbox-automenu tout me parait en ordre

  • J'aime(1)
    arpinuxarpinux
Avatar
Messages 44

sympa !
j'ai testé et n'ai vu aucune différence mais je n'ai pas de .desktop particulier pour la voir je pense.
tu aurais la ligne Exec du .desktop qui te posait problème ?

Avatar
Messages 7
TEXT

grep Exec ~/.local/share/applications/playonlinux-Age-of-Empires-II_The_Conquerors.desktop 
Exec=/usr/share/playonlinux/playonlinux --run "Age of Empires II : The Conquerors" %F && /home/stephane/bin/afterwine.sh

actuellement % est utilisé comme délimiteur par cut et on affiche le champ 1
c'est pour ça que tout ce qui est ajouté a la suite de %F n'est pas pris en compte
c'est sur qu'il suffit de supprimé %F pour que cela soit bon, mais encore faut il le savoir et s'en souvenir

Avatar
Messages 44

oki, bien vu.
ce fichier .desktop est généré par playonlinux ?

Avatar
Messages 7

oui c'est playonlinux qui génère le desktop (à la base je voulais tester play.it mais il faut avoir les images iso)
j'ajoute juste && /home/stephane/bin/afterwine.sh
juste pour info mon script afterwine.sh replace le conky, il y a aussi un bug d'affichage du fond d'écran mais c'est moins gênant, j'ai un crontab qui le change tout les 45 minutes

TEXT

cat ~/bin/afterwine.sh
#!/bin/bash
#relance le conky qui était en cours avant l'utilisation de wine

conky=$(ps aux |awk '/conky/ {print $NF}'|head -1)
killall conky
conky -q -c "$conky"
Avatar
Messages 44

alors comme je ne suis pas un expert, j'ai tout simplement demandé l'avis de prx, le dev du fluxbox-automenu et il m'a indiqué qu'on pouvait peut-être même virer le head ainsi :

TEXT

cmd="$(awk '/^Exec/ {sub(/%[fFuU]/,""); print substr($0,6); exit}' "${1}")"

à tester :)

Avatar
Messages 44

re :)

testé et approuvé ! ce sera en place à la prochaine mise à jour, merci @croutons et @prx :)

Avatar
Messages 44

mise à jour effectuée, credit dans les sources, disponible sur nakedeb depuis un debup :) merci @croutons !

Avatar
Messages 7

j'avais ajouté head -1 pour ne traiter qu'une seule occurrence de Exec, c'est l'équivalent du grep -m1
sur certain desktop il peut y avoir plusieurs ligne Exec et ça sort des fichiers non conforme

voici un extrait choisis

TEXT

cat ~/.fluxbox/automenu/*
[exec] (Zim, le Wiki de bureau) {zim 
featherpad --standalone} <>
featherpad --win
urxvt} <>
zim --plugin quicknote
zim --plugin quicknote input=clipboard} <>

et ceci peut se produire avec pas mal d'applications, a chaque fois que plusieurs ligne Exec sont présentent
c'est le cas pour Zim, Terminator, Urxvt, Featherpad, Deja-dup, Thunar...la liste est trop longue

TEXT

grep Exec /usr/share/applications/rxvt-unicode.desktop
TryExec=urxvt
Exec=urxvt
Exec=urxvt
Avatar
Messages 44

je n'ai pas noté de souci avec la version 0.7 du fluxbox-automenu mais j'ai corrigé la version 0.8 en rajoutant le head

Visiteur, répondez à ce sujet…
Connectez-vous pour répondre
Navigation
10Messages
message #1
11 Feb 2026
ParUtilisateur