Ouvrir une nouvelle fenêtre de terminal dans l'espace actuel, indépendamment des autres terminaux ouverts dans d'autres espaces

14

Lorsque vous utilisez des espaces sur Mac OS X, la tentative d'ouverture d'une nouvelle instance de terminal entraîne le focus sur l'espace ayant la dernière fenêtre de terminal accessible. Avec le Finder, je peux cliquer sur le bureau puis utiliser - Npour créer une nouvelle fenêtre du Finder. Ce que je recherche, c'est une méthode pour exécuter la même fonction pour les fenêtres de terminal.

Comment puis-je créer une nouvelle instance de terminal dans l'espace actuel, qu'il y ait ou non une autre instance de terminal dans un ou plusieurs autres espaces.

Merci.

Mark Nichols
la source
j'aime la question, mais pense qu'elle devrait être sur super utilisateur.

Réponses:

4

Vous pouvez créer un nouveau service à l'aide d'un automate (à partir du dossier des applications). En haut de la fenêtre de l'automatisme, entrez: Le service ne reçoit «aucune entrée» dans «n'importe quelle application». Ensuite, dans le flux de travail, ajoutez «Exécuter applescript». Faites en sorte que l'applescript contienne les éléments suivants:

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

(Vous pouvez ajouter n'importe quelle commande que vous aimez dans la ligne de script do entre les "" (par exemple quelque chose d'utile à exécuter lorsque le terminal s'ouvre pour la première fois comme uptimesi vous le souhaitez, ou tout simplement le laisser vide).

Enregistrez le service sous «Open Terminal» ou sous le nom de votre choix. Il devrait maintenant apparaître dans votre menu de services.

Ensuite, si vous souhaitez ajouter un raccourci clavier, il vous suffit d'aller dans les Préférences Système -> Clavier -> onglet Raccourcis clavier, sélectionnez les services dans le menu de gauche et trouvez votre nouveau service (c'est probablement près du bas). Cliquez simplement dans l'espace à droite du nom de votre service, et attribuez-lui le raccourci clavier que vous souhaitez, et hé hop! tout devrait fonctionner

tmdavison
la source
1
Il convient de noter que cela fournit réellement la fonctionnalité demandée. En tant que modification mineure, vous avez besoin de la do shell script " "ligne pour ouvrir une nouvelle fenêtre dans l'espace actuel, mais il n'est pas nécessaire que le script shell soit un espace vide. S'il s'agit d'un espace vide, le terminal exécute l'espace vide en tant que commande, ce qui entraîne des retards d'exécution et une ligne superflue dans la nouvelle fenêtre du terminal. Faites-en simplement une chaîne complètement vide: do shell script ""puis il ouvre une nouvelle fenêtre Terminal mais n'émet aucune commande.
Dakota
Oui, tu as raison. J'ai mis à jour la réponse pour supprimer l'espace entre les guillemets. Cependant, pour fonctionner, cela doit être do script "", et non do shell script "", comme l'a suggéré
@dakota
3

Dans les affectations d'application dans Préférences Système -> Espaces, définissez Terminal sur "Chaque espace" ou supprimez l'entrée. Ensuite, il ne devrait pas y avoir de problème pour ouvrir une nouvelle fenêtre de terminal où vous le souhaitez, par exemple en cliquant sur le menu contextuel du dock "Nouvelle fenêtre" (fonctionne même si vous avez le "Lorsque vous passez à une application, passez à l'espace avec des fenêtres ouvertes application "activée").

wm
la source
Pour autant que je sache, la première phrase n'est pas pertinente. Le définir sur "Chaque espace" modifie toujours l'espace lors de l'ouverture d'une nouvelle fenêtre via quelque chose comme AppleScript ou une liaison de touches, et le menu contextuel du dock ne modifie jamais l'espace quel que soit ce paramètre. La seule chose intéressante dans cette réponse est l'option "Lorsque vous passez à une application, passez à l'espace avec des fenêtres ouvertes depuis cette application". Le désactiver "corrige" le cas de la liaison de touches / AppleScript, mais malheureusement "casse" l'onglet de commande. Si seulement OS-X avait une liaison de touches "fenêtres de cycle" appropriée qui fonctionnait à travers toutes les fenêtres dans toutes les applications sur tous les espaces.
Laurence Gonsalves
@LaurenceGonsalves, vous pouvez parcourir toutes les fenêtres du terminal dans tous les espaces avec Commande + Flèche gauche / droite. Est ce que ça aide?
Chris Page
@Chris C'est un ensemble intéressant de raccourcis, merci, mais ils ne résolvent pas le problème auquel je fais référence. Si le paramètre "Lors du passage à une application ..." est désactivé et que vous vous trouvez sur un espace sans fenêtres de terminal et que vous passez l'onglet de commande sur "Terminal", il ne bascule pas vers un espace doté d'une fenêtre de terminal, et commande-backtick ne fera rien. Étonnamment, la commande-flèche gauche / droite ne fait rien dans ce cas non plus (au moins sur Snow Leopard). Ces touches alterneront entre les fenêtres à travers les espaces si une fenêtre de l'application actuelle a le focus, mais si aucune fenêtre n'a le focus, elles ne font rien.
Laurence Gonsalves
2
tell application "Terminal"
    do script ""
    activate
end tell

Pour que cela fonctionne sous Lion, saisissez ce qui précède dans une nouvelle fenêtre AppleScript et enregistrez-le. Appelez le script via un lanceur de commandes comme QuickSilver ou affectez-le à un raccourci clavier. Cela devrait fonctionner, même si vous avez défini le paramètre «Lors du passage à une application, basculez vers un espace avec des fenêtres ouvertes pour l'application» activé dans Mission Control. L'astuce consiste à faire la commande activate en dernier lieu plutôt qu'au début.

Stefan Ludwig
la source
Vous pouvez également créer un service à l'aide d'Automator et l'activer à l'aide d'un raccourci clavier défini dans les Préférences Système: apple.stackexchange.com/a/13655/36722
Dakota
0

Si vous utilisez le menu du dock pour ouvrir une nouvelle fenêtre, elle s'ouvre dans l'espace actuel.


la source
Existe-t-il un moyen de le faire à partir du clavier?
Laurence Gonsalves
Control-F3 est "Déplacer le focus vers le Dock". Vous pouvez utiliser les touches fléchées pour naviguer dans le menu d'icônes Dock du Terminal. Vous pouvez également taper pour sélectionner des éléments de menu par leur nom, par exemple, tapez "N" ou "Nouveau W". Voir Préférences Système> Clavier> Raccourcis clavier> Clavier et saisie de texte pour voir tous les raccourcis clavier pour la sélection et la navigation dans l'interface utilisateur.
Chris Page
Il est possible de le faire. Vous devez créer un service spécial à l'aide d'Automator, que vous pouvez ensuite lier à un raccourci clavier à partir des Préférences Système: apple.stackexchange.com/a/13655/36722
Dakota
0

Vous pouvez désactiver automatiquement les espaces de commutation OSX lorsque vous changez d'application à l'aide des commandes suivantes:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

Fonctionne sur 10.6.8

OrangeBox
la source
Il y a un paramètre GUI pour cela aussi, c'est dans "Mission Control".
SilverWolf