Maintenant que j'ai compris comment définir iTerm2 comme gestionnaire d'URL ssh:// Je voudrais que iTerm2 réponde à une URL ssh en ouvrant une nouvelle fenêtre au lieu d'ouvrir un nouvel onglet dans une fenêtre existante. Est-ce possible ?
Réponse
Trop de publicités?J'étais curieux de connaître le même problème. Après avoir l'examen du code source L'erreur que j'ai trouvée dans iTerm2 v1.0.0.20111020 est codée en dur pour ouvrir une nouvelle session en tant qu'onglet si une session existe déjà, lorsqu'il reçoit presque n'importe quelle commande "launch this URL with a handler" (lancer cette URL avec un gestionnaire).
Mes compétences en Xcode et Objective-C sont encore assez faibles, mais si vous voulez essayer, je pense que le problème est lié au fichier source iTermController.m . Aux lignes 789 à 870, le launchBookmark:withURL
a le code suivant :
// Where do we execute this command?
BOOL toggle = NO;
if (theTerm == nil) {
[iTermController switchToSpaceInBookmark:aDict];
term = [[[PseudoTerminal alloc] initWithSmartLayout:YES
windowType:[aDict objectForKey:KEY_WINDOW_TYPE] ? [[aDict objectForKey:KEY_WINDOW_TYPE] intValue] : WINDOW_TYPE_NORMAL
screen:[aDict objectForKey:KEY_SCREEN] ? [[aDict objectForKey:KEY_SCREEN] intValue] : -1] autorelease];
[self addInTerminals: term];
toggle = [term windowType] == WINDOW_TYPE_FULL_SCREEN;
} else {
term = theTerm;
}
id result = [term addNewSession: aDict withURL: url];
Je soupçonne que lorsque theTerm == nil
, addNewSession
fonctionne comme prévu en lançant une nouvelle fenêtre, puisqu'il n'y en a pas actuellement. Vous pouvez peut-être modifier le code pour forcer le premier bloc à toujours s'exécuter, indépendamment de l'option theTerm
Le contenu de l'article.
J'espère que cela vous aidera ! Cela peut valoir la peine déposer un rapport de bogue ou contacter l'auteur si vous avez encore des problèmes.