14 votes

Les dossiers ouverts par des applications externes s'ouvrent dans un nouvel onglet du Finder plutôt que dans une fenêtre.

J'ai activé le paramètre "ouvrir les dossiers dans de nouveaux onglets" (au lieu de nouvelles fenêtres) dans le Finder, mais cela ne semble pas influencer ce que font mes autres applications lorsque ils ouvrir un dossier. La barre de lancement et un shell script que j'exécute depuis emacs ouvrent toujours les dossiers dans le petit finder Windows. Comment puis-je faire en sorte que les dossiers ouverts à partir d'apps externes apparaissent tous dans une seule fenêtre de finder à onglets ?

Edit : Bmike dans le commentaire a raison de dire que cela pourrait probablement être fait via un applescript. Quelque chose comme ceci :

  1. Vous avez un script qui vous donne le chemin du dossier que vous voulez ouvrir.
  2. Vous le passez comme une variable à un applescript.
  3. Cet applescript enregistre le chemin d'accès comme une variable
  4. Il active le finder ou ouvre un dossier particulier avec le finder.
  5. Il envoie la combinaison de touches commande + t pour ouvrir un nouvel onglet (ou fait de même avec une commande au finder).
  6. Il envoie la combinaison de touches commande + shift + g au finder qui ouvre le menu/fenêtre "go to folder with path x".
  7. Il écrit (systemevents) ou colle (en plaçant le presse-papiers sur la variable qui est le chemin du dossier) dans ce menu/fenêtre.
  8. Cliquez sur Entrée. Le dossier est ouvert.

1voto

David Corbin Points 287

J'ai fait ça, mais je ne suis pas sûr que ça puisse vous aider.

Préférences du Finder > Général > cocher "ouvrir les dossiers dans des onglets plutôt que dans de nouvelles fenêtres".

1voto

Hai Feng Kao Points 141

Merci pour cette idée. J'ai terminé l'applescript.

Mettez ce qui suit dans votre ~/.bashrc o ~/.zshrc

# open the current folder in Finder's tab
function oft() {
    # if no arguments are given, we use the current folder
    oft_absolute_path=$(cd ${1:-.}; pwd)

    # execute the applescirpt
    osascript 2>/dev/null <<EOF

        # Finder returns a path with trailing slash
        # But PWD doesn't have one, so we add one for it
        set new_tab_path to "$oft_absolute_path" & "/"

        tell application "Finder"
            activate

            if not (exists window 1) then
                make new Finder window
            end if

            try
                set finder_path to POSIX path of (target of window 1 as alias)
            on error
                # the finder's window doesn't contain any folders
                set target of front window to (new_tab_path as POSIX file)
                return
            end try
        end tell

        if new_tab_path = finder_path then
            # the finder's tab is already there
            return
        end if

        # open new tab in Finder
        tell application "System Events" to keystroke "t" using command down

        # set the Finder's path
        tell application "Finder"
            set target of front window to (new_tab_path as POSIX file)
        end tell

        return
    EOF
    # clear the tempory veriable
    unset oft_absolute_path
}

Dans le terminal, tapez

oft .

pour ouvrir le dossier en cours dans le nouvel onglet du Finder.

Le bash script est utilisé pour récupérer le chemin absolu, ce que j'ai trouvé difficile à faire dans appplescript.

UPDATE

J'ai fait une version plus étendue (et compliquée) qui ouvrira le même onglet pour le même dossier. Achetez-le ici

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X