Script bash : Thunar ouvre un onglet par répertoire de la liste donnée en paramètre

#!/bin/bash

# nécessite xdotool
# en paramètre : la liste des répertoires à ouvrir dans un nouvel onglet

[ $# -eq  0 ] && exit 1

while [ ! -d "$1" ]
do
  shift
done

thunar "$1"
shift

while [ $# -gt 0 ]
do
    [ -d "$1" ] && { xdotool key Ctrl+t Ctrl+l type "$1"; xdotool key Return; }
    shift;
done
3 J'aime

Bonne nouvelle, je viens de tester ton script, il fonction aussi avec Dolphin sous KDE, mais seulement si les raccourcis sont toujours définis à ceux par défaut.

Bonjour Almtesh

Merci pour le retour.

Mais du coup, j’aimerais en savoir un peu plus au sujet de ce problème de raccourcis, de façons à (peut-être) y trouver une solution.

Il est vrai que je n’ai indiqué aucun chemin concernant les applications utilisées, et que j’aurais pu affiner tout ça en utilisant la commande which (ou une variable plus générique) pour trouver le chemin absolu des commandes,

Il aurait aussi été possible de remplacer exit 1 par un message d’erreur, voire même pas d’erreur du tout.

Bref, il y a tant de possibilités…

Et puis en fait, je ne suis qu’un autodidacte, qui, à mesure qu’il apprends, semble apercevoir l’étendue de tout ce qu’il me reste à apprendre.

Alors, which n’est pas adapté … c’est plutôt l’usage de dirbase voire basename, mais le code le plus approprié est celui-ci :

 RACINE="$(dirname "$(readlink -f -- "$1")")"

Cela permet assurément de connaître le répertoire racine du lien fourni dans la variable en question !

Alors, non, “exit 1” est approprié absolument … le message d’erreur est de la “courtoisie” et permet à l’utilisateur de savoir pourquoi le script s’est arrêté de manière “inopiné” :wink:

Ne pas mettre d’erreur est inadéquat car tu es bien dans le contexte où il manque quelque chose pour que ton script fonctionne correctement.

KDE permet la modification libre de tous les raccourcis clavier, du coup, ton script utilisant massivment les raccourcis clavier, s’il ne sont plus ceux par défaut, ça ne fonctionnera pas.
La solution serait d’appeller la méthode via dbus, mais là, tu n’es pas sorti du sable.

Oui, tu peux faire ça, vérifier quel environnement du bureau est lancé pour choisir le bon navigateur de fichier, ou alors utiliser xdg-open pour ouvrir celui défini par l’utilisateur et risquer de te heurter à un navigateur qui ne gère pas les raccourcis que tu utilises ou les onglets.

Pas d’erreur, c’est une erreur car le script n’a pas été utilisé comme prévu, il faut donc une erreur.
Si tu peux écrire l’erreur, fais un truc du genre :

echo 'Erreur: ça marche pas !' >&2

En fait, j’avais simplement répondu à cette demande. donc, je n’ai pas développé plus loin pour essayer de l’adapter aux autres environnements de Bureaux ou/et autres navigateurs de fichiers.

Perso, j’utilise Midnight Commander (car ancien utilisateur de PCTools et Norton Commander) ou locate et find, donc je ne savais même pas qu’il existait des onglets dans Thunar (que je n’utilise pratiquement jamais), ni dolphin ou autre vu que j’utilise plutôt XFCE

=======
Merci d’avoir pris le temps de lire mon script et pour vos remarques et conseils.

Une autre bien meilleure version du même script
créee grâce à vos conseils et ceux de Watael sur debian-facile.org

#!/bin/bash

# thunar : Un onglet pour chaque répertoire de la liste donnée en paramètre
# Ce script utilise xdotool

mesg="Syntaxe : $0 nomDeRepertoire1 [nomDeRepertoire2]..."

[ $# -eq  0 ] && { printf "\n\t%s\n\n" "$mesg" 1>&2; exit 1; }

until test -d "$1"; do shift; done

thunar "$1"; shift

for rep; do test -d "$rep" && { xdotool key Ctrl+t Ctrl+l type "$rep"; xdotool key Return; }; done