Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/05/2011, à 20: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... big_smile
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, à 21:08)


Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#2 Le 10/05/2011, à 21: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