Plusieurs lanceurs de terminaux sur le quai?

0

J'ai un raccourci terminal sur mon quai que j'utilise tous les jours. En fonction de la configuration de mon moniteur (supplémentaire, 2 supplémentaires, etc.) sur mon Macbook Pro, j'aime avoir un schéma de lancement différent (4 fenêtres ou 5 fenêtres).

Existe-t-il un moyen d’avoir 2 (ou plus) lanceurs de terminaux sur le dock, un qui lance l’installation «4 fenêtres» et l’autre qui lance l’installation «5 fenêtres»?

drjrm3
la source
Est-ce que Terminal va fonctionner quand vous cliquez dessus?
0942v8653
de préférence pas. Imaginez que je quitte tout et que je veuille tout recommencer. Par exemple, celle que j'ai maintenant lance 4 fenêtres (si elle n'est pas en cours d'exécution), mais ne lancera qu'une fenêtre si le terminal est en cours d'exécution. Je voudrais cette même fonctionnalité, mais seulement deux raccourcis différents - un pour chaque groupe de fenêtres.
drjrm3
Comment le lanceur original est-il construit?
markhunte
Vous ne savez pas ce que vous voulez dire? J'ai simplement fait glisser l'icône de l'application sur la barre des tâches!
drjrm3
Désolé, j'ai mal interprété votre commentaire. Je viens de construire un pommecript et posterai une réponse dans un instant.
markhunte

Réponses:

0

Voici comment vous pouvez changer automatiquement le groupe de fenêtres de démarrage du terminal:

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

( four-windows et five-windows doit être remplacé par les noms de groupe de la fenêtre du terminal.)

Vous pouvez utiliser AppleScript ou Automator pour créer une application qui lance ensuite Terminal:

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

Ou vous pouvez utiliser mon linkapp scénario pour créer un nouvel ensemble d'applications qui fera la même chose, et l'icône y restera.

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

Puis, quand il vous donne le script wrapper, éditez-le et ajoutez la ligne d'écriture par défaut au-dessus du "$executable".

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

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

"$executable" 

Vous pouvez ensuite faire la même chose avec votre autre groupe de fenêtres. Un inconvénient avec linkapp.py est que vous ne pouvez pas les exécuter en même temps, car il essaiera de restaurer vos fenêtres.

Si vous le souhaitez, vous pouvez également modifier l'icône (mais si vous n'utilisez pas linkapp.py, l'icône de terminal normale correspond à ce qui apparaît dans votre Dock et dans Commande + Tab quand il est en cours d'exécution).

0942v8653
la source
question rapide - comment puis-je lui dire de simplement lancer la fenêtre de base d'origine? Dois-je créer un nouveau groupe "one-window" qui lance simplement la fenêtre d'origine?
drjrm3
Je pense que vous pourriez désactiver en commençant par un groupe de fenêtres, mais il serait probablement plus simple d'utiliser un autre groupe.
0942v8653
0

Vous pouvez enregistrer le script Applescript ci-dessous en tant qu’application.

Ne définissez pas rester ouvert lors de la sauvegarde.

Ce script lorsqu'il est enregistré en tant qu'application. Vous permettra de configurer autant de fenêtres que nécessaire et de les ouvrir aux mêmes positions.

Vous pouvez enregistrer le script autant de fois que vous le souhaitez. et configurez chaque application pour contrôler différents ensembles de fenêtres de terminal.


Lorsque vous exécutez le script, il va:

  • Détecter si les limites de la fenêtre du terminal ont été sauvegardées windowBounds propriété

S'il n'en trouve pas, il vous demandera d'en configurer.

  • Frappé Oui pour vous sauver les fenêtres actuelles du terminal.

Vous aurez bien sûr besoin de certaines fenêtres, donc si vous ne les avez pas encore ouvertes:

  • frappé non , configurez vos fenêtres de terminal et relancez l’application.

L'application sera toujours fermée après son exécution.

  • Désormais, lorsque vous exécuterez à nouveau l’application, elle ouvrira autant de fenêtres que vous l’avez configurée et aux mêmes endroits.

Une deuxième fonctionnalité est que vous pouvez modifier la configuration de la fenêtre.

Si vous maintenez la touche Maj enfoncée tout en cliquant sur l'icône de l'application pour la lancer.

L'application vous donnera la possibilité d'enregistrer les fenêtres actuelles du terminal sous son nom. windowBounds config. Ceci écrase les précédents.


Pour avoir plus d'une config. Je pourrais développer l'application pour ce faire. Mais il est plus simple de créer deux applications et de les nommer différemment. Placez-les dans votre quai. ta da ...

Le scénario.


    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

Mise à jour 2.

Déplacé close windows

dans le nowRun() manipuler.

Cela permet à l'application d'être utilisée si Terminal est en cours d'exécution ou non. Il va maintenant fermer toutes les fenêtres actuellement ouvertes et faire apparaître celles configurées.

Ce qui est pratique lorsque vous lancez Terminal et ouvrez une fenêtre par défaut.

markhunte
la source