Sous Windows, les raccourcis permettent dâaccĂ©der Ă un fichier ou un dossier en particulier depuis le bureau. Câest une fonctionnalitĂ© pratique que beaucoup dâutilisateurs ont lâhabitude dâutiliser.
Sous Linux Mint
par exemple, il nây a pas de « raccourcis » vers le dossier document de lâutilisateur et cela peu ĂȘtre dĂ©routant pour certaines personnes.
Initialement, pour aider les nouveaux utilisateurs, je mettais des « liens symboliques », mais il y a des cas oĂč cela pose un problĂšme : le chemin dâaccĂšs au fichier change, et cela est gĂȘnant en particulier lorsque ce lien est celui dâun rĂ©pertoire. Un exemple concret, un fichier projet kdenlive
contient des chemins vers des images ou des vidéos, changer le chemin du fichier projet peut avoir des conséquences.
Jâai longtemps Ă©tĂ© critique sur les faux-liens que sont les raccourcis Windows, ils nâont en fait pas le mĂȘme usage que les « liens ». Un raccourci doit ĂȘtre vu comme le moyen de se tĂ©lĂ©porter Ă un endroit, un lien câest un alias, un autre accĂšs Ă la mĂȘme chose.
Et dans le cas des icĂŽnes du bureau, ce que lâon veut câest bien un moyen de se tĂ©lĂ©porter vers cette autre endroit et donc avoir un raccourci.
Je parle de faux-lien, car il sâagit dâun fichier intermĂ©diaire qui est interprĂ©tĂ© par lâexplorateur de fichiers Windows et en aucun cas qui permet Ă un programme dâaccĂ©der Ă une ressource dĂ©signĂ©e par ce lien sans une rĂ©solution spĂ©cifique. Au contraire, les liens sous Linux sont transparents pour les applications, on peut du coup accĂ©der Ă un mĂȘme rĂ©pertoire par deux chemin par exemple.
Comment créer un raccourci à la windows sous Linux :
Voici une fonction bash
qui permet cela en utilisant les xdg-utils
de freedesktop
 :
function create_shortcut {
local -r shortcut_name="$1"
local -r folder_path="$2"
local -r icon="$3"
local -r comment="$4"
local shortcut_filename=
if [ -z "${shortcut_name}" ] ; then
echo "*** Parameter shortcut_name missing..." >&2
return 1
fi
if [ -z "${folder_path}" ] ; then
echo "*** Parameter folder_path missing..." >&2
return 1
fi
if [ -z "${icon}" ] ; then
echo "*** Parameter icon missing..." >&2
return 1
fi
if [ ! -e "${folder_path}" ] ; then
echo "*** Path not found: '${folder_path}'" >&2
return 1
fi
shortcut_filename="$( xdg-user-dir DESKTOP )/${shortcut_name}.desktop"
cat <<EOF >"${shortcut_filename}"
[Desktop Entry]
Name=${shortcut_name}
Exec=xdg-open '$( realpath "${folder_path}" )'
Comment=${comment}
Icon=${icon}
Type=Application
Terminal=false
EOF
cat <<EOF
xdg-desktop-icon install --novendor "${shortcut_filename}"
EOF
xdg-desktop-icon install --novendor "${shortcut_filename}"
echo $?
}
Lâusage de cette premiĂšre fonction peut se faire ainsi :
create_shortcut 'Mes Documents' "$( xdg-user-dir DOCUMENTS )" 'folder-documents' 'Mes documents'
Voici deux autres fonctions utilisant celle donnĂ©e plus haut, qui permettent dâavoir une configuration un peu plus automatisĂ©e.
function create_shortcut_for_commons {
local -r xdg_name="$1"
local -r icon_name="$2"
local shortcut_name=
local path=
path="$( xdg-user-dir "${xdg_name}" )" || return 1
shortcut_name="$( basename "${path}" )"
local -r comment="${path}"
create_shortcut "${shortcut_name}" "${path}" "${icon_name}" "${comment}"
}
function apply_custom_config {
local line=
local xdg_name=
local icon_name=
while read -r line ; do
if [ -n "${line}" ] ; then
xdg_name="$( cut -d ':' -f1 <<<"${line}" )"
icon_name="$( cut -d ':' -f2 <<<"${line}" )"
cat <<EOF
create_shortcut_for_commons "${xdg_name}" "${icon_name}"
EOF
create_shortcut_for_commons "${xdg_name}" "${icon_name}"
fi
done <<<"${SDG_FOLDERS_CUSTOM_CONFIG}"
}
Pour exĂ©cuter lâensemble, il faut dĂ©finir la configuration et lancer la fonction apply_custom_config
comme suit :
declare -gr SDG_FOLDERS_CUSTOM_CONFIG='
DOWNLOAD:folder-download
DOCUMENTS:folder-documents
MUSIC:folder-music
PICTURES:folder-pictures
VIDEOS:folder-video
'
apply_custom_config
Une premiĂšre partie contenant le nom dâun rĂ©pertoire commun suivi du caractĂšre :
puis du nom de lâicĂŽne souhaitĂ©.
La liste des valeurs possibles pour le nom est la suivante : DESKTOP
, DOWNLOAD
, TEMPLATES
, PUBLICSHARE
, DOCUMENTS
, MUSIC
, PICTURES
, VIDEOS
.
Il est aussi possible dâajouter des raccourcis vers des dossiers (ou des fichiers) comme suit :
create_shortcut 'Mon NextCloud' ~/Nextcloud 'folder-remote' 'Mon compte NextCloud'
La syntaxe étant :
create_shortcut â©â NOM_DU_RACCOURCISâȘ â©âĄCHEMIN_VERS_LA_CIBLEâȘ â©âąNOM_DE_L_ICĂNEâȘ â©âŁCOMMENTAIREâȘ
Nom des icĂŽnes disponibles sur votre systĂšme
Pour avoir une idĂ©e des noms dâicĂŽne quâil est possible dâutiliser vous devez commencer par la documentation : Icon Naming Specification.
Ă dĂ©faut, je vous propose dâutiliser lâune des lignes de code ci-dessous :
Solution la plus rapide Ă lâexĂ©cution :
find /usr/share/icons/ -type f -exec basename {} \; | rev | cut -d '.' -f2- | rev | sort | uniq
Solution un peu plus lente, mais permettant dâĂȘtre modifiĂ©e plus facilement selon vos besoins.
while read -r filename ; do basename "${filename}" | rev | cut -d '.' -f2- | rev ; done < <( find /usr/share/icons/ -type f ) | sort | uniq
Références
- Pour le nom des icĂŽnes standard et leur description Icon Naming Specification,
- XDG user directories,
- Le manuel de xdg-user-dir.
኿