Comme je travaille avec plusieurs workspaces Eclipse (regroupant chaque plusieurs projets Eclipse corrélés entre eux, par ex. tous les modules d’un même projet, ou tous mes projets personnels Java ou PHP, ou tous mes projets de tests, etc.), il est beaucoup plus pratique pour moi de choisir le workspace sur lequel je veux travailler directement en démarrant Eclipse (plutôt que de switcher après coup).

De fait, tous mes raccourcis Eclipse pointent en fait sur le script ci-dessous.

Le script se base sur le méconnu mais assez pratique Zenity pour gérer la fenêtre de lancement, et se contente ensuite de démarrer Eclipse avec le paramètre -location chemin_du_workspace.

Visuellement et concrètement çà ressemble à çà, la liste des workspaces, le nombre de projets dans chaque workspace, il suffit de sélectionner celui sur lequel on veut démarrer :

Choix du workspace Eclipse à utiliser au démarrage via un launcher interactif (Linux) /media/screenshots/screenshot-eclipse-workspaces-launcher.png

Remarque : bien sûr l’autre manière de changer de workspace consiste à switcher depuis un Eclipse déjà démarré vers un autre workspace (ne pas oublier dans ce cas de cocher la petite case “Copy Settings > Workbench Layout” pour garder la disposition des fenêtres / perspectives).

Choix du workspace Eclipse à utiliser au démarrage via un launcher interactif (Linux) /media/screenshots/screenshot-eclipse-workspaces.png

Le script : eclipse-launcher.sh. A adapter pour les paramètres qui vous seraient propres, bien sûr (chemin vers Eclipse et paramètres additionnels Eclipse notamment).

#!/bin/ksh
 
# ========================================================
# === Variables
# ========================================================
export windows_title="Eclipse Launcher"
export WNG_ICON="/opt/gnome/share/pixmaps/gnome-warning.png"
export ECLIPSE_ICON="/opt/Eclipse_DEV/Eclipse-V3-2-1/icon.xpm"
export WORKSPACES_DIR="/home/user/java/workspaces/eclipse/"
export JAVA_HOME="/home/user/applications/java/jdk1.6.0_24"
export ECLIPSE_BIN="/home/user/applications/eclipse/helios/java/eclipse"
export JAVA_PARAMETERS="-vmargs -Xss4m -Xms326m -Xmx444m -XX:PermSize=256m -XX:MaxPermSize=256m"
 
# ========================================================
# === Récupération de la liste des workspaces
# === et construction pour affichage par Zenity
# ========================================================
WORKSPACES=""
ls -1d "${WORKSPACES_DIR}"/* | egrep -v "\..*|*\.xml" | sort -u | while read ITEM
do
	WORKSPACE_NAME="$(basename ${ITEM})"
	WORKSPACE_COUNT=$(ls -1d "${ITEM}"/* 2>/dev/null | grep -v total | wc -l)
	WORKSPACES="${WORKSPACES}${WORKSPACE_NAME} 	${WORKSPACE_COUNT}
"
done
 
# ========================================================
# === Lancement de Zenity
# ========================================================
ret=`zenity --list --width="320" --height="520" --window-icon="${ECLIPSE_ICON}" \
--text "Choisissez le workspace" \
--column "Workspace" \
--column "Projets" \
$WORKSPACES --title "${windows_title}"`
 
# ========================================================
# === Démarrage d'Eclipse avec le bon workspace
# ========================================================
if [[ ! -z $ret ]] ; then
	export GTL_MODULES="";
	cmd='nohup '${ECLIPSE_BIN}' -showlocation -data "'${WORKSPACES_DIR}$ret'" -vm '${JAVA_HOME}'/bin/java ${JAVA_PARAMETERS} >/dev/null 2>&1 &'
    echo $cmd
    eval $cmd
fi