Ahora que descubrí cómo configurar iTerm2 como el controlador de URL ssh:// , me gustaría que iTerm2 responda a una URL ssh abriendo una nueva ventana en lugar de abrir una nueva pestaña en una ventana existente. es posible?
Tenía curiosidad sobre el mismo problema. Después de revisar el código fuente , encontré que iTerm2 v1.0.0.20111020 está codificado para abrir una nueva sesión como una pestaña si ya existe una sesión, cuando recibe casi cualquier comando "iniciar esta URL con un controlador".
Mis habilidades con Xcode y Objective-C aún son bastante débiles, pero si quieres intentarlo, creo que el problema está relacionado con el archivo fuente iTermController.m . En las líneas 789 a 870 el launchBookmark:withURL
método tiene el siguiente código:
// 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];
Sospecho que cuando theTerm == nil
, addNewSession
funciona como se esperaba al abrir una nueva ventana, ya que actualmente no se está ejecutando una. Tal vez pueda modificar el código para forzar que el primer bloque se ejecute siempre, independientemente del theTerm
contenido de .
¡¡Espero que esto ayude!! .. Puede valer la pena enviar un informe de error o ponerse en contacto con el autor si todavía tiene problemas.
ian c