Nachdem ich nun herausgefunden habe, wie iTerm2 als ssh:// URL-Handler festgelegt wird , möchte ich, dass iTerm2 auf eine ssh-URL antwortet, indem es ein neues Fenster öffnet, anstatt eine neue Registerkarte in einem vorhandenen Fenster zu öffnen. Ist das möglich?
Ich war neugierig auf das gleiche Problem. Nach Überprüfung des Quellcodes fand ich in iTerm2 v1.0.0.20111020 fest codiert, um eine neue Sitzung als Registerkarte zu öffnen, wenn eine Sitzung bereits vorhanden ist, wenn sie fast jeden Befehl "Diese URL mit einem Handler starten" erhält.
Meine Xcode- und Objective-C-Kenntnisse sind immer noch ziemlich schwach, aber wenn Sie es versuchen möchten, glaube ich, dass das Problem mit der Quelldatei iTermController.m zusammenhängt . In den Zeilen 789 bis 870 launchBookmark:withURL
hat die Methode den folgenden Code:
// 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];
Ich vermute, dass wenn theTerm == nil
, addNewSession
wie erwartet funktioniert, indem ein neues Fenster gestartet wird, da eines derzeit nicht ausgeführt wird. Vielleicht können Sie den Code ändern, um zu erzwingen, dass der erste Block immer ausgeführt wird, unabhängig vom theTerm
Inhalt von .
Ich hoffe das hilft!! .. Es kann sich lohnen, einen Fehlerbericht einzureichen oder den Autor zu kontaktieren , wenn Sie immer noch Probleme haben.
Jan C.