più dispositivi di avvio del terminale sul dock?

0

Ho un collegamento al terminale sul mio dock che uso tutti i giorni. A seconda della configurazione del mio monitor (extra, 2 extra, ecc.) Sul mio Macbook Pro, mi piace avere uno schema di avvio diverso (4 finestre o 5 finestre).

C'è un modo per avere 2 (o più) lanciatori di terminale sul dock, uno che avvia l'installazione di "4 windows" e uno che lancia l'installazione di "5 windows"?

    
posta drjrm3 19.02.2015 - 14:34
fonte

2 risposte

0

Ecco come puoi cambiare automaticamente il gruppo di finestre di avvio di Terminal:

defaults write com.apple.Terminal 'Startup Window Group' 'four-windows'
defaults write com.apple.Terminal 'Startup Window Group' 'five-windows'

( four-windows e five-windows devono essere sostituiti con i nomi dei gruppi di finestre Terminal.)

Puoi utilizzare AppleScript o Automator per creare un'app che faccia poi partire Terminal:

-- AppleScript version
do shell script "defaults write com.apple.Terminal 'Startup Window Group' 'four-windows'"
tell app "Terminal" to activate

Oppure puoi utilizzare il mio linkapp script per creare un nuovo bundle di app che farà la stessa cosa e l'icona rimarrà lì.

python linkapp.py /Applications/Utilities/Terminal.app ./term-layout-4.app

Quindi, quando ti dà lo script wrapper, modificalo e aggiungi la linea di scrittura predefinita sopra "$executable" .

#!/usr/bin/env bash
executable="$(dirname "$0")/Terminal"

defaults write com.apple.Terminal 'Startup Window Group' 'four-windows'

"$executable" 

Puoi quindi fare lo stesso con il tuo altro gruppo di finestre. Un avvertimento con linkapp.py è che non puoi eseguirli entrambi allo stesso tempo, perché proverà a ripristinare la tua finestra.

Se vuoi puoi anche cambiare l'icona (ma se non usi linkapp.py, la normale icona del Terminale sarà quella che appare nel Dock e nella Tab Command + quando è in esecuzione).

    
risposta data 19.02.2015 - 17:23
fonte
0

Puoi salvare il seguente oggetto Applescript come applicazione.

Non impostare rimanere aperti durante il salvataggio.

Questo script quando salvato come app. Ti permetterà di configurare tutte le finestre di cui hai bisogno e di aprirle nelle stesse posizioni.

Puoi salvare lo script qualsiasi numero di volte come una nuova app. e configura ogni app per controllare diversi gruppi di finestre del terminale.

Quando esegui lo script, esso:

  • Rileva se sono stati salvati i limiti della finestra di Terminale nella sua proprietà windowBounds

Se non ne trova, ti verrà chiesto di impostarne uno.

  • Premi si per salvare le attuali finestre del terminale.

Ovviamente avrai bisogno di alcune finestre aperte, quindi se non le hai ancora aperte:

  • attiva no , configura le finestre del terminale ed esegui di nuovo l'app.

L'app si chiuderà sempre dopo che è stata eseguita.

  • Ora, quando avvii di nuovo l'app, verranno aperte tutte le finestre che hai configurato e nelle stesse posizioni.

Una seconda funzione è che puoi modificare la configurazione della finestra.

Se tieni premuto il tasto Maiusc mentre fai clic sull'icona dell'applicazione per avviarlo.

L'app ti darà la possibilità di salvare le attuali finestre del terminale come configurazione windowBounds . Questo sovrascrive quelli precedenti.

Per avere più di una configurazione. Potrei espandere l'app per farlo. Ma è più semplice creare solo due App e nominarle in modo diverso. Mettili nel tuo dock. ta da ...

Lo script.

    property windowBounds : {}


if windowBounds is {} then


    display()

else
    nowRun()

end if

on display()
    display dialog "Set the current Terminal windows to app. now?" buttons {"Yes", "No"} default button 2
    if the button returned of the result is "Yes" then
        setBounds()

    end if

end display

on nowRun()

    if not isShiftKeyPressed() then
        tell application "Terminal"
            activate
            close windows
            delay 1
            repeat with i from 1 to number of items in windowBounds
                set this_item to item i of windowBounds
                do script "proHelp"
                set bounds of window 1 to this_item
            end repeat
        end tell

    else

        display()

    end if
end nowRun
on setBounds()
    tell application "Terminal"
        set windowBounds to bounds of windows

    end tell


end setBounds

on isShiftKeyPressed()

    return (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa. NSShiftKeyMask > 1'") is "True"
end isShiftKeyPressed

Aggiornamento 2.

Spostati close windows

Nell'impugnatura nowRun() .

Ciò consente di utilizzare l'app se il terminale è in esecuzione o meno. Ora chiuderà tutte le finestre attualmente aperte e visualizzerà quelle configurate.

Che è utile quando si avvia Terminal per la prima volta e si apre una finestra di default.

    
risposta data 19.02.2015 - 17:31
fonte

Leggi altre domande sui tag