#1 Le 10/05/2011, à 19:54
- nordinatueur
[Astuce] Script pour faciliter l'ajout de fonctions au dash Unity
Voilà un petit script bash zenity qui permet de faciliter la customisation des dash de Unity...
L'idée est de créer/modifier des fichiers ".desktop" avec :
[Desktop Entry]
Name=
Comment=
Exec=
Icon=
Terminal=false
Type=Application
StartupNotify=true
ou de le modifier en ajoutant :
[NOM_UTILE Shortcut Group]
Name=
Exec=
TargetEnvironment=Unity
et la ligne :
X-Ayatana-Desktop-Shortcuts=NOMS_UTILES
Où NOMS_UTILES contient la liste des NOM_UTILE séparés par des point-virgules...
Cette liste est alors visible par un clic droit sur le dash...
Voilà donc une ébauche du script, qui n'est pas très commenté...
#!/bin/bash
#------------------------------------------------------------------------#
# Description #
#------------------------------------------------------------------------#
# Créé par Nordinatueur
#
rouge='\e[31m'; vert='\e[32m'; jaune='\e[33m'; bleu='\e[34m'; rose='\e[35m'; cyan='\e[36m'; gris='\e[37m'; NC='\e[0m';
LOGFILE="/tmp/${0##*/}.log";
SCRIPTDIR="${HOME}/Public/scripts";
continuer=false;
until ${continuer}; do
case ${1} in
-e|-E) shift; vim -p ${0}; exit;;
-d|-D) shift; exec 1>${LOGFILE};;
*) continuer=true ;;
esac;
done;
_NouveauProgramme ()
{
fichierDesktop=${1};
nomProgramme=${2};
commandeProgramme=${3};
commentaireProgramme=${4:-Commentaire sur ${commandeProgramme}.};
iconeProgramme=${5};
echo "Dans ${fichierDesktop} : ";
#cat > ${nomProgramme// /-}.desktop <<EOF
cat <<EOF
[Desktop Entry]
Name=${nomProgramme}
Comment=${commentaireProgramme}.
Exec=${commandeProgramme}
Icon=${iconeProgramme}
Terminal=false
Type=Application
#Categories=GNOME;GTK;Core;
StartupNotify=true
EOF
}
_AjouterProgramme ()
{
fichierDesktop=${1};
nomProgramme=${2};
commandeProgramme=${3};
commentaireProgramme=${4:-Commentaire sur ${commandeProgramme}.};
echo "Dans ${fichierDesktop} : ";
#cat <<EOF
cat >>"${fichierDesktop}" <<EOF
[${nomProgramme} Shortcut Group]
Name=${nomProgramme}
Exec=${commandeProgramme}
TargetEnvironment=Unity
EOF
listeProgrammes=$( sed -rn 's/^ *\[(.*) Shortcut Group].*/\1/p' "${fichierDesktop}" | sed ":b;N;\$!bb;s/\n/;/g" );
sed -i "s/X-Ayatana-Desktop-Shortcuts=.*/X-Ayatana-Desktop-Shortcuts=${listeProgrammes};/" "${fichierDesktop}";
}
cd ~/.local/share/applications/;
fichierDesktop=$(ls *.desktop | sed 's/.desktop$//g' | zenity --list --text="Choisissez le programme à modifier :" --column="Programmes :" ; ).desktop || exit ;
nomProgramme="$( zenity --entry --width=300 --text="Entrez le nom du programme")" || exit ;
nomProgramme="${nomProgramme:-${fichierDesktop%.desktop}}";
#fichierDesktop="${nomProgramme// /-}.desktop";
commandeProgramme="$( zenity --entry --width=300 --text="Entrez la commande" )" || exit;
commandeProgramme=${commandeProgramme/\%[sS]/${SCRIPTDIR}};
if [[ -e ${fichierDesktop} ]]; then
_AjouterProgramme "${fichierDesktop}" "${nomProgramme}" "${commandeProgramme}" "${commentaireProgramme}" ;
else
_NouveauProgramme "${fichierDesktop}" "${nomProgramme}" "${commandeProgramme}" "${commentaireProgramme}" "${iconeProgramme}" ;
fi;
#Au cas où quelque chose tournerait mal...
zenity --question --text="Voulez-vos tester l'intégrité du fichier '${PWD/${HOME}/~}/${fichierDesktop}' ?" && gedit "${fichierDesktop}" ;
Il est très rudimentaire... Et je le mets ici dans l'espoir, d'abord de le retrouver et de profiter de cette merveille du libre qu'est la participation communautaire ! Je travaille dessus de temps en temps, mais j'ai beaucoup de travail ces temps-ci. J'essayerai de publier des améliorations.
Edit : Étant donné que ce script est encore jeune, il a encore des commandes pour tester et déboguer...
Dernière modification par nordinatueur (Le 10/05/2011, à 20:08)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#2 Le 10/05/2011, à 20:24
- jj.fouillard
Re : [Astuce] Script pour faciliter l'ajout de fonctions au dash Unity
Moi je ne pourrais pas t'aider, je suis une grosse nouille en programmation... mais je salue bien bas ton initiative !
Retrouvez les tribulations de bilou et tuxy sur www.cyruscom.net/bilou-et-tuxy
Hors ligne