#1 Le 09/05/2026, à 09:42
- LinuxBernard
script pour gérer les programmes au démarrage 25.10
Bonjour
Pour Ubuntu 25.10 j'ai écrit un petit script pour gérer les programmes au démarrage et les programmes figurant dans le menu
Je vous le soumet et vous laisse le soin de le modifier et de l'améliorer :
#!/bin/bash
#
###########################################################################################################
# #
# ATTENTION CE SCRIPT FONCTIONNE SOUS UBUNTU 25.10 ... A TESTER POUR D'AUTRE VERSION #
# #
# Cette procédure utilise zenity pour l'affichage des fenêtres et gedit comme éditeur #
# Installation : #
# sudo apt install zenity #
# sudo apt install gedit #
# Vous pouvez remplacer gedit par tout autre editeur de votre choix #
# en changeant gedit par votre editeur favori dans ce script #
# #
# Les programmes à lancer au boot se trouve dans le répertoire /home/<utilisateur>/.config/autostart #
# #
# Les programmes de menu se trouve dans le répertoire /home/<utilisateur>/.local/share/applications #
# et sont sous la forme de fichiers <nom>.desktop #
# #
# Le nom du programme à lancer est contenu dans ces fichiers (voir la ligne Exec du fichier .desktop) #
# Nota : #
# Pour une utilisation facile: #
# a) créer un lien dans /usr/bin pour atteindre Appli_Start.sh #
# cd /usr/bin #
# sudo ln -s /<votre shell Appli_Start.sh> Appli_Start.sh #
# b) créer un fichier : #
# /home/<utilisateur>/.local/share/applications/Appli_Start.desktop #
# exemple : #
# [Desktop Entry] #
# Version=2.0 #
# Type=Application #
# Terminal=true #
# Name[fr_FR]=Appli_Start #
# Name=Appli_Start #
# Exec=bash -c "/usr/bin/Appli_Start.sh" #
# Icon=<Chemin d'une icone pour matérialiser le programme dans le menu> #
# Hidden=false #
# NoDisplay=false #
# #
# Astuce pour créer un lanceur dans le menu : #
# Lancer le script depuis votre répertoire (./Appli_Start.sh) #
# et utiliser ce script pour créer un lanceur dans le menu #
# #
###########################################################################################################
#
# La ligne suivante sert à régler un problème d'affichage zenity depuis la version Ubuntu 25.10
export GSK_RENDERER=gl
printf "\033[8;1;1t" # passage en 1 ligne de 1 caractère
function mylist # Liste des .desktop existant
{
for i in `ls $1`
do
if [ -d "$i" ]
then
l $1/$i ;
else
Liste=$Liste" "$i
fi
done
}
function debut # Programme principal On boucle dessus jusqu'à demande d'arrêt par l'utilisateur
{
Liste=" <Ajouter> <Abandonner>"
AJOUT="<Ajouter>"
ABANDONNER="Abandonner"
mylist $REPAUTO
PROCESS=$(zenity --width=1380 --height=800 --list --text="Choisissez la Procédure à modifier ou à supprimer ou à ajouter" --column="Fichiers" $Liste)
if [ "$?" -eq 1 ]; then
return 1
fi
if [ "$PROCESS" = "<Abandonner>" ]; then
return 1
fi
if [ "$PROCESS" = "$AJOUT" ]; then
NEWPROG=$(zenity --width=480 --height=400 --entry --title "Ajout d'un programme au démarrage" --text="Nom du programme ?")
if [ "$?" -eq 1 ]; then
return 0
fi
FICDESKTOP="$REPAUTO/$NEWPROG.desktop"
if [ -f "$FICDESKTOP" ]; then
if zenity --width=480 --height=400 --question --text="Le lanceur existe déjà, Voulez-vous le remplacer ?"
then
echo >/dev/null
else
return 0
fi
fi
EXECUTABLE=$(zenity --width=1380 --height=800 --file-selection --title="Choisisez un fichier exécutable")
if [ "$?" -eq 1 ]; then
return 0
fi
echo "[Desktop Entry]" > $FICDESKTOP
echo "Type=Application" >> $FICDESKTOP
ATTENTE=$(zenity --width=600 --height=100 --entry --title "Attente avant lancement après boot" --text="Nombre de secondes (ou 0) ?")
if [ "$?" -eq 1 ]; then
return 0
fi
if [ "$ATTENTE" = "0" ]; then
WAIT=""
else
WAIT="sleep "$ATTENTE";"
fi
TYPE=$(zenity --width=480 --height=400 --list --text="Indiquez le type de programme" --column="Type" Shell Binaire Abandonner)
if [ "$?" -eq 1 ]; then
return 0
fi
case $TYPE in
Abandonner)
return 0
;;
Shell)
echo $WAIT'Exec=bash -c "'$EXECUTABLE'"' >> $FICDESKTOP
;;
Binaire)
echo $WAIT'Exec='$EXECUTABLE >> $FICDESKTOP
;;
*)
return 0
;;
esac
echo "Hidden=false" >> $FICDESKTOP
echo "NoDisplay=false" >> $FICDESKTOP
echo "X-GNOME-Autostart-enabled=true" >> $FICDESKTOP
echo "Name[fr_CA]="$NEWPROG >> $FICDESKTOP
echo "Name="$NEWPROG >> $FICDESKTOP
echo "Comment[fr_CA]=Généré par Appli_Start" >> $FICDESKTOP
echo "Comment=Généré par Appli_Start" >> $FICDESKTOP
if [ $APPLI_START = "Menu" ]; then
ICONE=$(zenity --width=1380 --height=800 --file-selection --title="Choisisez une icone pour votre lanceur")
if [ "$?" -eq 1 ]; then
return 0
fi
echo 'Icon='$ICONE >> $FICDESKTOP
fi
gedit $FICDESKTOP
else
ACTION=$(zenity --width=1380 --height=800 --list --text="Choisissez une action" --column="Action" Modifier Renommer Supprimer Désactiver Activer Abandonner)
if [ "$?" -eq 1 ]; then
return 0
fi
case $ACTION in
Abandonner)
return 0
;;
Supprimer)
cmd="rm "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Modifier)
cmd="gedit "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Désactiver)
GHOST=${PROCESS/desktop/ghost}
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$GHOST
eval $cmd
return 0
;;
Activer)
DESKTOP=${PROCESS/ghost/desktop}
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$DESKTOP
eval $cmd
return 0
;;
Renommer)
NEWNAME=$(zenity --width=1380 --height=800 --entry --title "Changer le nom de $PROCESS ?" --text="Nouveau Nom (sans extension) ?")
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$NEWNAME".desktop"
eval $cmd
return 0
;;
*)
return 0
;;
esac
fi
}
STOP=0
APPLI_START=""
CHOIXDESKTOP=$(zenity --width=480 --height=400 --list --text="Choix Menu ou Start" --column="Type" Menu Start Abandonner)
if [ "$?" -eq 1 ]; then
STOP=1
fi
case $CHOIXDESKTOP in
Abandonner)
STOP=1
;;
Menu)
REPAUTO="/home/$USER/.local/share/applications"
STOP=0
APPLI_START="Menu"
;;
Start)
REPAUTO="/home/$USER/.config/autostart"
STOP=0
APPLI_START="Start"
;;
esac
if [ "$STOP" -eq 0 ]; then
while true; do
debut
if [ "$?" -eq 1 ]; then
break
fi
done
fi
zenity --info --title="Arrêt du traitement" --text="Traitement terminé"
exitmodération : message scindé du fil Applications au démarrage sur 25.10
Dernière modification par xubu1957 (Le 09/05/2026, à 09:52)
Hors ligne
#2 Le 09/05/2026, à 13:40
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
Quelques Modifications et corrections
#!/bin/bash
#
###########################################################################################################
# #
# ATTENTION CE SCRIPT FONCTIONNE SOUS UBUNTU 25.10 ... A TESTER POUR D'AUTRE VERSION #
# #
# Cette procédure utilise zenity pour l'affichage des fenêtres et gedit comme éditeur #
# Installation : #
# sudo apt install zenity #
# sudo apt install gedit #
# Vous pouvez remplacer gedit par tout autre editeur de votre choix #
# en changeant gedit par votre editeur favori dans ce script #
# #
# Les programmes à lancer au boot se trouve dans le répertoire /home/<utilisateur>/.config/autostart #
# #
# Les programmes de menu se trouve dans le répertoire /home/<utilisateur>/.local/share/applications #
# et sont sous la forme de fichiers <nom>.desktop #
# #
# Le nom du programme à lancer est contenu dans ces fichiers (voir la ligne Exec du fichier .desktop) #
# Nota : #
# Pour une utilisation facile: #
# a) créer un lien dans /usr/bin pour atteindre Appli_Start.sh #
# cd /usr/bin #
# sudo ln -s /<votre shell Appli_Start.sh> Appli_Start.sh #
# b) créer un fichier : #
# /home/<utilisateur>/.local/share/applications/Appli_Start.desktop #
# exemple : #
# [Desktop Entry] #
# Version=2.0 #
# Type=Application #
# Terminal=true #
# Name[fr_FR]=Appli_Start #
# Name=Appli_Start #
# Exec=bash -c "/usr/bin/Appli_Start.sh" #
# Icon=<Chemin d'une icone pour matérialiser le programme dans le menu> #
# Hidden=false #
# NoDisplay=false #
# #
# Astuce pour créer un lanceur dans le menu : #
# Lancer le script depuis votre répertoire (./Appli_Start.sh) #
# et utiliser ce script pour créer un lanceur dans le menu #
# #
###########################################################################################################
#
# La ligne suivante sert à régler un problème d'affichage zenity depuis la version Ubuntu 25.10
export GSK_RENDERER=gl
printf "\033[8;1;1t" # passage en 1 ligne de 1 caractère
#
function mylist # Liste des .desktop existant
{
for i in $1/*.desktop
do
fic=$(basename "$i")
Liste=$Liste" "$fic
done
}
function debut # Programme principal On boucle dessus jusqu'à demande d'arrêt par l'utilisateur
{
Liste=" <Ajouter> <Abandonner>"
AJOUT="<Ajouter>"
ABANDONNER="Abandonner"
mylist $REPAUTO
PROCESS=$(zenity --width=1380 --height=800 --list --text="Choisissez la Procédure à modifier ou à supprimer ou à ajouter" --column="Fichiers" $Liste)
if [ "$?" -eq 1 ]; then
return 1
fi
if [ "$PROCESS" = "<Abandonner>" ]; then
return 1
fi
if [ "$PROCESS" = "$AJOUT" ]; then
NEWPROG=$(zenity --width=480 --height=400 --entry --title "Ajout d'un programme au démarrage" --text="Nom du programme ?")
if [ "$?" -eq 1 ]; then
return 0
fi
FICDESKTOP="$REPAUTO/$NEWPROG.desktop"
if [ -f "$FICDESKTOP" ]; then
if zenity --width=480 --height=400 --question --text="Le lanceur existe déjà, Voulez-vous le remplacer ?"
then
echo >/dev/null
else
return 0
fi
fi
EXECUTABLE=$(zenity --width=1380 --height=800 --file-selection --title="Choisisez un fichier exécutable")
if [ "$?" -eq 1 ]; then
return 0
fi
echo "[Desktop Entry]" > $FICDESKTOP
echo "Type=Application" >> $FICDESKTOP
ATTENTE="0"
if [ $APPLI_START = "Start" ]; then
ATTENTE=$(zenity --width=600 --height=100 --entry --title "Attente avant lancement après boot" --text="Nombre de secondes (ou 0) ?")
if [ "$?" -eq 1 ]; then
return 0
fi
fi
if [ "$ATTENTE" = "0" ]; then
WAIT=""
else
WAIT="sleep "$ATTENTE";"
fi
TYPE=$(zenity --width=480 --height=400 --list --text="Indiquez le type de programme" --column="Type" Shell Binaire Abandonner)
if [ "$?" -eq 1 ]; then
return 0
fi
case $TYPE in
Abandonner)
return 0
;;
Shell)
echo $WAIT'Exec=bash -c "'$EXECUTABLE'"' >> $FICDESKTOP
;;
Binaire)
echo $WAIT'Exec='$EXECUTABLE >> $FICDESKTOP
;;
*)
return 0
;;
esac
echo "Hidden=false" >> $FICDESKTOP
echo "NoDisplay=false" >> $FICDESKTOP
echo "X-GNOME-Autostart-enabled=true" >> $FICDESKTOP
echo "Name[fr_CA]="$NEWPROG >> $FICDESKTOP
echo "Name="$NEWPROG >> $FICDESKTOP
echo "Comment[fr_CA]=Généré par Appli_Start" >> $FICDESKTOP
echo "Comment=Généré par Appli_Start" >> $FICDESKTOP
if [ $APPLI_START = "Menu" ]; then
ICONE=$(zenity --width=1380 --height=800 --file-selection --title="Choisisez une icone pour votre lanceur")
if [ "$?" -eq 1 ]; then
return 0
fi
echo 'Icon='$ICONE >> $FICDESKTOP
fi
gedit $FICDESKTOP
else
ACTION=$(zenity --width=1380 --height=800 --list --text="Choisissez une action" --column="Action" Modifier Renommer Supprimer Désactiver Activer Abandonner)
if [ "$?" -eq 1 ]; then
return 0
fi
case $ACTION in
Abandonner)
return 0
;;
Supprimer)
cmd="rm "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Modifier)
cmd="gedit "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Désactiver)
GHOST=${PROCESS/desktop/ghost}
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$GHOST
eval $cmd
return 0
;;
Activer)
DESKTOP=${PROCESS/ghost/desktop}
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$DESKTOP
eval $cmd
return 0
;;
Renommer)
NEWNAME=$(zenity --width=1380 --height=800 --entry --title "Changer le nom de $PROCESS ?" --text="Nouveau Nom (sans extension) ?")
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$NEWNAME".desktop"
eval $cmd
return 0
;;
*)
return 0
;;
esac
fi
}
STOP=0
APPLI_START=""
CHOIXDESKTOP=$(zenity --width=480 --height=400 --list --text="Choix Menu ou Start" --column="Type" Menu Start Abandonner)
if [ "$?" -eq 1 ]; then
STOP=1
fi
case $CHOIXDESKTOP in
Abandonner)
STOP=1
;;
Menu)
REPAUTO="/home/$USER/.local/share/applications"
STOP=0
APPLI_START="Menu"
;;
Start)
REPAUTO="/home/$USER/.config/autostart"
STOP=0
APPLI_START="Start"
;;
esac
if [ "$STOP" -eq 0 ]; then
while true; do
debut
if [ "$?" -eq 1 ]; then
break
fi
done
fi
zenity --info --title="Arrêt du traitement" --text="Traitement terminé"
exitHors ligne
#3 Le 09/05/2026, à 17:26
- Watael

Re : script pour gérer les programmes au démarrage 25.10
for i in $1/*.desktop
c'est mieux.
tu peux te dispenser de basename : fic=${i##*/}
si Liste est une liste, fais-en une liste :
#!/bin/bash declare -a Liste ... Liste+=( "$fic" )if [ $? -eq 1 ]; then$? est un nombre, les guillemets sont inutiles
tu n'es pas obligé d'exclure les variables des guillemets
cmd="rm $REPAUTO/$PROCESS"eval est inutile, on se demande même pourquoi tu mets la commande dans une variable, puisqu'elle est exécutée tout de suite.
tu peux la construire dans case/esac et l'exécuter après.
Dernière modification par Watael (Le 09/05/2026, à 17:27)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 10/05/2026, à 10:17
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
Merci pour ces remarques, je vais en tenir compte et rectifier ![]()
Bonne journée
Hors ligne
#5 Le 10/05/2026, à 10:31
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
J'ai effectué les modifications comme tu me l'as conseillé, par contre la gestion de Liste ne fonctionne pas.
J'ai mis les commandes dans une variable "cmd" pour des facilités de debug, çà me permettait de faire un echo de la commande, mais je vais modifier.
encore merci
ma nouvelle version :
#!/bin/bash
#
###########################################################################################################
# #
# ATTENTION CE SCRIPT FONCTIONNE SOUS UBUNTU 25.10 ... A TESTER POUR D'AUTRE VERSION #
# #
# Cette procédure utilise zenity pour l'affichage des fenêtres et gedit comme éditeur #
# Installation : #
# sudo apt install zenity #
# sudo apt install gedit #
# Vous pouvez remplacer gedit par tout autre editeur de votre choix #
# en changeant gedit par votre editeur favori dans ce script #
# #
# Les programmes à lancer au boot se trouve dans le répertoire /home/<utilisateur>/.config/autostart #
# #
# Les programmes de menu se trouve dans le répertoire /home/<utilisateur>/.local/share/applications #
# et sont sous la forme de fichiers <nom>.desktop #
# #
# Le nom du programme à lancer est contenu dans ces fichiers (voir la ligne Exec du fichier .desktop) #
# Nota : #
# Pour une utilisation facile: #
# a) créer un lien dans /usr/bin pour atteindre Appli_Start.sh #
# cd /usr/bin #
# sudo ln -s /<votre shell Appli_Start.sh> Appli_Start.sh #
# b) créer un fichier : #
# /home/<utilisateur>/.local/share/applications/Appli_Start.desktop #
# exemple : #
# [Desktop Entry] #
# Version=2.0 #
# Type=Application #
# Terminal=true #
# Name[fr_FR]=Appli_Start #
# Name=Appli_Start #
# Exec=bash -c "/usr/bin/Appli_Start.sh" #
# Icon=<Chemin d'une icone pour matérialiser le programme dans le menu> #
# Hidden=false #
# NoDisplay=false #
# #
# Avant chaque modification les fichiers .desktop sont sauvegardés : #
# - soit dans le répertoire /home/<utilisateur>/.local/share/applications/save #
# - soit dans le répertoire /home/<utilisateur>/.config/autostart/save #
# #
# Astuce pour créer un lanceur dans le menu : #
# Lancer le script depuis votre répertoire (./Appli_Start.sh) #
# et utiliser ce script pour créer un lanceur dans le menu #
# #
###########################################################################################################
#
# La ligne suivante sert à régler un problème d'affichage zenity depuis la version Ubuntu 25.10
export GSK_RENDERER=gl
printf "\033[8;1;1t" # passage en 1 ligne de 1 caractère
#
function mylist # Liste des .desktop existant
{
for i in $1/*.desktop
do
#fic=$(basename "$i")
fic=${i##*/}
Liste=$Liste" "$fic
done
}
function debut # Programme principal On boucle dessus jusqu'à demande d'arrêt par l'utilisateur
{
Liste=" <Ajouter> <Abandonner>"
AJOUT="<Ajouter>"
ABANDONNER="Abandonner"
mylist $REPAUTO
PROCESS=$(zenity --width=1380 --height=800 --list --text="Choisissez la Procédure à modifier ou à supprimer ou à ajouter" --column="Fichiers" $Liste)
if [ $? -eq 1 ]; then
return 1
fi
if [ "$PROCESS" = "<Abandonner>" ]; then
return 1
fi
if [ "$PROCESS" = "$AJOUT" ]; then
NEWPROG=$(zenity --width=480 --height=400 --entry --title "Ajout d'un programme au démarrage" --text="Nom du programme ?")
if [ $? -eq 1 ]; then
return 0
fi
FICDESKTOP="$REPAUTO/$NEWPROG.desktop"
if [ -f "$FICDESKTOP" ]; then
if zenity --width=480 --height=400 --question --text="Le lanceur existe déjà, Voulez-vous le remplacer ?"
then
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$FICDESKTOP' '$REPAUTO'/save/'$NEWPROG'.desktop/.'$DATEMODIF
eval $cmd
else
return 0
fi
fi
EXECUTABLE=$(zenity --width=1380 --height=800 --file-selection --title="Exécutable ?")
if [ $? -eq 1 ]; then
return 0
fi
echo "[Desktop Entry]" > $FICDESKTOP
echo "Type=Application" >> $FICDESKTOP
ATTENTE="0"
if [ $APPLI_START = "Start" ]; then
ATTENTE=$(zenity --width=600 --height=100 --entry --title "Attente avant lancement après boot" --text="Nombre de secondes (ou 0) ?")
if [ $? -eq 1 ]; then
return 0
fi
fi
if [ "$ATTENTE" = "0" ]; then
WAIT=""
else
WAIT="sleep "$ATTENTE";"
fi
TYPE=$(zenity --width=480 --height=400 --list --text="Indiquez le type de programme" --column="Type" Shell Binaire Abandonner)
if [ $? -eq 1 ]; then
return 0
fi
case $TYPE in
Abandonner)
return 0
;;
Shell)
echo $WAIT'Exec=bash -c "'$EXECUTABLE'"' >> $FICDESKTOP
;;
Binaire)
echo $WAIT'Exec='$EXECUTABLE >> $FICDESKTOP
;;
*)
return 0
;;
esac
echo "Hidden=false" >> $FICDESKTOP
echo "NoDisplay=false" >> $FICDESKTOP
echo "X-GNOME-Autostart-enabled=true" >> $FICDESKTOP
echo "Name[fr_CA]="$NEWPROG >> $FICDESKTOP
echo "Name="$NEWPROG >> $FICDESKTOP
echo "Comment[fr_CA]=Généré par Appli_Start" >> $FICDESKTOP
echo "Comment=Généré par Appli_Start" >> $FICDESKTOP
if [ $APPLI_START = "Menu" ]; then
ICONE=$(zenity --width=1380 --height=800 --file-selection --title="Icone ?")
if [ $? -eq 1 ]; then
return 0
fi
echo 'Icon='$ICONE >> $FICDESKTOP
fi
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$FICDESKTOP' '$REPAUTO'/save/'$NEWPROG'.desktop.'$DATEMODIF
eval $cmd
gedit $FICDESKTOP
else
ACTION=$(zenity --width=1380 --height=800 --list --text="Choisissez une action" --column="Action" Modifier Renommer Supprimer Désactiver Activer Abandonner)
if [ $? -eq 1 ]; then
return 0
fi
case $ACTION in
Abandonner)
return 0
;;
Supprimer)
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$REPAUTO'/'$PROCESS' '$REPAUTO'/save/'$PROCESS'.'$DATEMODIF
eval $cmd
cmd="rm "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Modifier)
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$REPAUTO'/'$PROCESS' '$REPAUTO'/save/'$PROCESS'.'$DATEMODIF
eval $cmd
cmd="gedit "$REPAUTO"/"$PROCESS
eval $cmd
return 0
;;
Désactiver)
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$REPAUTO'/'$PROCESS' '$REPAUTO'/save/'$PROCESS'.'$DATEMODIF
eval $cmd
sed '/^NoDisplay/d' $REPAUTO"/"$PROCESS > $REPAUTO/mano
echo "NoDisplay=true" >> $REPAUTO/mano
cmd='cp '$REPAUTO'/mano '$REPAUTO'/'$PROCESS
eval $cmd
rm $REPAUTO/mano
return 0
;;
Activer)
DATEMODIF=`date '+%Y-%m-%d_%H:%M:%S'`
cmd='cp '$REPAUTO'/'$PROCESS' '$REPAUTO'/save/'$PROCESS'.'$DATEMODIF
eval $cmd
sed '/^NoDisplay/d' $REPAUTO"/"$PROCESS > $REPAUTO/mano
echo "NoDisplay=false" >> $REPAUTO/mano
cmd='cp '$REPAUTO'/mano '$REPAUTO'/'$PROCESS
eval $cmd
rm $REPAUTO/mano
return 0
;;
Renommer)
NEWNAME=$(zenity --width=1380 --height=800 --entry --title "Changer le nom de $PROCESS ?" --text="Nouveau Nom (sans extension) ?")
cmd="mv "$REPAUTO"/"$PROCESS" "$REPAUTO"/"$NEWNAME".desktop"
eval $cmd
return 0
;;
*)
return 0
;;
esac
fi
}
STOP=0
APPLI_START=""
CHOIXDESKTOP=$(zenity --width=480 --height=400 --list --text="Choix Menu ou Start" --column="Type" Menu Start Abandonner)
if [ $? -eq 1 ]; then
STOP=1
fi
case $CHOIXDESKTOP in
Abandonner)
STOP=1
;;
Menu)
REPAUTO="/home/$USER/.local/share/applications"
STOP=0
APPLI_START="Menu"
;;
Start)
REPAUTO="/home/$USER/.config/autostart"
STOP=0
APPLI_START="Start"
;;
esac
mkdir -p $REPAUTO/save
if [ "$STOP" -eq 0 ]; then
while true; do
debut
if [ $? -eq 1 ]; then
break
fi
done
fi
zenity --info --title="Arrêt du traitement" --text="Traitement terminé"
exitHors ligne
#6 Le 10/05/2026, à 10:45
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
Mon test qui me renvoi uniquement le premier fichier dans $Liste alors que tous les fichiers sont bien énumérés par echo $fic
#!/bin/bash
declare -a Liste
function mylist # Liste des .desktop existant
{
for i in $1/*.desktop
do
fic=${i##*/}
echo $fic
Liste+=( "$fic" )
done
}
Rep=/home/$USER/.local/share/applications
mylist $Rep
echo $ListeHors ligne
#7 Le 10/05/2026, à 11:13
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
Dans ce cas $Liste est un tableau qui fonctionne, mais zenity n'accepte pas, il me semble, un tableau comme liste des éléments à afficher mais uniquement une variable qui contient les noms des éléments à afficher.
Je ne pense pas pouvoir passer par un tableau, sauf erreur de ma part
Hors ligne
#8 Le 10/05/2026, à 14:18
- Watael

