Spraw, aby foldery otwierane przez aplikacje zewnętrzne były otwierane w nowej karcie wyszukiwarki, a nie w oknie


13

Mam ustawienie „Otwórz folder, w nowych kartach” (zamiast nowych okien) w Finderze włączone, ale to nie wydaje się wpływać na to, co zrobić moje inne aplikacje podczas ich otworzyć folder. Pasek uruchamiania i skrypt powłoki, który uruchamiam z emacsa, nadal otwiera foldery w małych oknach wyszukiwarki. Jak sprawić, aby foldery otwierane z aplikacji zewnętrznych były wyświetlane w jednym oknie wyszukiwarki z kartami?

Edycja: Bmike w komentarzu ma rację, że prawdopodobnie można to zrobić za pomocą skryptu jabłkowego. Coś takiego:

  1. Masz skrypt, który podaje ścieżkę do folderu, który chcesz otworzyć.
  2. Przekazujesz to jako zmienną do skryptu jabłkowego.
  3. Ten skrypt Apple zapisuje nazwę ścieżki jako zmienną
  4. Aktywuje Finder lub otwiera określony folder za pomocą Findera.
  5. Wysyła polecenie naciśnięcia klawisza + t, aby otworzyć nową kartę (lub robi to samo z poleceniem wyszukiwarki).
  6. Wysyła polecenie naciśnięcia klawisza + shift + g do wyszukiwarki otwierającej przejście do folderu ze ścieżką x menu / okna.
  7. Zapisuje (systemevents) lub wkleja (ustawia schowek na zmienną, która jest ścieżką folderu) do tego menu / okna.
  8. Kliknij enter. Folder jest otwarty.

3
Chcę tego samego.
iCode

1
Mam ten sam problem, pytanie na Super User: superuser.com/questions/688439/…
Nick

Wygląda na to, że jest to w ustawieniach aplikacji, nie tylko Findera.
Rajiv

1
Czy możesz podzielić się szczegółami skryptu powłoki lub paska uruchamiania? Może być możliwe osadzenie w nich wywołania AppleScript, aby powiedzieć wyszukiwarce, aby otworzyła nową kartę.
bmike

pasek uruchamiania po prostu otwiera rzeczy automatycznie, w skryptach powłoki używam polecenia open developer.apple.com/librarY/mac/documentation/Darwin/Reference/... , aby otwierać przez emacs w dired Używam tego skryptu apple.stackexchange.com/questions/ 106131 /…

Odpowiedzi:


1

Zrobiłem to, nie jestem pewien, czy to ci odpowie.

Preferencje Findera> Ogólne> zaznacz „otwieraj foldery na kartach zamiast nowych okien”


1

Dzięki za pomysł. Mam ukończony skrypt jabłkowy.

Wpisz następujące informacje w swoim ~/.bashrclub~/.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
}

W terminalu wpisz

oft .

aby otworzyć bieżący folder w nowej karcie Findera.

Skrypt bash służy do pobierania bezwzględnej ścieżki, co było trudne do wykonania w appplescript.

AKTUALIZACJA

Stworzyłem bardziej rozbudowaną (i skomplikowaną) wersję, która otworzy tę samą kartę dla tego samego folderu. Zdobądź to tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.