#!/bin/bash
##script dlc directory-link-creator## open directory with pcmanfm choosing your icon ##pizuxmepis ate gmail point com ,thx to anubisg1 IRC#lxde
##the .desktop create got the suffix (dlc-)foo.desktop for dissociate from other one
########################################################################################
#this is the desktop file you can copy to /usr/share/applications name it dlc.desktop
# [Desktop Entry]
# Name=dlc
# Comment[fr]=créer un raccourci sur le bureau
# Comment[us]=create desktop shortcut
# Exec=dlc
# Terminal=false
# Icon=gtk-preferences
# Categories=Settings;
# Type=Application
# OnlyShowIn=LXDE;
##########################################################
old_IFS=$IFS # sauvegarde du séparateur de champ
IFS=$'\n' # nouveau séparateur de champ
DIX() {
cd $HOME #check desktop
if [[ -e .config/user-dirs.dirs ]]; then
. .config/user-dirs.dirs
else
XDG_DESKTOP_DIR="$HOME/Desktop"
fi
mkdir -p $XDG_DESKTOP_DIR
if [[ $LANG = fr_* ]]; then #####check lang
TXT=$"Choisir un dossier à lier sur votre bureau"
TXT2=$"Ce lien vers ce dossier existe Déjà, choisissez en un autre ou éffacez le depuis votre bureau"
TXT3=$"Choisissez votre type d'icone"
TXT4=$"L'icone pare defaut est folder (dossier), BROWNSE permet de naviguer vers l'icone de votre choix"
TXT5=$"Naviguez vers votre icone"
TXT6=$"Le lien a été crée sur votre bureau, voulez-vous en créer un autre ?"
else
TXT=$"Choose a directory to link on your desktop"
TXT2=$"This directory link already exist, please choose another one or delete it from your desktop"
TXT3=$"Please choose your icon type"
TXT4=$"Default icon is folder but you can choose yourself selecting BROWNSE"
TXT5=$"Brownse to your icon"
TXT6=$"Link have been created on your desktop, do you want to create another one ?"
fi
name="$(zenity --file-selection \
--directory --title="$TXT")"
if [[ $? -ne 0 ]];then exit; fi;
base="$(basename "$name")"
cd $XDG_DESKTOP_DIR
if [[ -e dlc-$base.desktop ]]; then
zenity --warning --text=\
"$TXT2"; cd $HOME ; DIX
else
icon=$(zenity --width=100 --entry --title="$TXT3" \
--text="$TXT4" --entry-text="folder" \
BROWNSE folder-open video sound image document applications-office applications-education \
applications-internet applications-mutimedia applications-games applications-graphics \
printer network camera-photo camera-video camera-web computer drive-optical drive-harddisk \
dvd cdrom removable-usb)
fi
if [[ $? -ne 0 ]];then exit; fi;
if [[ "$icon" = BROWNSE ]]; then
icon=$(zenity --file-selection --filename=/usr/share/icons/ --title="$TXT5")
fi
if [[ $? -ne 0 ]];then exit; fi;
echo "[Desktop Entry]
Comment=pcmanfm link to directory "$name"
Name="$base"
Exec=pcmanfm "$name"
Icon="$icon"
Type=Application
Terminal=false
OnlyShowIn=LXDE;" >>dlc-$base.desktop ;
zenity --question --text="$TXT6" --window-icon=open-folder
if [[ $? -ne 0 ]];then exit;
else
DIX
fi
}
DIX
IFS=$old_IFS
exit o
raccourci bureau sous lxde une soluce maison éfficace
raccourci bureau sous lxde une soluce maison éfficace
#1Messageil y a 11 ansraccourci bureau sous lxde une soluce maison éfficace
#2Messageil y a 11 ansTu t'amuses bien, apparemment.
Une question sur le bash : pourquoi des [[ plutôt qu'un [ simple ?
Sinon, je ne suis pas sous Lxde, mais il semble marcher pas mal.
Je pense qu'à la fin, tu as voulu mettre un exit 0 et pas un exit o.
D'ailleurs, tu devrais sortir avec un code différent de 0 en cas d'erreur.
raccourci bureau sous lxde une soluce maison éfficace
#3Messageil y a 11 ansUne question sur le bash : pourquoi des [[ plutôt qu'un [ simple ?
ça remplace "test", par exemple:
[[ -e .config/user-dirs.dirs ]]
équivaut à
[ test -e .config/user-dirs.dirs]
@ Pizux: tout ton script est en français, donc pourquoi demander la création de ~/Desktop (en cas d'absence de user-dirs.dirs) et pas ~/Bureau ?
raccourci bureau sous lxde une soluce maison éfficace
#4Messageil y a 11 ansOK, mais ;
[ -e .config/user-dirs.dirs ]
marche aussi. Je pense qu'il y a des fonctionnalités additives qui y sont liées, en bash avancé, d'où ma question.
test, c'était plutôt du temps de l'ancêtre, le shell pas ba.
raccourci bureau sous lxde une soluce maison éfficace
#5Messageil y a 11 ansraccourci bureau sous lxde une soluce maison éfficace
#6Messageil y a 11 ansPerso, plus c'est simple...
raccourci bureau sous lxde une soluce maison éfficace
#7Messageil y a 11 ansraccourci bureau sous lxde une soluce maison éfficace
#8Messageil y a 11 anspour la langue, tu devrais faire comme ça:
case "$LANG" in
fr*)
TXT="Choisir un dossier à lier sur votre bureau"
TXT2="Ce lien vers ce dossier existe Déjà, choisissez en un autre ou éffacez le depuis votre bureau"
TXT3="Choisissez votre type d'icone"
TXT4="L'icone pare defaut est folder (dossier), BROWNSE permet de naviguer vers l'icone de votre choix"
TXT5="Naviguez vers votre icone"
TXT6="Le lien a été crée sur votre bureau, voulez-vous en créer un autre ?"
;;
*)
TXT="Choose a directory to link on your desktop"
TXT2="This directory link already exist, please choose another one or delete it from your desktop"
TXT3="Please choose your icon type"
TXT4="Default icon is folder but you can choose yourself selecting BROWNSE"
TXT5="Brownse to your icon"
TXT6="Link have been created on your desktop, do you want to create another one ?"
;;
esac
avec if/else, ta fonction langue est éxécutée dans la suite des autres fonctions et le shell est obligé de tout lire, avec case, elle est indépendante et aussi plus légère, car le shell ne lit que ce qui correspond à la langue de la variable $LANG; l'autre avantage, c'est que tu peux ajouter autant de langues que tu veux, alors qu'avec if/else, tu vas être limité