Re : script pour gérer les programmes au démarrage 25.10
Liste est une liste, c'est un type de variable spéciale.
ça s'utilise ainsi :
declare -a Liste #la déclaration est facultative
Liste=( 'a b' 'c d' e f )
echo "${Liste[0]}" #les listes indexées commencent par défaut à zéro
a b
echo "${Liste[-1]}"
f
echo "${Liste[@]}"
a b c d e f
Liste+=( 'g h' )
printf '%s\n' "${Liste[@]}"
a b
c d
e
f
g hil y a plus, regarde le man bash.
il existe des listes acssociatives :
declare -A assoListe
assoListe[abc]=ABCetc
amuse-toi bien. ![]()
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 10/05/2026, à 18:59
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
ce système fonctionne parfaitement, mais dans mon cas je passe cette "Liste" en paramètre à zenity qui ne reconnait pas les tableaux
Dommage, c'était une excellente idée que je retiens pour l'avenir.
PROCESS=$(zenity --width=1380 --height=800 --list --text="Choisissez la Procédure à modifier ou à supprimer ou à ajouter" --column="Fichiers" $Liste)Hors ligne
#10 Le 10/05/2026, à 20:34
- Watael

Re : script pour gérer les programmes au démarrage 25.10
zenity ... "${Liste[@]}"!
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 11/05/2026, à 07:32
- LinuxBernard
Re : script pour gérer les programmes au démarrage 25.10
Super !!! Merci !
J'ai appris pas mal de chose utile !!!!
:)
Hors ligne